Show HN: Powderkeg, a realtime, synchronous, multiplayer HTML5 action game - <AUTHOR> http://powderkeg.artillery.com/ <comment><USER3> You might want to consider using client-side prediction and lag compensation.

Here's John Carmack describing how he used the aforementioned techniques to make Quake playable over the internet: <http://fabiensanglard.net/quakeSource/johnc-log.aug.htm>

Here's how Valve do it:

[https://developer.valvesoftware.com/wiki/Latency_Compensatin...](https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In- game_Protocol_Design_and_Optimization)

And here's another good article on the topic: [http://gafferongames.com/networking-for-game- programmers/wha...](http://gafferongames.com/networking-for-game- programmers/what-every-programmer-needs-to-know-about-game-networking/)

Oh, and here's one implementing it with Node / HTML5: <http://buildnewgames.com/real-time-multiplayer/>

Good luck.

<comment><AUTHOR> All good links, thanks! We are in fact using client-side prediction and lag compensation. It's extremely difficult to make a perfectly-playable action game with 500ms ping — you'd be kicked off a Quake server with that kind of lag :)

Powderkeg uses lockstep network synchronization and every client sees the same simulation (though the player you control has prediction). The network framerate is 10 FPS and the server waits 2 ticks to collect input, so anyone with more than a 200ms ping to the gameserver will have a less-than-desirable experience.

<comment><USER4> So with your lockstep I presume you're allowing the client to move instantly locally then syncing back with the server? As I'm getting some minor snapbacks (I probably have 200ms+ ping being in Australia) and usually lockstep (for RTS games anyway) doesn't have that and has input delay instead as the client waits for their moves to return from the server.

EDIT: Ah cool I see it's explained in your post: [http://blog.artillery.com/2012/10/play-powderkeg- html5-multi...](http://blog.artillery.com/2012/10/play-powderkeg- html5-multiplayer.html)

<comment><AUTHOR> Yep, the 'snapbacks' you're referring to are a product of the hinting and lag compensation. Right now the "tick lag" which controls this is 200ms — we could raise it to make gameplay smoother but then the snapbacks would be even more egregious.

</comment></comment></comment></comment><comment><AUTHOR> Thanks for the kind words and helpful feedback everyone! We appreciate it!

If you're still having trouble with Chrome or Firefox, please reply below with your browser and version, and possibly with a gist/pastebin of any console errors. Mark and I will get on it.

Regarding the lag: We match you with players based on your latency to each gameserver and the amount of time you've been waiting. If you experienced a lot of lag earlier, it might have been due to there being too few players online. However, 196 people are playing as I type this now, and hopefully there's now enough player density so you'll get matched with a lower-latency player who's nearby.

You can read more on our blog post: [http://blog.artillery.com/2012/10/play- powderkeg-html5-multi...](http://blog.artillery.com/2012/10/play-powderkeg- html5-multiplayer.html)

We're also on VentureBeat today: [http://venturebeat.com/2012/10/04/artillery- aims-to-make-web...](http://venturebeat.com/2012/10/04/artillery-aims-to-make- web-browsers-into-game-consoles-exclusive/)

Also, I'd like to thank our amazing artist, Adam deGrandis. Check out his portfolio — he's incredible: <http://www.adamdegrandis.com/portfolio/>

<3

<comment><USER5> Seems like Ghostery is causing problems on Chrome.

<comment><AUTHOR> Yep. Some of the code assumes the FB global is present, which I thought we had factored out, but apparently didn't.

</comment></comment></comment><comment><USER6> Your licenses page (<http://powderkeg.artillery.com/attribution.html>) is down and otherwise, there's no reference to Bomberman here at all.

It's a well-executed game though. Haven't found any flaws, but I can't really say it's original. Good proof-of-concept for HTML5!

<comment><AUTHOR> Whoops! Fixing that broken link now. Thanks!

</comment></comment><comment><USER7> This is a great little game. Just played a few rounds and had a blast but hit some nasty lag a few times. The basic game play is quite addictive. Nice job.

<comment><USER8> i have to ask... pun intended? i used the same wording originally, but revised after i realized what i'd said.

</comment></comment><comment><USER9> Bomberman! This is a well done clone. I wish it were a bit smoother. I died because of the lag.

</comment><comment><USER10> Another online bomberman clone with massive multiplayer from Russians: <http://bombermine.ru/>

<comment><AUTHOR> I've chatted with Ivan. He's very talented :)

</comment></comment><comment><AUTHOR> If the game doesn't load in Chrome, try using an incognito window since you're probably a Ghostery user. (Sorry, I swear I had fixed that...)

</comment><comment><USER11> I'm getting these errors in Chrome (v. 22.0.1229.79 m): Unexpected response code: 404 :1 Channel error 'BROWSER_WS_ERROR': 'undefined' __runtime.js:1 Channel 0 closed. __runtime.js:1

<comment><USER12> Exact same thing here.

<comment><AUTHOR> Are you behind a firewall or proxy?

</comment></comment></comment><comment><USER13> It gets laggy sometimes and forgets the name you chose (changes it to a color). Still very cool.

</comment><comment><USER14> Chrome user on Debian (Version 21.0.1180.89).

When I load it in a normal window and click "Find a match" nothing happens. In console:

> findMatch failed: CHANNEL_REQUEST_ERROR: 'BROWSER_WS_ERROR: > WebSocket.readyState 3 != WebSocket.OPEN'

When I try to load it in an incognito window:

> XMLHttpRequest cannot load [http://pk- > cdn.prod.artillery.com/powderkeg/21/Scenes/MainMen...](http://pk- > cdn.prod.artillery.com/powderkeg/21/Scenes/MainMenu.scene). Origin > <http://powderkeg.artillery.com> is not allowed by Access-Control-Allow- > Origin.

</comment><comment><USER15> Ah bomberman! Very cool. The game is a bit laggy for some reason for me, but still cool.

How long did it take to make the graphics/sprites?

<comment><AUTHOR> Adam, our artist, was usually blocked on us, the guys implementing feature code. I believe it he spent around 130 hours from concept to completion.

</comment></comment><comment><USER16> Great game, well done! Expecting inevitable new features - <USER2> integration, leaderboards, powerups, chat, AI....

Good luck

</comment><comment><USER17> Sweet game! It's a remake/rip of Bomberman, which is totally awesome because Bomberman is the best game ever.

</comment><comment><USER18> Anyway I can invite other players by sending them a link and not use facebook?

<comment><AUTHOR> That's been on my plate for a week, but I simply didn't get around to it. Stay tuned!

</comment></comment><comment><USER19> Unplayably laggy over here. I really wanted to like it, but it's so slow.

</comment><comment><USER20> Would you consider adding on screen controls for tablet users? I'd guess this kind of thing is a better fit for mobile than desktop, but is unusable as is under Android Chrome.

<comment><USER21> Runs like ass on my nexus 7 and galaxy nexus

</comment></comment><comment><USER22> I just went on and played against someone called G...Maybe from HN? Anyway, fun game, pretty slick. I'm loving the stuff people are doing with HTML5. Well done!

</comment><comment><USER23> I visited the site using Firefox Nightly and it said: "Powderkeg can't run on your browser. Would you mind coming back with either Google Chrome or Firefox?".

<comment><AUTHOR> You mean, something about the absolute, bleeding-edge version of Firefox causes it not to work? ;)

Kidding aside, I'll take a look. What OS?

</comment></comment><comment><USER8> wow thank you for this. haven't thought about bomberman in years and within 5 seconds i was having a great time.

lag issues ("waiting for other players") and passer-throughs are making it a bit difficult to get a game going though.

edit: this has a few crippling bugs. seems like i have the most trouble after someone leaves a game. also, this desperately needs chat, or voice chat, and a high score. thanks again this is the most fun i've had in a while.

</comment><comment><USER24> Really well done & polished. Had a few moments where the lag made it unbearable but besides that it works as expected.

</comment><comment><USER25> Extremly lagging. Let me guess, Node.js?

<comment><AUTHOR> TCP.

If you mouseover the tiny, hard-to-see lag meter in your colored square while playing a game you'll be able to see some stats about your connection.

<comment><USER26> I love this game. It is a themed copy of Hudson Soft's Bomberman game that I originally played on the SNES.

The creators have a blog entry about latency and websockets. With even a minimal amount of packetloss, TCP makes for really bad latency - <http://blog.artillery.com/2012/06/websocket-performance.html>

It's too bad we won't see any playable twitch games in the browser until there is some way to do UDP. I don't see why browsers don't just allow UDP subject to same origin policy, perhaps only on pages which serve a special "X-Allow- UDP" header.

From what I understand, the only reason browsers shy away from being able to send UDP packets is fear of DDOS. This does not seem to be an issue if packets are only sent to same host that the page is served from.

<comment><USER27> WebRTC allows for general UDP packets (in the spec at least - haven't tried it in Chrome stable) so hopefully this will be a workable solution as it gets more support.

<comment><USER26> "The Data Channel API is not implemented and its implementation is being discussed in the standards committee" <http://www.webrtc.org/faq-recent- topics>

WebRTC is currently some weird wrapper around ICE and nat traversal protocols, not something that seems useful for sending generic javascript-land ArrayBuffers or similar.

<comment><USER28> Ya this appears to be the achilles heal of WebRTC and I was extremely disappointed (but not surprised) to hear that they chose to go this route of splitting data and media instead of layering media on top of data.

All I can think of is that there might be pressure from media companies and ISPs to block the media or data components.

This has happened before - we have UDP and TCP as independent protocols instead of having TCP built on UDP. This created the mess with firewalls and NAT that we have to live with today.

<comment><USER26> uTP (micro transport protocol) is a TCP implementation based on UDP. Used by the majority of BitTorrent clients. It seems to work pretty well. It's interesting that you think TCP was a bad idea. Do you have any sources or reading material that you can share?

<comment><USER28> TCP is ok, but it has a lot of flaws with handshaking and long lag, and also is useless for things like gaming because it can't go through NAT (NAT itself is a disaster too). TCP has created an internet of second class citizens who can only download but can't upload. The worst thing is, IPv6 will repeat all the same mistakes, so I think of it as second class citizen 2.0.

If it were up to me, I would scrap the whole thing, especially the needlessly large UDP and TCP headers, and make a simpler scheme that only contains the destination IP address and maybe a small key that references metadata held in each endpoint's internal state. So the TCP protocol would only exist in each endpoint's TCP stack, not on the wire.

I don't really have any sources, but I lost two years of my life trying to write a windowed reliable transmission scheme over UDP that can punch through firewalls, basically what WebRTC is trying to do, and got thoroughly disillusioned with networking. It just never, ever, ever works 100% reliably, so you end up recreating the work that Skype did if you want a connection as reliable as TCP. I think that says a lot about the miserable state of networking today. I might get down voted for this, but I feel that what I've said is a statement of fact if you look at the hoops that P2P protocols have to go through today. That mess was never the intention of the original network architects (except for admins maintaining corporate firewalls who want their users to be second class citizens, who sadly had a hand in the NAT used in home broadband modems).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> Is it possible to reach as low ping levels with Javascript or Flash as it is with a native app like Quake?

</comment><comment><USER30> Very cute little game. Quite laggy for me. I used Chrome. Also please add Computer players at some point.

</comment><comment><USER31> All I see is a desert with a bunch of cacti? Nothing seems to be happening. Chrome Version 22.0.1229.79.

</comment><comment><USER32> I enter my name and then what? Pressing enter does nothing, no other way to proceed. Firefox.

</comment><comment> n-gauge Looks great! would you be supporting full screen support for 1366 x 768 (with no scrollbars)?

</comment><comment><USER33> I didn't have any lag. That was fun, kind of like Bomberman. Nice job!

</comment><comment><USER34> Great job. Lagged a but but it's likely my connecttion

</comment><comment><USER35> Dude, that was awesome +1 Wish there were more levels

</comment><comment><USER36> Looks great but I could not play with my azerty keyboard :p I guess for me you would map:

z : up

s : down

q : left

d : right

<comment><AUTHOR> Arrow keys should work for you, too.

</comment></comment><comment><USER37> Unplayable ("Waiting for other players").

</comment><comment><USER38> Unfortunately does not work with IE 10

</comment><comment><USER39> Nice, just beat someone named DJ.

</comment><comment><USER40> Congrats you guys :-)

</comment><comment><USER41> yup yup good game. very fun. good job.

</comment><comment><USER42> The graphics are very nice and felt professional. However, I don't think you're doing enough of the game logic client-side. I saw very noticeable glitches constantly, to the point where the game is unplayable for me. Even if some packets don't get through, you should continue to animate smoothly. Even when walking across the map, my character was glitching out-- moving a step or two, then getting stuck, then teleporting a few spaces forward, then getting stuck again, etc.

One of the starcraft devs posted a blog entry here that should be instructive-- sorry, I lost the link, but it might still be reachable from the front page. Basically, you need to do as much as possible on the client side, even when packets are not going through, to make the interface feel responsive.

The issue might also be exacerbated by a simple lack of bandwidth, or maybe some problem with HTML5 (I admit, I am not that familiar with HTML5 as a dev environment.)

<http://bombermine.ru>, on the other hand, was as smooth as butter for me. So I don't think the problem is insurmountable. Anyway, don't give up, I'm sure you can fix it! You probably should create some kind of test environment where packets are artificially delayed-- perhaps there is an iptables incantation in Linux that can do it for you.

</comment><comment><USER43> Nice game, no complaints at all. I can see myself wasting a few hours at this. :-)

</comment><comment><USER44> That is amazing.

That said, after the first game it was very laggy.</comment>


Show HN: Hibiki, an elegant wearable communicator for your family - <AUTHOR> https://gethibiki.quickmvp.com/

<comment><USER2> Do you have a demo video or anything that shows a bit more about what Hibiki does?</comment>


New York City Has a Y2K-Like Problem - <AUTHOR> https://www.nytimes.com/2019/04/10/nyregion/nyc-gps-wireless.html <comment><USER2> As per the end of the article, the system was brought online in 2008. So some of the components may have been manufactured in 2005/2006\. Might not be much of a defense, though.</comment>


Philipp Lenssen's work - <AUTHOR> http://outer-court.com/

<comment><AUTHOR> I find this fascinating, how can 1 guy be so productive?</comment>


The quirks of JavaScript - <AUTHOR> http://doppnet.com/2012/07/the-quirks-of-javascript/

<comment><USER2> As someone who has only had a cursory learning of JavaScript, I predicted correctly. The concept of overriding is known to me, although it's clearly in a slightly different context here and that 010 is 8 in octal I knew since I learned C.

I gather that JavaScript has a lot of quirks (eg: '==' vs '===' if I'm not mistaken) but I don't feel like these are too.</comment>


Twitter migrates data to Google Cloud - <AUTHOR> https://cloud.google.com/twitter/ <comment><USER4> Disclosure: I work at Google Cloud (and directly with Derek and the Twitter team).

I'll try to edit this page tomorrow when I'm at a computer, but there's much more information in Derek's talk at NEXT [1]. They (rightfully) didn't want to get into a detailed "this is what we saw on <X>", but Derek alludes to their careful benchmarking across providers.

While you should always assume smart people make economically reasonable decisions, Derek's point about savings is about list price differences that result from total system performance (and not any sort of special discounting). I'm hoping a follow-up talk will let us say more about how the migration is going, while this talk was focused on the decision to move part of (!) their Hadoop environment to GCP.

[1] [https://m.youtube.com/watch?v=4FLFcWgZdo4](https://m.youtube.com/watch?v=4FLFcWgZdo4)

<comment><USER5> FWIW I'm not a big cloud fan, but I was tasked with the obligation of finding the "least worst" cloud provider in terms of predictable throughout and total cost (inc dev/ops time) and GCP came out as a clear winner despite heavy financial incentives from both Azure and AWS. (We're a very large corp).

Due to our new allegiance to google cloud I've been given a little more privileged access to engineers (after the fact) and I can tell that I definitely made the right choice, the people I spoke to favoured having a clean/clear backend with actual quality of life features; but since they don't go nicely into feature comparison charts people often think that GCP is less mature or featureful.

I'm a real convert, and our company uses all three of the big cloud providers in some fashion- but my team only deals with GCP and we've had the least headaches.

What I'm trying to say is: you guys are doing great. I'm really happy with the product for my use-cases.

<comment><USER6> In what way(s) do you find GCP better than AWS? My company was using both for a while but has migrated more towards AWS lately. But I'm just learning my way around cloud development now so I don't have insight into the major differences between providers.

<comment><USER7> GCP has the fastest, simplest, and cheapest primitives for building. Organization and project hierarchy combined with IAM permissions (integrated with G Suite if you use it) make security and access easy. Every project has its own namespace and can be transferred to different owners or billed separately.

VMs don't have a mess of instance types, just standard but customizable cpu/ram with any disks and local SSDs attached. Live-migrated, billed to the second, and automatically grouped per cpu/ram increments for billing discounts.

Networking is 2gbps/core upto 16gpbs/instance with low latency and high throughput regardless of zone and doesn't need placement groups. VPCs are globally connected and can be peered and shared easily across projects so that it's maintained in one place across multiple teams. Fast global load balancing with a single IP across many protocols and immediate scaling.

Storage is fast with uncapped bandwidth and has strongly consistent listings. BigQuery, BigTable and lots of other services have "no-ops" so there's no overhead other than getting your work done. Support is also flat rate and not a ripoff percentage.

The major downsides to GCP are the lack of managed services, limited and outdated versions for what they do offer, poor documentation and broken SDKs, and dealing with the opinionated approach of their core in-house products. This usually means as a startup that you are more productive on AWS or Azure because you can get going in a few clicks with a vast ecosystem, while GCP is a better home for larger companies that have everything built and just need strong core offerings with operational simplicity.

<comment><USER8> Your reasoning and the conclusion resonates a lot with my own findings for a project that we tried to bootstrap. GCP's GKE and Istio integration are becoming more compelling to consider them for containerized workloads. EKS isn't quite there. One of the things we are struggling with is finding a qualified partner who can help us build our new project on GCP. We don't have a mature infrastructure team and while we try to bootstrap one, we would like to rely on partners to help us move the needle. Even partners in GCP premier list don't have case studies of migrating monoliths to GCP. Most of them talk about GSuite migration which isn't quite the same. AWS wins this battle. They have far more mature partners with better track record and thought leadership. I wonder if you see this the same way. Maybe partnership is not crucial for you? Some insights from the community would help.

<comment><USER7> Yes. AWS biggest advantage now is the giant marketplace of vendors and partners so you can get help and managed services for just about anything.

In my experience, most startups just want managed options they can run themselves rather than engaging partners but if that's what you need then AWS will have more companies to offer, although GCP does have qualified partners. I recommend contacting one of the GCP developer advocates either in this thread or on twitter for help, or email me separately and I'll put you in touch.

Also I havent worked with them but [https://shinesolutions.com/](https://shinesolutions.com/) has put out plenty of articles and case studies that seems to show they're pretty capable, that might work for you.

<comment><USER9> Just curious, Which support tier you are using from GCP?

For an early stage startup/Indie developer, GCP support model is not appeasing. $100 Per user for development role is unacceptable. (at least to us, the stage where we are now)

<comment><USER7> We use the production roles but you don't have to signup every single person, just those who file tickets and interact with support.

If you're very early then you can also try the older support pricing: [https://cloud.google.com/support/premium/](https://cloud.google.com/support/premium/)

If that's still too expensive then you can probably rely on the free support and forums until you have more spend and revenue.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Reading most comments here I feel like nobody wants to give a tiny bit of credit to either Twitter or Google, which I find disenchanting.

It is true that any cloud provider would get good publicity by being able to say that Twitter runs on their cloud, but that is precisely the same reason why we shouldn't just shrug this off as a publicity/business decision, because just like Google might have tried to persuade Twitter other cloud providers will most certainly have tried their best too. If Twitter still went with GCP then I think it is only fair to assume that there must have been some real advantage in going with GCP. I don't think anyone who says this must have been a pure business decision is entirely honest with themselves, because a cloud which cannot handle Twitter's volume is no good even if it was entirely for free.

I have nothing to do with Twitter (actually don't even like Twitter because it is such a toxic social media platform) and I don't like many things which Google does, but as an engineer myself I can only say that after using Azure, AWS and GCP for many years in a commercial setting that GCP is indeed years ahead. The quality, speed and reliability of GCP is second to none from my experience and I honestly couldn't say the same about AWS and especially not at all about Azure.

<comment><USER11> I'm not worried about GCP's quality or technical merits.

Google's management is what scares me. I'd never build a business around a company with so little follow-through, commitment to product longevity, or focus.

</comment></comment><comment><USER12> The scale of these megacorps is crazy! I wonder how you even plan to move that much data. I know that Amazon has a service called Snowmobile for stuff like this. They probably did something similar here.

"You can transfer up to 100PB per Snowmobile, a 45-foot long rugged sized shipping container, pulled by a semi-trailer truck."

[https://www.youtube.com/watch?v=8vQmTZTq7nw](https://www.youtube.com/watch?v=8vQmTZTq7nw)

<comment><USER13> This is Derek, from the video. Sorry I am just joing the conversation mow.

For this use case, we setup 800 Gbps of interconnect with Google.

<comment><USER14> So at 300PB it took about a month to transfer? Sounds like an interesting project in itself.

<comment><USER13> Yeah! We'll be operating in a hybrid model steady-state, so the links aren't just for the one-time copy.

<comment><USER15> That's insane.

With the interconnect being faster than the network cards by several orders of magnitude (I assume unless there is special hardware), how is it structured to utilize all of the 800Gbps?

<comment><USER13> We are using dedicated clusters to push data over the links.

A member of our team proposed a session for Google NEXT '19 that goes into the architecture we are using in a lot more depth. We're waiting to see if that talk is accepted or not, but in any case we're planning to share more soon.

</comment></comment></comment></comment></comment></comment><comment><USER16> Is there anything new here? Twitter announced this move back in May of last year: [https://blog.twitter.com/engineering/en_us/topics/infrastruc...](https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/a-new- collaboration-with-google-cloud.html)

The video linked on the page is also from last August: [https://www.youtube.com/watch?v=T1zjmNAuMjs](https://www.youtube.com/watch?v=T1zjmNAuMjs)

Throw a 2018 tag on this?

</comment><comment><USER17> Correct me if I'm wrong, but this doesn't say _what_ Twitter moved to the cloud. It could be literally anything, and may not in fact be core tweet or user data.

This strikes me as a team (or teams) outgrowing the storage options that were offered internally and choosing to outsource to fit their needs. Isolated use for one business case, and not indicative of a broad movement to the cloud on the part of the whole org.

I could be wrong, of course.

I'd like to know more. And I'd certainly like to know what the engineers at Twitter think.

<comment><USER18> You are not wrong. The message here is that whatever data was transferred, Google was able to handle hundreds of petabytes of data. It could just be billions of photos of cats

<comment><USER19> billions photos of cats is invaluable data, mind you

<comment><USER20> Well Twitter is now part of the official White House record, isn't it?

</comment></comment></comment></comment><comment><USER21> The next global Twitter downtime?

Their credit card failed at Google Payments, acc gets marked for fraud and no one in support can help them recover. Twitter is gone for good.

<comment><USER22> This has long been fixed.

<comment><USER23> Every few weeks there's a story about something in Google's automated machinery failing a customer with no recourse except to post an angry blog/twitter/hackernews note and hope it get's noticed. The core issue (bad and powerless customer service) isn't fixed and all that changes is the particular way it may bite you.

<comment><USER24> When you're Twitter sized, that was never a problem to begin with. For mere mortals, that continues to be a problem.

</comment></comment></comment></comment><comment><USER25> I've scoured the comments and article, but I might have missed it... What did Twitter migrate _from_?? Did they have their own data centre before moving to Google Cloud?

<comment> joatmon-snoo Yep.

[https://www.datacenterknowledge.com/archives/2015/07/13/cust...](https://www.datacenterknowledge.com/archives/2015/07/13/custom- servers-process-tweets-in-twitter-data-centers)

<comment><USER26> Another step backward for the decentralisation of the Internet... not that Twitter was decentralised in the first place, but it's unsettling to see Google taking over more and more of the "big pieces" of Internet.

<comment><USER27> Funnily enough, Twitter and Google were/are neighbors in a QTS datacenter in Atlanta.

<comment> forgot-my-pw Just moving across the street then? It's probably the fastest data transfer ever by physically moving all the hard drives!

</comment></comment></comment></comment></comment><comment><USER28> Any inside stories on what twitter discovered when they benchmarked Google with other providers. I imagine they must have done a very exhaustive evaluation

<comment><USER29> Or, Google thought the publicity was worth a gigantic discount.

(EDIT: The provided quote from a Twitter employee hints at this directly: "the savings")

<comment><USER30> Google may be playing the long game. I've seen an effect on my team after moving from physical hardware and centralized capacity provisioning to GCP with immediate gratification hardware. It's easier to spend money so we ask for more stuff more often.

<comment><USER31> it is The Jevons paradox [1]. I have seen it as well happening when I migrated a client from a standard cloud architecture to a serverless architecture.

>>> In economics, the Jevons paradox (sometimes Jevons effect) occurs when technological progress or government policy increases the efficiency with which a resource is used (reducing the amount necessary for any one use), but the rate of consumption of that resource rises due to increasing demand.

[1] [https://en.wikipedia.org/wiki/Jevons_paradox](https://en.wikipedia.org/wiki/Jevons_paradox)

</comment></comment></comment></comment><comment><USER32> Well hopefully google does not decide to abandon google cloud :)

<comment><USER33> Hopefully Google doesn't abandon search!

<comment><USER34> Search+Ads:Google Windows+Office:microsoft

Those are the sacred cows.

<comment><USER35> Microsoft has been hacking off bits of dependency on Windows these days in order to push and support their cloud business, to the point I would argue Microsoft is aggressively trying to push people off of Windows+Office and onto Azure+365. Microsoft would far rather you use Linux on their cloud platform over having you use Windows literally anywhere else.

I don't think Windows counts as a sacred cow anymore at Microsoft.

</comment></comment></comment></comment><comment><USER36> Huge win for Google. I hope this helps Twitter focus on features and not firefighting infrastructure issues.

<comment><USER37> Does Twitter need more features? Perhaps they could focus more on customer support and moderation.

<comment><USER36> A downvote button would be nice. The ability to edit a tweet would also be nice. It's 2019 after all, and we can edit things on other platforms. But yes, moderation would be great. Maybe they can leverage Google's machine learning hardware and smarts.

</comment></comment></comment><comment><USER38> Just makes the eventual Google acquisition one bit easier.

<comment><USER39> What would Google gain from the acquisition that they don't already have?

AFAIK Twitter allows search indexing and is already a publisher on their network.

<comment><USER40> They don't provide their realtime firehose for free, though.

<comment><USER39> Surely that cost isn't anywhere near $24B, which is the market cap for Twitter.

<comment><USER40> For 24B, you get Twitter (an asset), plus its Firehose. I was mostly pointing at then Twitter has data that google does not.

</comment></comment></comment></comment></comment><comment><USER41> Hun. I was under impression that at higher scale of operations building your own cloud is more economical. I guess money is not an issue for Twitter.

<comment><USER42> They are moving batch jobs to GCP. Because there probably the occasional burst loads and the often underutilized capacity makes using a flexible compute fabric (aka cloud provider) a better choice.

If they are moving everything, well, Netflix did that too. Maybe opportunity cost, maybe having your engineers work on your core product instead of running VMs is cheaper altogether.

<comment><USER43> Much of Netflix's spend would presumably be on CDNs, which they run themselves not on AWS.

<comment><USER44> uh correct me if I'm wrong but all CDN's that Netflix purchases also need to have a large storage cache backing them right? Meaning each CDN Netflix uses for local caching also requires a colocated datastore to circumvent their centralized-bandwidth issue.

<comment><USER45> You're not wrong per se but Netflix takes a similar route to Google Global Cache in that they provide the hardware and place it inside the networks of other ISPs etc etc. So it's a CDN in the sense its a distributed content delivery network but not in the sense that they just use large traditional CDN providers.

Netflix provides massive storage boxes to ISPs that serve content from within the network of the ISP the user is connecting from. This can save the ISP a lot of external traffic so they generally want to do this to save costs and meet customer demands. YouTube does a similar thing.

They call it OpenConnect:

[https://openconnect.netflix.com/en_gb/](https://openconnect.netflix.com/en_gb/)

</comment></comment></comment></comment></comment><comment><USER44> side note, if you want to know why distributed infrastructure engineering has been the place to be recently, think about the fact that engineers making $200-500k/year are making decisions that can save big corporations $1-5mm per year in compute/storage costs

</comment><comment><USER46> The issue with GCP and with Google in general is support. I'm certain that's not an issue for Twitter as there are probably multiple people on call just for the Twitter deal. But it might mislead the average company down a bad path believing there is decent support with GCP. Any custom issues (like billing) and it's a headache dealing with Google.

</comment><comment><USER47> What Twitter is paying for and the level of service they receive from Google, is very different from the typical GCP pricing and service level that would be available for say, your company...

Realistically, it can't be considered as the same service, can it?

</comment><comment><USER48> One thing to remember with the benchmarks is that when evaluating a cloud provider, the benchmarks are useless if talked about with absolute numbers or with regards to hardware specs. Because they're so horizontally scalable, it's more a question of average cost per compute operation or cost per (peta) byte.

Both AWS and Google clouds are perfectly capable of running Twitter, and running any software that Twitter uses, even if the number of machines is different. The only "benchmark" applicable is actually the total _negotiated_ cost of the machines required to get the job done.

So it's not about being able to do things on Google cloud with fewer processors or less RAM or faster hard drives - Google was willing to give them a lower total cost of ownership for reasons known only to Google.

Do not assume that Google (or anybody else) will give you a similar preferential deal. Ignore the "benchmarks".

<comment><USER49> I don't think it's purely a measure of cost per compute operation. That assumes you would run the same software on any cloud using plain VMs or a service that slightly abstracts them. That may be true in this case since Twitter will continue to use Hadoop/Spark, but sometimes you can get a real advantage from switching to a service that only one cloud provider offers. For instance, someone in these comments pointed out that Twitter already migrated their anayltics workload to BigQuery. Evaluating BigQuery vs Redshift vs something else is not as clear cut as cost per compute operation.

</comment></comment><comment><USER50> How are they gonna move all that 300 pb of data to Google's data center? A fleet of semitrailer trucks?

<comment><USER51> For instance AWS has 50 Terabytes devices that they ship from your own data center to their data center: [https://aws.amazon.com/snowball/](https://aws.amazon.com/snowball/)

<comment><USER52> They also have the 100PB Snowmobile.

[https://aws.amazon.com/snowmobile/](https://aws.amazon.com/snowmobile/)

</comment></comment></comment><comment><USER53> I'm curious what happens to everyone at Twitter who was employed in managing their old data centre.

<comment><USER54> Well I'm sure they still have amazing career prospects just based on their resumes.

<comment><USER53> Sure, but what's the actual process for dealing with them? Will they be let go in small batches as the infrastructure moves over to GCP, or what?

</comment></comment></comment><comment><USER55> So what will happen to the small Cloud team in NY? I thought they were developing their own dc.

</comment><comment><USER56> This really makes me wonder if Twitter finally made up their mind who they will merge with.

<comment><USER57> I too was thinking this, does this mean a future acquisition is not out of the question? Frankly, I find a Google owned Twitter to be a terrifying prospect. Not that Jack is doing a great job there...but I'd much rather they be owned by multiple companies in a partnership than by one company. Twitter, imo, is far far more powerful than Facebook in driving world events given the leadership and journalists on the platform.

</comment></comment><comment><USER58> I think by this announcement, it is probably safe to say, even at the size of Twitter, it is probably still more economical to handle your operations to bigger players.

Hosting your own infrastructure makes less and less sense going forward, the cloud is the new king now.

<comment><USER59> Probably not safe to conclude anything. Twitter has very different requirements than something like a bank, an insurance company, an auto manufacturer, etc.

</comment></comment><comment><USER60> More beneficial for Google I believe.

</comment><comment><USER61> I know my comment won't move this discussion forward in any fashion, but I have to ask anyway.

What was this data, and why did they feel they needed to keep it?

I mean - 300PB is nothing to sneeze at. I can understand wanting to keep important data around (IP, for instance, or recent server logs for the last 30 days or even a year) - but this amount seems to go well beyond that.

In fact, it almost seems like they have stored every single tweet ever written. In addition to probably all of their logs, and who knows what else.

Why are they keeping all of that information? If it is all the tweets ever written - they don't have copyright to it, so such information wouldn't belong to them...

I'm not a big twitter user - can I search for a tweet on their system that I (or someone else) made say...5 years ago or longer? If this is a bunch of tweets - is that why they keep them around?

Are people in general aware of this? That is - if they are tweets - <USER2> Twitter has stored all of them, forever and ever, and that they are all still accessible (if not by the general public, then by law enforcement at the very least)?

If they are tweets - do users have any recourse at being able to remove those tweets (aside from those that they likely are legally bound to keep - I am thinking of the current POTUS's tweets, for instance)?

What is the ultimate purpose behind keeping all of that data? Even if it wasn't a bunch of tweets, whatever it is can't really be that useful otherwise, except for maybe the most recent stuff created in the past year, at best. Things like that - logs, etc - might be destined for a rotated "cold storage" and would ultimately "age out". Accounting records (financial data, etc) probably isn't that great a percentage of the data (if at all?) - <USER3> whatever was there, too, would likely need to be saved for a greater range - but even there maybe only 10-15 years worth (and it certainly wouldn't even comprise a fraction of the bulk).

So what is it? Why is it being kept? To what purpose? While 300PB isn't that great of an amount in physical terms (that is, the storage medium probably doesn't take up a great amount of space in a datacenter), it still isn't anything tiny, either (especially depending on what medium was used - I mean, I doubt they are storing it all on a ton of 256GB microSD cards - though that does bring up an interesting idea/thought to mind - but I digress).

I'm of the thought that companies shouldn't just "throw away" data - but it should be tempered by "importance to humanity over time". Not everything should be kept - but, for instance, it would have been nice if we (humanity) had kept around the original transmissions from the surface of the moon, or the blueprints to the rocket that took humans there. But we probably don't need all the various interoffice memoranda and fluff at the various NASA contractors (we probably don't need the accounting records - but BOMs might be useful).

That's just a couple of examples I can think of off the top of my head, but history is rife with instances of companies imploding or being bought out or restructured in such a manner that data is just "destroyed" instead of kept. Or lost, or otherwise made unretrievable to humanity.

Here with Twitter - an active company to be sure - we have the seemingly exact opposite - almost like r/datahoarders were in charge.

...and that should concern people a bit, regardless of which company it is - but especially a company like Twitter.

<comment><USER62> I think the vast majority of people would expect Twitter to keep all the tweets they've made...

</comment></comment><comment><USER63> This feels like marketing material. Twitter jumped over to GCC because of the offer they received.

<comment><USER64> The first clue was that the news was being hosted on [https://cloud.google.com/](https://cloud.google.com/)

</comment></comment><comment><USER65> Next step - acquire twitter?

<comment><USER11> I definitely wonder if Twitter's management considered this. Any price for Twitter goes down by at least a few million if no major cloud migration is necessary.

That said, a few million is a rounding error on a price Google would pay for Twitter.

</comment></comment><comment><USER66> wow. talk about "loss of service challenges".

</comment><comment><USER67> [Removed]

<comment><USER68> LOL

</comment></comment><comment><USER69> I have had a hard time dealing with twitter engineering since the account activity API debacle.</comment>


How to write documentation for a Rust crate - <AUTHOR> https://blog.guillaume-gomez.fr/articles/2020-03-12+Guide+on+how+to+write+documentation+for+a+Rust+crate <comment><USER2> Well, I guess the most important part of docs is ... examples! Give your users examples, from which they can derive, how to use parts of your library. Those examples also better be explained in natural language as well and not just somewhere in a git repo, so that the user does not need to build a mental model of the ideas of your library first, before being able to understand your examples. Oh and did I mention diagrams would help? As a professional group, we truly suck at documenting things properly.

Many people think, that docs are done once they auto-generated API docs from source code. They are not. That's not something that deserves the name "documentation". Auto-generated API docs are among the last things to turn to, when there is nothing else around or when you already understood the ideas of the library and only need to look up a name of something. That's not only true for Rust, but also for other languages.

<comment><USER3> Examples are the most important part of you docs _sometimes_. There are at least two reasons for visiting docs:

* Want to understand generally how to use a new concept, typically at the class level (or more trickily at the two-or-three-classes level), e.g. how do I create a thread?

* Already familiar with the concept but want to do something specific, typically at the method level, e.g. how to test whether a string starts with a particular prefix?

There was a good post on Hackers News a few months ago breaking down documentation visitors into four categories, so there's at least two more.

I think examples are very important in the first case, typically you want an example led-approach to explaining new concepts. But examples are a lot less important for method-level questions, and are often (not always) totally redundant if you have really clear and precise information about the method and its parameters.

Edit: But just to be clear, I agree that examples are really important and you should definitely put them in your docs (at the class level and above).

Edit 2: Here's the article [1] and HN dicussion [2]. In that terminology, I was distinguishing "explanation" and "reference". The other two types are "tutorial" and "how-to guide".

[1] [https://web.archive.org/web/20200312211539/https://www.divio...](https://web.archive.org/web/20200312211539/https://www.divio.com/blog/documentation/)

[2] [https://news.ycombinator.com/item?id=21289832](https://news.ycombinator.com/item?id=21289832)

</comment></comment><comment><USER4> I don't know why the experience for the current top commenter has been so poor, but I absolutely love Rust docs, and it never takes me more than a few seconds on the website to find what I am looking for. Perhaps navigating just takes a little getting used to.

If something doesn't make sense to me I can straight away jump into the source code and make sense of it, from a single click.

I have learned so much about programming just reading the docs for the standard library, or it's source code. The documentation is one of my favourite things about it the language.

<comment><USER5> > I don't know why the experience for the current top commenter

Meta: the experience for readers of your comment would be much better if you'd chosen to _reply_ to that not-now-currently top commenter.

I think almost certainly it was this: [https://news.ycombinator.com/item?id=22636726](https://news.ycombinator.com/item?id=22636726)

But that may not be clear at all to later readers if there are many comments here.

</comment></comment><comment><USER6> Why does the rust documentation still suck? It basically only works if you already know what you ate looking for, and still is difficult to read.

Compare the string pages.

Rust: [https://doc.rust- lang.org/std/string/struct.String.html](https://doc.rust- lang.org/std/string/struct.String.html)

Java: [https://docs.oracle.com/en/java/javase/11/docs/api/java.base...](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)

C++: [https://en.cppreference.com/w/cpp/string/basic_string](https://en.cppreference.com/w/cpp/string/basic_string)

Yes, the cop page probably has some bespoke work on the page, but it still demonstrates ideas that are partially auto generated (and most of that page is auto generated).

* the method and functions aren't sectioned in any useful way. Just a list of functions (solved by adding section and subsection to the doc comments). Methods that create, search, mutate, test, transform, etc should be sectioned off.

* no use of alignment, just blobs of text

* poor use of color. Both java and cpp use color to break up sections and alignment to distinguish different parts of the signature. Rust is just a page of text that is very difficult to scan.

* no summary. Cpp summarizes the group of method before clicking b through to individual listings, while java summarizes each method at the top. This is useful for searching in a page. Rust is once again just a block of text.

* rust also has a unique issue in how to organize traits and other rust specific constructs. It really should have figured this out by now.

I can keep going on the uselessness of the rust docs, and I say this as someone who was involved in the language in the past, and give it a new shot about once a year. But the docs have always sucked compared to other languages.

<comment><USER7> So, I disagree that it "sucks," but what I will say is this: rustdoc has basically been maintained by one or two people over the last ~5 years. It is very hard to contribute to, because it has to use the compiler itself to actually generate the documentation. This means that changing it means changing the compiler, which means a long development cycle. Additionally, this also means working on it isn't really like working on a normal web app. We've tried to get folks to contribute, but they all bounce off. So this means that any improvements we would like to do are really difficult, and there's not a lot of help.

I am hoping that the rust-analyzer work lets us completely fix this, in the same way I was hoping the rls would before, but it's just not ready yet.

<comment><USER6> > This means that changing it means changing the compiler,

Wow. What a terrible decision. I'm quite surprised that people actually agreed to that.

I originally said it was shit but I toned it down a little. The information isn't bad, just too difficult to find if you don't already know exactly what you are looking for. You work on rust core so I don't think you are the best person to judge.

The good part is this can mostly be solved by better formatting and adding a top one-one summary section that groups similar functions and traits (creation, mutation, lookup, etc). With just that you could even convince me to ignore the terrible formatting in the lower section.

The general take away is that the docs are too difficult to scan and if you don't already know something exists and its name, the docs aren't very useful.

<comment><USER7> > Wow. What a terrible decision. I'm quite surprised that people actually > agreed to that.

It's not really possible in any other way. Building API docs is a compilation process, from source code to HTML. You either use the compiler, or re- implement parts of it. The latter makes for interesting bug possibilities.

</comment></comment></comment></comment><comment><USER8> I want to thank the rust team- they are extremely dedicated people taking care of the smallest details and giving a compiler and related infrastructure for free. Everyone on the team I've interacted with are amazingly kind and helpful people.

I wish the Reddit community was less of a cancer but I guess it's not the team that's responsible, and also it's reddit after all!

</comment><comment><USER9> +1 to the code examples. Rust's type systems tells you a lot on its own about what you can and cannot do, but it's often unclear as to what you _should_ do. Which struct should I be starting with? Should I be constructing Foo directly or though a utility function provided in a different module? Which of these modules has what I need to do what I came here to do, as opposed to advanced/optional features that most people won't care about?

Even just a single example of the most common use-case does wonders for usability. Even if it's not quite what you need, it tells you about the conventions and gives you things you can maybe swap out with other things in the crate as needed.

</comment><comment><USER10> One of my personal pet peeves is when library examples don't actually work anymore due to API changes (or typos).

There's actually a really great solution in the Rust ecosystem that I would love to see used more widely - Skeptic [0]. It's a tool that parses markdown, finds Rust and builds it as an auto-generated test. If the example is no longer valid, it breaks your build.

[0] - [https://github.com/budziq/rust-skeptic](https://github.com/budziq/rust- skeptic)

<comment><USER7> So, to be clear, skeptic helps with extra markdown files you've written. Rustdoc will already do this with every example you write in your API documentation. It's very good though! (mdbook has a similar feature)

<comment><USER10> Good point - thanks for calling it out!

</comment></comment></comment><comment><USER11> I wish there was something similar to the Haskell Haddock ([https://www.haskell.org/haddock/](https://www.haskell.org/haddock/)) for Rust.

Something that would automatically generate the signatures and modules entry points/data types. These seem to be very neglected and generally hard to keep up-to-date in the Rust ecosystem.

<comment><USER12> I am not familiar with Haddock, as I've barely touched Haskell, but I do write a fair bit of Rust.

Perhaps I am reading your comment wrong, but:

\- Generated Rust crate docs include signatures for all of their public functions, and

\- Generated Rust crate docs include public enums, public fields of public structs, etc

</comment></comment><comment><USER13> Does rust-doc make a distinction between a user guide and a reference? A user guide is basically a book that goes over all the general features of the library. A reference provides information about the API of the library.

<comment><USER7> So, the terminology I've used since around 2013:

* API documentation: stuff like "type signatures"

* Reference documentation: the specification of the language

* Tutorials: long-form text that explains things

I gave a talk about the Bay Area Rust Meetup about this, but it seems like maybe it's lost to history :(

Anyway, rustdoc makes this distinction in a sense because it only provides API documentation, which I believe is what you're calling "reference" documentation. mdbook provides the longer form factor.

Most libraries don't have a language spec, since they're not a language, so they have categories one and three.</comment></comment>


Ask HN: Should you give unsolicited advise? - <AUTHOR> As I have become a more senior developer and started to manage, mentor and influence junior devs, I often wonder whether you should only give advice or information when asked or whether you should offer (unsolicited) advise.
This also extend for scenarios like being in an "all-hands" meeting and you see something you might know or think it won't work in another department (sales for example). Should you jump in and give your opinion?
Specially when you join a new company, sometimes it could be useful to show you do have knowledge but often you end up in a unidirectional conversation with a junior dev or not making any friends in the sales team.
So how do you handle this balance professionally (and personally)? Do you give unsolicited advise? <comment><USER2> How about asking each time whether they'd be interested in your input?</comment>


Unreal Engine 4 Roadmap - <AUTHOR> https://trello.com/b/gHooNW9I/ue4-roadmap

<comment><USER2> Damn, Epic has been totally kicking ass lately. They're doing so many cool things that it's really hard not to root for them.

</comment><comment><USER3> What they really need is continuous integration and XXXXX tests. 4.1 just shipped, can't load a saved project on OSX. How does that happen? No tests, that's how

</comment><comment><USER4> Always enjoy seeing others Trello boards to compare to my own Trello workflow, and way cool that these folks have released their roadmap to the world in a relatively detailed manner.

</comment><comment><AUTHOR> Always dreamed of native Linux editor which will be reality in a couple of months :)</comment>


When did the web get do damn complicated? - <AUTHOR> http://blog.27percent.co/post/46251368271/when-did-the-web-get-do-damn-complicated

<comment><USER2> Great Article. I highly agree. It seems like that all web-related technologies doesn't make our lives easier. Sass, Less, Compass, Rails, Git, Capistrano, Ajax, Rest, ... the list goes on and on.

I wrote a blog post about a similar topic. All these technologies are supposed to make our live easier to produce better products but learning these technologies takes time and therefor money.

But learning all these tools and master them seems impossible. So you have to choose between mastery in a few areas or mediocrity in all.

The question is: Is good enough? <http://sebastian-rupp.com/is-good-enough/>

</comment><comment><USER3> I am thinking you made a typo with the headline "...get do damn complicated . . ." where "do" wants to be "to".

But in reading the article, this potential typo shows up twice more there.</comment>


Ask HN: How do you browse HN without JavaScript - <AUTHOR> I really like HN on mobile for its speed and full functionality without JS. But things get ugly once you click a link. Do you have a trick for that ? An HN proxy that would link to non-js version of websites ? A mobile browser that lets you quickly turn js back on when a site seems broken ? I guess there's a way to browse the web without painfull ads, newletter popups & co. <comment><USER2> I use Naked Browser with the JS blocking option on, and there is a quick-set button to load the JS if needed.

(Naked Browser also lets me block 3rd party cookies and use adblock blacklists)</comment>


A "life-changing" invention from the West Bank - <AUTHOR> http://www.youtube.com/watch?v=bUO0OGOQ6Zk

<comment><USER2> tl;dw a cane for blind people using two proximity sensors to warn the user of obstructions or pitfalls, from 3 14-yo girls in a Palestinian high school. They're now in CA participating in an Intel-sponsored science fair.

Wow - an impressive and clever hack, leveraging cheap, simple technology in an easy-to-use design for a really worthwhile purpose - one that will benefit blind people worldwide, and from high-schoolers, no less. So much bad news comes out of the Middle East that it's heartening to hear of science being applied to such constructive ends.

</comment><comment><USER3> I saw this demoed by Cambridge Consultants nearly 10 years ago. Let's hope these kids get it to market where it can actually be used by people.

Cambridge Consultants' press release about their "bat cane": <http://www.cambridgeconsultants.com/news_pr58.html>

<comment><USER4> Man, I have to say that "Batcane" sounds like one of the worst product names I've ever heard of...

</comment></comment><comment><USER5> You could expand the forward sensor to multiples, for doorways or people, say; have a few, say, 5, or 3 at different horizontal forward angles, with corresponding vibrators or a sequence of audible beeps (low, non-annoying when nothing is present). The user would learn to map these vibrations / beeps to the real world, as shown by that guy with the belt of cellphone buzzers a couple of years ago.

</comment><comment><USER6> I am soo surprised by this invention not hitting the market years ago. It surprises me to the fact that we still used just basic sticks for the blind. We are trying to fix their biological conditions, but never have we tried to just make it easier for them to get around while they wait for the biological part...

<comment><USER7> A good friend of mine is blind. I think it has not made it to market because it's an over-engineered solution that doesn't solve the problem better. Most blind people would say 'Why the hell would I want a buzzer on a heavy cane?'. It buzzes when I am near a stair (aka all day long). Or it buzzes when it hit a step... like it does now when I hit it!

Great story, neat solution, not market viable.

</comment></comment><comment><USER8> Here's an idea. Add some spinning gyros in the handle (spinning perpendicular to the ground). Picture holding a bike wheel...

Then when the sensors detect an object the axis of the gyro tilt so that it cause the cane to move in the opposite direction of the object. This way you can "feel" objects as opposed to hear them.

Amen?

<comment><USER9> Gyros + batteries = heavy

<comment><USER10> Actually, MEMS gyros (~3-4v power requirement) with NiMh batteries (~8.4v) might work. Just mount batteries near the handle.

<comment><USER11> He's not suggesting using the hydro to detect position. He's suggesting using it for force feedback.

</comment></comment></comment></comment><comment><USER12> The hand-drawn periodic table in the background is sad.

Cheers for the girls, hope they make it to the prize.

<comment><USER13> I Feel like the periodic table in the background is great, not being produced on a mass scale doesn't reduce its value.

<comment><USER14> But it also speaks to the access to education those in the West Bank have compared to ALL their neighbours.

<comment><USER15> Actually Palestinians have the highest literacy rate of any Arab nationals: <http://middleeast.about.com/od/middleeast101/a/me090425b.htm>

Good on them, in any case. We need more of that in the Middle East.

<comment><USER16> Both of you are agreeing with each other.

</comment></comment></comment></comment></comment><comment><USER17> Something similar was patented in 1991: [http://www.google.com/patents/about?id=ggQqAAAAEBAJ&dq=5...](http://www.google.com/patents/about?id=ggQqAAAAEBAJ&dq=5097856)

Got the link from Reddit.

</comment><comment><USER18> A local high-school science program did this a few years ago as well, for an MIT sponsored challenge. Came up with the same basic idea.

</comment><comment><USER19> Sincerely I think the original cane was a more breakthrough idea.</comment>


The $35 Raspberry Pi: The cheapest way to play Minecraft - <AUTHOR> http://www.extremetech.com/computing/141354-the-25-raspberry-pi-the-cheapest-way-to-play-minecraft?utm_source=rss&utm_medium=rss&utm_campaign=the-25-raspberry-pi-the-cheapest-way-to-play-minecraft

<comment><USER2> Hmm I was aware that when you get a product in USA and sell in the UK the conversion is to change the $ sign to a £ sign. But I have not seen it go the other way!

Can you realy purchase a Pi for $25?

<comment><USER3> Can you purchase one? I don't believe so. Is one planned? Yes. Currently the only one on the market is the $35 option, but the $25 option is planned as a lower-spec version. Have a peek at their FAQs

<http://www.raspberrypi.org/faqs>

With shipping and conversion rates, the price I actually paid when I ordered mine was around $45-$50 though.

</comment></comment><comment><USER3> I ordered mine 8 months ago. It should be arriving sometime within the next 20 days. Longest wait to play Minecraft I've ever had.

<comment><USER4> Crazy. I didn't know there was still a backlog on it. I ordered two when it launched and have had both for months and months.

<comment><USER5> Probably depends more on the stocks of the resellers and where you are ordering from.

<comment><USER3> Yeah, I bought mine from RS. They recently sent me an email saying the product was on the way, but no tracking number. I guess it will be a surprise.

</comment></comment></comment></comment><comment><USER6> I just wish they could scale their production. The Pi is great, but a waiting list of _months_ is just crazy.

<comment><USER7> I ordered mine from <http://www.newark.com/> and had it within 2 weeks.

<comment><USER8> I ordered mine in April? May? It got here last Saturday. I'm not complaining (I've been busy with other stuff; I haven't even had a chance to play with it yet!), it's pretty awesome to think of this kind of power for so little cost, and it's like early Christmas :)</comment></comment></comment>


Ask YC: How do you intend to spend your YC investment? - <AUTHOR>

If you're accepted, what are your plans for the money invested? I think I'm a little confused. THE YC FAQ says we can spend it any way we see fit. However, the only thing I expect to spend money on are living expenses while in Mass (rent, food, bills).<p>If you're a founder, please share a little bit about your experience. Did you find it difficult to live on the investment? Did you use personal savings? Were family and friends feeding you money? How did you use the investment? <comment><USER2> We track our expenses using gnucash, which can generate cool reports like this one:

<http://www.getdropbox.com/u/86/appjet-summer07-expenses.gif>

So that's how we (2 of us) spent most of our $15k summer funds.

<comment><USER3> $150/month for phones?

I don't know what I'm going to do when Sprint kicks me off of my old Radioshack employee plan. $35/month with taxes for 3000 minutes, 7PM nights, unlimited text messaging, "unlimited" EVDO and a $50/month credit towards anything you can buy from within the phone software, like games and ringtones and Pandora and Loopt.

<comment><USER2> that includes the purchase price of 2 iPhones.

<comment><USER4> That doesn't seem to make much sense. Does your app target the IPhone?

</comment></comment></comment></comment><comment><USER5> The YC money is more than enough for the items you mentioned. That is, given your bills don't include an existing mortgage or payments on your new 911 Turbo.

Btw, if you're applying for the coming session, it's in Mountain View, not Mass.

<comment><AUTHOR> I know, but seems my fingers don't. :) I'll leave my post as is so your comment will still make sense.

I'm not so worried about living expenses, but rather how to answer the relevant application question.

</comment></comment><comment><USER6> we spent it all on common living expenses. we spent our own money on random things we wanted just because.

we made it last forever. i think 15k lasted 4 1/2 months for two people. our rent was 1800 in a SF. and the only reason it went that quickly is we had a month where we spent more than we realized by accident. it was really easy, the only thing i did less was go out for restaurant food and beer less.

(socialmoth)

</comment><comment><USER7> Hookers. Caviar. Purple bud and purple pills.

<comment><USER8> and good medical coverage

</comment></comment><comment><USER9> "living expenses while in Mass"

This session is in SF

</comment><comment><USER10> My plans are to spend as little as possible on living expenses. Just need one room and a kitchen for me and my co-founder. Food shouldn't be too much since I love to cook (no need to buy packaged food) and I'm sure there's more than a couple cheap farmers markets in the bay area. The more money we can put into operating the business, the better.

<comment><USER11> Friendly advice: don't skimp on living expenses. When everything else in your life is going to hell in a handbasket, you'll be grateful that you didn't cheap out on your apartment.

This is the perspective of a grad student who made the mistake of living extra-frugally for too long; I only became _productive_ once I got it through my head that it was worth paying a little bit for a good living situation.

</comment></comment><comment><USER12> I'm not a founder...but...

I think we're going to put like 30-40% into living expenses, and the rest into the company for things like:

Computers Internet Server Space Web Service Credits Advertising Press Releases ETC ETC

</comment><comment><USER13> 15k each in my opinion is trash, they can keep it. The best reward is the networking aspect. Meeting people in the field and getting to know people that can really fund your idea and help you get it off the ground.

</comment><comment><USER14> Lottery tickets.

<comment><USER3> If you bet half on red and half on black you can't lose!

<comment><AUTHOR> They've done studies, you know. 60% of the time it works, every time.</comment></comment></comment>


The WikiLeaks of Money - <AUTHOR> http://www.foreignpolicy.com/articles/2011/06/23/the_wikileaks_of_money?page=full

<comment><USER2> This tells us nothing new about bitcoin, it's an ok summary but there is not need for this article on HN (and I REALLY like bitcoin).</comment>


Show HN: Recently Read - The easiest way to share a good book with your friends - <AUTHOR> http://apps.facebook.com/recentlyread

<comment><USER2> I think I will like the idea, but: You want permission before I even see what the heck the app does?

Before I say yes, what differentiates the app from the Goodreads app?

<comment><AUTHOR> It's a native Facebook app that's designed to be simple. No extra fluff, just easy to use.

Example screenshot here: [http://www.andrewcross.ca/wp- content/uploads/2011/07/Screen-...](http://www.andrewcross.ca/wp- content/uploads/2011/07/Screen-shot-2011-07-10-at-5.32.48-PM.png)

<comment><USER3> i think you place way too much importance on being a facebook app. The only difference from developer pov is that one is in an iframe and one isn't. Just create both. You can have one with a nice homepage, screenshots, and explanations why its different. Right now as is, I wouldn't sign up.

<comment><USER4> The reason it's a fbook app and not a standalone website (at least to start) is that we can piggyback on social networks of friends that facebook has already created. This would make the 'Friends Recommendations' section hard to duplicate on a regular site. A standalone site is definitely a possibility in the future though.

</comment></comment></comment></comment><comment><USER5> When clicking the link to the app I am greeted with a Facebook page requesting to disable secure browsing:

      "We can't display this content while you're viewing Facebook over a secure connection (https)"

Unfortunately this makes it a no-go for me.

<comment><AUTHOR> Fair enough, I'm sure you can understand wanting to get feedback on an idea before investing in SSL.

<comment><USER5> By investing, I'm not sure if you're referring to the amount of time, or the monetary cost. If the latter, there are legitimate free SSL certs available. I am unable to think of the one which is most highly recommended around here, but a Google search should turn up something useful.

</comment></comment></comment><comment><USER6> My main issue is when you want to add multiple books.

After entering one book, you're presented with the standard "Share/Skip" dialog box. But after closing it, you're left on a summary of the book you just entered with no options to add more books. In order to add another book, you first need to click Home to get to the "Add Recommendation" button.

After entering a book, it should probably either take you directly back to the Home screen or give you an option to continue adding books. The extra click gets annoying.

<comment><USER4> I agree. Thanks for pointing this out!

</comment></comment><comment><USER7> Cool idea. How long did you guys work on this, with what size of a team? I'm thinking about getting into FB apps so I'm just curious.

<comment><AUTHOR> I designed it and my friend coded it. Total working time maybe 30-40 hours?

</comment></comment><comment><USER8> The book purchase process needs a recommendation system, finally it's here.

</comment><comment><USER9> What makes this better than Goodreads?

<comment><AUTHOR> 1) It's a native Facebook app 2) Goodreads has a lot of extra features that clunk up the interface, this is about as simple and easy to use as you can get. For you, this probably isn't a big deal, but for your less-tech savvy friends, it could mean the difference between using it and not using it.

</comment></comment><comment><AUTHOR> Looking for feedback if anyone has some! Just post here please.</comment>


Alan Moore on Robert Anton Wilson - <AUTHOR> http://www.boingboing.net/2009/08/27/alan-moore-on-robert.html

<comment><AUTHOR> So I apologize to those who feel this is not a proper article for HN, but in my experience there is much geek love for both of these guys.</comment>


Ask HN: Just quit my job to work on a startup idea. Any advice? - <AUTHOR>

<comment><USER3> Don't go overboard choosing the latest and greatest frameworks, language, tools, etc. You need to be productive, try and stick with what you are productive with. Find a good balance.

If you have a family, in the most kind way you can think of, learn to say no. While you are at home trying hard to work, everyone will think you have lots of free time.

Find a place where you can work quietly when you really need it. Preferably not at home, not at a coffee shop, not anywhere you could be interrupted.

Find a mentor/buddy. Someone who knows more than you do. When some server configuration bullshit gets in your way, when some framework bug stops you, when some Ruby version 1.8.7 patch 154 won't work with Delayed Job (a made up example) you'll need someone with the experience to help you.

Wake up at the same time everyday. Got to sleep at the same time every day. Eat breakfast. Exercise. Throw out your television, don't visit HackerNews or reddit except once a day.

Use a managed hosting service avoid VPS unless you are already a good sys admin.

<comment><USER4> I'll add: Make an extra special effort to stay in touch with friends.

</comment></comment><comment><USER5> MOST IMPORTANT: Validate that there is a market for your idea before you build your product.

"Start Small Stay Small" has good advice here. Don't be put off by the title if you want to grow big with VC money etc. It's still a great book. <http://www.startupbook.net/>

<comment><USER6> it might have been a good idea to do that before quitting...

<comment><USER5> Yes, but it's still easier to change his idea now rather than after spending 4 months building something.

</comment></comment></comment><comment><USER7> It really helps to have a partner to stay motivated and keep from missing deadlines. Once you are completely on your own it is so easy to get distracted.

Agree about the validation. You can try to sell it before you have much of anything. A screen is all you need to try to sell it to people. Talk to as many people as possible. It is so easy to just sit in a corner and code - <USER2> is really dangerous.

</comment><comment><USER8> I've done something similar, though gave myself many more months. I also pre- paid a number of expected expenses to get them out of the way. I still ran through the cash quicker than I thought I would. Thankfully, I've been doing consulting projects and that extended my run time.

I also gave myself a one month window at the end of the time frame to find a job. So, in your case, I'd only give you one month to work on your startup before needing to go look for a job.

</comment><comment><USER9> Ask yourself: if this turns out to be a HUGE success, how will I feel?

</comment><comment><USER10> On top stay motivated and keep working dont worry about end result.

</comment><comment><USER11> find a customer, quick.

</comment><comment><USER12> save save save - keep spending low - keep a long runway - etc.

<comment><AUTHOR> I have enough for a couple of months. Thought on doing some freelance work when the money starts to run out. Any thoughts on doing freelance work while working on a bootstrapped startup?

<comment><USER12> Everyone's different about this, but only having 2 months would scare the hell out of me personally.

Given that you've already quit, you may want to reconsider getting more cash in the bank. Your living expenses are one thing, but depending on what you're doing you may need to pay for other skills (design, devel, etc), and cash is king.

What would be your plan after the money ends in 2 months? Go get another job? 2 months doesn't seem long enough to develop and test your ideas, nor to make something that would bring in a livable wage, let alone profit for growth.

If you've already got a product/service, and the 2 months is just to get sales in the door, that might be a different story, but cashflow can take a while to establish even then.

You can do some freelance work while working on the business, but they often interfere. Focus on doing one or the other for a while. Again, everyone's different, but if it was me, I'd focus on getting some billable freelance work in first, getting more cash piled up, then focusing on your idea.

<comment><AUTHOR> English is not my primary language so maybe I should have said "a few" months (about 5) instead of "a couple".

<comment><USER12> Ahh - much better. OK - sorry if I was reading that too literally. 5 is much closer to workable. In that case, I'd focus at least one month just on the project and see how close you are to bringing in revenue. If you're close (within a month or two), keep plugging away. If you get down to 2-3 months, I'd focus on freelance work to get your runway back up to 5-6 months at least.

Others may work differently, and only you can really tell what's comfortable for you. But I've learned that it's much easier to think clearly when there's several months of cash in the bank at minimum.</comment></comment></comment></comment></comment>


A Quiet Evening's Reading: 'Notable British Trials' - <AUTHOR> https://www.city-journal.org/html/quiet-evenings-reading-15844.html <comment><USER2> >> He was found guilty of the second charge; but on the first, he received the peculiarly Scottish verdict of "not proven."

This is an interesting alternative to the binary guilty/not guilty verdict. Notably, Senator Arlen Specter wanted to vote "not proven" on Bill Clinton's impeachment:

"Juries in criminal cases under the laws of Scotland have three possible verdicts: guilty, not guilty, not proven. Given the option in this trial, I suspect that many Senators would choose 'not proven' instead of 'not guilty'. That is my verdict: not proven. The President has dodged perjury by calculated evasion and poor interrogation. Obstruction of justice fails by gaps in the proofs."

[http://edition.cnn.com/ALLPOLITICS/stories/1999/02/12/senate...](http://edition.cnn.com/ALLPOLITICS/stories/1999/02/12/senate.statements/specter.html)

<comment><USER3> Juries in Scotland also have 15 people, not 12.

[https://en.wikipedia.org/wiki/Trial_by_jury_in_Scotland](https://en.wikipedia.org/wiki/Trial_by_jury_in_Scotland)

<comment><USER2> I grew up in Australia where a jury consists of 12 people. I've lived in France for the last 12 years, though, and here the jury (when there is one) it will typically be either 6 or 9 citizens. One of the overseas territories uses a jury system that only has 4 people, and then expands to 6 on appeal. It would be interesting to understand how the 'Anglo Saxon' system (outside of Scotland, it seems) settled on 12 people.

<comment><USER4> It wouldn't surprise me to find it's based on the twelve apostles, that Jesus Christ used as his witnesses.

</comment></comment></comment></comment><comment><USER5> If you are interested in more literary variation of the theme, "His Bloody Project" by Burnet is pretty nice read. It essentially describes the proceedings of (a fictional) 19th century Scottish murder trial. It is well researched, and plenty of things from the article sounded familiar from it.

</comment><comment><USER6> Some of the great historical and contemporary speeches are given at trials - think of Nelson Mandela's defence when on trial for his life as a fine example. The closing speeches in a criminal trial are an opportunity for oratory as a persuasive art.

</comment><comment><USER7> 'Not guilty' does not mean innocent. It means only that the prosecution has failed to prove the accused's/defendant's guilt to the requisite standard of proof.

<comment><USER8> If that were true then wouldn't the concept of double jeopardy not exist?

<comment><USER9> The UK has been phasing this out..

<comment><USER9> To the downvoter. I'm sorry you don't like this (I don't either) but you can't downvote away facts.

</comment></comment></comment></comment><comment><USER10> That was a good read, thanks.</comment>


Is obesity an oral bacterial disease? - <AUTHOR> http://esciencenews.com/articles/2009/07/08/is.obesity.oral.bacterial.disease <comment><USER2> I question whether or not this is causality or correlation. It may just be that overweight females have a higher concentrtion of that oral bacteria; not that the oral bacteria in higher concentrations is -causing- obesity.

<comment><USER3> The article raised exactly that question in the last paragraph.

</comment></comment><comment><USER4> No.

By which I mean: this is much more likely to be effect than cause, e.g. overweight people might have more sugary diets, so sugar-loving bacteria would be favoured.

</comment><comment><USER5> This is just the kind of news report about a new research study that should be examined with Peter Norvig's checklist of issues to consider in scientific research:

<http://norvig.com/experiment-design.html>

</comment><comment><USER6> Misleading headline. The article posits the existence of a bacteria in obese women, it does not go into the issue of causality as the headline suggests.

</comment><comment><USER7> no its the I am too lazy to workout disease

being fat is not even about overeating, as long as you put in the effort to workout to burn those calories, you can eat whatever you want and still remain in shape.

You won't get a sixpack, since that requires a proper diet, but you should still be in decent shape.

<comment><USER8> After being fat from early childhood, I lost 160 pounds by eating 900 calories a day. Eventually I got down to the weight I wanted (normal weight for my height) and was running 5 miles a day. I couldn't take the diet any more. I'm a fellow with tremendous willpower. But it was the strangest thing -- I couldn't force myself to stay on an _easy_ 2100 calorie a day diet even though that was what I thought about every day, nearly every moment of the day. Even though I had managed 900 a day for more than a year.

Anyway, while running 5 miles a day still, I immediately began gaining 15 pounds a month. Eventually I couldn't run anymore.

I'm sorry, but the argument from thermodynamics is as bankrupt at explaining fat gain as it is in explaining height gain for adolescents. For height gain, the fact that energy in equals energy out is a true statement, but the explanation is growth hormone. If you calorie limit a growing child, the child will be somewhat (not very though) stunted, but will make up the energy difference through lethargy and by consuming all sorts of internal tissues.

For obesity, the explanation is insulin. I cut carbohydrates almost completely from my diet in January. Otherwise I ate what I wanted when I wanted (I measure my consumption in pounds of red meat per day). I'm amazingly healthier. I've lost 50 pounds. I've gained so much muscle that I can do pull- ups. Fucking pull-ups at my weight. With low-calorie dieting, I couldn't do pull-ups until I had lost another 70 pounds past that point. I'm putting on muscle and losing fat, and I'm eating huge quantities at every meal. Plus I have a desk job and barely exercise.

The argument from thermodynamics assumes that the fat tissue is a trash can and that weight homeostasis doesn't exist. It's a bankrupt theory that can't explain diseases like progressive lipodystrophy (a disease which makes people obese and emaciated at the same time). It can't explain why people who starve the calories off are not the same at the end as normal thin people and almost inevitably gain the pounds back. It can't explain why 1950s treatment to get anorexics to gain weight was through injecting them with insulin and not feeding them any more than they had been (during treatment).

In summary, you're seeking a psychological explanation of a physiological problem. Kind of like the discredited quack Sigmund Freud often did, eh? A physiological explanation might lead to the suggestion that we eat the way we evolved to eat -- no refined carbohydrate.

<comment><USER9> I agree with you about the refined carbohydrates but the underlying facts about the thermodynamics are also important, but in a slightly more subtle way.

People almost always underestimate just how incredibly - almost unbelievably - efficient the human body is. We're used to being impressed by cars that can do 60 mpg, but the human body can easily manage 300 mpg, even for an unfit hacker like me; fitter people will be slightly more efficient, maybe up to 400 mpg ([http://health.howstuffworks.com/health- illness/wellness/phys...](http://health.howstuffworks.com/health- illness/wellness/physical-fitness/weight-loss/diet1.htm)).

What this means is that you have to run an enormous distance to burn off even a tiny amount of food - about 1 mile for every 100 calories. So you can run a mile on one banana (<http://www90.wolframalpha.com/input/?i=banana>), or 1.5 average cookies (<http://www90.wolframalpha.com/input/?i=1.5+cookies>), or just over one rasher of bacon. You can run a entire marathon (26.2 miles) on 2,600 calories - or one big mac and a packet of cookies.

A scary number of people in the western world eat enough to run a marathon every single day and still have enough calories left over of keep themselves ticking over (~1500 calories) - without changing their diet at all. This wouldn't be physiologically supportable for wear and tear reasons, but calorie wise a lot of us could support it.

These two facts in combination: the abundance of high quality, high calorie food in the developed world, and the incredible efficiency of the human body are a virtually guaranteed recipe for obesity, whatever other factors come into play. The fact that almost all of the easily available junk calories people consume come from highly refined carbohydrates (because these are so cheap to produce), massively compounds the problem.

Obviously there isn't a 1 to 1 relationship between calories in and weight gain and everyone is slightly different and most food isn't just converted into glycogen and then to fat, etc, etc... but as far as I can see, most people will not reasonably be able to burn off the calories from an average western diet, no matter how hard they try - there just isn't enough time to run that far and hold down a job. Trying to do that much exercise, on top of trying to diet and do everything else is just too much mental strain. On the whole, I think people are better off just not eating the carbohydrate in the first place - cutting it off at source is much easier than trying to get rid of it later, and only requires you to do one thing, rather than two.</comment></comment></comment>


I used HEY for a week, but I'm going back to Gmail - <AUTHOR> https://www.bitlog.com/2020/06/28/i-used-hey-for-a-week-but-im-going-back-to-gmail/ <comment><USER2> I did the same. Paper Trail and The Feed are effectively black holes since you have no way of knowing there are unread items in there.

I also prefer inbox zero, essentially marking emails as "done" by archiving them. With hey you would do the opposite, "putting aside" emails which I found very clunky.

I wanted to like it, and I'll check back in on it in a few months to see if it's improved. As it stands the workflows absolutely do not work for me.

</comment><comment><USER3> Completely agree with this. I didn't even know I received email until I checked Everything area or each individual area. They need a badge indicating where new emails are coming in, so I can check. Especially with trying to get new users accustomed to their UI.</comment>


Bitcoin is under attack in India - <AUTHOR> https://offthechain.substack.com/p/crypto-news-september-14-2018 <comment><USER2> From the FAQ: [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

> _Are paywalls ok?_

> _It 's ok to post stories from sites with paywalls that have workarounds._

I tried a few of the common workaround, but they doesn't work. Do you know one? Also, the post doesn't show even a snippet of the article, so it's not possible to even have a minimal idea of the content.</comment>