HNHacker News
TopNewBestAskShowJobs

steventhedev

1,125 karma · joined October 23, 2013

Flawed human being, but always trying to improve
submissionscomments
steventhedev··on Dangers of CSV Injection
More to the point, it's easy to export from Excel, which is a massive pain to load in any non-.NET language.

While it's great to hope to use a well defined transport for machine-to-machine communication, it's exhausting to explain anything beyond CSV to Bob from sales.

steventhedev··on Git, Graphs and Software Engineering
Git doesn't operate on diffs. It stores full content using delta compression. Subtle difference, but it can create ours reverse merges that don't have a diff, but radically change the content of the repo.

What you're talking about is patch theory, which is used by darcs and pujil. Pujil does a better job of explaining the theory.

At the end of the day, the point of version control is to keep a universally consistent snapshot of a sequence of bytes. Patch theory only tells you how to resolve conflicts. TreeDoc, etc simply resolve the conflicts differently based on consistency of ordering, as patches may be applied out of order for it to be a CRDT.

steventhedev··on Git git git git git
`!exec git` caused my shell to exit. I have a lot of stuff wrapping git in my shell though (including a bash function wrapping git itself!). The author himself only pushed up the change to his own gitconfig a few hours ago. It was previously `!$SHELL -c \"git $*\"`.

My version that works for my setup is `"!f() { git \"$@\"; }; f"`.

Hope this helps anyone who ran into the same issue, although I'm not 100% confident about the quoting.

EDIT: fixed the quoting, as per cryptonector's suggestion

EDIT2: need to quote the quotes for gitconfig to use it correctly

steventhedev··on IO name servers down
The root server key won't actually change until next month. The DNSKEY responses from the root server was increased yesterday. Speculation, but it could be they're running ancient versions of BIND that fail with the larger response size. As per ICANN[0], the timeline is:

October 27, 2016: KSK rollover process begins as the new KSK is generated.

July 11, 2017: Publication of new KSK in DNS.

September 19, 2017: Size increase for DNSKEY response from root name servers.

October 11, 2017: New KSK begins to sign the root zone key set (the actual rollover event).

January 11, 2018: Revocation of old KSK.

March 22, 2018: Last day the old KSK appears in the root zone.

August 2018: Old key is deleted from equipment in both ICANN Key Management Facilities.

[0]: https://www.icann.org/resources/pages/ksk-rollover

PS - thank you for mentioning this, I wasn't aware it was going to happen until reading your comment.

steventhedev··on Cutting your salary by 40%
I recall reading somewhere that one of the best predictors of employee turnover is commute length. But that was for call center employees, and I can't recall where I read that, so take it with a grain of salt.

Anecdotally, I once moved from having an hour long commute to a 5 minutes walk from work. I did end up leaving, but I feel that I enjoyed life much more living close to the office. Getting an extra two hours every day allowed me to enjoy life much more.

steventhedev··on Our entire credit bureau system is broken
Many other countries have these exact cards. They are not new technology.

In fact, your US passport has that. Look for the biometric symbol on the front. It means there's a chip inside (not sure how to read off it) that includes your digitally signed identity details, including photo.

If you're willing to go the centralized route, then a minimalist ID card would just be a QR code that anyone can open and compare the official photo to you.

steventhedev··on Tesla flips a switch to increase the range of some cars in Florida
Someone breaking into your house and stealing all your possessions will be prosecuted. So you have an implied warranty from the government for the security of your possessions.

I bet you don't leave home without locking the door though.

steventhedev··on U.S. House approves proposal to speed the deployment of self-driving cars
Rather than speculate on anecdotes, perhaps we can focus on actual data[0]. 2014-2015 only saw a +280 change in fatalities caused by distractions (read: texting).

Florida and Georgia combined saw a +190 drunk driving fatalities in the same period.

EDIT: found a more specific report about electronic device usage: https://crashstats.nhtsa.dot.gov/Api/Public/ViewPublication/...

[0]: https://crashstats.nhtsa.dot.gov/Api/Public/ViewPublication/...

steventhedev··on We Are At War For A Free And Open Internet
RTA. It was an obscenity complaint. Gab usually tags it NSFW, which they normally do, but in this case they got an existential threat to their business.

It's also not like AsiaRegistry makes things cheaper. Using whois.ai directly you only spend 100 to renew every 2 years, not 200.

steventhedev··on We Are At War For A Free And Open Internet
Why are they doing business through some 3rd party registrar and not through the official anguillan registrar?

Not to mention #36 in the FAQ[0], which pretty clearly states they only disallow outright illegal behavior.

[0]: https://whois.ai/faq.html

steventhedev··on Show HN: Make Medium Readable Again
Firefox for Android has both reader mode which works fairly well with Medium, and you can install uBlock Origin, which declutters most mobile sites from ads (not sticky headers though).

Not sure how it got this bad, but there are ways to solve it for all sites (reader mode)

steventhedev··on FizzleFade
It never ceases to amaze me how many of the older games were implemented as circuits first, and then translated to code. Makes you really appreciate how far we've come, and what sort of background that generation of developers had.
steventhedev··on Let’s kill no-reply
I always tack on a "this email is automated, but responses will be read by a human". You can also set the reply to header for a person/role, so you could use accounts@example.com.
steventhedev··on Let’s kill no-reply
For a smaller startup (< 10 people), I'd recommend going with a person's email. Bonus points if you use your own.

We do that and get the occasional reply, but when we do, people are usually happy to get a quick, personal response.

Once you're larger, using more purpose-suited emails that route correctly is better (e.g. marketing@example.com or billing@example.com routed to the correct customer service teams).

steventhedev··on Exa, a modern replacement for ls
Is this intended as a full on ls replacement? As in, does it respect the envvars such as lscolors? Will it silently ignore -h, or will it die violently?
steventhedev··on Why I left Medium and moved back to my own domain
GHP means you're subject to github's downtime, which tends towards more frequent than s3 (outside us-east-1). Worse, you can't run HTTPS with GHP and a custom domain.

You could use CloudFlare's flexible TLS, but it's unsecured from their system to your site, which has resulted in carrier level content being injected[0].

[0]: https://news.ycombinator.com/item?id=12091900

steventhedev··on On the Perceived Value of EV Certs, Commercial CAs, Phishing and Let's Encrypt
Any given state actor will have full control over some networks. It's fair to say that any given network is fully controlled by at least one state actor, possibly more. It also stands to reason that each state actor has many more networks they can passively listen to. [EDIT: clarity]

Ultimately, if your threat model is to protect against the actions of a state actor who likely does not have active control over your network, but might be able to passively listen, then ubiquitous encryption helps a lot with defense in depth.

A more mundane case is free wifi at an airport. Someone can set up a hotspot with the same SSID and act as a MitM, but it's not undetectable. Here, encrypting application traffic is just one solution, and not necessarily the best one, but you shouldn't be relying on only one layer of protection.

steventhedev··on On the Perceived Value of EV Certs, Commercial CAs, Phishing and Let's Encrypt
Why do we need to assume the adversary controls the network? We've seen real examples of such attacks on networks, using methods like cable splicing, passive wifi listening, etc.

While there are alternatives to such attacks, active attacks require a greater investment by the attacker, and in some cases aren't practically feasible without being detected by the legitimate network operator.

steventhedev··on ELF – An extensive, lightweight, and flexible platform for game research
We handed new devs the ELF spec, the PE spec, and the MachO spec. But we were doing low level work that integrated our SDK into already built binaries.

I've run into problems in the past with namespaced classes not raising link errors for duplicate destructor definitions. That took us 2 weeks to track down.

In any case, at the moment it's mostly just causing confusion. It's a one-man project in FB Research, and he hasn't done any namespacing.

steventhedev··on ELF – An extensive, lightweight, and flexible platform for game research
Are they dead set on the name? This isn't the first time Facebook has caused naming conflicts.

For those who don't know, ELF is the name of the format for Linux (and other OSs) executable files, and it's had that name for almost 30 years.

steventhedev··on Why Is It So Hard to Study Marijuana?
I recall that NIDA had some rather nasty quality control issues (you'd think you'd be able to do better with a budget of 69 million dollars)[0]. To be honest, I could imagine at least some studies being rejected for lack of adequate supplies. Not much point in trying to do science if your samples are heavily contaminated.

[0]: http://www.pbs.org/newshour/updates/scientists-say-governmen...

steventhedev··on Firefox has its own linker on Android
While this is a really cool trick, I think it would be better to avoid using SIGSEGV, seeing as how it's already used sometimes by JIT vms such as the JVM (I'm not sure if ART does the same) to indicate branch misprediction and drop back to interpreted code from a compiled section.

It also won't play well with anything that tries to hook functions, since they'll pull in a NULL as the original function. Or does this work around that also?

It would be really cool to see this upstreamed to bionic. Firefox has always been really fast on android, especially when opening for the first time.

steventhedev··on A Brief History of the UUID
If a UUIDv4 is used, then yes, I'm convinced it will be random to within the amount of entropy the system provides.

If another UUID version is used, I'm extremely wary. MAC addresses are explicitly not unique. Worse, there are plenty of bargain mfgs that make cards all with the same MAC. There's a story of a local college that ordered several hundred cards for workstations and discovered every single one had the exact same hardware MAC. Large orgs will spot this easily, but there could be hundreds or thousands of individuals that never tried connecting the same bad cards on the same network segment.

In practice, you can usually depend on it to be truly unique. But there are several failure modes that you absolutely need to be aware of if you plan on using this in production.

steventhedev··on Facebook is an attack on the open web
You are quite correct. Data caps do make users concerned with the amount of data transferred, but only post hoc, or as a proxy for latency.

Thinking about it, there's got to be a plugin for firefox/chrome that show the data size of each page. For mobile, you can install firefox which allows you to install plugins (pretty much essential for blocking ads in mobile browsing).

steventhedev··on Facebook is an attack on the open web
You're being downvoted because a large segment of HN is engineers who prefer sites like http://motherfuckingwebsite.com and http://evenbettermotherfucking.website

Basically, what it comes down to is that if all 37 requests are done in parallel, then you're only loading the page as slowly as the slowest. Sadly, this is rarely the case. Most browsers will only make 6 concurrent requests from a server, which you can see in Firefox via the about:config page and the network.http.max-persistent-connections-per-server. Worse, some of that JS is probably downloading more JS, which means that you will have multiple requests going out.

On mobile, this means you're running 8-30 second delays for each "group" of requests, especially if you have poor reception. Good news is that after that initial latency, the actual transfer should go fairly fast.

On the other hand, a social commenting program should need at a minimum 1 JS file, 1 CSS file, 1 for the actual data (3 comment texts, 3 base64 encoded profile pics at a small resolution). So FB is running at ~30x the optimum (87 assets, of which 35 are JS).

If you think it's not that big a deal, I'd suggest taking a trip abroad or just out to some smaller towns in your area, and really experience why users feel the internet has not really gotten faster since the 90s (keeping in mind users don't care about data size, they care about latency).

steventhedev··on Algorithmic Pricing and Competition: The Small-Town Gas Station Example
I enjoy the analogy of the small town gas stations. But I think it falls short in describing the problem of price segmentation, where a company offers different prices to different customers. Some countries have gone far in regulating sales as a response to this, as firms would set prices extremely high and offer a perpetual sale (furniture and cosmetics are really bad with this).

What worried me is when marketing signals are used to raise prices for me above what they should be. Airlines do this when you are searching for flights, based on browser, OS, and other signals.

However, if we ban price segmentation altogether, then we risk preventing businesses from offering sales, which serve some business and social utility (to borrow the term from the speech). But it's worth spending time thinking about what is ok and what isn't. Chances are that some businesses are already doing what isn't ok.

steventhedev··on Windows 10 S won't let you change the default browser or switch to Google search
They will likely get pushback from the EU, where they were slapped significantly harder back then as well.

And it will be a "great success" with near 100% conversion rate because the upgrade will be forced on everyone.

steventhedev··on Reasons blog posts can be of higher scientific quality than journal articles
Obviously, having a professional librarian working on archiving data, code, and articles is ideal. However, I've found that the public facing side of journals experience bit rot even faster than most of the older blogs. Of course, there are exceptions, and even the most public figures can decide to delete everything, code included (e.g. _why)

Gwern has tackled link rot[0] in an exhaustive way, and may give you a starting point from where to continue.

[0]: https://www.gwern.net/Archiving%20URLs

steventhedev··on Reasons blog posts can be of higher scientific quality than journal articles
I think they serve different purposes, and the quality varies heavily across subfields. Academic research will produce a journal article as the primary output, whereas a blog post is typically a side effect of a practical project, and most will contain a link to the actual code.

Ultimately, I think they're both good, but they do have different uses.

steventhedev··on Ask HN: What do you use to align your daily todos with your long term goals?
An hour is a bit of an exaggeration. I come in to work early every day, and sift through operational alerts/clear out easy tasks in that hour. I do this while eating cereal, making and drinking coffee, etc. If I have some time left over, I read the news (usually finish everything up in about 20-30 minutes).

Of course, we do a technical rotation, and there's a lot of small tasks to do, most of which require a very quick grep of the logs.

← PreviousPage 6 of 9Next →