You can start vim with --clean to fix your vimrc.
549 karma · joined March 11, 2010
You can start vim with --clean to fix your vimrc.
The FTC or the govt can force (?. I'm not a US resident and know nothing of US regulatory bodies' powers) card networks and banks to make this possible. This is exactly how things work in India, as I mentioned in https://news.ycombinator.com/item?id=36709947.
A customer will be well within the bounds of the contract if they cancel their mandate through the bank, as long as they also don't expect to have continued access to Netflix.
Even in the US, there is nothing stopping the customer from closing their credit card account, except that it is an unreasonably inconvenient for the customer. It is far simpler and IMO sensible to be able to revoke consent for specific purposes through my payment instrument. So why doesn't the banking system in the US provide this as an universal option to customers? After all, this is exactly what Apple facilitates albeit at a high cost.
In India, businesses are required to get a consent, at the time of subscription, to charge the customer on a recurring basis. This is called an e-mandate and requires multi-factor authentication to create. The card holder can cancel the mandate online, through their bank, without having to rely on the business doing the right thing. The business cannot charge the customer beyond that point, without obtaining a new mandate.
Testing should also be simpler as most of your dependencies will bundled and testing in one distribution should suffice.
Merge conflict.
apt install ubuntu-restricted-extras, does it in Ubuntu.
https://www.schneier.com/blog/archives/2009/07/another_new_a...
It was shorter in LOC than my go version, mainly due to try!, but the lines themselves were longer. The one difference in correctness was that I forgot to close the files in Go, but RAII took care of it automatically in Rust.
The point I am trying to make is that adding some features from other languages doesn't provide sufficient value without also adding other features. Adding all of them can make the language significantly more complex that you wonder whether the benefits gained are worth it.
AFAIK, rust also doesn't allow selecting between a send and receive on channels. It only allows selecting over a set of receivers and even there it doesn't offer something like the default clause of Go's select statement.
Perhaps you should try to read my comments in their entirety before making accusations.
Yes I missed sync_channel, but if that is all CSP was, Java does CSP too. It has Threads and SynchronousQueue exactly like rust 1.0 will.
The tone of your previous comment made me feel that this thread is going in an unproductive direction, so I'll stop here.
However, even if that exists, rust's concurrency doesn't follow CSP as much as go's. Like I mentioned in my previous comment, it doesn't have a way to do everything the select statement in go does. This is not necessarily a bad thing, but rust definitely doesn't share the same concurrency concepts as go. It offers everything that Java/C++ does along with data race protection.
Speaking of data race protection, the current type system rejects a lot of very common "non-racy" code too. There is work in progress to address some of them and may be most of them will be addressed eventually.
Since libgreen did have massive stacks and one could not spawn 100s of thousands of tasks without changing system limits like overcommit, it was not really a comprehensive duplication of goroutines.
AFAIK, rust also doesn't allow selecting between a send and receive on channels. It only allows selecting over a set of receivers and even there it doesn't offer something like the default clause of Go's select statement.
Rust does have interesting features to prevent data races but it's concurrency model is very different from CSP and Go. Since the author praises Go's concurrency in the context of writing servers, it is entirely reasonable to prefer goroutines over OS threads as the unit concurrency.
Something like async..await is in the cards and I guess rust does have plans to implemented it sometime in future, but that will require compiler support and can't be done just in libraries like you claimed in the first comment of this thread. While it will not have same runtime characteristics of goroutines, it'll provide similar benefits to program structure.
All that said, rust definitely offers a lot. I'm only contending the claim that the language is flexible enough to implement something similar to goroutines purely as a library.
Whether goroutines need to be pooled depends on the application. For example, the default HTTP creates ones per connection and seems to be used without any problem in production at a lot of places. Creating them is much cheaper than creating OS threads. In fact, libgreen threads were faster to spawn than libnative ones in rust when it existed.
Rust and Go have different trade-offs when it comes to concurrency and each has its benefits and drawbacks.
libgreen while it existed scaled very poorly and consensus among rust developers seemed to be that, it cannot be improved without compromising some of the core features of rust like no-GC and zero-overhead calls to C libraries.
Same is the case with spectral norm. It is unsafe rust beating safe go there too.
Also, which benchmark did you have in mind when you said unsafe code is mandatory?
[1] http://benchmarksgame.alioth.debian.org/u64q/program.php?tes...
[2] http://benchmarksgame.alioth.debian.org/u64q/program.php?tes...
[3] http://benchmarksgame.alioth.debian.org/u64q/program.php?tes...
Since primary key is clustered in MySQL, I choose an appropriate key. Is there an equivalent mechanism or is periodically running the cluster command the only option?