HNHacker News
TopNewBestAskShowJobs

ampersandy

681 karma · joined November 13, 2012

submissionscomments
ampersandy··on PHP compiler for JVM
Are there any unbiased comparisons of Resin and other app servers? The only source for their claims of better performance is their own benchmark of serving what seem to be static files. [0] A discussion of it pointed out that the comparison is totally moot, since Resin caches 1k files (and thus outperforms Nginx for that metric), but otherwise is pretty similar for larger files. [1]

[0] http://www.slideshare.net/billdigman/resin-outperforms-nginx [1] https://www.ruby-forum.com/topic/4404987

ampersandy··on Hack: a new programming language for HHVM
Just a heads up that the search page seems to be 404'ing.
ampersandy··on Google+ names policy discriminates against American Native Indians
How many people do you know with adjectives in their name? If you met someone and they said their name was "Joey Red Puma", would you assume that's real or fake? You'd probably say something like "really? you're joking, right?" I would certainly be skeptical.

For all we know that might be a real name too, but all we can do is make an educated guess about whether or not it is. My point is that determining if a name is real or not is pretty arbitrary so if your objective is to verify if a name is valid or not, you simply can't be 100% accurate.

A wrong result is wrong, but making the best of what you have to try and get the right answer most of the time (while still being wrong sometimes) is in and of itself not wrong. Take any NP-hard problem, the best you can do is use heuristics to try and approximate a good solution, since the "right result" is simply impossible to compute.

ampersandy··on Google+ names policy discriminates against American Native Indians
As if Google's naming policy is a check against a list of words... More likely; Google has implemented an algorithm that uses machine learning and several other heuristics to try and determine the probability that the name is real or not. Still sound like incompetence? Does a name like "Elaine Yellow Horse" seem real or fake? You simply can't win all the time when you deal with billions of people. Google's customer support and appeal process leave a lot to be desired, but calling them incompetent and racist is just silly.
ampersandy··on VK.com's PHP accelerator – kPHP source code
There's a good write up (in Russian) here: http://habrahabr.ru/company/vkontakte/blog/214877/

As HHVM is more performant than HPHPc, it's a more relevant comparison. Even then, it's not entirely apples-apples since HHVM supports (almost) the entire language, whereas kPHP seems to only support a subset. Doing so likely lets them make a lot of performance optimizations you couldn't make otherwise.

ampersandy··on VK.com's PHP accelerator – kPHP source code
Mostly right.

HPHPc produced the C++ code and that was compiled into a single binary executable. The deployment process involved using bittorrent to distribute the blob to all of the production servers.

HPHPc wasn't abandoned per say, it was only deprecated once the performance improvements brought on by HHVM were significant enough to justify the transition.

ampersandy··on Yahoo to End Facebook, Google Sign-In on Its Web Properties
Why is it a horrible idea? I worked on the Site Integrity team at Facebook and I can assure you that protecting people's accounts from attackers is a fundamentally hard problem that very few companies are actually equipped to handle.
ampersandy··on The Best of Python in 2013
Ugh, I really detest blog posts that only acknowledge in passing (at the end of the article) that someone else has done all of the work. This is literally just copy+pasted from entries in the newsletters.
ampersandy··on Internationalization made easier with static analysis
I'd prefer static analysis that extracts strings from calls like t("Check out our Jobs page {{url}}!") and auto-populates the appropriate locale files/databases, etc. Referencing keys all over the place seems like a poor substitute to just writing the content in a natural way and having the tools do the heavy lifting for you. For instance, I know that Twitter and Facebook both handle I18N content in such a way, and you can see the text-strings that they use in the translation dashboards.

There's also a good technical overview of Facebook's I18N framework here: https://www.quora.com/Facebook-Internationalization/What-was... .

ampersandy··on Thirty Percent Feedback
Great insight. An analogy I've heard that echoes the same sentiment: you don't buff a diamond, you cut it.
ampersandy··on Bram Moolenaar responds to Neovim
Bram's last post was 10/21/13, and a month later Bjorn confirmed in his fork that he could reliably freeze VIM and had segfaults that he had yet to fix. The final word seemed to be:

"There are enough vim users out there (myself among them) to warrant supporting a fork for as long as we're around. We'll try to keep it up to date with the latest changes."

I don't think anyone should expect Bram to chase them down for updates to the patch. Reading through the discussion, it seems clear to me that while good-natured, the feature was not ready to be merged into VIM.

ampersandy··on Learning to Code vs Learning Computer Science
It's perfectly acceptable to not understand the low level details of seriously used systems. Isn't that what teams are for? You can trust the engineers developing infrastructure so that you don't have to worry about it. Sure, understanding the high level concepts can't hurt, but it isn't going to make a front-end developer any more productive.
ampersandy··on Airlock – Facebook's mobile A/B testing framework
The issue is that any service at Facebook written in PHP inherently contains a lot of artifacts that are only relevant to Facebook's tech-stack. Services written in C or another language have a greater chance of eventually being open-sourced; and though I didn't mention it in my other comment, the server-side component of the framework is written in PHP.
ampersandy··on Airlock – Facebook's mobile A/B testing framework
I helped build the server-side component of this framework during my first internship at Facebook. The framework is server driven, in that experiments are defined in another tool and then loaded on the client framework. Essentially, an experiment is parameterized by name and a user's ID. The server code then determines which experimental condition the user should be placed into, and it returns the values of the parameters corresponding to that condition.

The framework was initially designed for the web, in an effort to make a simple framework for running experiments with parameterized text content. Copy needs to be translated to launch on Facebook, as many people use the site in non-English languages. The framework integrates with several other internal tools to make running experiments with text a lot easier - mainly, the translation services and Gatekeeper for targeting specific countries, languages, etc..[0] The framework is also dead-simple for running experiments with other scalar parameters - as an example, testing the number of results returned from a search.

I'm sure you could write a framework that exists solely client-side, but then you also have to re-write all of the experiment logic for each platform, rather than the 'wrapper' required to sync server-side and handle edge-cases like delayed exposure, etc. The wrapper is already non-trivial, so it's also nice that you can ensure the core framework is well tested without having to worry about testing in different environments. As I said before, integrating with other services is also really great, and for Facebook, most services are in PHP or exposed through Thrift, so accessing them on the server is very straightforward.

Another upside to being server driven is that updating an experiment can happen on the fly, so the moment you determine your experiment's best variant, you can disable the other ones without waiting for Apple to review the app again, etc. I'm sure you could implement this with a client framework, but it seems less elegant if you are relying on the server for key information about the status of the experiment, but still trying to retain all the experiment logic on the client.

0: https://www.facebook.com/notes/facebook-engineering/building...

ampersandy··on Ask HN: When is it too old to be an intern?
They'll certainly look; SV-type tech companies are going to screen your application based on technical merit. I'd simply advise not to include your age on your application, because it's irrelevant to how beneficial an internship would be for you and the company. Once you get in for interviews they may be surprised, but any reasonable person would enjoy hearing that you're enthusiastic about improving your skills and doing an internship during the degree.
ampersandy··on Evernote, the bug-ridden elephant
I still don't understand all the hate for the new version of Skitch; taking a screenshot and throwing a few shapes and text on it takes less than 5 seconds. What's the problem?
ampersandy··on We’re About to Lose Net Neutrality
but at the loss of any other social network upstart that wants in on it

Who do you think is footing the bill for those Facebook-only plans? Covering the costs of all internet use sounds like an unsustainable business strategy.

Are 'social network upstarts' losing out on users in the USA because people don't want (or can't afford) to pay for a data plan? How is this any different?

ampersandy··on Two million Facebook, Gmail and Twitter passwords stolen
Facebook just gave a talk at an HN London meetup recently about exactly this topic: http://vimeo.com/80460475#t=11m48s . The gist is that 2FA doesn't work because people don't enable it, but you can protect accounts by detecting anomalous behaviour on logins.
ampersandy··on Why You Don't A/B Test, and How You Can Start This August
A/B testing is a catch-all term for multi-variant experimentation. Multi-armed bandit is a specific approach to testing[1], and even though most frameworks provide A/B/N testing -- that is, not necessarily just two variants -- it is easier to say 'A/B' instead of 'A/B/N'.

http://analytics.blogspot.ca/2013/01/multi-armed-bandit-expe...

ampersandy··on Why You Don't A/B Test, and How You Can Start This August
Great insight! Though I'd expand on your bet and claim that at almost every major site, a majority of testing is channeled into onboarding. It's certainly the case at Twitter and Facebook that a lot of work goes into optimizing a user's first steps.
ampersandy··on My hell as a 911 operator
I agree that this process might be overkill for a civilian system, but it seems to me that an ongoing failure to respond efficiently to 911 calls (over the course of weeks, months, years) is quite worthy of a development process that reflects the life or death nature of the software's purpose. Regardless, hopefully Intergraph fixes their software quickly so that the operators aren't put under more stress than they need to be.
ampersandy··on My hell as a 911 operator
I recently attended a lecture about developing shutdown software for a nuclear power plant. The development process involved three key stages: Formal Requirements Documents, a Software Design Document, and finally, Coding. Each step in the process is accompanied by formal verification processes and an audit which produces a Hazard Analysis Report. Code also goes through code review and verification.

I wonder if Intergraph employed a testing plan quite as thorough.

Development cycle diagram: http://i.imgur.com/RaBSNHN.png (from the below PDF, page 4)

The entire paper: http://procon.bg/system/files/28.18_Lawford_Wassyng.pdf

ampersandy··on The Hardest Logic Puzzles
A counterfactual is a statement or question in the form 'If X ... would Y". Y would happen if X were true. Or, would Y be true, given that X were true? [0]

In the case of this puzzle, a counterfactual can be used to embed a question X within your question Y. By doing so (and exploiting the phrasing of the problem), you force the gods to answer in a manner that either reveals their identity as True, False, or Random.

Explaining the actual process through which the counterfactual is used to solve the problem is a bit tedious but the Wikipedia article on the puzzle has a pretty straightforward explanation of the reasoning[1].

[0] http://en.wikipedia.org/wiki/Counterfactual_conditional [1] http://en.wikipedia.org/wiki/The_Hardest_Logic_Puzzle_Ever.

ampersandy··on The Hardest Logic Puzzles
Exactly this; ProblemFactory has shown how the guru provides directly actionable information for the simplest case of the problem (1 blue eyed islander) and also highlighted the inductive step that leads to a proof for any number of blue eyed islanders.

Reducing to the simplest scenario and building (as ProblemFactory) has done, makes the result much more intuitive -- as it does in most proofs, really.

Also, the logicians comic is wonderful :)

ampersandy··on Passive Income Hacker vs Startup Guy
I am unsure as to whether you are scorning or agreeing with the author. You pointed out that a) this is tongue in cheek and b) seem to agree with the fact that founders shouldn't be scorning anyone not following in their footsteps.

Why can't the author make a generalization about startup founders based on his experiences? We all have stereotypes about other races, nationalities, people with a certain 'look'. Of course there are many shades of gray in between. That doesn't preclude us from associating certain character traits with someone before we've ever spoken with them because of how they look or where they are from.

ampersandy··on Twitter caught faking users’ tweets
Most feature launches that need a 'scapegoat' use employees' likenesses or profiles. For example:

- the 'Twitter Teacher' who appears in the sign up flow used to work at Twitter;

- and, the profiles used in the verification flow are also employees (http://dashes.com/anil/2013/03/what-its-like-being-verified-...).

I agree that this was unprofessional though and hope the offenders learn from the mistake.

ampersandy··on The Architecture Twitter Uses to Deal with 150M Active Users
No one else seems to have noticed that these details are out of date. Twitter has publicly stated that they currently have "well over 200M active users". The stats are also misleading in that -- I'm pretty sure -- 300k reads and 6k writes per second are only referencing tweets. Flock, Twitter's graph database, handles more than 20k writes and 100k reads per second on its own (peak numbers available from the two year old Readme on Github).

https://blog.twitter.com/2013/celebrating-twitter7

ampersandy··on IE11 to support WebGL
Thanks for the link.

I've bumped into Mike a few times at Facebook; he's one of the most knowledgeable people I've ever met.

ampersandy··on NSA Analyst LinkedIn profile
From his title, "Analyst at 20755", 20755 appears to be the zip code for a US army base, which is the headquarters of the NSA.

http://en.wikipedia.org/wiki/Fort_George_G._Meade

ampersandy··on Nitpicker – an overly picky language style checker
Overly picky, at the cost of comprehensiveness I would assume. :)

I might enjoy using this service if it was offered as a browser extension, since I find myself regularly proofing my writing to eradicate the informal language that I tend to use in my first drafts.

← PreviousPage 4 of 6Next →