skysight-inc/HackerNews huggingface dataset:
This was a university network in the 80's most likely based on machine model. Assuming the story is true, and not as mentioned elsewhere, a fictionalization of Reflections on Trusting Trust, the person in question most likely didn't have a standalone system that he could wipe, and didn't have copies of the OS media to install. Note the details of an AT&T tech coming in to fix the compiler install. That's quite believable for a university installation like in the story.

When I went to university in '94, if we'd had to deal with the same thing I'd have been in largely the same situation: Sun and SGI workstations that largely booted via NFS (some of the SGI's were exceptions, I think, but most parts of the system were mounted via NFS there too) where anyone trying to re-install the compiler etc. without the approval of the computer department would be in big trouble (and have to hack the system; though the protections were relatively weak).

And while we certainly could install compilers etc. locally in our accounts, getting hold of a cleanly compiled compiler for some of the systems we had would not have been all that trivial, even though the systems we had were all more mainstream than the 3B2 mentioned in the article.

I wouldn't be surprised about an outside contractor having a hard time getting the computing department to believe that this problem was a hacked system. I'd expect the reaction would be to assume that he was just trying to make excuses for why it was taking him so long to find the actual problem.
Thanks for your reply. You and aric both jumped to sorted order as the alternative to randomized order. Why is that? Are you coming from a C++ background?
Why not? Is there a requirement that every city which once existed continues to exist? If it really can't sustain itself, then why is it there?
this seems like one of those stories that got slightly more intricate every time it was told. and it's been told a lot.
That reminds me of my 'worst' computer bug. I am writing some networking code for Mac OS 8. Which is bad in ways that are hard to describe. ex: OS 8 sort of has interrupts, but you can't say allocate memory during them.

Anyway, after getting some really terrible error messages for 2 very long days, and digging way to deep I finally say: "This can't happen, the RAM on on this machine is clearly crap."

Swap out the ram and everything is fine after that. !@#$

PS: Not that I had a great understanding of OS 8 coding. I remember printing a help page for some function which said, "This is the documentation for _. Followed by a copyright notice." and that's it.
What if your MAC addresses aren't spread that far between each other?
Currently dealing with an intermittent concurrency related bug. It's horrible.
There are far more Muslims ready to fight for the West than against it
Here's a coder's worst nightmare: "I managed to get reflection working* in C++, by registering class functions in static variables. This lets you configure routes like in Ruby on Rails. Since C++ is somuch faster, can you port the rest of Rails over as well? You'll just be doing this for the next 4-5 months."

* https://news.ycombinator.com/item?id=10607029
I've found the solution (for me at least), while I love spending time on new tech, is focusing on being a "solution provider" rather than focusing on specific technology. The moment you stop including the name of specific tech on your resume and start describing how you helped solve X problem that saved/made the company Y amount of money instead, you open the door to positions that may be as hands on (or not, depending on what you want), but that pay better and where the interviews are not focused on tech trivia at all.
I have one of those random concurrency bugs in my code right now - it takes a month to show up and so far not in the debug build. The code doesn't crash, the program just stops running as though manually paused.
I think the author got a bit confused, as the next paragraph (quoting the VATSIM ATC) clarifies this statement... in the example given the ATC instruction requires readback. "Roger" is not what the controller is looking for in that case.
UBHacking: hubot-malta is a plugin for Slack teams and Hack-a-thons
As much as I hate to say it: it's a healthy nightmare. I have it too, though I came to development late in my career (My career was more managing technologists in IT depts, but I turned out to be good with Oracle and PostgreSQL and other development tasks and now get more requests for that... which pays as well and is more fun to boot).

When I was young, I would go into interviews sometimes where the other candidates where there in the lobby, too. Some were older and clearly had been in technology a long time... but never advanced past where they were in their "prime" as you made small talk. They weren't going to get the job nor should they have. They allowed themselves to become as relevant as token ring.

As technologists we have to keep ourselves current. That keeping up with the kids is really part of our profession: the technology evolves quickly and so must we. But this is the part I like about technology work. There's always something next to keep things fresh. A new technology, a new architectural style, new needs, unsolvable problems that become solvable. Our profession doesn't tolerate coasting. Good.

Other professions have this same problem, just not at our speed. The proverbial buggy whip makers had to evolve with changing realities... they just had more time to see the inevitable.

(As an aside, I play poker with a dedicated COBOL developer in his mid-50s... so sometimes you can make old school pay, too :-) ).
Show HN: Happy Thanksgiving - Design and Share Thanksgiving Greeting Cards
First thing I did was divide 1.2 trillion by 1.357 billion (population of china). And then I lost interest in what the author had to say. The reality is the financial press has been predicting that China's financial policies will come a cropper _any day now_ for the last half dozen years.
It was a long time ago, but I remember we were working on an embedded system controlling some industrial equipment, and it randomly crashed; the time between crashes was long enough that it'd take several days before it happened, so even getting a trace of the crash was an exercise in patience. Eventually we did get a trace, and it turned out the CPU would suddenly start fetching instructions and executing from a completely unexpected address, despite no interrupts or other things that might cause it. We collected several more traces (took around a month, because of its rarity) and the addresses at which it occurred, and the address it jumped to, were different every time. Replacing the CPU with a new one didn't fix it, and looking at the bus signals with an oscilloscope showed nothing unusual - everything was within spec. We asked the manufacturer and they were just as mystified and said it couldn't happen, so we resorted to implementing a workaround that involved resetting the system daily. Around a year after that, the CPU manufacturer released a new revision, and one of the errata it fixed was something like "certain sequences of instructions may rarely result in sudden arbitrary control transfer" - so we replaced the CPU with the new revision, and the problem disappeared. We never did find out what exactly was wrong with the first revision, other than the fact that it was silicon bug.
This seems nice, but wow the whole process of setting up a channel seems like a return to 2000 technology. Enter keywords, choose sources, click some weird icon? Hmm.

The Allen AI institute's Semantic Search product[1] is much better at exploring a topic. OTOH it has no way to subscribe

[1] https://www.semanticscholar.org/search?q=Deep%20Learning
https://github.com/sixarm/sixarm_ruby_xid

XID is our solution for when collisions do not matter much.

XID defintion: a 128-bit completely random number, generated from an unblocking source of high security randomness. Example of sources: the OS using /dev/urandom, or the language using a secure random class, etc.

XID is compatible with UUID-size-fields in Postgres and any other 128-bit storage system, if you want to save them. The XID idea is quite easy to implement on any system because it's always calling good built-in random tools, rather than trying to home-grow some kind of hash or SHA or masking.

The primary advantage is that naming something an XID tells programmers that it's important to use it as intended. Calling a field an XID means: do not use fewer bits, do not use a less-secure randomness source, do not use an UUID library that sets any of the bytes, etc.

If you would like to contribute XID code for any language, we welcome commits.
Mind blowing (but not surprising) is how low Japan (and South Korea) ranks in terms of worker productivity. IIR, if South Koreans worked at a similar productivity as Norwegians, they could take half the week off with no effects at all on GDP. Japan is only slightly better.

In other words, quite a bit of those long work hours are absolutely useless.
> The study is geographic, and about work culture not race

It's a social study, not geography. Assuming that Japanese are like that or french people are like that is indeed prejudice, since there is no data to back things up but individual bias, or bias promoted by movies or the pop culture.

I agree with your second point.
Samsung has nobody to blame but itself for the steady trickle of Android users leaving the platform for greener pastures on the Apple side.

Samsung's bloated, poorly-performant "value adds" are the reason Android is perceived to be laggy and unresponsive. Instead of just selling quality devices with a polished, professional operating system, they seem to have this pathological need to alter the vanilla Android install and bundle a bunch of crapware with every release. They're the budget laptop maker of the mobile space, like Dell used to be in the laptop space, back when the standard first step after receiving a new laptop was (is?) to instantly reformat so you lose all the OEM apps.
> Looks like I hit a nerve here, haven't I?

Not really. Your posts in this discussion just seem unnecessarily... angry?
What about it? Remember, we're no longer using a hash function on anything - we don't want the numbers to be uniformly spread on any range - just unique.
What Steelcase chair are you talking about? The Leap?
If you generate a sufficiently long random number then the probability of duplicates easily becomes lower than the probability of duplicates in a counter scheme due to a bug or hardware fault. And "sufficiently" long doesn't require a novel. 128 bits is sufficient for just about everything, and 256 bits is enough for everything.

Why bother with a complicated atomic ID operation (and that's going to be fun to scale, too) when a relatively short string of random bits will do the job?
Panopticlick does use several methods. But, by far, the biggest thing is the UA (and most likely measured incorrectly as I explained). I'd bet using a popular OS/browser probably only leaks like 4 bits' worth. The next highest thing is resolution, but only because I tried it on a phone with unusual settings (Huawei Mate 2 with scaling).

IP address is a big one, but if browsers respected your explicit proxy settings instead of ignoring it for WebRTC, then changing it is easy. History, supercookies, and other stuff is taken care of by private mode, or, at worst, wiping out all browser info (private mode doesn't clear HSTS).

My point is that all is not lost, that supercookies are not a given. Thus saying WebRTC gets a free pass because things are already broken is simply wrong and a misleading argument to push data channels in where they don't belong.
Yeah, good point. Do you know of any timers that are specifically made for this...like where you could set your interval to every 2 hours?
Even if it makes sense for a single company not to hire an old developer, we are losing so much values as an industry if we invest all this money into teaching valuable lessons to devs, then throwing them away and letting newer kids make the same mistakes.
Did you see a MD5 collision that happened randomly, or was someone intentionally trying to create one?

Intentionally creating a collision with MD5 is fairly easy; having one happen at random would require creating something like 10 ^ 14 billion hashes in order to have the same chance of a collision as winning the lottery. People win the lottery, yes, but they don't happen across MD5 collisions by accident.
Our company can do this today free to everyone worldwide with markerless 6DOF AR on an iPad/iPhone. Just need the 3D model of the car. Don't even need to go to a showroom, you can do it in your driveway.
> Keeping features out because of privacy concerns is misguided, since it's a lost cause. Look into browser fingerprinting. There are just so many vectors for tracking Web browsing behavior... literally hundreds.

This doesn't mean we should make an existing problem worse.
I take this as evidence that the word "racism" has completely lost whatever meaning it may have had, and that we should probably make up a new word to mean what "racism" used to mean, if we still think that's a useful concept.
That sounds like an interesting story. Consider yourself very lucky! Were the data being hashed related in some way, or user input (whereby someone could relatively easily feed in a collision pair)?

If I came across an MD5 collision by accident, I'd certainly try to save the input pair, because such events are exceedingly rare. Owning a pair of entirely naturally occurring data with colliding MD5s is itself article-worthy, I think.
1. That can't happen

2. That doesn't happen on my machine.

3. That shouldn't happen.

4. What does that happen?

5. Oh, I see.

6. How did that ever work?

Stage six is the worst. Especially when I wrote the original code.

(http://plasmasturm.org/log/6debug/)
Aside from the issues where all your assumptions of your tool chains, OS, and computational reality is melting around you this seems a lot related to lack of feeling of control and infomation. You have to keep calling people from vendors and other departments because your talent, knowledge, and skills hit a brick wall in the face of bureaucracy / compartmentalization. It is that you don't know what to trust anymore, you have to be resourceful with time, and you have limited access to the information / control needed.

This is how I explain why my technical job is difficult in a typical enterprise organization and why you need to be far better than average to produce merely mediocre results.
How would pre-pending the date to a UUID increase the change of collision?
No collisions ever, unless your MAC addresses collide. This could happen due to using VMs, or if somebody reconfigures the MAC to a colliding value, or if it turns out that your NIC manufacturer was lazy/incompetent and gave you a non-unique MAC.

I agree, I don't understand why people would overthink it this much. Grab N bits from /dev/urandom (where N=128 is fine, and N=256 will quiet any paranoia) and call it done.

In the unlikely event that generating unique IDs becomes a performance bottleneck, then you can look into something slightly more complex. Reading N*M bytes (where M is maybe 10-100) in one call and caching the surplus should suffice.
> Difference is in China the central bank is wholly under the thumb of the communist party.

Is that supposed to be worse? Is it better if it were under the thumb of a handful of powerful private banking corporations whose primary goal is the pursuit of profit?

At least within the communist party you might find an idealist or two who cares about the role of the banking system in raising the standard of living of the poor.
A person is a relationship; people are markets. Even though the consequences are different downstream the structure is similar, in that in both cases there is market behavior, an expectation of bias, an expectation of denial of bias, and yet statistically a bias seems to exist without intervention.
Bored to Tears by a Do-Nothing Dream Job
I know that correlation does not imply causation, but EU GDP growth is the lowest in the world [1], while Asian is the highest.

1. https://www.gfmag.com/global-data/economic-data/economic-dat...
Docker is not the last word in Linux containers. Generalising from the limitations of Docker to all container implementations is unfair (compare Garden, for example); and the Docker team are slowly coming around to heed the voices of their critics.

Unikernels mostly still require per-stack implementation. That's a lot of engineering effort right now. There are halfway-houses like OSv (mentioned in the slides), but they weaken the case.

I'm still bullish on Unikernels. With some work Garden's API could be adapted to run unikernel binaries. That means the ecosystem for Cloud Foundry would work almost "out of the box", as it already does for Garden droplets, Docker containers and .NET applications.
Norway is perhaps not the best country for comparison. If South Koreans could get 22% of their GDP and 67% of their exports from the Oil & Gas sector that would help their productivity too.

http://ec.europa.eu/trade/policy/countries-and-regions/count...
Phuc Dat Bich Is Beyond Tired of Getting Kicked Off Facebook
To the extent that chess players can really be considered geniuses, it seems like a horrendous waste of genius.
Agreed. There's nothing worse then working on a problem for hours only to have it disappear for no discernible reason.
Sounds similar to the Dragonfly BSD/Matt Dillon episode[0][1], with AMD except that Matt figured it out after more than a year(!!!).

[0] http://article.gmane.org/gmane.os.dragonfly-bsd.kernel/14518

[1] http://thread.gmane.org/gmane.os.dragonfly-bsd.kernel/14471
While I agree the regulations should change I can't see the likes of the FDA changing anytime soon.

You can create anti-phage antibodies (here is a paper from 1933 on doing this [1], there are hundreds more) - if you can create antibodies to something then you can create an allergy to that thing.

1. http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2048399/pdf/brje...
Curious what happened. Were the economics really bad for your business or did the response overwhelm? Slow payouts?
26-year-old MIT grad: income inequality is actually about housing
IntelliJ Tips and Tricks
You see, this already exists [1]. It costs around 2000 Rs, that is like $30, A wireless mouse and keyboard will cost around the same. So for $60 you will have all the component to make this work.

Let me say this again. For 60$ worth of components you can have a remote control that will let you work on your desktop from anywhere in your home.

Will you be interested?

[1] http://www.amazon.in/eShop24x7-Wireless-Display-Miracast-Air...
Internet provides you access to unlimited amount of information that basically allows people to create their own automation solutions. Why do you have to depend on rich to provide it ? The whole idea of Rich and Poor is based on Scarcity of goods. When we enter the era of full automation, we will be able to convert Energy into any form of product without human intervention. Energy + AI = Products.
The one I'm dealing with currently. Sometimes half an array in perl is missing its data, but the program should terminate early if that data is missing. So it gets past one check and then disappears sometimes. Never locally in dev. Only in prod. And not always reproducible. Customer data is getting messed up sometimes, and the code paths don't support this possibility. frustration.
I wonder. Japan also has 16 national holidays in comparison with (for example) the US's 11.
I don't like this at all. As makecheck said, not all users are the same. Me for example, I am 100% willing to disable my ad blocker for two reasons:

1) if support the website

2) if the ads that I see do not interfere with using the site.

There are way too mane websites that allow (or don't disallow) ads with fake download buttons, or banner videos, popups, and other content that slows down the site and makes it incredibly difficult to use.

Don't block content because of ad blocks, how about improving ads instead?
The Nazi nuclear bomb project was always non-viable because of the cost - Germany just didn't have the industrial resources to build a bomb. The Germans knew this and so didn't really make much of an effort to build a bomb.
Marx would probably have agreed with you, but see it as the reason for why a revolution is inevitable, and at the same time the criteria for what would make the success of a socialist revolution possible. From The German Ideology, part I, section A (Marx, 1845):

"This “alienation” (to use a term which will be comprehensible to the philosophers) can, of course, only be abolished given two practical premises. For it to become an “intolerable” power, i.e. a power against which men make a revolution, it must necessarily have rendered the great mass of humanity “propertyless,” and produced, at the same time, the contradiction of an existing world of wealth and culture, both of which conditions presuppose a great increase in productive power, a high degree of its development. And, on the other hand, this development of productive forces (which itself implies the actual empirical existence of men in their world-historical, instead of local, being) is an absolutely necessary practical premise because without it want is merely made general, and with destitution the struggle for necessities and all the old filthy business would necessarily be reproduced; and furthermore, because only with this universal development of productive forces is a universal intercourse between men established, which produces in all nations simultaneously the phenomenon of the “propertyless” mass (universal competition), makes each nation dependent on the revolutions of the others, and finally has put world-historical, empirically universal individuals in place of local ones. Without this, (1) communism could only exist as a local event; (2) the forces of intercourse themselves could not have developed as universal, hence intolerable powers: they would have remained home-bred conditions surrounded by superstition; and (3) each extension of intercourse would abolish local communism."

Basically his assumption was that it will never be possible or politically tenable under capitalism to change the system to channel enough capital back to the general population (e.g. lets say via taxes to fund basic income to a level equivalent to lost incomes) to allow people to continue to consume enough to allow manufacturers to continue to grow, and that the result would be ever greater cycles of economic crashes until the contradiction of capacity to create wealth coupled with unemployment and/or underpayment gets great enough to cause people to rise up against it.
Yes, this equates to TAI minus 35 seconds. GPS did exactly the same thing (instantiated at a TAI offset equal to UTC), perhaps in a vain hope that the astronomers would give up their death-grip on time. Not sure the difference between 35 and 19 amounts to "rolling your own."

(At least future decisions are out of the hands of the astronomers and into the hands of the timekeepers, so maybe these responsible authorities will just refuse to declare further leap seconds regardless of heavenly tantrums.)

The comment just describes a trivial notation for representing 128-bit TAI as an unsigned integer. The closest comparable "standard" that I know of is DJB's TAI64 [1]. (Everything released by DJB should be regarded as a standard.) But TAI64 is (a) defined as a bytestream, not a uint128_t; and (b) has a hopelessly complicated fractional subsecond system.

[1] http://cr.yp.to/proto/tai64.txt.
Niether.

It will probably improve our lives in many ways, make them worse in many others. Complicate some things and simplify others.

In other words like every other technology.

Also like every other technology that has come out way in the past, there will be doomsayers who are wrong and there will be Utopians who are also wrong.
I saw one once where the cell carrier actually made the difference. As in I had to fly to a foreign country before I was able to reproduce the bug.