HNHacker News
TopNewBestAskShowJobs

EricBurnett

1,156 karma · joined June 30, 2009

Software engineer at Google, working on distributed build systems.

www.thelowlyprogrammer.com

submissionscomments
EricBurnett··on Amazon Elastic Transcoder
1, privacy - they would have to send you a copy of someone's video for that. 2, I expect the end user bandwidth is worth more than the CPU time you'd provide, so the credits they could give wouldn't be worth it to you.
EricBurnett··on SSH client in Google Chrome
The same could be said for any binary releases, from open source code or not (e.g. Firefox). If you don't trust Google's binary releases then build your own Chromium from audited sources.
EricBurnett··on How a load-balancing bug led to worldwide Chrome crashes
In what way was it 'designed' to not operate independently? The browser is - in theory - perfectly fine operating when sync is broken (and in fact wouldn't have triggered this were sync fully unreachable). This was simply a bug in sanitizing input, nothing further. Not different in flavour to input sanitization problems within the javascript engine, which have been known to occur as well.
EricBurnett··on Go at Google: Language Design in the Service of Software Engineering
One correction: assuming the disk access was for files scattered around on the drive, requiring a seek each, you're looking at 10ms per file. At 1,000 files (wild guess) that's 10 seconds.
EricBurnett··on Facebook Starts Switching All Users to HTTPS Connections
(Disclaimer: I work for Google, but not in websearch, and this is my personal opinion only)

If this is a serious statement, then let me give you a serious answer: any minor increase in processing power won't inconvenience Google in the slightest. And even if it did, that still wouldn't matter. If it is good for web security and users - which I believe it is - then we're in favour of it.

The consideration here is whether the algorithms are going to do the right thing, forwarding people, pagerank, referers, etc in the same way as before. That's not a question I can answer, but I'd go with whatever Matt Cutts has said.

EricBurnett··on Concurrent Sieve of Eratosthenes in Go
I've used that paper as the impetuous for writing a few sieve algorithms (see [1] and [2]). While reasonably elegant in Haskell, my personal experience is that list-of-generator style programs cannot compare to array-based sieves for performance, due to the overhead of switching between generators all the time. Not to denigrate the main point, of course - asymptotic runtimes are far more important than implementation overheads for calculating primes.

[1] http://www.thelowlyprogrammer.com/2010/03/writing-efficient-... [2] http://www.thelowlyprogrammer.com/2012/08/primes-part-2-segm...

EricBurnett··on Concurrent Sieve of Eratosthenes in Go
As ahh points out in their comment, this isn't a true sieve - it's essentially trial division, although sharded between goroutines.

For comparison, I've used Go to implement a segmented version of the true Sieve of Eratosthenes. It's a standard array-based sieve, chunked up. It takes advantage of goroutines for parallelism, and implements an efficient algorithm at the same time. The code is a lot longer than this one because it tries to do a lot more (memory efficiency, large number support, etc), but it should give you an idea what a full implementation might look like. http://www.thelowlyprogrammer.com/2012/08/primes-part-2-segm...

EricBurnett··on Google Launches Ingress, a Worldwide Mobile Alternate Reality Game
Even from early beta versions it's been surprisingly addicting. The first time I tried it I went for a walk, and found myself still wandering the streets at 2am, only returning home when my battery was giving out :). If I'm at all average, you won't be too disappointed!
EricBurnett··on Samsung Galaxy Tab 10.1 sales ban lifted in the US
IANAL, but my understanding is the bond is posted against the losses the injunction could cause as a means to ensure payment, but the plaintiff - Apple - is actually on the hook for the real losses in the end (whether more or less). As such, if the bond is insufficient they would have to cough up the rest as well.
EricBurnett··on Samsung Galaxy Tab 10.1 sales ban lifted in the US
Note that the redress for lost sale is yet to be determined. Samsung may get some or all of the 2.6M bond Apple posted at the start of the injunction, although how much isn't clear.
EricBurnett··on Harvard Students in Cheating Scandal Say Collaboration Was Accepted
Substitute Seattle for Manhattan and the point stands.
EricBurnett··on Hipset. It’s the stupid algorithm, stupid.
Disclaimer: I've never heard of Hipset before. That said, I'm going to go out on a limb and say it won't take off, for all the same reasons this blog post says it will.

The product itself appears to be essentially a 'simple' algorithm for Facebook, letting you avoid the pseudo-intelligent EdgeRank algorithm they use and letting you see an unfiltered stream of a specific subset of the content. If it really is that simple, the key questions are whether users will go to a third party to get it and if Facebook will refrain from copying it in-house. Call me skeptical. Taking the points in turn:

1. User Aquisition

> For Hipset, user acquisition is very obviously built into the product’s and team’s DNA. A well executed PR exercise this weekend generated a ton of interest from early adopters - who all signed up via Facebook auth. Meanwhile, the product aggressively (that’s a complement) integrates with Facebook’s Open Graph. Every time i engage with content on Hipset, it gets posted to Facebook. So all those early adopters using the product are actually busy sending notifications to their impressionable friends on Facebook about this cool new service. [...]

To paraphrase the blog, Hipset is better at 'growth hacking' than the blogger's product OneRiot was. It can go viral, and ... and what? It's positioned here as a feature for Facebook, so presumably a set fraction of the users would desire it off the bat. Getting in front of them is a recipe for an initial userbase, but there needs to be something beyond that. What's the long-term growth strategy, continue to hope Facebook doesn't provide a native view for this feed and growing alongside them? I don't buy it.

2. Users want it.

Again paraphrasing, the blog suggests that users want an undiluted feed. One benefit of this is that bands can directly email users who have subscribed. Except...what happens when a few are too chatty? Either they back down from that 'undiluted' idea, becoming simply a different algorithm, or users need to do all that micromanaging Facebook hides away, and get fatigued. There probably is a market for some who want control over everything themselves, but I'm not sure it's on Facebook in the first place.

The author also suggests that this is a perfect market for Mobile - where Hipset isn't yet trying to be. That's a significant pivot, although a reasonable one.

3 - Facebook doesn't need to copy Hipset, because it's complementary.

Facebook probably doesn't need to copy Hipset, no. But they have a vested interest in keeping everyone going to facebook.com, and not splintered into a set of micro-communities. Which means banking on their disinterest in the long run doesn't seem like a safe bet - and if Facebook decides to provide even half the features of Hipset, momentum and the hidden costs of each additional service will do the rest.

Now, there may well be a lot more to Hipset than this blog post is making apparent. I don't know. But there is nothing here to convince me that it's going anywhere, aside from a blip as the internet goes "oh, that's cool!"

EricBurnett··on Facebook’s New (Evil) Plan to Grab New Users
Cached copy provided by Yahoo: http://74.6.238.254/search/srpcache?ei=UTF-8&p=http%3A%2...
EricBurnett··on D-Wave quantum computer solves protein folding problem
That very much depends on the size of the solution space. If they get one bit of 'answer' from each qubit used in the computation that's 2^81 possible solutions, in which case you'd expect random chance to require somewhere around 1,000,000,000,000,000,000,000,000 trial runs before they happened to get one right.

Now, I highly doubt the solution space is anywhere near that large. But without knowing more about it we cannot infer anything from the 13/10000 statistic presented.

EricBurnett··on GetUserMedia API lands on Chrome
Do you mean this IndexedDB? http://caniuse.com/#feat=indexeddb . Or this calc? http://caniuse.com/#feat=calc . They look pretty supported to me, remembering that they're both based on a draft specs.
EricBurnett··on The Opposite of a Bloom Filter
Sadly not - instead you'd get disagreement from the two structures, with no way to resolve it.

If the bloom filter says 'yes I've seen it!', and the opposite filter says 'nope, not here', which is accurate? You know it's either a false-positive from the bloom filter or it a false-negative from the opposite filter, but that's the limit of your information. Effectively, you've partitioned your set into three: [definitely not, ambiguous, definitely seen].

If you want to know 100% of the items you've stored with full fidelity, you need to store information for all of them (e.g. in a hash table). Which is a valid thing to do, but requires a lot more memory than the author of this article was willing to use.

EricBurnett··on Chinese RFC proposes separate, independent, national internets and DNS roots
Thanks, I wasn't aware they changed regularly. From what I can find, 4 v4 IPs have changed since 1997, plus the addition of a number of v6 IPs over the years. I'd be curious to know the last time all IPs were different, if ever.
EricBurnett··on Chinese RFC proposes separate, independent, national internets and DNS roots
Yes and no. There are 13 'installations' (essentially IPs), some anycasted, but they all serve the same contents that are provided by the ICANN. So they are one conceptual root, albeit a geographically distributed one. The IETF has worked hard to make it robust (successfully so far), but the fact remains that 13 hardcoded IPs and one file that comprise the root of the DNS system.

http://en.m.wikipedia.org/wiki/DNS_root_zone has some details.

EricBurnett··on Chinese RFC proposes separate, independent, national internets and DNS roots
Setting aside the motivations for this draft, the idea of removing the one single DNS 'root' is a reasonable one. It acts as a single point of failure for the DNS system and puts the entire DNS hierarchy under the jurisdiction of the United States Department of Commerce. There are already existing alternative roots[1], but no interoperability between them and no standards governing them. Indeed, the IETF is strongly against them at present [2].

With that in mind, let us examine the flaws in the proposal at hand.

* 1. Lettered roots

This proposal puts the existing DNS root under a lettered virtual root above it, with implicit resolution to the local AIP. The existing DNS root locations are ALREADY indexed by letter, so this is a recipe for confusion. Even more importantly, this system _will not scale_: There are 26 possible letters, if drawing from the ASCII set only, which permanently restricts the number of autonomous zones. What happens then?

This could be resolved by using a unique suffix scheme that does not conflict with the existing or requested TLDs, but would make it that much harder to type an external DNS address. yahoo.com.extdomA for general use would be quite unfortunate.

* 2. Who hands out the AIP designations?

If every AIP must have a single unique designation, there must be an organization handing them out. The ICANN would be the obvious choice, but that brings us back around full circle.

* 3. Ownership conflicts

As rfc2826 points out [2], the internet is built on the assumption that domain names are unique. With multiple implicit zones, either the same entity must be able to control their domain within each or we will end up with conflicts. If yahoo.com resolves to the 'Yahoo' corporate entity in most AIDs, but is controlled by Baidu in one, can they claim it? If not, what about the user confusion that would entail?

Regardless of the answer to this question, I expect in an AID world everyone would start using external domains for the stronger guarantees they provide. So Yahoo would be permanently yahoo.com.A. Which is complicated by...

* 4. Blocking.

If AIPs start blocking resolution of specific external domains, what happens? Obviously China would like this, but for the internet at large, having siloed intranets would likely be a huge problem. Every time someone misconfigures BGP and one region of the internet cannot talk to another, things break. A shifting set of resolvable domains would likely cause exactly the same headaches, only they wouldn't go away with the next BGP update.

* 5. Proxying and scale.

The AIP DNS are required to proxy requests to external domains (3.2 from the draft). Presumably this is to facilitate blocking, but it would also impose significant load issues and key bottlenecks. Note that right now the only equivalent is the root DNS, and it only handles resolution for the TLDs. Something far larger would need to be set up to be able to handle the load of proxying all external requests.

Overall, this proposal has far too many foundational issues to be seriously considered. I am personally happy it was drafted - work to break the One True Root should be done in the open with all relevant parties involved. But this draft isn't going to cut it.

[1] http://en.wikipedia.org/wiki/Alternative_DNS_root [2] http://tools.ietf.org/html/rfc2826 (IAB Technical Comment on the Unique DNS Root)

EricBurnett··on F1 - The Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business
Deliberately gloss over it? Second paragraph of the abstract:

> The strong consistency properties of F1 and its storage system come at the cost of higher write latencies compared to MySQL. Having successfully migrated a rich customerfacing application suite at the heart of Google’s ad business to F1, with no downtime, we will describe how we restructured schema and applications to largely hide this increased latency from external users. The distributed nature of F1 also allows it to scale easily and to support significantly higher throughput for batch workloads than a traditional RDBMS.

EricBurnett··on Why we created Julia - new language for fresh approach to technical computing
They do link to the code: https://github.com/JuliaLang/julia/tree/master/test/perf . It doesn't look like a very reliable microbenchmark - run test x 5 times - but it should provide a useful starting point if you want to run your own.
EricBurnett··on Google has a hidden author search. Here's proof. [with video)
If you don't want to be found, no. If you do, adding a nickname to your profile on Google+ will (either now or eventually) allow them to make that connection.
EricBurnett··on The Internet makes magic disappear
If the article's premise is true, that there's a decline in the belief in magic due to having more information at your fingertips, that's good news to me. Sure, it'll mean a decline in the magic industry specifically (although it'll never die out entirely simply because watching someone perform a magic trick well is amazing even though you know it's a trick). But it also means that people aren't taking what's fed to them on faith, and are looking behind the curtain. At a societal level, this is something we should definitely encourage.
EricBurnett··on Facebook hit git performance issue on large repository
Reply to mindcrime sibling post

I've seen that before myself at other companies, and it's a shame. A healthy codebase is an investment in the future - if you're not taking the time to cultivate it you're sacrificing long term usability for short term gains. The larger the codebase the more difficult the task, of course, but for us that's just an excuse to solve the next hard problem :).

One more good link on the topic: our use of Clang to find and fix bugs in our existing codebase, as we find new classes of 'gotchas'. http://google-engtools.blogspot.com/2011/05/c-at-google-here...

EricBurnett··on Facebook hit git performance issue on large repository
is anybody going to parse through all of that?

Yes, in fact. We have some great tools that give us full search over our entire codebase (think Google Code Search), and you can add a dependency on a piece of code without needing to have it on your workstation already. The magic filesystem our build tools use knows where to get it and can do so on demand. Combined with good code location conventions, an overall attitude that promotes reuse over rewrites* and mandatory code reviews where someone can suggest a better approach, we do a pretty good job. Not everything is eliminated, of course, but I'm pretty happy with the state of things.

To your example, we'd use the STL for most of our sorting needs, but if you were to want, say, case-insensitive string sorting, I can tell you where to find it (ASCII, UTF8, or other). If you want a random number, any RNG you could want is available. Most data structures you could name have been written and tested already. Libraries for controlling how your binaries dump core, command line flags are parsed, callbacks are invoked, etc etc are readily available. We really do reuse code as much as possible, and it's wonderful to have ready access to all of this whenever you could ask.

*At a method level, anyways...we're famous for writing ever more file systems ;).

EricBurnett··on Facebook hit git performance issue on large repository
Pointing at a big company and saying "they're doing it wrong" is easy enough to do, but you have to remember that every decision comes with tradeoffs. Take Google's codebase, since it's the one I know the best. A couple of the key decisions:

* Single rooted tree. Separated repositories would make it harder to share code, leading to more dupication.

* Build from head. We build everything from source, statically linked. No need to worry about multiple versions of dependencies, no lag between a bug fix and it being available to any and all binaries that need it, whenever they're next updated.

I don't think that an "internal Github" is going be a magic bullet here. It's more likely it would be a matter of trading one set of hard problems for another, as we all of a sudden need to figure out how to do cross-dependencies sanely, deal with multiple versions of libraries, etc, at scale. You are correct that one monolithic Perforce repo is a bit of a pain point, but that doesn't necessarily mean that the right decision is to shatter our codebase into different pieces - we'd rather make our repo scale better. For reference, we've already got hundreds of millions of lines of code, 20+ changes/minute 6 months ago (so what, 30+ now?), and plans for scaling the next 10x are in motion.

If you're interested, I recommend http://google-engtools.blogspot.com/. It details a number of the problems we've run into, and our solutions for dealing with them at scale.

EricBurnett··on Bufferbloat: Dark Buffers in the Internet
The worldwide internet infrastructure is remarkably fragile. I can think of a few example off the top of my head where it's been abused or broken:

1. China 'borrowing' traffic: http://arstechnica.com/security/news/2010/11/how-china-swall...

2. Myriad undersea cable cuts slowing / segmenting the internet

3. Juniper routers going down: http://www.networkworld.com/news/2011/110711-internet-outage...

4. There was an incident (2 years ago?) where an European ISP broadcast a low-cost route incorrectly and blackholed a large portion of the internet, although I can't find a link right now.

With respect to buffers specifically, AT&T's network issues when the iPhone launched were largely self-inflicted by having overly large buffers: http://blogs.broughturner.com/2009/10/is-att-wireless-data-c...

So yes, widespread issues are certainly possible. The internet is not nearly as resilient as people would like to believe.

EricBurnett··on Google’s Jaw-Dropping Sponsored Post Campaign For Chrome
Are you suggesting the search algorithm is tailored to detect pro-google content and promote it, or that someone manually altered the rankings for these pages? Both are wildly unlikely. I think the double standard suggested is that these pages shouldn't exist at all, not that anything is biased in their favour.
EricBurnett··on Facebook releases HHVM, 60 percent faster than its current PHP interpreter
Ignoring the fact that these are all running on the standard PHP interpreter, not one of Facebook's creation...

The benchmarks linked ran on a 4 core machine with varying amounts of parallelism, generally with Java being more parallelized. When running a server farm, as Facebook does, aggregate CPU time is more important than wall time^, since one can easily scale the number of processes to fit the machine. By CPU time the difference is down a factor of two at least, possibly more.

Be careful with benchmarks. They distill a comparison into a single value for easy use, but it's not going to be the most appropriate metric in all cases.

^So long as wall time is "sufficiently small", which it generally is.

EricBurnett··on Sergey Brin gives $500,000 to help Wikipedia
> The fate of MySpace suggests otherwise. The existence of radio stations exuberantly announcing "commercial free this hour!" suggests otherwise. The prevalence of adblock suggests otherwise.

MySpace failed because a better competitor came along. It had a history of predators, spammers, and viruses, and was hard to use well. (Did you see the pages people made?). Ads were one cause among many, and it's doubtful how much they contributed. For comparison, Facebook has ads, but people aren't flocking in droves to G+, and I haven't heard the lack of ads cited as the reason for any of those that are.

Radio stations certainly have ads, and those that claim "x songs without commercials!" usually put self-advertisements in instead, which they count separately. It's still advertising, just a different sort. Overall the whole process is pretty duplicitous (imho).

AdBlock has minimal market share [1], so the prevalence of AdBlock isn't an argument in your favour.

You may be correct that people hate ads, but the evidence you've given does not support your conclusion.

[1] first hit guesstimates 2%: http://www.quora.com/What-is-the-percentage-of-Internet-user...

← PreviousPage 4 of 7Next →