Hacker Newsnew | past | comments | ask | show | jobs | submit | 2014-01-29login
Stories from January 29, 2014
Go back a day, month, or year. Go forward a day, month, or year.
1.Edward Snowden nominated for Nobel peace prize (theguardian.com)
1028 points by ahjones on Jan 29, 2014 | 191 comments
2.1/9998 = 0.0001 0002 0004 0008 0016 0032 0064 0128 0256.. (wolframalpha.com)
617 points by rsiqueira on Jan 29, 2014 | 96 comments
3.Lenovo to buy Google's Motorola handset division (reuters.com)
478 points by rpledge on Jan 29, 2014 | 253 comments
4.Coursera blocks access to students in Cuba, Iran, Sudan and Syria (coursera.org)
359 points by zactral on Jan 29, 2014 | 184 comments
5.Let banks fail: Iceland’s plan looks to be working (financialpost.com)
338 points by _0nac on Jan 29, 2014 | 150 comments
6.Show HN: Product Hunt – Hacker News for Products (producthunt.co)
360 points by rrhoover on Jan 29, 2014 | 101 comments
7.AMD reveals its first ARM processor: 8-core Opteron A1100 (arstechnica.com)
306 points by shawndumas on Jan 29, 2014 | 191 comments

The pattern will break down once you get past 8192, which is 2^13. That means that the pattern continues for an impressive 52 significant figures (well, it actually breaks down on the 52nd digit, which will be a 3 instead of a 2).

The reason it works is that 9998 = 10^4 - 2. You can expand as

    1 / (10^n - 2) = 1/10^n * 1/(1 - 2/10^n)
                   = 1/10^n * (1 + 2/10^n + 2^2 /10^2n + 2^3 /10^3n + ...)
which gives the observed pattern. It breaks down when 2^k has more than n digits, which happens approximately when

    2^k > 10^n   =>   k > n log(10) / log(2)
which comes out to 4 * log(10)/log(2) = 13.28 when n = 4.

---

Another pattern can be generated from the power series expansion

    x / (1 - x)^2 = x + 2x^2 + 3x^3 + 4x^4 + ...
setting x = 1/10^n gives the infinite series

    1/10^n + 2/10^2n + 3/10^3n + ...
which leads to the neat fact that

    1 / 998001 = 0.000 001 002 003 004 005 006 007...
---

Another example is the fraction

    1000 / 997002999 = 0.000 001 003 006 010 015 021 ...
which goes through the triangle numbers[0] in its expansion, or

    1 / 998999 = 0.000 001 001 002 003 005 008 013 021 ...
which goes through the Fibonacci numbers[1].

---

Getting the squares is harder, but you can do it with

    1001000 / 997002999 = 0.001 004 009 016 025 036 049 ...

[0] http://en.wikipedia.org/wiki/Triangle_number

[1] http://en.wikipedia.org/wiki/Fibonacci_number

9.Court: Google infringed patents, must pay 1.36 percent of AdWords revenue (arstechnica.com)
294 points by kjhughes on Jan 29, 2014 | 180 comments
10.AWS Tips, Tricks, and Techniques (launchbylunch.com)
295 points by sehrope on Jan 29, 2014 | 56 comments
11.IE7 users, we need to talk… (nursingjobs.us)
280 points by trothamel on Jan 29, 2014 | 180 comments
12.Jb’s story about how he nearly lost his Twitter handle (d.pr)
260 points by robin_reala on Jan 29, 2014 | 118 comments
13.The NHS is selling your private data – here's the price list [pdf] (hscic.gov.uk)
252 points by ghswa on Jan 29, 2014 | 114 comments
14.US bans students from “blacklisted” countries from getting access to Coursera (hummusforthought.com)
233 points by btimil on Jan 29, 2014 | 123 comments
15.Lenovo to acquire Motorola Mobility (googleblog.blogspot.com)
229 points by palebluedot on Jan 29, 2014 | 80 comments

> Even though there was no evidence of copying—Vringo admitted as much

What a ridiculous system we all operate under. You come up with a mathematical formula for ranking some text on a page (in this case, what ads to show first), and you could now owe $250M/year to some company you've never heard of because they already bought the rights to that formula. It turns my stomach; sorry that I have nothing of more substance to add to this story.

17.Ask HN: What's the worst you've ever screwed up at work?
217 points by kadabra9 on Jan 29, 2014 | 309 comments
18.Patch's new owner lays off staff in 1:39 conference call (soundcloud.com)
183 points by coloneltcb on Jan 29, 2014 | 149 comments
19.SymPy Gamma: an open-source, Python-based alternative to Wolfram Alpha (sympygamma.com)
156 points by gioi on Jan 29, 2014 | 59 comments
20.The world’s rich stay rich while the poor struggle to prosper (johnkay.com)
132 points by rrgmitchell on Jan 29, 2014 | 130 comments
21.Nordic.js: A two-day conference all about JS in Stockholm 18-19 September 2014 (nordicjs.com)
123 points by jede on Jan 29, 2014 | 22 comments
22.Show HN: Unregistered word.tld domain names for your project (dictionarydomains.co)
128 points by thiele on Jan 29, 2014 | 61 comments
23.Google brings Chrome apps to Android and iOS (thenextweb.com)
123 points by bane on Jan 29, 2014 | 39 comments
24.Drilling surprise opens door to volcano-powered electricity (theconversation.com)
122 points by unspecified on Jan 29, 2014 | 81 comments

I've only cried literal tears once in the last ten years, over business. Due to inattention while coding during an apartment move, I pushed a change to Appointment Reminder which was poorly considered. It didn't cause any immediate problems and passed my test suites, but the upshot is it was a time bomb that would inevitably bring down the site's queue worker processes and keep them down.

Lesson #1: Don't code when you're distracted.

Some hours later, the problem manifested. The queue workers came down, and AR (which is totally dependent on them for its core functionality) immediately stopped doing the thing customers pay me money to do. My monitoring system picked up on this and attempted to call me -- which would have worked great, except my cell phone was in a box that wasn't unpacked yet.

Lesson #2a: If you're running something mission critical, and your only way to recover from failure means you have to wake up when the phone rings, make sure that phone stays on and by you.

Later that evening I felt a feeling of vague unease about my change earlier and checked my email from my iPad. My inbox was full of furious customers who were observing, correctly, that I was 8 hours into an outage. Oh dear. I ssh'ed in from the iPad, reverted my last commit, and restarted the queue workers. Queues quickly went down to zero. Problem solved right?

Lesson #3: If at all possible, avoid having to resolve problems when exhausted/distracted. If you absolutely must do it, spend ten extra minutes to make sure you actually understand what went wrong, what your recovery plan is, and how that recovery plan will interact with what went wrong first.

AR didn't use idempotent queues (Lesson #4: Always use idempotent queues), so during the outage, every 5 minutes on a cron job every person who was supposed to be contacted that day got one reminder added to the queue. Fortuitously, AR didn't have all that many customers at the time, so only 15 or so people were affected. Less than fortuitously, those 15 folks had 10 to 100 messages queued, each. As soon as I pressed queues.restart() AR delivered all of those phone calls, text messages, and emails. At once.

Very few residential phone systems or cell phones respond in a customer-pleasing manner to 40 simultaneous telephone calls. It was a total DDOS on my customers' customers.

I got that news at 3 AM in the morning Japan time, at my new apartment, which didn't have Internet sufficient to run my laptop and development environment to see e.g. whose phones I had just blown up. Ogaki has neither Internet cafes nor taxis available at 3 AM in the morning. As a result, I had to put my laptop in a bag and walk across town, in the freezing rain, to get back to my old apartment, which still had a working Internet connection.

By the time I had completed the walk of shame I was drenched, miserable, and had magnified the likely impact that this had on customers' customers in my own mind. Then I got to my old apartment and checked email. The first one was, as you might expect, rather irate. And I just lost it. Broke down in tears. Cried for a good ten minutes. Called my father to explain what had happened, because I knew that I had to start making apology calls and wasn't sure prior to talking to him that I'd be able to do it without my voice breaking.

The end result? Lost two customers, regained one because he was impressed by my apology. The end users were mostly satisfied with my apologies. (It took me about two hours on the phone, as many of them had turned off their phones when they blew up.)

You'd need a magnifying glass to detect it ever happened, looking on any chart of interest to me. The software got modestly better after I spent a solid two weeks on improved fault tolerance and monitoring.

Lesson the last: It's just a job/business. The bad days are usually a lot less important in hindsight than they seem in the moment.

26.Metered Billing (beta) (linode.com)
118 points by martey on Jan 29, 2014 | 38 comments
27.DataHand (wikipedia.org)
111 points by hdivider on Jan 29, 2014 | 63 comments

They shredded closer to a sixth of the initial price less whatever IP benefit they received.

Motorola had ~$3B in cash when acquired. Google previously sold their set-top box unit for $2.35B and realized about $1.7B in tax benefits from previous losses. However since acquiring it has taken $1.038B in losses, which is $0.67B post-tax. There will be another write down for the lost goodwill less the value of the remaining IP that should be worth very approximately $1B. So including the $3B from Lenovo, they recouped approximately $10.4B of the initial $12.5B purchase price.

Edit: Previous version excluded cash.

29.Facebook's new optical storage solution [video] (facebook.com)
111 points by riledhel on Jan 29, 2014 | 63 comments
30.The Two Teenagers Who Run the Popular Twitter Feed @HistoryInPics (theatlantic.com)
108 points by freshfey on Jan 29, 2014 | 103 comments

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: