HNHacker News
TopNewBestAskShowJobs

ender7

5,056 karma · joined February 1, 2011

submissionscomments
ender7··on Please Make Google AMP Optional
Users: I like AMP pages, they're fast!

HN: But the open Internet!

Users: What's that?

HN: Normal websites!

Users: Like...the really slow ones? With all the annoying popovers? And pages that take forever to load? And for some reason cause my fancy new phone to slow to a crawl?

HN: Well, those websites should rewrite their entire codebase to be faster.

Users: That doesn't help me, though.

HN: Trust in the free market! The problem is you, the user, who just needs to exert more pressure on website purveyors so they'll make performant web sites.

Users: You mean, like, preferring websites that offer faster experiences? Okay. Continues to use AMP.

ender7··on Working with time in Postgres
Every time I deviate from using unix milliseconds as my timestamps, I end up regretting it. If we use unix seconds, we get infinite bugs related to people forgetting to convert to millis when comparing against the current time. If we use Date objects, it's an even larger surface of potential bugs. Every Date interface I've ever seen makes it far too easy to accidentally create a relative time (i.e. anything that can't be mapped unambiguously to a single unix millis timestamp. Usually means a datetime that defaults to the current timezone). Does anyone have a preferred method that avoids these pitfalls?

At the end of the day I always come back to "solution with lots of possible bugs" or "unix millis everywhere". And I always choose the latter. It means we can't use nice date features in a lot of databases, but...eh? They've never seemed worth it.

ender7··on English is weirdly different from other languages
Russian is a famously difficult language to speak at a fluent level. You can make yourself understood fairly easily, but the nuances of both the pronunciation and grammar are quite hard to get 100% correct.

In particular, its system of declension for nouns and adjectives (and some other noun-like things) tends to drive non-native speakers batty. Wikipedia gives a good overview:

"Nouns, pronouns, adjectives, demonstratives, most numerals and other particles are declined for two grammatical numbers (singular and plural), three grammatical genders (masculine, feminine and neuter) and six grammatical cases (see below). This gives dozens of spelling combinations for most of the words, which is needed for grammatical agreement within and (often) outside the proposition. Also, there are several paradigms for each declension with numerous irregular forms."

ender7··on Google: My interview experience
As always, remember that even technical interviews like this one have an incredible amount of random chance built into the hiring process. This is especially true at a big company like Google (where I work and do interviews). Do they happen to have positions open right now? Did you happen to get asked questions that clicked with you? Was the hiring committee feeling grouchy that day? Did you get an especially harsh interviewer for one of your questions? Did they just hire someone with your skillset and so don't need a duplicate right now?

There's a decent amount that you can do to prepare for one of these things, but there's also an incredible amount you don't have control over. If you don't get the job, it's not a signal regarding your quality as an engineer and you shouldn't interpret it as such (however tempting it may be to do so). Remember, there are many great places to work right now, and your skillset is in demand. If we didn't get lucky enough to hire you, someone else will quite soon.

ender7··on Brilliant Jerks Cost More Than They Are Worth
People responding about how they personally aren't bothered by jerks are missing the point. It's great if you have thick skin, but it's hard enough to hire quality engineers without having to stipulate that they must also be psychologically hardened against lazy, petty, or oblivious aggression from coworkers (i.e. jerky behavior).

If I can choose to hire one brilliant jerk or three merely "good" engineers who don't need to be reminded to treat their coworkers thoughtfully, then I take the three engineers every time.

Arguments pointing to famous productive jerks (e.g. Linus Torvalds) also miss the point. Sure, Linus's prickliness may actually be a benefit given his singular position, but it's just that -- singular. You'll notice that no one else in the Linux dev community gets lionized for their random acts of rage. The world can tolerate a single Linus, but the solution doesn't scale, especially not to a random work group at a tech company.

ender7··on Why Databases Are Not for Docker Containers
I still can't really figure out what a container is. Every time I think of a use case for one, I read something like this which says that's a terrible idea.

The use-case I need solved most often is the following:

Create a standalone "server" that accepts and responds to network traffic, has some way to store data, and whose dependencies (i.e. system packages, frameworks, etc) I can manage independently of any of the other "servers" I have running. Do I just want a bunch of VMs? Or docker instances that all point to some other DB (that's apparently not in a docker instance...?). But then they're no longer independent from one another because they all use the same DB. So do I need a separate DB for each serverlet? Which lives where? On its own VM?

ender7··on CSS Grid – Table layout is back. Be there and be square
It's very easy to declaim one or another layout system as verbose or inconsistent. Can you suggest a mainstream layout system that offers this feature in a better manner?

I've used a lot of different layout frameworks over the years. Constraint systems are neat but hard to scale. All-code layout definitions are hard to read and reason about. Markup-level layout systems have their issues, but are easier for new programmers to learn and are the most instantly powerful out of the box. Most dewey-eyed replacements for production layout systems that I've encountered quickly founder when they try to cover all the corner cases that a mature framework would need to support. It's shockingly common to just end up with a kind of crappy version of bespoke CSS. Maybe with better syntax. Definitely with fewer features.

Alternately, if you're really complaining about the fact that you define styles in one file and markup in the other...I dunno, seems fine to me. I've seen systems that try to do all of that in one file (you can do it in HTML if you want to). They're not very readable. Splitting the styling from the basic structure is not a "clean" split, but it does simplify things enough to make your files much easier to scan. Sure, it doesn't live up to the old, pure idea about separating content from styling, but...who cares?

ender7··on Why I Studied Full-Time for 8 Months for a Google Interview
(disclaimer: I work at Google)

Google is a great company to work for, but there are many great companies out there. Don't close off other possibly-great opportunities because you're focused on working for a single place. Some random thoughts:

- Hiring at Google, despite our best efforts, is a mostly-random affair. The process is optimized to avoid hiring bad engineers, at the expense of frequently rejecting good engineers. If you get rejected, it doesn't mean anything.

- The average kind of eng work at Google is much like that at any other extremely well-run coding shop. You may spend a lot of time working on backend code that unglamorously glues two communications protocols together. It won't require a deep knowledge of fancy algorithms, but it will require a dedication to code quality, sustainability, testing, and personal productivity.

- Or you may get to work on the Next Big Thing, but keep in mind that most NBTs never see the light of day. It's an exciting work environment, but you have to deal with a lot of chaos and a lot more politics and uncertainty.

- The benefits are great, the work environment is great, and the average quality of your coworkers is great. This is the best thing about Google. If I were going to work somewhere else, I would prioritize these aspects.

- Google, like all large companies, is an uneven experience. Some excellent engineers get hired here who never really "click" -- they get put on projects they don't find interesting, they don't get on with their coworkers, etc. The vast majority of your coworkers will be really outstanding, but there will always be at least one person who you think is kind of an idiot. Most managers are great, but there are still a few assholes. If yours is, then you won't have a good time. Google does its best to minimize all of these problems via things like how it handles promotion, but there's only so much it can do.

Long story short: self-improvement is its own reward. Doing things is how you prove the truth of that improvement. If you can combine that with a great work environment, you're pretty set.

ender7··on Gitless: a version control system
To be honest, this comment is more evidence of a problem than anything else.
ender7··on Making Humans a Multiplanetary Species [video]
I'm all for colonizing Mars, but is it possible to do large-scale terraforming of the surface without a magnetosphere to protect it?
ender7··on My Most Important Project Was a Bytecode Interpreter
The first step in compilation is lexing -- converting a character stream to a stream of semantic "tokens", where a token might be "a number literal" or "the 'while' keyword" or a single character token like "{". This process is usually done via regexs.
ender7··on Amazon is piloting teams with a 30-hour workweek
In this context, "programmer" and "engineer" are probably meant to be synonymous.
ender7··on An American Doctor Experiences the NHS Again
Doctor and nurse salaries are higher in the US than in most other countries, but as a percentage of healthcare costs they're very small.
ender7··on The Liberal Blind Spot
https://en.wikipedia.org/wiki/Paradox_of_tolerance
ender7··on Google Seeks to Pacify Consumers with Faster Mobile Pages
Google has repeatedly said that they will not give preferential treatment for AMP pages. Almost every publication [1] and comment I've seen gets this wrong.

According to official comment, the ranking algorithm will prioritize page speed, and AMP is a good way to achieve that.

BloombergBusiness uses some questionable sentence structure in order to imply the opposite, but that's on them:

  AMP isn’t “a signal we use in ranking” pages, Besbris said. 
  He declined to comment about whether AMP pages would rank
  higher, though he said some of the signals Google uses for 
  search include whether a page is mobile friendly and how 
  rapidly it loads -- two problems that AMP seeks to tackle.
[1] e.g. http://adage.com/article/digital/google-amp-launch-looms-sea... See their retraction at the end of the article.
ender7··on Firefox Can Now Get Push Notifications from Your Favorite Sites
Chrome supports multiple user accounts. I do this for my work and personal accounts. You don't have to switch between them; you can have windows from both accounts open at the same time.
ender7··on Dell, Google, and Internet Security

  Please note, I am not accusing any specific person of being a government spook 
  intent on weakening security, but I can’t help notice the parallels in this
  situation with what is known about how Internet standards get compromised
Except that's exactly what the author is doing. Otherwise why did I have to wade through the first 50% of this blog post? Palmer's blog on the subject [1] is well-reasoned and makes the motivations for the decision clear. Slepak may not like those reasons, but adding a veiled accusation of stoogery to an otherwise weak rebuttal just makes you look like an asshole.

I'll requote Palmer's fundamental assertion:

  However, it is not possible for a low-privilege application to defend against
  the platform it runs on, if the platform is intent on undermining the
  application’s expectations. To try would be futile, and would necessarily
  also violate a crucial  digital rights principle: The computer’s owner should
  get to decide how the computer behaves. Dell and Lenovo let their customers
  down in that way, but for better and for worse, it’s not something that a web
  browser can fix.
I can appreciate this argument. Today it's pre-installed certificates, but tomorrow it'll be some malware that hijacks the owner's machine in some other way. If Chrome's responsibilities expand to include the security of the entire system, it would place an impossible burden on its engineers.

[1] https://noncombatant.org/2015/11/24/what-is-hpkp-for/

ender7··on VLC contributor living in Aleppo writing about the Paris attacks

  If you naively extrapolate, ...
Yes, this is definitely an appropriate time to make sweeping generalizations based solely on naive extrapolations.

https://xkcd.com/605/

ender7··on What people in 1900 thought the year 2000 would look like
I find the first set of pictures the most interesting, because they all display various forms of what we would think of as automation -- machines to do house cleaning, farming, barbering, grooming -- but none of them actually automate anything. The floors do not clean themselves, nor do the tractors navigate their own course. All of the machines are still controlled by levers and pedals. The barber is still required to cut hair, although his efforts seem magnified. The housewife still must carefully control the cleaning machine, perhaps saving some elbow grease but not very much in the way of leisure time.

A century ago, we thought that machines were going to be multipliers of the effectiveness of human effort. Now, it seems clear that they will inevitably replace it.

ender7··on Free Lossless Image Format
Please read the comments you reply to:

"Once the format is finalized, the next logical step would be to make a library version of it, which will be most probably get licensed under the LGPL v3+"

ender7··on WebExtensions FAQ
Everyone knew what the feedback from existing extension authors would be. Asking for "feedback" that you know you're going to ignore seems more disingenuous that just admitting that you have to make a decision they don't like.
ender7··on Startup Metrics
GAAP is not an uncommon acronym in tech circles. For example, listen in to any earnings call or read any of the big tech companies' quarterly earnings press releases and you'll find references to GAAP all over the place. Quarterly earnings are a pretty common subject of discussion when they occur, so I wouldn't be surprised if a lot of programmers are familiar with the term.
ender7··on Inside Industrial Light and Magic's Secret Star Wars VR Lab
Note that other game companies usually developed the actual games for LucasArts. X-Wing and TIE Fighter were developed by Totally Games and KOTOR (the first one) was developed by BioWare. Many of their adventure games (such as Day of the Tentacle and Grim Fandango) were developed in-house, though.

I don't know if any of the original LucasArts people are involved in this new effort -- I have a feeling that this is a denovo group.

ender7··on Show HN: Spot the Drowning Child
Friendly reminder: rescuing a drowning person (even a child) is incredibly dangerous if you have not been trained in how to do it. They will try to climb on top of you if they get a hold of you and unless you are an exceptionally strong swimmer they will then proceed to drown you. The drowning reflex overrides most people's abilities to process other thoughts, with the result that a loved one is just as likely to drown you as a stranger.

Many people are embarrassed by their inability to swim and so won't mention it in circumstances that you would expect them to -- visits to water parks, beaches, lakes, or even acting jobs that involve being pushed off a dock into a lake (oy). Don't assume that a person can swim, even if they tell you otherwise.

ender7··on Javascript, locking and sound
Sometimes rants like this are biting indictments of the state of things, but sometimes they're just a bit of laziness.

The web is a constantly evolving platform. There used to be many things that were impossible to achieve on the web; that number is less now than it used to be thanks to the addition of new APIs (LocalStorage among them), but it's not yet zero. In particular, we don't yet have an API to achieve what jwz wants to do. LocalStorage was clearly not designed with this use case in mind; acting surprised when your awful hack turns out to be unreliable seems a bit disingenuous.

ender7··on New York Times' Reddit Piece Shows Dangers of Internet Journalism
I sympathize with your plea for us to move beyond labels, but that doesn't change the nature of this TechRaptor piece.

This is a smoke screen and it is being used in the same old way to obliquely discredit an argument that a member of the GG community doesn't like. And the argument being discredited is, once again, about the status of women in tech and on the Internet. Far from being an "unfair" characterization -- it's depressingly apt here.

ender7··on New York Times' Reddit Piece Shows Dangers of Internet Journalism
If you, like me, or tptacek [1], were confused why this is a big deal, that's because it's not. It's common practice for online articles to be changed after they are published, especially as new information comes in. If the article originally contained factually incorrect information that was later corrected that would be one thing, but that's not the case with this article; new information and context was added.

TechRaptor, the site that hosts the article, is strongly associated with the GamerGate community, and that is the source of this concern of this new non-existent "danger". Standing up for "ethical journalism" was and continues to be one of GamerGate's most popular smoke screens. In this case, the NYT article was modified to include context that TechRaptor author didn't like. However, it doesn't look good to say "no, this totally wasn't about the fact that Ellen Pao was a woman" because that's easily disprovable: there are a trillion and a half Reddit threads out there displaying some of the nastiest sexist invective you've seen in a long time, all targeted at Ellen Pao. Instead, TechRaptor attempts to attack the article via a sidechannel discreditation. It attacks an unrelated feature of the article (that it was modified after it was published), which casts a pall over the entire thing, effectively undermining the main argument simply by association.

There is a ton of talk in this discussion thread about how the NYT article is "biased" or trying to present an "opinion". This seems to me like just another way of disagreeing with the argument without seeming like you're disagreeing with it. Claiming that this should be reported on like any other CEO being fired is not a cry for journalistic integrity, it's a request to willfully ignore the very, very special context that this firing took place in. The behavior of the Reddit community during this process, a behavior that was blatantly sexist and clearly occurred at an outsized volume and level of rancor because Ellen Pao was a woman, cannot and should not be ignored. To do so would be, well, unethical.

[1] https://news.ycombinator.com/edit?id=9870891

ender7··on Ask HN: How do I keep child porn out of my site?
You should definitely consult legal counsel before and during talking to the authorities (which you should also do). The laws surrounding CP in particular are outdated and do not fit well into the digital world. For example, simply looking at CP can be a crime, which can make it difficult to report unless you know the right words to say. Always consult counsel in these cases.
ender7··on Some Functional Programmers Are Arrogant
I must be missing some context here, because the whole article seems to boil down to "someone I like said something I don't like :(". He spends a fantastic amount of time scolding Martin for disagreeing with him and almost no time actually commenting on whether the accusation is really true. Wha?
ender7··on Google Play Music – free, ad-supported radio
Yep. It has other features that I never use, but the media key functionality is great.
← PreviousPage 2 of 15Next →