HNHacker News
TopNewBestAskShowJobs

captaincrowbar

1,162 karma · joined May 24, 2010

submissionscomments
captaincrowbar··on Brian Aldiss has died
Personally I like James Nicoll's definition of hard science fiction: it's hard SF if the author gives enough details that the reader can be _certain_ it wouldn't work.
captaincrowbar··on Peer-to-Peer Communication Across Network Address Translators (2005)
Reading that, I was prompted (translation: nerdsniped) into thinking about the Same Network Problem: how do you identify two machines that are actually on the same LAN and can communicate without NAT, without the risk of revealing any information about your LAN to a third party? (See the article linked above for a fuller explanation of why this is nontrivial.) Here's my plan:

The client enumerates all the machines it can see on its local LAN, and for each one, assembles a list of information about it, probably something like IP address, machine name, assigned user, maybe MAC address, etc. Hash this using SHA256 or something (unlike the suggestion in the ZeroTier article about IP addresses, this approach has enough information that brute force reversal is out of the question). Assemble a list of, say, 20 of these hashes - the client's own hash is first, followed by the rest of the LAN. If you have less than 20 nodes, fill out the list with random numbers; if you have more than 20, include yourself and 19 others at random (it's important that you pick them at random, not just the first 19 in your LAN listing). Send the list to the server - this reveals nothing about your LAN to it.

The server compares the hash lists sent by clients. If any two lists have any hashes in common, send a message to each of the clients that sent those lists: "You seem to be on the same LAN as the client with hash XYZ." The client can then look up the hash in its local table, and try to contact the corresponding node. (The list intersection check is why it's important to pick your sample at random - the birthday paradox is now working for us, and there's a good chance of at least one match even if your LAN has hundreds of nodes.)

captaincrowbar··on Race to discover Planet Nine using astronomy and new computational techniques
Anyone interested in the search should follow Brown and Batygin's Planet Nine blog at http://www.findplanetnine.com/
captaincrowbar··on Microsoft Paint to be killed off after 32 years
I'm liking Paintbrush: https://paintbrush.sourceforge.io/
captaincrowbar··on Life
My definition of life: A forkbomb implemented in hardware.
captaincrowbar··on How many replacement characters?
Yeah, there's a long discussion about this on the official Unicode mailing list recently. You can read it at http://unicode.org/pipermail/unicode/
captaincrowbar··on Miles of Ice Collapsing Into the Sea
As usual, XKCD is ahead of us: https://what-if.xkcd.com/152/
captaincrowbar··on Swift is like Kotlin
In the early beta release of Swift 0.x, they used x..y for half-open ranges and x...y for closed ranges. This confused people (especially since Ruby already used the same operators but the other way around), so they changed the half-open operator to x..<y.
captaincrowbar··on The Biggest and Weirdest Commits in Linux Kernel Git History
There's an old saying among scientists: any set of data points will fit a power law if plotted on log-log paper with a fat enough magic marker.
captaincrowbar··on The Linux 2.5, Ruby 1.9 and Python 3 release management anti-pattern
The "Third Way" is to avoid both problems (diverging stable and unstable forks vs. a single line with frequent minor breakage) by making heroic efforts to maintain backwards compatibility even in the face of major changes. Someone already mentioned Windows as an example of this. I'd point to C++ as another example: the C++ committee's longstanding commitment to maintaining backward compatibility at all costs has always been one of C++'s greatest strengths, and is certainly one of the main reasons why it's still in widespread use despite its age and many flaws.
captaincrowbar··on Uber stops self-driving pilot in SF after DMV revokes its cars' registrations
The likely reason Uber wouldn't play ball is that they wanted to be able to carry paying passengers in their test vehicles, which probably wouldn't be allowed under the test regulations, or even if it was, would leave them open to much more liability if there was an accident.
captaincrowbar··on Regex 101
Been there, done that. There's only one way to check email addresses: /.+@.+/

Anything else is going to give you a false negative sooner or later. Yeah, you can spend hours framing a complicated expression that carefully tests for exactly what the current bucket of RFCs specify, but you're guaranteed to run into an MTA somewhere that disagrees with you, and you can argue until the cows come home that you're right and they're wrong, but it's still you that's going to have to change to accommodate them in the end.

captaincrowbar··on Rustconf 2016 – What was cool and what surprised me
Me three. Tried it on Chrome/Windows and Safari/Mac, same breakage.
captaincrowbar··on Why didn't Larrabee fail?
Back in the days of the Itanium debacle, Intel made the mistake of assuming everybody would be willing to rewrite their code to work efficiently on whatever hardware Intel wanted to give them. Instead, AMD won (briefly) by making a 64-bit chip that was much more x86-compatible.

Now, though, it sounds as if Intel may be making the opposite mistake. The Larrabee/KnightsThingummy family was built around x86 cores to make it easier to port existing code to it, but now it looks like this time people really are willing to rewrite their code to work on GPGPUs after all.

captaincrowbar··on Show HN: Neural network trained to generate GitHub repository names
Bog_Engine is totally going to be the next big AAA game engine.

But I'm not sure I'd trust Data-Trater with my database.

captaincrowbar··on Apple celebrates one billion iPhones
I believe the standard SI unit for this sort of thing is the Olympic swimming pool, but I think we can allow the use of football fields in a forum where many users are still familiar with the US customary system.
captaincrowbar··on Sharpest ever view of the Andromeda Galaxy (2015)
100 billion stars, not million. So on the order of 100 stars per pixel, although obviously not evenly distributed.

(Edited to add) The individual stars you can see when you zoom all the way in are the very brightest stars, mostly blue (O/B class) or red (K/M class) giants. For each star you can see, there are hundreds of smaller stars that you can't make out individually but contribute to the general background glow.

captaincrowbar··on Valve Steam Machine selling very poorly
I tried to phrase the submission title neutrally; the article uses phrases like "dead in the water", "utter lack of market demand", and "time to declare Valve's Steam Machine DOA". Not entirely unfairly, I think; it seems pretty clear now that the Steam Machine is a failed experiment.
captaincrowbar··on Unicorn: C++ Unicode string library
I just tried that on several browsers; Safari and Chrome are fine, it seems to be only Firefox that has a problem with that. I have no idea whether that's a bug in Firefox or Github, and either way there's nothing I can do about it, sorry.
captaincrowbar··on Unicorn: C++ Unicode string library
Because the whole point is to handle anything that needs Unicode support. A library that only manipulated Unicode strings would be incomplete if you still couldn't use Unicode in command line options, file names, etc.
captaincrowbar··on Unicorn: C++ Unicode string library
No idea what you mean, sorry. I'm just using Github's automatically generated web pages, so if there's a problem there it's probably a Github issue.
captaincrowbar··on Juniper screenOS authentication backdoor - master ssh password posted
Not really clever. Format strings have a fairly restricted format; that one can't have all that many bits of entropy. Once the obfuscation method occurred to an attacker, it wouldn't take long to brute force it even if they didn't have a file to search for suggestions. (And now that the idea is out there, I bet any number of hackers, wearing assorted coloured hats, are trying this out on other systems Even As We Speak.)
captaincrowbar··on Limitations of protocols in Swift
To me this looks like exactly the sort of situation where classical OO inheritance is the right answer. All of those things are kinds of Account and should have a common base class.
captaincrowbar··on What a DEC-20 Cost in 1976 (2007)
There's a quote I heard somewhere: "A given speed of computer is available from Cray in 1980 for $10,000,000, from Sun in 1990 for $100,000, from Dell in 2000 for $1000, and from Oxfam in 2010 for $10."
captaincrowbar··on The golden gigaflop: Apple’s shrinking performance sweet spot
A few years ago I had my mind slightly boggled when I realised that the new computer I'd just bought had exactly one million times as much storage as the first computer I ever owned (Amiga 500 with 5 MB -> Mac Pro with 5 TB).
captaincrowbar··on Why Elephants Don’t Explode: How Nature Solves Bigness
The scrolling seems perfectly normal to me, but that huge fixed banner that takes up 1/3 of the screen is just ridiculous.
captaincrowbar··on Easy 6502
A lot of the ARM instruction set was based on the 6502, so 6502 assembly language won't completely die even if the chip does. I found that my experience with the 6502 gave me a useful head start when I started ARM programming a few years ago.
captaincrowbar··on What is 'common sense'?
"Common sense is the collection of prejudices acquired by age eighteen." - Albert Einstein
captaincrowbar··on Three Tales of Second System Syndrome
"There are only two kinds of languages: the ones people complain about and the ones nobody uses." - Bjarne Stroustrup
captaincrowbar··on Rust Priorities after 1.0
Thanks!
← PreviousPage 4 of 7Next →