skysight-inc/HackerNews huggingface dataset:
Agree. The language's memory safety system needs to support more common use cases. At least:

- Back pointers. (They're not owning pointers, and they have a well defined relationship with some other pointer. The language may need some way to explicitly say that.)

- Collections where not all slots are initialized. (This requires simple proofs by induction as you grow a collection into previously allocated unused space.)
I got nothing on data code. You could try running a comparable S3/EC2 against Manta on Joyent, but that would be relatively expensive, and I have no idea of the differences between Amazon and Joyent's datacenter layout, so such a test would not be optimal, although it would test each in its most common use case.

It's also worth mentioning in performance analysis. that Manta is backed by ZFS and Zones, so it has the performance characteristics of those.
Also don't forget the A380 RR disaster-that-was-prevented-by-sheer-luck.
Companies that quickly expand to meet sudden demand find themselves over capitalized when the demand inevitably drops, and often bankrupt soon afterwards.

Lego has always been managed for the long term and I assume they will grow production capacity only to the extent that they believe the demand growth is structural and not cyclical.
There are also pop ups (like the EU cookie warning), self-triggering modals, A/B testing experiences, and newer patterns like feedback widgets that give false positives.

I am working on a visual diff engine that will account for all of these, you can sign up for updates here:

http://geodiff.launchrock.com/
We use SocketIO as our main interface through NodeJS, and the websocket engine is uWS. The intermediary to communicate between servers is Redis. EC2 + ELB (the new application load balancer is slick) makes it scalable quickly.
That's trademarking an image of a red brick, LEGO still has has a trademark on the word LEGO and probably many other things, which I assume effectively means that LEGO can't sue Mega for using pictures of red bricks on their packaging.

All they need is the word LEGO, because _everyone_ knows that non-LEGO products are inferior. Non-LEGO bricks are up there in infamy with "the player 2 controller" that wasn't made by the console maker.
They use evolutionary search to discover spiking neural networks whose response dynamics can solve a control task. This is a fascinating approach, but one that I've only ever seen as a means to do theoretical neuroscience: A way to obtain interesting spiking networks whose dynamics we can study in the hope of developing mathematical tools that will help understand biological networks.

But here, from the claims in the post and the lab website, it sounds as if the goal is in application: Creating better, more efficient controllers. This comes across as a little detached from the applied machine learning literature. At the least, I missed a comparison to reinforcement learning (which has a history of learning to solve this exact task with simpler controller designs and most likely shorter search times) and also to non-bio-inspired recurrent networks.

One more point: Even if I follow along with the claim that 'deep learning' approaches don't have memory (implying recurrent networks aren't included in that label), I want to point out that this particular task setup, with positions/angles as well as their rates of change provided, can be solved by a memoryless controller. It would have done more to highlight the strengths of the recurrent network approach if a partially observable benchmark task had been used, e.g. feeding positions and angles only. Much more difficult high-dimensional tasks e.g. in robotic control are tackled in the (deep) reinforcement learning literature among others.
Even if you access every field, Cap'n Proto's approach should still be faster in theory because:

- Making one pass instead of two is better for the cache. When dealing with messages larger than the CPU cache, memory bandwidth can easily be the program's main bottleneck, at which point using one pass instead of two can actually double your performance.

- Along similar lines, when you parse a protobuf upfront, you have to parse it into some intermediate structure. That intermediate structure takes memory, which adds cache pressure. Cap'n Proto has no intermediate structure.

- Protobuf and many formats like it are branch-heavy. For example, protobuf likes to encode integers as "varints" (variable-width integers), which require a branch on every byte to check if it's the last byte. Also, protobuf is a tag-value stream, which means the parser has to be a switch-in-a-loop, which is a notoriously CPU-unfriendly pattern. Cap'n Proto uses fixed widths and fixed offsets, which means there are very few branches. As a result, an upfront Cap'n Proto parser would be expected to outperform a Protobuf parser. The fact that parsing happens lazily at time of use is a bonus.

All that said, it's true that if you are reading every field of your structure, then Cap'n Proto serialization is more of an incremental improvement, not a paradigm shift.
Obviously has been referenced a lot but still relevant: https://danluu.com/startup-tradeoffs/
Yeah. As a non-Rust developer I was reading the post with some interest and a little sympathy until I saw his timeline.

"Right, so they've been working on this potential change since 2016, and...wait. 2016?!"

If he'd said 2014 or earlier, I'd consider him to have a point. 2015 is asking for a bit too much, but I can still see his frustration; I'd call that a wash. But 2016? It destroyed his credibility with me, because it's clear he has no idea what he's talking about when it comes to developing a programming language.

I know that sounds harsh but...man. He's leaving Rust because they're taking more than six months to implement a massive change to a core language mechanic? Have fun working with absolutely any other language ever.
A SQL db + Tableau are vastly more powerful and mature than those tools, they just can't do "big data", that's all.
Did Gustafson's "Swift Dam" set in a time 50 after the first swift dam catastrophically failed, wiping out horses farms and family in the valley below. Our family often went to the Birch Creek Campground below the dam nice family picnic.

Sid's brother is Wylie whose voice does the yodel in the Yahoo commercials. Their father, Rib Gustasfson was the vet for Pondera County and the Blackfeet Reservation and all around the Rocky Mountain Front. Rib also wrote a book called "Under the Chinook Arch"

As a side note, Pondera county is home to an amazing number of authors given its population. Not the least of which is Ivan Doig. There are about 14 nationally known.
Adding basic overnight car chargers is about as complex as installing lighting.

Fast charging is much more complex and costly, but a 1 to 2cent / kWh fee can pay for that infrastructure fairly quickly and it still ends up much cheaper than gas.
I think there is a lot in common between Common Lisp, Python and JavaScript in general.

For many years I was in the schemaless camp before JS came along. Then for a number of years I was in the self-describing camp because I was thinking that if we don't accept JavaScript and JSON are pretty fundamental on the web we're fools and everyone seemed to be passing around JSON. So in that period was thinking that MsgPack was pretty damn good.

Recently I've switched back to the schemaless view, but with strict order preservation and richly typed fields. Very "tuple" based... so works well with Lisp and JavaScript but also C++. Highly inspired by Linda.

I don't do what Cap'n Proto does and lay out the fields and all that good stuff so that you can kind of memory map it onto structs.

That is nice and I understand the motivation for sure, and I have worked on systems that do that in the past with very good results, but currently my thinking is that compactness without additional compression is a good balance.

Also, since the protocol is order preserving (where it matters) you can do radix sort operations or hash maps on the server side extremely quickly. That was the ultimate motivating factor.

[SomeDateTime, "hello", 1.0f, [10,20], "Foo", false, [SomeMatrix]] etc etc...

Inner tuples or BLOB's are length prefixed of course so you can skip them, but basic types and strings are not. Strings are zero terminated while Ints/Floats/Doubles are BE and complement encoded to preserve sorts, and also Integers are packed to minimum size.

Memory mapping is possible on this system too, but it's very "functional"... there's no attempt at pointer preservation. I don't go that far and Cap'n P seems to be preserving some of the semantics of ProtoBuf at least in that regard, which I'm sure is a good thing for many scenarios.

You could still do that with what I'm doing but it would be at the application level. Same with self-description actually, you could easily build something that looks like JSON if you wanted... either:

[["foo",1.0],["boo","cat"]...] etc

or

[[1.0,"cat"],["foo",boo"]

the choice is really up to the application programmer.

That might be a bit "loose" for a lot of people to stomach, but it works very well for what I'm doing, has a lot of flexibility and packs really well

Like I was suggesting, protocols are something of an art and I don't think we're at a final solution yet, which is why many people are constantly inventing new ones :-)

Hopefully we will get to some consensus one day!
I totally agree. I took that course as well, and thought his explanations were amazing, but because I'm just a rails/angular developer and do not have the required math background, I definitely got lost and could not keep up the pace. I'm currently taking math now so I will be able to participate in something like this in the future.
Yeah, the mechanic profits off of me not knowing my engine, and I profit off of him not knowing his computer, and in the end we all get along.

The pharma co is taking advantage of me because I don't know enough chemistry to mix that stuff up at home? Their profits are through the roof!

At some point you have to concede that one man with one life can't know everything, and focus on learning what you care about.

You can be a jack of all trades and master of none, in other words.
Where the time goes is the TLS handshake, which is not here when loading cleartext Google.
Both Siemens and IBM seem to know a good deal about the problem and the ways to mitigate it: http://www.datacenterjournal.com/inert-gas-data-center-fire-...

The irony is that these systems are maintained by IBM :)
The US economy is certainly looking pretty dire, but it's not for a lack of resources: there's enough food, land, etc to support everyone. That's probably part of the problem. The economy is founded on an expectation of growth forever and there's nowhere left to grow within the US. The current output is likely enough to supply everyone with all the food, water and consumer gadgets they care to consume.
This is great! Although, I'll shamefully admit that after just doing the Konami code and seeing nothing happen, I went so far as to take a look at the source to get the last step. :)

You did indeed get a 5-star review out of it, though :)
This should surprise nobody.

If I had my copy of Cryptonomicon at hand, I'd quote the bit about everybody being impressed Avi could let them sell out for roughly what they'd have made at a regular job.

Yes, even in the '90s, this was pretty well known.
Bane's "deep" approach saved tens of millions of dollars in one example, months of time in another. In all cases it was many times easier for the team to keep up, day after day, year after year.

Bane advocates good old-fashioned refactoring. With humble tools like Perl, SQL, and an old desktop, he bested new, fancy, expensive products. Bane deserves the salary of a CEO, or at least a vice president, for the good he has brought to his company.

I think ego leads us to make choices that appeal in the short run but are bad in the long run. Which is more impressive sounding: that you bought a distributed network of a thousand of the newest, shiniest machines, running the latest version of DataLaserSharkAttack; or that you cobbled together some Perl, SQL, and shell one-liners on a four-year-old PC?

Also good-old fashioned hard work is painful. It is a good kind of pain, like working out your body, rather than a bad kind of pain, like accidentally cutting yourself. But it is just good old-fashioned, humble, hard work to sit down, work through the details, and come up with a better plan.

Before that, it is even more humble, hard work, to learn the things that Bane had learned. Not just anybody could have done what he did. First you have to learn the ins and outs of Perl, SQL, and all the little shell commands, and all their little options. He knows about a lot of different programming problems, like what a "semantic graph" is (I can't say I do), what an "adjacency matrix" is (nope), whether something is an O(N^2) problem or an O(k+n^2) problem (I know I've seen that notation before).
Yes, there are desktops with high amounts of Ram but to buy a machine like that would probably be more than setting up a hadoop cluster on commodity hardware. And for embarrassingly parallel problem, hadoop can scale semi-seemlessly.

In reality, it still takes work... but can be done.
Well, I guess I ought to put this in here, rather than rewrite it :) : https://news.ycombinator.com/item?id=12410471

The "long tail" is like the long tail of Excel or Word; yeah, everybody only uses 5% of it but everybody uses a different 5%.
UK Royal Society's #1 cybersecurity recommendation: don't backdoor crypto
Interesting. If I spent 20% of my salary on lottery tickets, how good would my chances be of winning vs cashing in my stock at a startup that goes public in which I made 20% less salary? And what would the payout differences be?
Just keep plugging away and finish something. It took me three projects to get to the point where the cognitive load of what I no longer had to worry about exceeded what I had to worry about.

It's hard to describe, and to say "if it compiles, it works" is not 100% accurate, but I would say "if it compiles, it works, and if it doesn't work, then I know it's my own logic error". It's like Rust guides you into the space of correct solutions and cleaner code when compared to other languages.

The other thing: there are huge dividends you reap from spending time in Rust that are realized when you go back to other languages. If you've spent your life in managed runtimes or more loosely-typed languages, you come away better for the time spent in Rust.
Clearly you don't understand banking.
Viral Video
Totally agree. It'd be relatively trivial to automate converting this script into a distributed application. Haven't checked Manta out, but I will. For ultimate performance though right now you could go for something like OpenMP + MPI which gets you scalability/fault-tolerance. In a few months you'll also be able to use something like RaftLib as a dataflow/stream processing API for distributed computation (almost ready to roll out the distributed back-end). MPI though has decades of research in HPC to make it the most robust distributed compute platform in existence (though not the most easy to use). You think your big data problems are big...nah, supercomputers were doing todays big data back in the late 90's. Just a totally different crowd with slightly different solutions. MPI is hard to use, Spark/Storm is much easier...but much slower.
Come on Apple. That was the feature you wanted to show off?
Maybe. But at least we can demand to know the system's input data and what measure(s) the training process is designed to optimize. For example, in the case of Beware, which public records are being used, and what is the benchmark for red/yellow/green? Also, are there any systems in place to try to reduce things like racial bias or the self-reinforcement effect described in the report? Why or why not?
I don't think of the DCs I've seen have breathing apparatus around - they rely on strictly enforced signin sheets (so when the alarm goes off, a person outside the room immediately looks to see how many people are in the DC), and a 30-45 second delay to evacuate the DC before the suppression system activates.
You don't contact them. They contact you.

Like the earlier poster said, you need a high profile career where you are able to signal intelligence, mental toughness, and your political and patriotic leanings.

Journalism leads to all sorts of amazing career opportunities (if you want to think of it that way). A lot of journalists are actually doing lobbying for some special interest or the other.
This post reminds me:
History repeats itself.

Once upon a time, we moved from 16-bit graphics to 32-bit and more. Everything seemed so lively and real. Windows XP icons suddenly became so lovely.

Now, it looks like we're bored with these great graphics again, and want to go back to the 80s and 90s. So we build games and animations that resemble that 16-bit graphics.

Odd thing is, now we watch 16-bit, pixelified faces on 32-bit Full HD screens.

A few years later, all this hype about "flat design" will subside, and we'll miss XP icons again.

And so it goes on and on...
Journalists and spies have same core skill: get information out of people. A good journalist already has a chance of getting hired as a spook just on that basis. Press passes also get people in various countries and places someone claiming to be a spy wouldn't be allowed in. So, many journalists did work for CIA etc. The CIA also creates news organizations to serve its propaganda and provide cover as journalists for spooks. Very common. I'm sure MI6 does similar stuff with journalists but I have no data.

Famous example:
https://en.wikipedia.org/wiki/Operation_Mockingbird
I guess the downvoters are saying there's only one obvious way.
I didn't work on app compat, but there are a number of things that come to mind.

The first line of defense is that over the years and on average Win32 and COM were not built stupidly, but with an eye towards compatibility. It's a stable API. The fact that over history there have been 3 independent kernels (9x, NT, CE) that speak it and you could reasonably have a single code base running on all 3 does some good in this area. (And 9x/NT were largely binary compatible.) And hence there are simple things like: don't change function signatures release to release, don't change COM vtables without introducing a new interface leaving the old one in place, introduce size and version fields in structures so that future versions can add to them without breaking old callers, etc.

But there are also mitigations for incorrect or impolite misuse of Win32 that might be common in old software.

Example: If a 32-bit application writes to C:\Windows or some such like programs used to (and a current OS would have locked down by permissions), Vista and higher will redirect to AppData\Local\VirtualStore in the user's home directory. [1]

Example: Certain features like DEP and ASLR are opt-in at the binary level. An old binary will get an executable stack and no ASLR by default because old code might rely on these.

Example: There is actually a framework of app compat shims for common historical misuse of Win32 API. [2] When I worked at MS some time ago I used to read these in the source tree when I was bored or for simple amusement/curiosity. One of them for a particular 9x game always stuck in my mind, it had to do with API misuse and differences between 9x kernel32.dll (typically traps into the kernel right away) and NT kernel32.dll (which usually calls into ntdll after doing some user mode conversion), but maybe I won't go into more detail than that here ...

So my point is... You've got a stable API in Win32, you've got fairly conservative introduction of features that tend to break things, you've even got a way to selectively change how APIs behave for popular old apps. These things work pretty well by and large. Why waste a bunch of time and disk space with VMs?

On your side of the fence there is a VM host built into the Windows kernel (Hyper-V) and I think RDP can make remote apps (where "remote" could mean inside a VM guest) look pretty good. That is probably what is happening in "XP Mode". I don't think it'll necessarily do a better job than just Windows being Windows, which IMO does pretty well for most old software.

Citations using publicly available sources:

[1] Wikipedia article for UAC - https://en.wikipedia.org/wiki/User_Account_Control : For example, if an application attempts to write to a directory such as "C:\Program Files\appname\settings.ini" to which the user does not have write permission, the write will be redirected to "C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini".

[2] Random blog post about the app compat shims - just googled this for public evidence of my claim: https://blogs.technet.microsoft.com/askperf/2011/06/17/demys...
I didn't ask for them. I have 4 total. Two when I got when I was first starting out. I have two cards which comprise the bulk of my credit (one from American Express and the other Chase), which represent ~50% of that $90k. Both have credit limits around $20-25k.

>but I'm wondering why would anyone want to use their high-interest credit card to borrow even a few tens of thousands?

I don't know, but I'm sure as heck not going to utilize them that much! I am sure the credit issuers wish I did though.
The problem is that the police are being asked to do what amounts to population control, of a historic problem population in the US, that has no real desire to be controlled, on the behalf of people with no real desire to be seen as controlling them. The most the algorithm can do is provide a justification for well-known solutions to crime (or the perception of crime), but laundered through math & obfuscated reasoning so as to not be seen as too racist.

Somehow, up until like the 1960s-1970s, this was not an issue. What changed, and what reason do we have for believing that any modernized algorithmic solution would be better than now-abandoned social technologies with actual empirical track records?

Hell, the vast majority of the time, you can't even accurately describe the problem in eg Chicago without being shouted down or deflected into someone's pet policy proposal.
Putting aside most journalists are not spy material, investigative journalist are basically spies - they're actively watched and recruited too.

During WW2, 22 journalists in America were spying for the Soviets; by profession, this was second only to engineers.

Today, given the heavy surveillance of investigative journalist, they basically have to use the same trade craft that a spy would use to maintain operational security.
To be clear, by "alternate wire format and client library for protobuf" you mean "reuse the protobuf IDL but change everything else", right?

There are a few major reasons I didn't go that route:

* The .proto language has a lot of weird quirks that I don't like. Some of the quirks are specific to the protobuf encoding (e.g. int32 vs. sint32 vs. fixed32 being different types), while other quirks have no particular rationale behind them. I didn't want that baggage.

* The .proto language does not treat interfaces (aka services) as a first-class type. That is, you cannot define a field whose type is an RPC interface type -- a reference to a remote object. The ability to do this is a critical part of Cap'n Proto's interface design.

* It's highly unlikely that the protobuf team would be interested in accepting changes to the language which were not actually supported by protobuf. This means that if I shared the language, I would have my hands tied when it comes to new features -- or I'd also have to implement Protobuf equivalents to make them happy.
Interesting that while I agree that the marginal value decreases I also feel (literally feel) that somehow having say an order of magnitude more would somehow be qualitatively different (and better). Funny to see my own biases play tricks (?) on me!