skysight-inc/HackerNews huggingface dataset:
For anyone else looking into Rust, I've been experimenting in it for the past month. Heres my thoughts:

It advertises itself as a systems level language for the new age, but to me it feels like a functional language in disguise. The borrow checker enforces an unchained functional style (You may have 1 unique mutable reference or may have many immutable references). This sounds bad if you're used to pointer slinging, but once you get used to the peculiarities I find it forces me to write better quality code.

The package management is the most refreshing feature. It's a pain to rewrite my personal libraries in each language I use, but I found that most of the things I needed were already available at higher quality than I would have done. (And using them is a single config line).

For a 'low level language' they make it pretty hard to do some 'low level' things. Example's I've found include:

* writing a doubley linked-list. Consensus is "don't use linked-lists. The stdlib has better tools

* Reading a file into a struct. They make it surprisingly difficult to say "hey, read these 10 bytes, its this struct". Consensus is to use more structured file formats like json or protobufs. There's libraries for reading those things.

Error handling is similar in style to Go, but it get rid of a lot of the boilerplate. The '?' operator effectively acts as if err return err.

The macro system is really nice. I don't write many macros, but it does mean I can use other people's powerful macros. My favorite are 'include_bytes!', 'lazy_static!' and 'dbg!'. The new procedural macros are pretty wacky, essentially allowing you to parse or rewrite the AST. A powerful example I've seen is static checks; This [0] example writes a compile time check to assert that structs do not contain a member named 'bees'.

Overall it's been a fun language to mess around with.

[0] - https://tinkering.xyz/introduction-to-proc-macros/
As soon as I saw it was just a quote, I had this gut instinct it would be Carmack speaking. The reason is because when DirectX was really marketing hard, Carmack did some work in OpenGL and stood up for it. It was kind of important to me since it was open.
Like you never do stuff that others think is wrong...

Live and let live.

The drivers deliver the shit you buy online.
Warning: the cato instituit is a “libertarian think tank” funded by the koch brothers. Be very wary of their particular biases
My announcement email has a short summary:

https://lists.openstreetmap.org/pipermail/osmf-talk/2019-Jan...
I love C++ (though it often frustrates me), and I think Rust is doing some awesome things (though I don’t work in it). A few clarifications:

Your point about iterators and composability: you’re right, the STL suffers a bit here, but Eric Neibler’s ranges library (which is partially approved for C++20) addresses this.

> Compile time programming ... aren’t in a standard yet.

There compile time programming story in C++ has been getting better and better, and has made great strides with recent standards (check out constexpr, which arrived in C++11).

> template meta programming is an agony to use.

Many people would agree with you, but it’s a matter of taste :). It’s “just functional programming” (with an arguably terrible syntax).

I’m very jealous of many rust features, like built in algebraic data types, pattern matching, but most of all their build and package stories.
(1) I'm not sure I fully understand what you are referring to wrt the "acks" but either way, one major difference is that the acks don't have to be made durable in the alg. described by the post. Also, the other key thing to note is that alg. described by the post does not suffer from the blocking or cloggage problems of 2PC.

(2) The post was already too long, so I didn't cover all the cases. The code rewrite algorithm described in the post is indeed O(n^2) if every shard has the possibility of a state-based abort. However, the number of shards that have possibilities of state-based aborts is known before the transaction begins, and since the same values are being sent everywhere, you can always use standard network broadcast techniques to bring the complexity back to O(n).

(3) Garbage collection can work via a high water mark. You keep track of the highest transaction number for which all transactions less than this number have been completed, and can garbage collect values for those versions.
If you mean a squashed history, I agree. At that scale I think the advantages outweigh the disadvantages.
Sure, but nothing precludes it from actually being the case that they really do operate that way. They can even mount your defense! It's perfect.
Actually the approach described by this post does much better than 2PC under contended workloads because it removes the cloggage problem (see the section entitled "The problems with 2PC").
> In the late 1970s and 1980s, Americans fretted a lot about something called “The China Syndrome.” The idea was that in the case of a nuclear reactor meltdown, the fiery radioactive core would burn a hole through the earth and come out somewhere north of Peking

Good grief, no. It was a colorful metaphor in the industry for explaining the self-sustaining problem with meltdowns: the fuel was very dense and would naturally flow and pool together, remaining a cohesive blob even as it escaped its containiment. Other runaway reactions naturally disperse and explode, meltdowns don't. So the failure mode analysis needs to worry about what happens long after it leaves the building and hits bedrock.

It was also the title of a pretty good movie, FWIW.
Or better yet, don’t fall for the monotoolism trap and use both! I regularly use EF for inserting lots of hierarchy using one transaction, and dapper for fast view/materialized view reads. It’s an excellent combination.
it's not the Stereo F/X, it's a generic clone of a SB 2.0 sold under a dozen different brand names.
I find writing raw SQL to be quite annoying for simple CRUD operations. It's just so easy to make stupid little syntax mistakes when writing SQL. And things like having to update all your queries if you add a column to your database are pretty annoying too...

ORM's like Eloquent (PHP) are super nice, because they let you lean on them completely for simply queries, and then give you layers of opt-outs. For example, inserting a row is just obj->save(). For slightly tricky selects you can use the whereRaw method to interpolate raw SQL into just a where clause of the query, or you can use DB::query() to write a full raw SQL query if you have some queries that are particularly complex.

I guess I could give Dapper a go though. SQL is... fine.
I find it unfortunate that I don't speak German, because the Energiewende is so interesting. The data that is clear is that carbon emissions have not dropped and energy prices have risen. Population is up a little (maybe ~2%). The steady emissions are a bit so-so, and aren't promising of an Energiewende success.

What is missing for me is I can't source a current (~2017 or 2018) timeseries on German Energy/Capita use, which is a very important piece of the puzzle. Even if I could, I can't check sources because of the language barrier, so I wouldn't really be able to argue using it. If the per capita number has gone up then the Energiewende is very impressive. If it has gone down a lot, a failure. If it is middling, success is a political question.

The data will get out eventually. A lot of the interim reporting seems to combine spin and evidence-that-isn't really-evidence like negative power prices (which don't really say if 'things are working or not').
GANBreeder.app – Breed images in the latent space of BigGAN
Even while you dont include deaths involved in construction and ongoing security required by nuclear plants, those deaths-per-Wh-so-far figures do not represent risk, which is much more complicated. Its not possible to fully insure nuclear plants - because no company can take on board liability for disasters which nuclear is demonstrably capable of but fortunately have avoided to date, with considerable expense on safety measures.

It should be obvious when you think about it; if "it'll never happen" (because it can't or hasn't happened) is true, then insurance actuaries could establish that and there would be no problem with insuring the "safest source of power", but governments have to wave the responsibility for full liability instead. There is a real probabilistic risk of great and persistent tragedies from nuclear plants, the more there are the greater that risk.

Fortunately wind, solar and storage are cheaper already than nuclear [1] and their prices are continuing to drop fast. There may be a good case for improving safeguards on these industries too - it should not be as expensive as trying to fully safeguard nuclear has been.

[1] https://www.lazard.com/perspective/levelized-cost-of-energy-...
The development tooling is great for small projects and breaks down a little as project size grows, while the automation and deployment tooling is middling-to-bad in my experience. The parent post is right about NuGet and MSBuild both being pretty ponderous compared to the myriad of package management and build solutions for various frameworks in the OSS world, and deployment for wider-scale systems is falling behind the K8s/containerized state of the art as well.
Thanks for the list.
The advantage of removing 2PC is achieved in Calvin and Fauna. But I'm arguing in this post that it can also be achieved in nondeterministic systems (or really any system) and maintain the guarantees of that system.
Any context for why it appeared just now?

On a personal note, it is almost eerie that it appeared just as I finished a week in Chile at a workshop [1] looking into Buchberger's algorithm and the connections between Gröbner bases and bit complexity of proofs via sums of squares [2, 3].

[1]: https://sites.google.com/view/vverdugo/events/hierarchies-an...

[2]: https://www.cs.cmu.edu/~odonnell/papers/sos-automatizability...

[3]: https://arxiv.org/abs/1702.05139
Mainly historical ones I think. It's been open source for 4 years, but for most of that time there was a paralell closed source implementation which complicated the ecosystem a fair bit.

I'd say it's only really in this last year that it's really started escaping its legacy and started really making sense as a non-microsoft stack.
Maybe I'd call Rust a "resource-constrained" language than low-level. The usecase being you want no GC, for memory inflation or CPU pauses, but suffer a bit in overall CPU time and memory locality.
This list from the same site, titled “The 10 Longest-Kept Cars When Bought New” has almost no overlap.

http://www.thedrive.com/news/22665/the-10-longest-kept-cars-...
I'm not an expert in politics and governing, but that seems like a horrible way to run a democracy: with zero conviction of what is just (e.g. for the gays) but only with your ear to "what is popular"? There's even a term for it: https://en.wikipedia.org/wiki/Tyranny_of_the_majority

I've always thought her motivation in 2015 was because she didn't want to be seen in history as a monster, I didn't know about the poll numbers. But what if the majority said "Refugees stay out!"? If I were a political leader, I would still let them in and try to appeal to my population about being humane, if I just looked at the poll numbers and they say "close the borders" and I just followed that, I would not be able to sleep at night.

I've read an article that asked what she has accomplished for the nation, and the author concluded her only mission is political survival.
Its definitely a regional thing. I never heard merc used for anything other than mercedes until i lived in missouri.
I was making a joke out of the "silicon valley" tv series. To my surprise reality is no different.
A bit of both?
Honest question, I don’t know the iOS APIs very well, can they (if you have given the app permission before) check geotags on your photos without you explicitly uploading that photo?
i wonder if that urban myth originated from actual research.

my wish would be to not be in a deathbed ;)
True, on the other hand if C#'s memory usage is reasonable enough that your program isn't memory bound, then it might start looking better again.
Latest contributions: https://en.wikipedia.org/w/index.php?title=Special:Contribut...

Not all edits are of equal weight; most of it looks like non-content-based edits, like adding/reorganizing categories. Not to say these contributions aren't valuable--this sort of thing is certainly important--but the article quite overstates his impact.
Because land selling for its fair value is good for human society. That land is for all of the public. Why should corporations get a deal that doesn't apply to all people?
what has good tooling for that?
““What does it matter what the customer thinks? They already bought the product.” Astoundingly, the CTO did not fire him on the spot, and instead just moved on, ignoring the comment entirely.”

The author lost a lot of credibility to me when I read that part, because it’s often critical for the life and success of a product to be skeptical of customer requests or feedback, especially bespoke custom work requests that come up all the time in enterprise sales. Your company wants to grow and needs the revenue, but accepting custom requests takes you off-strategy and often wastes resources on things that won’t generate value beyond one isolated sale / renewal.

The Recurly founder had a great quote about this, related to why Dropbox succeeded (by ignoring feature requests from customers and imposing their own vision if a simple interface, and only adding features later). It’s discussed here: < https://zurb.com/blog/don-t-add-features-to-make-customers-h... >.

Anyway, this author’s rants actually strike me like someone who doesn’t have a good sense about product design or product management.
All the comments and the story seem to be coming from people that have been around sales or briefly touched it but never been full in a sales position. It's definitely true that "enterprise" sales has a different sales cycle than commercial or smb. I've had seven and eight figure deals close faster than a small 6 figure deal. I also have found smaller organizations need much more care and feeding after the sale than larger companies. But of course this is not true for every organization or sale.

I empathize with his part on gear that sat there for years after the sale. Welcome to business, it happens everywhere. I've been on both the purchasing side and the selling side of it. Things just happen, just like we all mean to change the world or pick up a hobby but something else shiny gets in the way. But it's not a reason to give up on sales.

Politics are a part of everything. Engineers (or anyone) that refuse to accept this are just cutting their eyes out to spite their brain. If, on the sales side, you ignore the politics of the organization it is no wonder you struggle. The same is true for people in their own organization that can't get anything done, don't get promoted, or can't make friends.

Sales sucks. When you spend days, weeks, months, even years on a deal and you don't win you get nothing. Sometimes you even lose your job. Sales is expensive in more ways than just money or time and it is not for everyone.

I enjoyed reading your piece but the negativity in it is from frustration at lack of understanding. Just because you are not good at something does not mean it is bad or evil. I love basketball, but I am horrible at it, so I know realistically I will never be in the NBA. But because I do know what goes in to it I can truly respect those people that do. You can learn from others for things you are not good it, but why kid yourself? Focus what you are good at and become even better.

Michael Jordan was an amazing athlete, totally dominating basketball. He tried his hand at baseball and did decently but realized being just "decent" at it was all he would probably be and went back to what he excelled in, basketball.

I need to finish my book on sales and consulting geared towards engineers.
What the Latest Layoffs Mean for Digital Journalism
A lot of people in the C# community actually use Paket (F#'s package manager) because NuGet is a complete shit-show. I'm about to do that change myself, because NuGet is truly one of the worst package managers I've ever used (and that is saying something).
You’re on the money, and it’s the result of things like coal and dams facing inherent technical challenges to safety and externalities, versus nuclear which primarily faces political challenges. Keeping waste rods on-site is stupid and dangerous, but it’s a consequence of people and their politicians incessant NIMBYism.
> VS just feels like a big fat 32-bit legacy application with no support for long filenames

VS Code + the dotnet CLI has been a pretty good experience for me so far. Maybe try that?
Take a look ynder the hood and you start to see the full picture. Older cars were heavy and inefficient. Newer cars have far more complexity and a lot more plastics. On the plus side they have some great traction features and are far safer to get in an accident with (in general).
I'm curious, what would it take to get you to completely ditch C++ in favor of Rust?
Maybe. I think both ways can make sense, and if you insist on having the function and the calling sites in the same commit, that can make sense.

I think my proposal can also make sense because (1) it splits up the commits into two units that still keeps the codebase in a stable state [this is my rough metric for what "atomic" means] and (2) defining a function requires some independent contemplation about why that function is defined that way. Inserting that function into calling sites can be a logically distinct operation if the calling sites are varied and distinct enough to each have a different reason to now require this function.

Thus the two commits can be semantically distinct.
First of all, a high spot price is not in itself a problem as long as the high price lasts only for a short time and effectively brings needed capacity online. Where you have a serious problem is when spot prices spike, no one responds and load-shedding starts. I appreciate that SA has actually got to the point of load-shedding several times now, which is indicative of a severe problem.

However, saying that renewables are the cause of this is the same as saying that nuclear is the cause of Chernobyl. Nuclear plants don't inherently melt down if they are properly designed and operated and renewables don't inherently cause load-shedding if they are integrated to a properly planned and operated bulk power system.

What is occurring in SA is a power system planning and market design failure that is not inherent to any one technology.

It seems the system operator has been relying on reliability services provided by large synchronous generators without actually pricing and creating a market for those services, which has caused them to disappear with coal retirements and leave the power system in a chronically insecure state. In order for the market to ensure both day-ahead generation adequacy and as well as real-time operating reserve margin for unit contingencies, generators need to be able to get paid for providing those services, at a level that makes it economical to invest in new assets or maintain existing ones.

This is a policy problem, not a technical one.

FWIW I work for the company that owned the now decommissioned Hazelwood coal plant in Victoria, but I'm not involved with that plant at all.
The ACLU page includes the following claim:

> And still CBP cheats its way to more interior encroachment, for example, by claiming that the Great Lakes shared with Canada are “functional equivalents of the border” so that all of Michigan and Chicago are in its reach.

Unfortunately it doesn't seem to provide any support for that, but presumably they have some basis for saying that.
It's not as much of an awareness issue as it is an apathy one. You can't make people care no matter how many of these crap articles are written. People need to just recognize people have different cost/benefit values concerning their data, the companies they give it to, and the services they receive. And that's ok, their opinion is no more wrong than anyone else's.
Yeah, at a guess you'd combine the multiple `WaitToReadAsync` with `await Task.WhenAny`; then use `TryRead` to run though the bunch of channels in a non-blocking way.

Could even use the return `await Task.WhenAny` to tell you the specific one to check. Shouldn't be a very hard construct to make; to make it more select like.
slice::from_raw_parts_mut makes it trivial to reinterpret some bytes as a struct. Beware, though, that Rust doesn't have a stable ABI as C does, and can reorder fields and do other magic freely. What you're doing is already incredibly dangerous in C, but it's extra dangerous in Rust.

By the way, regarding doubly linked lists, standard practice when dealing with anything that doesn't fit nicely with Rust's ownership model is to either (a) write a nice high-level abstraction over it that uses unsafe code, or (b) give up and use array indices to circumvent the borrow checker, which has the added bonuses of having smaller "pointers" and much better locality.
I have definitely benefited from this. You have to have a good product!
Pretty annoying how such an interesting person gets so badly interviewed and kind of mocked by the show.

Here is a much better article about him: https://www.washingtonpost.com/lifestyle/magazine/meet-the-m...

Still that's the only video of him I could find, pretty interesting.
Everyone is biased, and the Cato Institute makes no secret what their biases are.

Personally I prefer to get information and opinions from a wide variety of biased sources, instead of trusting some news institution that pretends to be unbiased.
That $357m is actually the cost of the plane with no fit out. Just a big empty skin.
It is one coordinator per transaction. As far as coordinator robustness, I discussed this in the following paragraph from my post:

"There are two categories of work-arounds to the blocking problem. The first category of work-around modifies the core protocol in order to eliminate the blocking problem. Unfortunately, these modifications reduce the performance --- typically by adding an extra round of communication --- and thus are rarely used in practice. The second category keeps the protocol in tact but reduces the probability of the types of coordinator failure than can lead to the blocking program --- for example, by running 2PC over replica consensus protocols and ensuring that important state for the protocol is replicated at all times."
I wrote that awkwardly.

I meant that that older cars are more maintainable. IMO it’s more likely that your 1994 is on the road in 2044 than a 2019 model year.
i don't see why one precludes the other
so basically it's a $9 fee if you want "decent" treatment for your packages.