Ristretto: A High Performance, Concurrent, Memory-Bound Go Cache - <AUTHOR> https://blog.dgraph.io/post/introducing-ristretto-high-perf-go-cache/ <comment><USER2> This is a seriously great write up. So many links to research and papers. There were some truly new-to-me concepts and they implemented some stuff that are optimizations that I've not had to deal with yet despite the scale with which I work; it is fun to read about those. Seriously awesome work -- I would love to optimize as much as they have. Two things stand out. One, they could maybe improve thrashing at full capacity by evicting more than one key when at capacity (say, evict n% of total keys). Two, my reading here suggests this is not production ready and dangerous to use.

> ... then used this hash as not only the stored key but also to figure out > the shard the key should go into. This does introduce a chance of key > collision, that's something we plan to deal with later.

If a Get and Set can produce a collision and it is not dealt with, then it is unsafe for production. Imagine calling user foo's data and returning user bar's data instead. This could leak PII and would be an unnoticed bug. Generally, in collisions, you drop down to a list and hurt your runtime to ensure accuracy. I need a correct cache over a fast cache.

Unless I misunderstood, this is not production ready. Again, amazing work; it is just not done yet.

<comment><USER3> We will fix that in the near future. Known problem with our design choice. Wanted to ensure we put it out there first, before solving it. FWIW, note that the probability of a collision with 64 bit hash is pretty low. Still, needs to be solved.

<comment><USER4> Could this be solved by some sort of cuckoo hashing?

<comment><USER3> The benefit of current hashing algorithm is that Go team is maintaining it ;-). Its written in assembly and runs in single digit nanoseconds.

One way to check for collision would be to either store the key as well or use another hashing algorithm (which would further decrease the probability of collision, but not eliminate it). Either would introduce some slowness, because every Get would need to be checked.

<comment><USER2> Storing the key with the value is a solid workaround.

</comment></comment></comment></comment></comment><comment><USER5> Wow. That is a great write-up. I was admittedly skeptical of "writing your own cache" but these guys are super-OCD and obviously capable of producing best- in-class implementations. Kudos.

...kind of wondering, they had so at least three "well, go doesn't do ..." (lock-less data structures, thread local storage, and channels aren't high perf) rabbit holes that I wonder if go was really the right implementation language for their project (iirc they've also had articles go by about writing best-in-class go versions of rocksdb/etc.).

But, they do seem very capable of rolling their own infra, and I suppose someone has to do it to bootstrap ecosystems in each new/upcoming language.

<comment><USER6> Thank you for the kind words!

You're right about our rabbit holes. Our initial "why" for this project was essentially: "Caffeine is written in Java with excellent performance. Go should be (and usually is) competitive with Java. Why is there no Go equivalent?"

With such a high bar we were disappointed in naive, idiomatic Go solutions, but we knew there had to be some way to close the gaps.

I look forward to continuing to do so. We have a few things on the roadmap such as adaptivity (see Ben Manes' work for more info) and managing our own memory.

</comment></comment><comment><USER7> TinyLFU is kind of magical--most of the win you'd get from expensive tracking of key frequencies, in much less space. The bloom filter in front seems like a clever hack.

Not an expectation/criticism/etc. of Ristretto, but out of curiosity, does anybody know of work about making the cache aware of the expected cost of a cache miss for each key?

To spell out what I mean: if I'm sending a query result to the cache, I could also pass along how long the query took to run. Then, in theory, the cache could try to drop keys with low (expected number of fetches * expected cost per miss), not just low (expected number of fetches). Of course that's rough/imperfect, and for some caching scenarios the miss cost doesn't vary by key.

I guess mostly the question is if it's enough of a help to justify the metadata+complexity, which I guess requires a trace of gets/sets from something that has miss costs that vary.

The intuition is just that now that we're pretty good at optimizing hit rate, maybe expanding the problem to "minimize total miss cost" could be an interesting direction for the use cases where there's a difference.

<comment><USER8> There is not a lot of research in this area and I briefly outlined my understanding of the current state when responding to a github issue:

[https://github.com/ben- manes/caffeine/issues/345#issuecommen...](https://github.com/ben- manes/caffeine/issues/345#issuecomment-530571533)

<comment><USER7> Oh, fascinating. My intuition re: size was that you'd look at worth _per_ byte for something like query results, a whole different kind of thing from the CDN use case that's been studied.

Makes me wish I could justify adding instrumentation to our 'memoize' wrappers at work, although our caching doesn't really match the use case for something like Ristretto or Caffeine. (Little enough stuff and the latency of a networked cache is fine for us, so "just set aside lots of RAM on some cache servers" works well enough.)

</comment></comment></comment><comment><USER9> Good work! Caching is one of the 2 hardest problems in Computer science. Not because building a cache is hard, but cache invalidation/replacement is complex when you consider the system as a whole. Integrating the cache and preventing user from seeing the stale value is not a trivial task (if you want to support highly concurrent access). MySQL removed query caching from 8.0 because of the mess that query caches are. Enforcing transaction isolation levels in a database with caching is non-trivial.

<comment><USER3> Exactly. Doing caching in a transactional MVCC system is hard. We plan to do careful data caching in Dgraph with this. Block level cache in Badger would be easy. So would be key with version level cache in Badger.

</comment></comment><comment><USER10> Disclaimer: I admit to only reading the blog post and not looking at the code yet.

I really enjoyed this write-up as well! But I couldn't tell from the post: does it have a distributed mode like groupcache? (I think the answer is no). I think nearly all decisions in groupcache are because of the word "group" :).

Similarly, it would be great if there's a "safe mode" instead of the (IIUC) "start dropping Set requests when overloaded". You'd naturally want most applications to be prepared for your cache to get blown away, so you should be prepared for it to be lossy, but I'd certainly want a knob for that :).

<comment><USER6> Glad you liked it!

> does it have a distributed mode like groupcache?

Not at the moment, no. Though it could, theoretically, be used within groupcache. We'll look into that as it has been brought up a few times now.

> it would be great if there's a "safe mode" instead of the (IIUC) "start > dropping Set requests when overloaded".

We could definitely look into adding a config flag for that. I'd love to know: in what situations would lossless Sets be important to you? We already have guaranteed updates, so the only Sets that are dropped are new items.

<comment><USER3> Also, if we guarantee that every Set is accepted, it goes against the idea that the Estimate of the incoming key must be higher than the Estimate of the key getting evicted.

Of course, one way to ensure every key goes in is to have a cache of infinite MaxCost. But, that's an orthogonal idea, I guess.

</comment></comment></comment><comment><USER11> Kudos on the informative blogs. It's always better when engineering teams share their knowledge ;)

In setting up the cache, can I assign values to be arbitrary length, binary safe strings? Can this be used to store indexed blob data of large size? Not saying this is a good idea btw...

<comment><USER3> Values can be arbitrary length, yes. We plan to store SSTable blocks from Badger in Ristretto. They can be strings, byte slices, whatever. That's the reason we chose interface{} as the input.

<comment><USER11> Excellent! thnx so much for building

</comment></comment></comment><comment><USER12> Does anyone know of a similar cache that lets you restrict memory usage by "customer" for example? I used redis scripting to implement this use case in redis, it really feels like a hack though.

<comment><USER13> Why are you sharing caches between customers?

<comment><USER12> Why would anyone do that?

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

</comment></comment></comment><comment><USER14> > we used the natural randomness provided by Go map iteration to pick a sample > of keys and loop over them to find a key

The iteration order of Go maps is randomized, but it's far from being evenly distributed (it could be good enough for the Ristretto use case though). Here is a test that shows that some keys are 6 times more likely to be selected on the first iteration [https://play.golang.org/p/dT1CWuqoHEM](https://play.golang.org/p/dT1CWuqoHEM).

<comment><USER3> Based on this behavior, the two scenarios for Ristretto would be:

1\. If the chosen sample keys have high Estimate, the incoming keys could be rejected, affecting the Hit ratios. However, our Hit ratio benchmarks didn't show such behavior (within 1% of exact LFU).

> With this approach, the hit ratios are within 1% of the exact LFU policies > for a variety of workloads.

2\. The chosen keys have low Estimates, in which case they'd be removed and hence, won't suffer from repeated selection.

So, yeah. Doesn't affect Ristretto. But, good thing to keep in mind for other workloads.

</comment></comment><comment><USER15> This is really nice. The sync.Pool based ring buffer is a really clever way to get around the thing that always kills my low latency work in golang.

I wonder how much the type casting costs you'll see in real world situations? I've not benchmarked that generally but it's always something I worry about with 'generic' data structures like this.

<comment><USER6> Thank you. The sync.Pool lossy ring buffers are probably my favorite innovation, especially because of how little code it is.

I was worried about type casting as well and generally avoided bare interfaces like the plague. However, in all the benchmarks I've ran for throughput, type casting was a small percentage of CPU time. I'll see if I can dig up a flamegraph.

Of course, the only reason sync.Pool performs so well is because of its internal usage of thread local storage. If the Go team exposed that, we could make our own typed sync.Pool implementations... I won't hold my breath, though.

</comment></comment><comment><USER16> Great write up and tool, can't wait to try it out in my projects. Enjoyed your last write up as well!

</comment><comment><USER17> Question about the buffered writes and invalidation: is there anything that prevents race conditions between a Del() and a prior Set() on the same key? Just glancing at the source, it looks Set() ends up in a channel send, whereas Del() seems to synchronously update the internal map.

<comment><USER3> Feel free to file an issue. That could cause correctness issue in Ristretto as of today.

<comment><USER3> This issue would fixed with this PR: [https://github.com/dgraph- io/ristretto/pull/62](https://github.com/dgraph-io/ristretto/pull/62)

</comment></comment></comment><comment><USER18> Go is usually used for microservices, and for that scenario, Ristretto is not applicable since it's a library, and not a "shared server" like Redis. Am I right?

<comment><USER19> Very much to the contrary, why go over the network to get a value from a key- value store when you can have a mutex protected map that only hods the values that where accessed by that node. The "lets have a shared memory between our services" architecture makes things easy only to make it much harder again.

<comment><USER13> I've been trying to convince my coworkers that we should have a cache per node, but so far they aren't biting.

Alternatively I think within the decade we are going to expect every service to contain its own fault prevention logic instead of just the web tier. At which point every service has its own reverse caching proxy in front of it.

</comment></comment></comment><comment><USER20> Wow, I was just researching go caches like a week ago and read your previous summary of the state of the world. Didn't realize this had been posted. Excellent timing.

</comment><comment><USER21> Oh, same name as the Xfce image viewer: <[https://docs.xfce.org/apps/ristretto/start>](https://docs.xfce.org/apps/ristretto/start>)

<comment><USER22> Name collisions are unfortunate but inevitable. This name makes me think of ristretto255 ([https://ristretto.group/](https://ristretto.group/)), but that's the world I live in. I suspect this project is likely to see more name recognition over time than either of our examples.

<comment><USER23> indeed, I thought this was a post about the crypto stuff :c</comment></comment></comment>


Is it feasible to build an intelligent debugger to reduce debugging time? - <AUTHOR> We have a pretty vast and complex C++ code base developed for over a decade. Sometimes, when some issues are reported, we spend a lot of time debugging the issues eventually landing on some common area. The problem is particularly acute when new members join the team and has to spend considerable time debugging issues. I was thinking of developing some kind of intelligent debugger, something which can give some hints where to debug based on the nature of the problem, thus reducing turnaround time for bug fixing. I know it would be complicated, so just wondering if it is worth the effort. Has anybody worked on something similar and has some prior experience? <comment><USER2> _" something which can give some hints where to debug based on the nature of the problem"_

That could be something as simple as keeping those hints on a wiki. Why does it need to be integrated into the debugger?

<comment><AUTHOR> I want it learn and grow. Most developers won't be too interested in maintaining a wiki.</comment></comment>


Hacker News Web App for Mobile - <AUTHOR> http://hn.premii.com <comment><USER2> I wrote this client. Never submitted to HN, because I wasn't sure if anyone will like it.

After it reached to the FP, my vps server stop responding. So I moved it to S3. S3 doesn't gzip content. Now it takes twice the time to load the app.

Thanks EtienneK for submitting to HN.

Also forgot to mention that you can download an android app from play store. [https://play.google.com/store/apps/details?id=com.premii.hn](https://play.google.com/store/apps/details?id=com.premii.hn)

<comment><USER3> What are you using for stripping the content from the links?

<comment><USER2> I am using readability.

</comment></comment></comment><comment><USER4> This is the first website I've ever added to my home screen on iOS, and I was completely unaware that by doing so, I could view the site as if it was a full screen app, not having to deal with the safari interface. I was completely unaware of that, and can now really see the utility in adding web apps to the home screen

Also, this is great. Really a solid interface.

EDIT: I would honestly like to see this scale on desktop, just because it's a pretty great interface for Hacker News.

EDIT 2: Nevermind, realized that it worked by acting as a sidebar on wider monitors. That makes sense.

<comment><USER5> It works fine as a desktop app actually. The sidebar is just one part of the app, and if you click on a post, you get the full article / comments on the right side.

Looks like no framework was used to build this (except for Zepto, I guess). Total size for JS is 55kb, for comparison Angular 1.0.7 minified is 78kb. CSS adds another 30kb, including the ico font that's base64 encoded in style.css. 115kb for the whole page on a fresh load, on subsequent loads it's only something like 4-5kb. Very nice!

<comment><USER2> Sorry I forgot to mention, I also use Fastclick([https://github.com/ftlabs/fastclick](https://github.com/ftlabs/fastclick)) for iOS.

JS is uglified. Libraries takes 55% of file size, and rest is my code.

<comment><USER6> The UI performance for your web app is impressive. Did you use any other libraries besides fastclick? Or was it a lot of manual work and research to make the UI perform well?

<comment><USER7> +1. I don't know what are your plans with this app, but I would love to learn more about how you did that. Do you plan to open-source it?

<comment><USER8> +1

</comment></comment></comment></comment></comment></comment><comment><USER9> Great work! I recommend adding a manifest.webapp file so that Firefox users (and Firefox OS users) can add this as an "app". The manifest file is minimal, and then just a few lines of JavaScript will give you an "install" button. [https://developer.mozilla.org/en- US/docs/Web/Apps/Manifest](https://developer.mozilla.org/en- US/docs/Web/Apps/Manifest)

<comment><USER10> Ditto for Chrome/CrOS, please: [http://developer.chrome.com/apps/about_apps.html](http://developer.chrome.com/apps/about_apps.html)

Also, please consider adding this to the Chrome Web Store so I can install it on my Chromebook. :)

<comment><USER2> Added as a hosted app. [https://chrome.google.com/webstore/detail/hacker- news/gdljjm...](https://chrome.google.com/webstore/detail/hacker- news/gdljjmpecaafiaedefdogicdipcnmace?utm_source=chrome-ntp-icon)

Let me know if you can install on your chromebook.

</comment></comment></comment><comment><AUTHOR> I take no credit for this. I found the link for this in another Hacker News thread [1] and thought that more people should know about it, so I submitted it.

[1] [https://news.ycombinator.com/item?id=6177361](https://news.ycombinator.com/item?id=6177361)

<comment><USER11> Ah nice, another one :-)

See also [http://ihackernews.com/](http://ihackernews.com/) or [http://cheeaun.github.io/hackerweb/](http://cheeaun.github.io/hackerweb/) or (broken ssl cert) [https://msean5423.news.ycombinator.com.moovapp.com/](https://msean5423.news.ycombinator.com.moovapp.com/), and now [http://hn.premii.com/](http://hn.premii.com/). I was looking into writing one myself.

Personally I won't be very excited before I see an app that's open source. I don't understand why somebody wouldn't share the code for such a simple thing.

<comment><USER12> HN for Android is FOSS and it's awesome.

As for iOS, it doesn't matter whether you get the source code because you have no way to make sure that what you see is what you get (from the App store).

<comment><USER11> Yeah, I forgot to write that I was looking for something web-based. I'm not really into apps that could just be a website.

</comment></comment></comment></comment><comment><USER13> I've been using this for a while. Great execution all around. The only gripe I have is not being able to collapse an entire thread of comments. Right now you can collapse individual comments but it's not that useful for long threads.

This is a great example where a mobile web app can really shine. Throw this thing into phonegap and you wouldn't be able to distinguish it from a native app. So awesome.

<comment><USER2> Comments are collapsed due to you have visited comments before. Next time when you visit (i think after 5 minutes), it will only display new comments. Old comments will be collapsed.

I couldn't figure out best way to collapse threads and collapse comments.

</comment></comment><comment><USER14> This is by far the best performing web app I've ever used, nothing comes remotely close - it really and truly is amazing. Huge congrats to the creator of this.

</comment><comment><USER15> This is excellent. I have used [http://hackerwebapp.com/](http://hackerwebapp.com/) on my iPhone for a while now, but I will put this in rotation to see how they compare. At first glance, they seem very similar and equally slick. A few comments/suggestions based on my experience on iPhone 5 iOS 6 Safari (presuming that OP is the creator, or the creator is in this thread somewhere):

When I collapse a comment, I think all subcomments should disappear as well. However, I understand that there are valid use cases for both behaviors. Maybe you could work both functionalities into the UI?

I don't think you should be pushing onto the history stack every time I toggle between Article and Comments view. It's weird that if I toggle 5 times, I have to click the back button in the top left 5 times to get back to the main news feed. That back button should probably just always go straight back to the main news feed view.

I encountered bugs trying to highlight text on comments. When I press and hold on a word, the word highlights as expected, but when I then release my touch, it registers a click, which then collapses the entire comment I was trying to highlight. I'm not sure exactly how Safari passes DOM events, but there's probably a way for you to identify "long clicks" and ignore them.

Several of the loading spinners you show over buttons are awkwardly positioned. It looks like you place the spinner precisely on the pixel I clicked. It would be nicer to center it over the button I clicked.

The article view screwed up on a lot of articles, but I'm sure you're aware of that. :)

</comment><comment><USER16> I use [http://ihackernews.com/](http://ihackernews.com/) on my mobile. The only issue is that sometimes comments are not displayed because the app reach the api requests limit. Any similar issue with your app ?

<comment><USER2> Hmm. I have not experienced that with mine, but than I don't have that many users.

</comment></comment><comment><USER17> Am I the only person using hnsearch to find content on HN? It seems no app developer bothers to implement a search feature in the hacker news apps. Anyway, this is a great app, thank you.

</comment><comment><USER18> Very cool and very fast. One small request is that (on the iPhone) the app's window sizes to the viewport and so you can't scroll the address bar up out of view. On < iPhone5 this means that with both the app's nav bar and the browser's nav bar in play there's very little real estate left.

However... having added it as a desktop icon it's phenomenal (no browser chrome). Very impressed. Would be great if it told you at the start that this was the outcome from adding it :)

<comment><USER2> Apple provided way to hide the address bar didn't work on my app. But I have figure out a way to do it. I will add it soon.

</comment></comment><comment><USER19> Awesome job on this! My only complaint is there's a bit too much padding in the list to make browsing articles practical on an iPhone5 . The text size option helps a little bit with this, but really if you reduced the padding that would give it just the right balance between readability and practicality. Right now it is pretty, but presents too much of a pain to try to see an entire front page's worth of results.

</comment><comment><USER20> This is incredible. Readability, speed, interface, just a great job all around. Maybe mobile web apps are the future after all :).

</comment><comment><USER21> Great work! Could you give some tech details about which framework/tools have you used?

<comment><USER22> I wonder why the creator hasn't answered this question?

<comment><USER2> I did few places, or other replied to this questions in the thread.

I am not using any framework, but I am using zepto and fastclick library.

</comment></comment></comment><comment><USER23> Fast, lovely, and amazing.

But it tries so hard to hide Safari that it makes a few very common use cases impossible.

1\. You can't back up if you visit a web page

2\. You can't share/email an article as you can in safari.

I will be using this daily, but NOT pinned as a web app in ios7

<comment><USER24> Agree very much about the annoying inability to go back!

This will still be my "go to" as a result: [http://cheeaun.github.io/hackerweb/](http://cheeaun.github.io/hackerweb/)

</comment></comment><comment><USER25> hi this is awesome, thanks for sharing!

I do have a problem with it on the iphone, it only shows like 2 or 3 items, then below this its blank - however you can click the blank spot and the link works.... anyone else?

<comment><USER26> I see the same thing on an iPad (iOS 5.1), where a screenful of items show but everything after the scroll is invisible... until you hit the spot where the comment link should be and a few more items become visible.

<comment><USER25> I am on 5.1 as well (5.1.1)

</comment></comment></comment><comment><USER27> This looks brilliant!

I was using hacker news as an example to espouse the benefits of a decent mobile design the other day... another user tried to tell me that Hacker news was perfect for mobile browsing ([https://news.ycombinator.com/item?id=6171701](https://news.ycombinator.com/item?id=6171701)). I present your work as compelling evidence to the contrary.

In all seriousness though - this is the sort of thing I have been meaning to get around to myself - thank you.

<comment><USER28> It really puzzles me that HN doesn't have a mobile version. It just doesn't scale right on mobile. It sucks and it shouldn't because its design is not that complex.

</comment></comment><comment><USER10> Looks just as great on desktop as it does on mobile. Good job.

I really love this trend of having a scrolling ListView as a sidebar in web apps, similar to what many tablet apps are doing. The ones that come to mind: Gmail Offline, Quartz, Feedbin and Evernote (to an extent)

There was also a news aggregator site that was on HN a few weeks ago that did something similar. Sadly, I can't remember the URL for the life of me. Anyone remember it?

</comment><comment><USER29> You should add a target="_blank" to your article and HN links so they get opened in safari instead of the app context.

It would also be nice if you would store the current app state in localStorage, because the app is reset when you switch to another app and you have to navigate/ scroll back to the article/comment where you left. (Damn you apple for your broken html5 app approach! _shakes fist_ )

<comment><USER2> I do add target="_blank" to links when you click on it. Not sure why its not opening in Safari. It used to open in safari, but not sure what happened.

</comment></comment><comment><USER30> Excellent. From a usability standpoint, please design a blank state for the content area on desktop, it is not clear at the moment. @publicfig "EDIT: I would honestly like to see this scale on desktop, just because it's a pretty great interface for Hacker News. " also backs this up.

How? Instead of the orange, make it light, and add label + icon, (like in Mail.app) to show nothing is selected. Just my 2c.

</comment><comment><USER31> Not only useful in mobile. I changed the url in the HNTab[1] to this.

[http://snappy- app.com/s/show.php?pass=8fb13fb41739e677265bbc...](http://snappy- app.com/s/show.php?pass=8fb13fb41739e677265bbc9078fc4a4f)

[1]: [https://github.com/swerage/hntab](https://github.com/swerage/hntab)

</comment><comment><USER32> Well done! Is there a way to see more articles once you reach the bottom? Also what font did you use for the webpage icon?

<comment><USER2> No, there is no way to see more articles. I never clicked on the next button on HN so i didn't bother to implement that. It should be easy to add it.

I am using icomoon.io for icon font.

<comment><USER32> What is the font used for the webapp icon here? [http://email@example.com](http://email@example.com)

<comment><USER2> Sorry, i had to find original PSD to find the font name. Its called Ribbon. I doesn't render like this. I modified in PSD to make it look like this.

<comment><USER32> Thanks!

</comment></comment></comment></comment></comment><comment><USER33> I actually really like this as a desktop application as well. I would honestly consider using this over news.ycombinator.com if it were more fully featured (like allowing one to log in and post comments).

If you don't plan on monetizing this, I think a lot of people would love for you to open source it. This is quality work.

</comment><comment><USER34> This seems well done but the menu bar at the top takes a bunch of screen real estate for little use. Not really sure of the benefit of this website over HN. HN is one of the rare sites that actually renders fine on mobile just the way it is. Everything is there, and it loads quickly.

<comment><USER35> Sure it renders fine, but it isn't particularly suited for small screens and touch interactions.

</comment></comment><comment><USER36> I use this on a daily basis on my iPad. The best part is that it loads articles within the same tab. That doesn't often work for many stuff (chrome experiments, for eg), but for most purposes, it saves me the hassle of shifting tabs and hunting for content.

</comment><comment><USER37> This is awesome!

Minor gripe: tapping the top of the screen on iOS does not scroll to the top on the front page.

<comment><USER2> I will add it.

</comment></comment><comment><USER38> I may be suffering from dumb user syndrome, but is there a way to log in to reply to comments?

<comment><USER2> You are not dumb. Unfortunately I am not supporting login. I don't want to store users' login id and password and I am not sure the best way to do this without storing user's data.

<comment><USER28> That's what I thought. Thanks it is a great mobile version.

</comment></comment></comment><comment><USER39> Looks great but unfortunately doesn't work on WP7.5 (gets stuck 'Loading'). I know this isn't a huge demographic of HN readers (possibly just me) but it would be great if it was possible to fix this!

<comment><USER2> Sorry. There is no plan to support WP7. I will have to rewrite it, and performance won't be as good as this for non-WP7 users.

</comment></comment><comment><USER40> How do you parse article text?

<comment><USER2> I use readability. Works for 90% of the articles posted on HN.

</comment></comment><comment><USER41> Cool, but can it render its own site? Click on this article from within the app...

..... No: [http://o7.no/11PNaX2](http://o7.no/11PNaX2)

Just shows the menu links and "Loading"

</comment><comment><USER42> This is really great (except for the Orange!). But love the interface. Kudos.

My only gripe with all HN interfaces is that none of them can login and hence are read-only. You cant really comment on anything.

<comment><USER2> I have not implemented login/posting. I don't want to store users' login id and password and I am not sure the best way to do this without storing user's data.

</comment></comment><comment><USER43> What is the tech stack used to build this? I see lot of "/x-premii" tags in the source. Did you build any JS framework? what drives the UI - bootstrap? And watz the backend?

</comment><comment><USER44> Love it! Nice work. Can I suggest you wrap the web app up using trigger.io (or something similar) and place it on the app stores. I'd happily pay a few squid for this!

<comment><USER2> If you are on android, you can download this as a native app from here. [https://play.google.com/store/apps/details?id=com.premii.hn](https://play.google.com/store/apps/details?id=com.premii.hn)

<comment><USER45> This is the best Hacker News Android app I've seen!

Would it be possible to have the refresh icon spin instead of that weird animation, or is that a result of it being a web app?

</comment></comment></comment><comment><USER46> For the default browser on the S3 (on mine at least), the settings menu only shows up if you click it, go to an article/comments, and then back to the main screen.

</comment><comment><USER47> The link within the thread that breaks out of your mobile web app should open in standard Safari - this way I can easily email or SMS the link to a friend. Nice job.

</comment><comment><USER48> Superb job. You should build an RSS app.

One small nitpick: On Ask HN page you can open the threads only if you click on the comment link. Clicking on thread names doesn't work.

</comment><comment><USER49> I built a small app for seeing hourly archived top 10 posts:

[http://tthn.doublewapp.com/](http://tthn.doublewapp.com/)

</comment><comment><USER50> hitting the system back button on android should go back in the web app. currently it just closes the page.

I recommend you look at how angular handles this.

<comment><USER15> As far as I know, web apps don't have direct access to or control over the Android back button. I think the solution is to add history events, because in browsers the Android back button defaults to navigating back in history, but this web app already seems to be doing that.

<comment><USER50> it's actually not on my nexus 4 and 7. which is why I made the comment. the web apps I make with angularjs do.

also this isn't about direct access to hardware buttons. hitting the system back button on android devices while a web view is in focus is the same as : window.location.back()

</comment></comment></comment><comment><USER51> How do you make the "panning" so smooth?

I really want to know what was done to get this kind of smoothness and performance in a web app.

<comment><USER52> Do you mean the vertical swiping? If so, it's smooth because there's nothing special going on. It's just the page being swiped up and down, i.e. native behavior.

<comment><USER51> I mean the horisontal swipe when you click an item. Are you using Android? The smoothness of this site is revolutionary compared to the lag you're normally used to.

<comment><USER2> transform: translate(0, 100%) or transform: translate3d(0, 100%, 0) for hardware acceleration. I have tested with both, and it works great. Trick is try not to do anything else when animating.

</comment></comment></comment></comment><comment><USER53> Thanks so much. I've downloaded a few HN apps and they have not been working very well. This shall replace them.

<comment><USER2> If you are on android, you can download this as a native app from here. [https://play.google.com/store/apps/details?id=com.premii.hn](https://play.google.com/store/apps/details?id=com.premii.hn)

iOS. Only option is to add it to your home. I have build iOS app, but haven't submitted to the app store.

<comment><USER53> I've added it to the home screen. It's fantastic apart from 2 issues (iOS):

1\. Swapping between comments and the article (like 5 times) and then wanting to get back to the main page. (I have to hit back the same amount of times as I swapped.)

2\. When clicking a link, there is no way to get back to the main page. (is there a way to get the status bar back when browsing via homescreen?)

</comment></comment></comment><comment><USER54> I have been using this for a while on my Nokia WP 8. It works great and is really fast. Thank you for the effort.

</comment><comment><USER55> Nice design and execution. Would love to see this in the Chrome Web Store so I can install it as an app.

</comment><comment><USER56> Looks awesome on Win7/IE10, but doesn't work on WP7.8 :( Gets stuck on the loading animation.

<comment><USER2> Sorry not supporting WP7. I will have to rewrite the whole thing and performance will suffer for non-WP7 users.

<comment><USER56> Understandable. Thanks anyway - great experience!

</comment></comment></comment><comment><USER57> Hey, you should definitely post this to the Firefox OS marketplace! this is what we are missing.

</comment><comment><USER58> Anyone know a good library for getting the header menu to stick like that on all mobile devices?

<comment><USER59> iScroll is the industry standard for this. I've seen it used on a lot of web apps and it works pretty well.

[http://cubiq.org/iscroll-4](http://cubiq.org/iscroll-4)

</comment></comment><comment><USER60> Nice job, though I'd like to see news.ycombinator.com/best included, I only read that. :)

</comment><comment><USER61> For the legions of people undoubtedly wondering, this also works smoothly on BB10 devices.

<comment><USER2> Really. Could you send me screenshots at [my hn id @ nj.premii.com]

<comment><USER61> Sent

</comment></comment></comment><comment><USER62> Thank you for this app ! I haven't tested the whole site yet but I already love it !

</comment><comment><USER51> First time I've ever seen a lag free web app on my Galaxy S3 (stock browser).

</comment><comment><USER63> There's a slight delay after pressing the gear. Makes the site feel sluggish.

<comment><USER2> Which OS, browser are you using?

<comment><USER63> iOS Safari

</comment></comment></comment><comment><USER64> I was going to build something similar actually. We'll see if I ever do. :)

</comment><comment><USER65> How did he extract the content of the sites? "Readability" algorithm?

</comment><comment><USER66> If only HN proper looked this good by default.

</comment><comment><USER67> Looks nice, but i miss infinite scrolling.

</comment><comment><USER68> Orange in such big area is blinding.!!

</comment><comment><USER69> Very good! I think kind of old though?

</comment><comment><USER70> nice works. The first of this type that I liked, but I'd like to see the actual page of the news.

</comment><comment><USER71> This is better than the stock HN UI.

Nicely done :).

</comment><comment><USER72> I would pay for the source code.

<comment><USER2> How much we are talking about?

j/k. I will upload source code to github tomorrow. [https://github.com/premii/hn](https://github.com/premii/hn)

</comment></comment><comment><USER73> This is really awesome. Thanks!

</comment><comment><USER74> I wish the real HN website would get a facelift...I mean seriously, at this point it's just lazy.

</comment><comment><USER75> Killer. Bookmarked. Thanks!

</comment><comment><USER76> awesome work.. is this open source? Can someone share the link please

many thks

<comment><USER2> No, its not. PM me if you want source code. You can use it however you like it without any restriction.

<comment><USER77> I'd love to see the source code too please. I'm working on a side project and would love to make it as smooth as this.

<comment><USER2> send an email at [my HN user id @ nj.premii.com]

<comment><USER77> Thanks, sent!

</comment></comment></comment></comment></comment><comment><USER78> Great work - thanks!

</comment><comment><USER79> This is awesome!

</comment><comment><USER80> Awesome work!

</comment><comment><USER81> very cool

</comment><comment><USER82> Link won't load so I'm not sure what it is. I personally like HackerNode on my iPhone, though.

Maybe once it loads I will change my mind.

<comment><USER82> Nvm, just loaded. Very slick. Awesome site. I like it a lot.</comment></comment>


FreeBSD/EC2 lives - <AUTHOR> http://www.daemonology.net/blog/2010-12-13-FreeBSD-on-EC2.html <comment><USER2> Great work Colin! I'm definitely going to jump on the free usage tier and experiment with it. I've been holding out, entirely, for FreeBSD to come to EC2.

</comment><comment><USER3> [self-promote]: We at Brightbox have had FreeBSD 8.1+ support for a few weeks now: <http://blog.brightbox.co.uk/posts/freebsd-cloud>

<comment><USER4> I'd love to use a FreeBSD provider, but your page takes years to load. That's not the best promotion you can come up with, is it?

<comment><USER3> We have a "sleep 3.years if user == 'shin_lao'" in there.

</comment></comment></comment><comment><USER5> Colin, excellent! BTW, how should we file bugs if/when we find them?

<comment><AUTHOR> Submit FreeBSD PRs or send me email -- or ideally both.

</comment></comment><comment><USER6> Should I be able to use FreeBSD on Spot Instances? I'm more interested in this for the future, when larger instance types will be available, but still.

Looks like I can't use any of the Community AMIs on Spot Instances at the moment.

Update: Yes, I can run ami-c01aeca9 on us-east as a Spot Instance! Though any other Community AMI I tried (e.g. Turnkey Linux AMIs) refused to work for me. Any comment on this is still welcome.

</comment><comment><USER7> I've been looking for a way to move off of Joyent shared (solaris) and onto EC2 with FreeBSD for quite some time. This is awesome news. I honestly didn't know if this day would ever come.

</comment><comment><USER8> Thanks for this. As a long term FreeBSD user it's great to have more platforms to deploy on.

</comment><comment><USER9> What are the benefits of _BSD vs Linux? I could never quite understand why people would chose_ BSD, but that's likely just ignorance.

<comment><USER4> One could turn the tables around and wonder why people would chose Linux over BSD.

To me the biggest advantage is that BSD is fully integrated (it's a full system, not just a kernel) and there are compatibility guarantees. For example a binary built for 8.0 will stay compatible with the whole 8.x series.

<comment><USER10> > BSD is fully integrated (it's a full system, not just a kernel) and there > are compatibility guarantees.

That's true of Debian, too, though. We can disagree on which project does a better job at it, but they're both full systems, compatibility tested and with long-term support for stable releases.

<comment><USER11> It's not true in the same way. Debian and GNU are two separate projects for instance, but Debian relies on the GNU userland. Same goes with the kernel obviously, and numerous other projects. The BSD projects however (for the most part) do all their own code, all under a single source tree.

The merits of each method are up for debate, however they _are_ pretty distinct.

<comment><USER10> The extent of integration imo depends on what kind of system you're running. For some systems, especially minimalist ones, I agree the BSDs tend to be more integrated, though they do still heavily depend on third-party stuff (the compiler, whether LLVM or GCC, being a big one).

However, once you start adding some additional packages, Debian tends to do the integration-testing more pervasively across the entire userland, "Debianizing" packages so that they all store things in the standard locations, are started/stopped using the same methods, follow the same configuration policies, etc. Once you get out into ports, the BSDs tend to give you more of an as-is set of 3rd-party packages, and are pretty lax about integration testing.

<comment><USER11> > _(the compiler, whether LLVM or GCC, being a big one)._

Although I think the effort is misguided, they are working pretty hard on that one. There is some considerable effort going on to get pcc as the default compiler for the BSDs, specifically so that they don't have to rely on another upstream (and so they don't have to use a GPL'd compiler).

However, once you start considering obviously 3rd party packages, then not even windows could be considered a single project piece of software.

</comment></comment></comment></comment></comment></comment><comment><USER12> I've been waiting for this for years! Amazon EC2 might have just jumped from a being novelty to something useful! (for me at least)

<comment><AUTHOR> I'd recommend waiting for some more bugs to be worked out before you start using this in production -- but please feel free to start launching instances and helping me find said bugs. :-)

<comment><USER12> Indeed. Thanks for all your hard work, an impressive feat. You guys are unsung heroes in a world where we expect things to "just work".

</comment></comment></comment><comment><USER13> Thanks so much Colin. I'll probably be switching my play linode over to ec2.

</comment><comment><USER6> Congratulations!

Could you explain in layman's terms, where did the difficulties lie in using FreeBSD on EC2? Since I think I heard an announcement that FreeBSD 8 supports Xen domU, though I can't find any information to this effect now and FreeBSD Handbook doesn't mention it either: [http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/vi...](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/virtualization- guest.html)

<comment><AUTHOR> FreeBSD's paravirtualized Xen support was a pile of crap. EC2 also had some minor quirks which I can't talk about (NDA).

<comment><USER14> Wait, you're under an NDA from Amazon? :s

<comment><AUTHOR> I don't mind NDAs as long as they're reasonable and I get something out of signing them. In general I'd rather know things and not be able to talk about them than not know in the first place.

As FreeBSD security officer I handle 'do not disclose until date X' information on a regular basis.

</comment></comment></comment></comment><comment><USER15> I hope Linode and Slicehost follow soon. We could use more low cost *BSD virtualization.

<comment><USER16> Linode has actually been able to do NetBSD for a while: <http://www.linode.com/wiki/index.php/NetBSD_howto>

With a little work I'm sure this version of FreeBSD can be installed on Linode as well.

<comment><USER17> FreeBSD is kind of another beast at this point in time, NetBSD support for xen is actually okay and it is pretty trivial to get it working, freebsd not so much.

Hopefully cperciva's work will pay off soon for a stable freebsd on Xen as I know there are plenty of users, me included, that would love this option.

Edit: and that linode post on how to get it running looks a bit dated

</comment></comment></comment><comment><USER18> This is really great news. Thanks a lot Colin and other FreeBSD devs!

</comment><comment><USER19> Thank you. I've heard fantastic things about FreeBSD for a while now, and now in combination with the micro instances, I can learn and experiment. My EC2 playground is already ported over to FreeBSD, portsnap updated, extracted with a fresh nginx install.

It's been a pleasure to use thus far. Thank you, again, Colin.

</comment><comment><USER20> Oh, this just made my week. I can't wait to get my free tiny instance and start playing with my shiny new toy. I cut my Unix teeth on FreeBSD, and hearing that it's well on it's way into the cloud...well, frankly, I just squeeed a bit inside...

Thanks, Colin. A lot of people owe you a beer.

</comment><comment><USER21> Thanks Colin! You made my day.

Is there anything I can do to make this available to EU-West? Or should I just wait?

<comment><AUTHOR> Why do you need this in EU-West? I'm planning on building AMIs for the other regions once this is more production-ready, but at the moment I can't see why it would matter which region it's in.

</comment></comment><comment><USER22> its quick to get a usable instance running, to get a usable ports tree,

csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

looking forward to seeing stable on here

<comment><USER6> Seems to be overloaded for me. I had sucess with this instead (is it the same? I'm noob at this):

csup -L 2 -h ftp6.us.freebsd.org /usr/share/examples/cvsup/ports-supfile

</comment></comment><comment><USER23> very, very cool

</comment><comment><USER24> Wait what? I thought that Netcraft has confirmed: *BSD is dying

<comment><USER2> Dying? That may be true of the other BSD's but FreeBSD appears to be thriving; some very big companies, universities, &c... use and rely on FreeBSD. OpenBSD appears to be alive and well too, but from my perspective FreeBSD tends to have the spotlight.

<comment><USER25> He's not serious. It's a classic Slashdot troll.</comment></comment></comment>


Self-driving cars are bullshit - <AUTHOR> https://pluralistic.net/2020/08/16/combat-wheelchairs/#car-wreck <comment><USER2> People will be arguing that "true self driving is impossible" for decades after we've all been already happily riding around in cars without steering wheels.

Level 4 self-driving with remote assistance will allow "driverless" cars in the next decade. Over time, the cars will need to phone home less and less. It's possible that even in 100 years, there will still be one single remote assistance center in operation for the 1 in a million situation that the computer still can't handle.

By the time that last remote assistance center closes, nobody will even care about debating whether self-driving cars are bullshit or not.

<comment><USER3> All new technology is overestimated in the short term and underestimated in the long term.

Sort of like speech recognition... it was going to be big! and then it really couldn't understand as well as people thought... and it sort of fell out of the limelight. But quietly it started to be used for phones and now it's pretty much here.

</comment></comment><comment><USER4> > according to its own IPO filings, Uber can only be profitable if it invents > fully autonomous vehicles and replaces every public transit ride in the > world with them.

Where specifically does it say this?

<comment><USER5> It doesn't say this.

<comment><USER4> It's annoying someone as prominent as Cory Doctorow would spread such obvious BS.

</comment></comment></comment><comment><USER6> [http://www.bretswanson.com/wp- content/uploads/2016/02/Flying...](http://www.bretswanson.com/wp- content/uploads/2016/02/Flying-Machines-Which-Do-Not-Fly-graphic- NYT-1903-headline-2.0.pdf)

[http://graphics8.nytimes.com/packages/pdf/arts/1920editorial...](http://graphics8.nytimes.com/packages/pdf/arts/1920editorial- full.pdf)

<comment><USER7> This will indeed age very poorly.

The article is also of poor quality, making lame swipes at ride-sharing and electric cars as well.

</comment></comment><comment><USER8> It just shows how out of touch with reality the "mainstream" media is. For years reputable publications like NYT, WSJ, The Atlantic, were heralding the arrival of driverless cars. And yet there is really no engineering basis for them at present. Before we can have driverless cars we will need something akin to AGI.

<comment><USER9> To expect a majority of journalists to recognize this sort of hype is unreasonable. Most people here on HN (not I, to pat myself on the back) were equally, perhaps more, credulous about self-driving cars. If a tech forum like HN called it wrong, anyone could.

</comment></comment><comment><USER10> "the more cars you add, the more road you need, the more spaced out everything gets, ..."

Disregards the promise of Connected and Autonomous Vehicle (CAV) technology.

[https://www.sciencedirect.com/science/article/pii/S209575641...](https://www.sciencedirect.com/science/article/pii/S2095756418302289#:~:text=Connected%20and%20automated%20vehicles%20\(CAVs,the%20efficiency%20of%20transportation%20systems).

</comment><comment><USER11> The greatest problem of this technology is the very auto makers who is salivating at the idea of being the first one to release a fully autonomous car that would be compatible with the existing infrastructure including other manually driven cars, pressuring the engineering teams, i'm not sure the technology will be mature in the next 15 years.

</comment><comment><USER12> Hmm hn usually shadowban you less swear words..</comment>


If Pirate Bay Shut Down, Could Take BitTorrent With It - <AUTHOR> http://i.gizmodo.com/5153109/if-pirate-bay-is-shut-down-it-could-take-all-of-bittorrent-with-it

<comment><USER2> This is a bit like saying if Google went away that web search would go with it. Google's far and away the dominant service, but if it disappeared it'd take the universe about 4 seconds to recover and switch to another service.

</comment><comment><USER3> If PB shut down, then it could take bittorrent with it. But in the sense that a new protocol emerges, not in the sense that bittorrent stops working.

Also note that there is a multitracker extension on the bittorrent protocol. And PB seems to use it.

<comment><USER4> > _But in the sense that a new protocol emerges, not in the sense that > bittorrent stops working._

I've often wondered how practical it would be to have a P2P protocol that only connects with people in one's social graph. For example, it could use someone's email, IM and facebook contacts, minus anyone they deem as untrustworthy.

If such a system existed, it would be very hard for law enforcement to break into, as they would have to infiltrate people's social networks. Of course, if law enforcement could force people to turn traitor on their freinds and entrap them, that would make it easier to roll up such networks; but it's unlikely in democratic societies that people would let the government do that.

The range of files available to be shared from one's immediate friends is going to be a lot less than what's out there on the whole internet, but if the protocol allowed requests to flow over multiple nodes, potentially a much larger set of files would be available. (Consider that everyone is no more than six handshakes from everyone else).

<comment><USER4> I've just found this is called Friend-to-friend filesharing: <http://en.wikipedia.org/wiki/Friend-to-friend>

An extract:

"""A friend-to-friend (or F2F) computer network is a type of peer-to-peer network in which users only make direct connections with people they know. Passwords or digital signatures can be used for authentication.

Many F2F networks support indirect anonymous or pseudonymous communication between users who do not know or trust one another. For example, a node in a friend-to-friend overlay can automatically forward a file (or a request for a file) anonymously between two friends, without telling either of them the other's name or IP address. These friends can in turn forward the same file (or request) to their own friends, and so on."""

</comment></comment></comment><comment><USER5> _"In June 2005, BitTorrent, Inc. released version 4.2.0 of the Mainline BitTorrent client. This release supported "trackerless" torrents, featuring a DHT implementation which allowed the client to use torrents that do not have a working BitTorrent tracker."_

[http://en.wikipedia.org/wiki/BitTorrent_(protocol)#Distribut...](http://en.wikipedia.org/wiki/BitTorrent_\(protocol\)#Distributed_trackers)

<http://en.wikipedia.org/wiki/Distributed_hash_table>

<comment><USER6> Have there been any good examples of a peer-to-peer distribution of torrent files? From what I've seen its been either the trackers or search engines indexing the trackers that distribute the torrents most effectively.

<comment><USER7> There's not really a coherent distributed system for the torrent files, but there's not really a need, the ad-hoc system works pretty well.

The real problem is tracking the active clients -- without widespread DHT trackers like TPB would have collapsed under their own weight years ago. As it is there's frequent timeouts and massive response latency. It doesn't help that the software running the trackers is almost universally awful PHP garbage.

</comment></comment></comment><comment><USER8> public torrent sites maybe...but there are plenty of private torrent trackers that won't crash

<comment><USER6> I agree, on every private tracker there is a surplus of "seedboxes" or dedicated servers with gigabyte connections ready to keep the torrent community alive. These communities are often where the torrents found on public trackers originate. Most seedbox providers don't even not allow torrents from public trackers.

Although the average bittorrent user may be effected, a large migration, as a result of Pirate Bay shutting down, to private trackers would make it harder for the copyright owners to shut them down and track users because they are much more protected.

The nature of bittorrent and the huge communities surrounding them make it an almost impossible force to stop (outside of direct ISP intervention).

<comment><USER9> I don't understand the extra level of protection... they are again offering torrents of copyrighted material. also the value would lie in the users sharing, which means that both the normal users and the law enforcement guys will get the same privileges, just as in the case of piratebay.

<comment><USER6> Private trackers are much more protected then public in many ways:

a) Its invitation only, if users give an invitation to a leecher/bad person then they themselves get banned, this creates an incentive to screen users thoroughly. Any person could go on a public tracker and have a list of the IPs of people sharing a particular torrent

b) Finding the trackers is usually difficult

c) Private tracker admins go to great lengths to anonymize data and protect their own identities

The law enforcement guys would have to be directly involved in these communities to gain privileges and also be on the edge of technical advancements. But given the fact that there are thousands of people for each law enforcement user (maybe hundreds of thousands) its nearly impossible for them to keep up. There are many similarities to drug trafficking.

<comment><USER10> [http://www.google.com/search?client=safari&rls=en- us&...](http://www.google.com/search?client=safari&rls=en- us&q=private+bittorrent+trackers&ie=UTF-8&oe=UTF-8) \- not very hard to find. Or get into according to the top hit.

</comment></comment></comment></comment></comment><comment><USER11> I suppose if you just purposely leave #2 off of your list of the top 20 you could come to that conclusion.

[http://siteanalytics.compete.com/thepiratebay.org+mininova.o...](http://siteanalytics.compete.com/thepiratebay.org+mininova.org/)

<comment><USER12> Is Mininova actually a tracker, or do they aggregate other trackers?

<comment><USER10> aggregate

</comment></comment></comment><comment><USER13> The other trackers will upgrade their hosting plans and will appreciate the extra ad cash.

Also here at least here no one downloads stuff from tPB - especially since you have great local trackers (which however require seeding) with users on the LAN you are connected to; its normal to see speeds of 3Mbit/s.</comment>


OOSMOS – The Object-Oriented State Machine Operating System - <AUTHOR> http://oosmos.com/ <comment><USER2> We used state machine-based software in high assurance systems for easier analysis and synthesis. They've also been used in hardware design and synthesis. I believe LISP OS's with functional programming is similar.

All in all, many interesting and robust systems have leveraged state machine model in design. So it's really neat to see an OS that tries to build on this pattern from core up. I look forward to digging into it. Plus, might help with an idea ive been toying with about implementing an OS kernel in hardware: state machine synthesis is already good and these are state machines.

</comment><comment><USER3> Why is all of the code written as strings of 'l's and '1's that macro-expand to things like 'if' and 'break'?

<comment><USER4> According to [http://oosmos.com/feedback](http://oosmos.com/feedback):

> The core IP of OOSMOS, oosmos.h and oosmos.c, are currently shipped as > obfuscated compilable source files. We'd love to speak with open source > investors to figure out a business model that allows these files to be open > source in order to accelerate the adoption of this novel technology.

I don't think obfuscating code really protects it, but that seems to be the reason.

<comment><USER3> Interesting. Since you could just run the C preprocessor on it (with, e.g. gcc -E) to expand all the macros, that seems like an unusually poor method of obfuscation.

<comment><USER5> In fact, if this falls under trade secret, then whoever figures it out is free to own it. Not even sure copyright would protect the original if all they are publishing is obfuscated code. If they wanted to get serious about IP, software patents are probably the only option. Otherwise they shouldn't be releasing the code in any form IMHO.

</comment></comment></comment></comment><comment><USER6> Sounds like another take on QP: [http://www.state- machine.com/](http://www.state-machine.com/)

Already used in medical devices, automotive, robotic, and defense applications.

And ya have to fill out a form to see the code. Nope. Check out QP for something much more industrial-grade.

</comment><comment><USER7> Is this trying to resemble VHDL processes?</comment>


New proposed USB-C connector. Extra power pins allow up to 120VDC and 1000 watts - <AUTHOR> https://twitter.com/TubeTimeUS/status/1189676169697710080 <comment><USER2> Killer contacts.

No safety issues here, folks. /s</comment>


Verizon, AT&T set to lose 9M customers to cable operators by 2018 - <AUTHOR> http://www.fiercewireless.com/wireless/verizon-at-t-set-to-lose-9m-customers-to-cable-operators-by-2018-new-street-says <comment><USER2> No problem they will just sell the landlines to frontier.</comment>


On Anonymity: Poe Toasters and Toynbee Tiles - <AUTHOR> https://logger.believermag.com/post/toynbee <comment><USER2> There were "copycat" Toynbee tilers in the mid-to-late 2000's. I suspect a reasonable number of the tiles in more remote locations are not the work of the original tiler.

Case in point: I found a "Toynbee Tile" in San Francisco on Geary west of Union Square in 2007. I posted it on my blog the day we found it, and there was discussion in a message board about it the next day: [https://web.archive.org/web/20080325024107/http://resurrectd...](https://web.archive.org/web/20080325024107/http://resurrectdead.proboards59.com/index.cgi?board=general&action=display&thread=1192603799)

</comment><comment><USER3> > There must be some allure to remaining nameless

Or, perhaps, some people just do things because they want to do them, not so other people notice them. The Poe Toaster is visiting the grave of a dead man they give omage to. Toynbee is a reserved lunatic with a hobby. Maybe it's the other way around.

Point is: neither of them gives a crap about what other people think of what they do. Not everything someone does has to be _for_ the public. Sometimes you just want to put a rose on a grave, or some weird tiles in the ground.

</comment><comment><USER4> > _The Poe Toaster failed to appear the following year. Rather than let the > ritual die, the city of Baltimore held a competition to select the next > anonymous toaster. In 2015, the unnamed champion took his predecessor's > place._

I wonder what they would have done if the toaster had returned in 2015 to meet their replacement.

</comment><comment><USER5> > "There must be some allure to remaining nameless. Some might accuse > anonymous artists of irresponsibility—of orphaning their work and leaving it > in the hands of _a ruthless public_."

A ruthless public?

Creating something and letting the world run with it on their own terms isn't done because the creator thinks the faceless mob are savage dimwits. In fact, in order for anonymous art to work, the creator MUST have faith that the public will be motivated to act on a good idea, an insightful summary, a powerful display, or any other call to action that speaks specifically to the people who are tired of being cast as a "ruthless public"

The elitism about these pieces is so painfully predictable you could use it to increment cryptocurrency hash difficulty.</comment>


Google's Answer To The Kindle? - <AUTHOR> http://www.techcrunch.com/2009/02/05/googles-answer-to-the-kindle/

<comment><USER2> book readers on computers are simply _not the same or anywhere near as good_ as ebooks - the epaper is what _defines_ a real ebook ... everything else is the same as reading on a computer screen.</comment>


Basho Blog: Secondary Indexes In Riak - <AUTHOR> http://blog.basho.com/2011/09/14/Secondary-Indexes-in-Riak/

<comment><USER2> Why return the primary key when performing a secondary index query instead of the whole record? This seems like it would add an extra round-trip. Would it be possible add a flag to return the whole record?

<comment><AUTHOR> Excellent suggestion, and something we're already considering for a future release.

Our current reasoning is that if you are only pulling back one or two objects, then an extra round trip probably isn't that bad. If you're pulling back many objects for processing, then you might be better off feeding the query results into a MapReduce job so that it runs in parallel across the cluster.

</comment></comment><comment><USER3> Given the current way [Riak] index queries are expressed, I was reminded of the unfortunately named HTSQL; I'm not sure if I am fond of it or not yet, but I thought I'd pass along a few references as it bears some at least superficial similarity to what exists in Riak at the moment, and that may be of use:

<http://en.wikipedia.org/wiki/HTSQL>

<http://htsql.org/doc/ref/index.html></comment>


The Selfish Dataome: Does the data we produce serve us, or vice versa? - <AUTHOR> http://nautil.us/issue/65/in-plain-sight/the-selfish-dataome <comment><USER2> Note that the cost per byte started going down with the printing press and then plunged with the computer revolution. As the cost goes down, increasingly trivial data gets preserved.

If we're going to think about this in evolutionary terms, we should consider what causes people to preserve data versus throwing it away. As the cost goes down, it might just be inertia; it's not worth deciding what to keep. Low energy cost is adaptive.</comment>


Energy harvesting chips: The next big thing for a connected world - <AUTHOR> http://gigaom.com/2013/11/21/energy-harvesting-chips-the-next-big-thing-for-a-connected-world/

<comment><USER2> I really like the idea of these. Particularly the idea of getting energy from radio waves or Wifi. Sadly it's really had to find much about how to make such designs and the power that can be generated is really low (and hard to store). There are some nice items for generating from heat and other small sources (such as radio waves) but they're generally far too expensive for any practical projects.

<comment><USER3> There is a lot of info out there on this stuff. I would suggest talking to an EE as a friend of mine was all over this 10 years ago and I suspect the field has only gotten more refined with time.

From what I recall, storage is often the key to making these things really useful. Take say a temperature reading every minute store 60 of them and burst that data once an hour and you need a lot less power than you might think. Granted, that kind of lag is not so useful for critical operations, but for say monitoring a bridge it's a good fit.

</comment></comment><comment><USER4> I'll believe it when I see it. Energy harvesting chips were also the next big thing when I finished grad school in chip design. That was back in 2000.</comment>


Hackers Leak Netflix's Orange Is the New Black, Season 5 - <AUTHOR> https://torrentfreak.com/hackers-leak-netflixs-orange-is-the-new-black-season-5-premiere-170429/ <comment><USER2> Netflix probably hasn't responded because they know that overall, they're not going to suddenly lose a ton of subscribers just because a show ended up on TPB. Netflix is doing just fine.

And a quick glance at the comments on TF shows that even their community is really not pleased with the group's extortion lime demands either.

<comment><USER3> Actually they estimated a larger than normal subscriber growth for this summer, based in part on this season.

[https://www.theguardian.com/media/2017/apr/29/hacker- holds-n...](https://www.theguardian.com/media/2017/apr/29/hacker-holds- netflix-to-ransom-over-new-season-of-orange-is-the-new-black)

> Netflix is counting on Orange Is The New Black to help it add 3.2 million > subscribers from April through June. That's substantially higher than the > company's average gain of 1.8 million subscribers in the same period over > the past five years.

> Whenever Netflix's quarterly subscriber gains fall shy of management's > projections, the company's stock usually plunges.

<comment><USER2> Not sure if it's just Orange. Netflix has released other original shows that people have been raving about. Stranger Things, this new 13 Reasons Why, Sense8, etc....

I'm just not sure that Orange is the new black is the one thing driving subscriber growth. I think it's the whole package.

Could be my social circle too. I don't know anyone that's a huge fan of the show, but they do love the others.

</comment></comment></comment><comment><AUTHOR> They've followed up by releasing episodes 2-10 too: [https://pastebin.com/ZUYWMKh8](https://pastebin.com/ZUYWMKh8)

I'm glad Netflix haven't paid the ransom despite it likely costing them more not to.</comment>


Anna Mikusheva refines time-series econometrics tools to improve forecasting - <AUTHOR> http://newsoffice.mit.edu/2015/timing-devices-anna-mikusheva-0813 <comment><USER2> I did my PhD in econometrics. Reading this article, it looks like it was a general interest article profiling a professor who just got tenure. So if people are asking "how is this relevant to me", "how can I use this" or "should I learn more", the answers are most likely "it's not", "you can't", and "no". Not trying to be negative here, it's just that there are dozens of people getting tenure in econometrics every year at a similar level, all working on things that might seem to have some relevance to what HN readers are working on. From a HN readers perspective, there is nothing unique or special that I see here.

<comment><USER3> Hi! I'm currently (next year) getting my Master's in econometrics. I got my Bachelor Econometrics almost cum laude (7.95). My thesis was on using computational linguistics (Latent Dirichlet Allocation) to extract information from financial transcripts, which was cool. Do you feel like your PhD has been 'worth it'? I've been struggling with this question if I want to do a PhD. I have always loved academia and learning new things but I dont see really myself with a career in academia, maybe as a backup plan (how stupid that might sound).

Sorry for bothering you!

<comment><USER2> I think the most important test is "do you care deeply about or are fascinated by the subject in question". If the answer is yes, then a PhD is not a bad idea (conditional on ok job prospects, inside or outside academia). A PhD will almost never be a better decision than a Masters degree from a financial perspective. But it can result in a _different_ and perhaps more interesting career even in industry.

If you are considering economics, one thing you have to understand is that econometrics is _very_ oriented towards economics, and if you are more interested in statistics per se, you would probably be better off in a stats program. There is very little machine learning in econometrics even today.

<comment><USER3> Thanks for taking the time to reply back, I really appreciate it.

Would you recommend working hard as hell and focus on getting my Master's cum laude, or get in some work experience on the side?

How long did your PhD take? I recently talked with an actuary PhD graduate and he did his in 3 yrs in The Netherlands, I also spoke to a graduate who did his at Cornell in 5 yrs.

</comment></comment></comment></comment><comment><USER4> The lecture notes for Mikusheva's graduate time series class are available through OCW: [http://ocw.mit.edu/courses/economics/14-384-time-series- anal...](http://ocw.mit.edu/courses/economics/14-384-time-series-analysis- fall-2013/)

The math behind her research is a bit daunting...the course notes aren't trivial, but there's more intuition presented there than if you try to dive into her publications.

addendum: just to add ---- the course notes give a pretty good picture of the background knowledge necessary to be a time-series econometrician. If you're interested in the subject, check them out.

</comment><comment><USER5> Time series econometrics on HN? Wow. I have a PhD in Econometrics too. I have met her at seminars and she is a wonderful lady with some good quality publications. But this is a fluff piece and she doesn't have any seminal contributions to the field. I wonder if PCB Phillips has ever made an appearance on HN.

</comment><comment><USER6> Here is a link to her MIT page that contains here papers. I tried skimming one, but couldn't follow it; however, Based in the article I'm more interested in econometrics and might pursue that study further.

[http://economics.mit.edu/faculty/amikushe/papers](http://economics.mit.edu/faculty/amikushe/papers)

<comment><USER4> Her time series course notes are [relatively] more accessible: [http://ocw.mit.edu/courses/economics/14-384-time-series- anal...](http://ocw.mit.edu/courses/economics/14-384-time-series-analysis- fall-2013/) A less technical but less up to date time series reference is Cochrane's free book: [http://faculty.chicagobooth.edu/john.cochrane/research/paper...](http://faculty.chicagobooth.edu/john.cochrane/research/papers/time_series_book.pdf)

"Econometrics" is just "statistics for economic applications." Time-series plays a big role (because macroeconomics and finance) but self-selection is really the dominant thread. People tend to make choices that they expect to benefit from, and it is often important to account for that in estimation. If that sounds cool to you, definitely check out econometrics. Somewhat shameless plug, but there's a list of the free resources I'm aware of at [http://www.econometricslibrary.org/](http://www.econometricslibrary.org/)

<comment><USER2> I always thought that the primary difference between econometrics and statistics was the focus on causality/endogeneity. But I guess that in most cases, the endogeneity is caused by self-selection, e.g. selection into a treatment group, so both viewpoints are valid.

<comment><USER4> That's a good point and I probably agree with you. "Self-selection" was my quick attempt to translate "endogeneity" into english :)</comment></comment></comment></comment>


How to Design a Mobile App for Maximum Growth - <AUTHOR> http://firstround.com/review/this-is-how-you-design-your-app-for-maximum-growth/ <comment><USER2> awesome article. really nice to see a guide on how to build effective onboarding from an experts view</comment>


"21", Movie about MIT Las Vegas Card Counters Opens Tomorrow - <AUTHOR> http://www.wired.com/entertainment/hollywood/news/2008/03/21_ma

<comment><USER2> I was just reading the wikipedia entry on card counting the other day -- <http://en.wikipedia.org/wiki/Card_counting> \-- if anybody has a passing interest in probability theory, this stuff is fascinating.

<comment><USER3> I've spent some time on card counting and it's anything but fascinating. The theory behind it is easy to grasp, and the implementation is pure drudgery. You learn a card counting system, then you crank away at it. All the big casinos know what to watch for, and if you are successful they will ask you to leave.

Poker, on the other hand, is much more difficult, and just as dependent on mathematics. Your strategies depend on who you're playing, and how they're playing against you in any particular hand. Much more fun. And with poker, you're playing against other individuals, so you don't have to worry about the house shutting you down if you're playing too well.

<comment><USER4> I agree with you that it isn't especially difficult to learn how to card count, or understand the theory behind it (it is probably very difficult to do it well in a casino, but that's a different issue).

That said, I actually do find it fascinating, mainly because of the history behind it. A lot of discoveries look simple in retrospect, but keep in mind this was a complicated game that was essentially intractable until the advent of supercomputers (early reviews of thousands of hands weren't even enough to get accurate readings on the odds).

It took a math professor from UCLA (Thorpe) with an interest in programming to really get a handle on the odds. We could all write a program to calculate basic strategy odds now, but at the time, it was very, very innovative.

While Hi-Lo and other counting systems seem pretty simple, I think it was a stroke of genius to think of this the first time. And it was another stroke of genius to use a programming language to determine exactly when the count turned the expected return in favor of the player. Add in statistical systems for bankroll management (ie., how do you use a small but positive expected return into a 99% chance of making money while keeping bankroll growth as high as possible), and you have some real sophistication considering that it hadn't been done before.

The people who did this the first time were brilliant, and personally, I think it is pretty fascinating.

</comment></comment></comment><comment><USER5> Also good: The Eudaemonic Pie

[http://books.google.com/books?id=Q9aOedEfOMMC&dq=eudaemo...](http://books.google.com/books?id=Q9aOedEfOMMC&dq=eudaemonic+pie&pg=PP1&ots=llVlMabxVM&sig=h_wYtPndwIGptmrDNffUeP7kZuE&hl=en&prev=http://www.google.com/search?num=50&hl=en&lr=lang_en%7Clang_de&safe=off&client=firefox-a&rls=com.ubuntu:en- US:official&hs=HBh&sa=X&oi=spell&resnum=1&ct=result&cd=1&q=eudaemonic+pie&spell=1&oi=print&ct=title&cad=one- book-with-thumbnail)

</comment><comment><USER6> I've read the book "Bringing down the house", really fascinating read. Definitely going to go to this movie!

</comment><comment><USER7> Pft, that's nothing. ;) MIT's Edward O. Thorp wrote the book on blackjack card-counting, then he and MIT's Claude Shannon created the first wearable computer to help them beat Vegas at roulette back in 1961.

[http://www1.cs.columbia.edu/graphics/courses/mobwear/resourc...](http://www1.cs.columbia.edu/graphics/courses/mobwear/resources/thorp- iswc98.pdf) [http://en.wikipedia.org/wiki/Card_counting#History_of_blackj...](http://en.wikipedia.org/wiki/Card_counting#History_of_blackjack_card_counting)

<comment><USER8> And after that they started a hedge fund and have been playing in the real big markets..ever since.

That (hedge funds) and all such things seem to be basically about one thing : Know of a statistical advantage that others don't know and then play mechanically with zero emotions as possible. Play for the long term, play for sensible gains/expectations and put risk-management above everything else.

[Edit] As I am thinking about this : Startups are probably a similar kind of game as well.

</comment></comment><comment><USER9> A student group I am a member of screened this on Tuesday for the campus. Good stuff, I liked it more than I imagined I would. I've been told it deviates somewhat from the book, which I need to pick up.

<comment><USER10> I went to a screening last week. Also enjoyed or more then I expected. It's no oscar winning movie, but definitely worth 2 hours of my time.

</comment></comment><comment><USER11> I've worked on professional Blackjack teams. It looks much more glamorous in the movies than it is in real life. Still, potentially making 35k in one night has its appeal.

</comment><comment><USER8> What Ed Thorpe did was just plain genius!!! And what 'rainman' (movie ref) did was beyond genius!

But IMO what these folks did was _cheat_. You can count cards as long as you do not use an external device to aid you in the counting. These folks collaborated with others to share each one's counts so as to take advantage of the system. Not that I am a big fan of the casino (or their making tons of money).

</comment><comment><USER12> See also <http://www-tech.mit.edu/V128/N12/blackjack.html> for an interview with Ben Mezrich, author of "Bringing Down the House" and Jeffrey Ma, the person that Jim Sturgess' character is based on.

<comment><USER13> And here <http://www-tech.mit.edu/V128/N14/sturgess.html> for an interview with Jim Sturgess.

</comment></comment><comment><USER14> I've been out to a club with the author and his wife. I dated his wife's best friend before I met my now-wife. Ben talked about how the story came his way. Basically, it started with someone saying "You know what would make a great book..." which I thought was funny because it reminded me of "I have a great idea for a website..."

<comment><USER14> This has been down-modded twice now. That's fine, but care to explain why?

Edit: downmodding someone asking for clarification is just being a jerk.

</comment></comment><comment><AUTHOR> We pretty much stopped going to the movies about a year ago, but I think this will make a nice exception this weekend. Pass the popcorn.</comment>


The inside story of how Madden NFL became a video game dynasty - <AUTHOR> http://espn.go.com/espn/eticket/story?page=100805/madden <comment><USER2> They bought the exclusive contract to the NFL when they faced a challenge from 2K games. That's how this dynasty stays around.

<comment><USER3> I don't think that's adequate, that explanation is buck-passing. The NFL doesn't care about Madden or EA, it just cares about making money; if someone else offered it more money, they'd sell the license to them. So why has EA been able to keep paying the NFL's bill and keep the fanbase to pay it off? It looks like they've been able to build a brand, and have invested a ton in constant finetuning and additional football-nerd details that a competitor would have serious difficulty in living up to in the first iteration of any AAA competing football game, combined with an annual iteration which means that with the usual 3 year development cycle, any competitor would be obsolete quickly.

<comment><USER4> For one EA is ~3 times the size of Take Two interactive (parent of parent of 2k sports). Logic would dictate they just out bid on the rights to Madden each and every year.

I've bought Madden every year up to 2015 and personally call bull shit on the idea that EA has continually added value to the franchise. They've added Ultimate team, a feature that lets users purchase players and bet on online games (it uses virtual currency so it's not gambling right!), as well as a handful of small feature improvements year over year... that's it. The biggest sell year on end is roster updating and graphics tweaks.

TLDR; used to buy Madden every year, now I categorically don't.

<comment><USER3> > For one EA is ~3 times the size of Take Two interactive (parent of parent of > 2k sports). Logic would dictate they just out bid on the rights to Madden > each and every year.

That is _still_ not an explanation. If Take Two Interactive can _make_ more money off a NFL-licensed game than EA can, then the NFL will go with them; and if EA pays more for the NFL license than EA can make, then they are losing money each year, and potentially an enormous and crippling amount. There is no evidence they are bleeding constantly like you seem to postulate.

</comment></comment></comment></comment><comment><USER5> There's this odd little rumor/story that gets passed around from time to time that Madden, deep down in the core of its object code, is still running the SNES game engine from the 1990s.

From a blog somewhere else:

 _" Madden 2015 has a long, dark history. Inside its inmost code, there's a tiny copy of snes9x, linked to a tiny virtual display, used only in memory, never shown to the user. This arrangement has been used to drive every version of Madden since John Madden Football 97, although the emulator then was a custom job written (poorly) by EA."_

<comment><USER6> I worked on Madden for several years. It would be delightful and hilarious if that were true.

There is some _very_ old code in there, or at least was when I was on it. I recall digging up the code that updated your score on a touchdown—not a bit of logic that has much need to change—and saw Steve Chiang's initials on it, from back when he still coded.

One obvious sign is that it's a fake is that there's no way there would be a _shitty_ emulator in Madden. Icer Addis, the creator of Nesticle, worked on Madden for years and wouldn't have tolerated that. If there was an emulator, it would be a good one.

<comment><USER7> Answer me this: why does the opponent wait until 2 minutes left in the game to do an onsides kick and then they will do it even if I'm ahead by 6 touchdowns?

</comment></comment></comment><comment><USER8> FTA: "In 2004, EA paid the NFL a reported $300 million-plus for five years of exclusive rights to teams and players. The deal was later extended to 2013. Just like that, competing games went kaput."

They became a monopoly.

<comment><USER9> The 2K football games were superior at the time. Then they dropped their price significantly ($20 for 2k5 after 2k4 was a success) and EA decided they couldn't compete. So that deal was signed so that they wouldn't have to. And thus I stopped buying NFL games.

Interesting that ESPN doesn't seem to mention this in the article considering their name and properties were used for the 2K games.

</comment></comment><comment> gat-bitty I'd really like to see a Gruden NFL game myself

<comment><USER10> Well maybe you could be the one to figure out how this thing works: [https://www.youtube.com/watch?v=2U0azTHBn-E](https://www.youtube.com/watch?v=2U0azTHBn-E)

I remember asking my dad how I was supposed to play this when I was about 4... he didn't know either.

<comment><USER11> While we're on the subject of old football games, no discussion is complete without mentioning the amazing PlayMaker Football released by Broderbund in 1989 and featured on this episode of Computer Chronicles: [https://youtu.be/1vMfW32TNo0?t=17m16s](https://youtu.be/1vMfW32TNo0?t=17m16s)

</comment></comment></comment><comment><USER12> Interesting, I had Madden on the Genesis and enjoyed it a lot. Shortly after that I got into stocks, too bad I didn't put two and two together.

Now that I think of it, I just played the game at home and had no idea how popular and financially successful it was.

</comment><comment><USER13> its always been confusing to me how the NCAA franchise got so little love and was eventually killed off. It should have been essentially the same engine but always lagged multiple years behind in functionality.</comment>


Simple Apple security hack: if you have an iPhone and MacBook, look away - <AUTHOR> https://www.forbes.com/sites/zakdoffman/2020/02/26/simple-apple-security-hack-if-you-have-an-iphone-and-macbook-look-away-now/#6e49f03b2321 <comment><USER2> I like their suggestions to:

\- make clipboard access a separate privilege for an app

\- except when the user actively pastes something

This should allow existing apps that has legitimate reasons for accessing the clipboard to continue to work (only they need to ask for clipboard access once) and allow all normal user workflows to continue working.

(I'd also like a separate Network Access privilege for apps. There's absolutely no reason why for example a simple calculator app should need network access.)

<comment><USER3> > I'd also like a separate Network Access privilege for apps. There's > absolutely no reason why for example a simple calculator app should need > network access.

This is already available on iOS devices sold in mainland China. They just need to enable this feature for the rest of the world.</comment></comment>


Holocaust History: What Happened to the Jewish Refugees in St. Louis - <AUTHOR> https://virtualvoice.org/holocaust-history-happened-jewish-refugees-st-louis/ <comment><USER2> Title is misleading. Article is about passengers on ship "St. Louis" and not the city of St. Louis.</comment>


I work remotely as a JavaScript developer - <AUTHOR> https://content.remote.tools/about-cooking-pasta-writing-javasript-and-working-remotely <comment><USER2> Per [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html), please use the original page title unless it's misleading or linkbait.</comment>


Show HN: Some of the most interesting pdf's on Hacker News - <AUTHOR> http://wisewords.online <comment><AUTHOR> Hi everyone,

I've made a small compilation with some of the most interesting pdf's I've found on Hacker News and around the web.

I would love to receive some suggestions and more pdf's to add to the collection.

Thanks.

<comment><USER2> The font/color used for author names is too faint, IMHO.</comment></comment>


Winner of the Engineyard contest - <AUTHOR> http://www.win.tue.nl/cccc/

<comment><USER2> I'm more interested in what they're doing with NSEC3, which is a key loose end in IETF's boondoggle DNSSEC system. NSEC3 is to domain names in a zone transfer what crypt(3) is to passwords in /etc/shadow.

</comment><comment><USER3> I should have entered the contest, considering I have access to a 512 node hadoop cluster. Kicking myself for not entering now...

</comment><comment><USER4> "None less than Daniel J. Bernstein (currently visiting TU/e) took the time to write dedicated software for our cluster of Core2 Quad CPUs." Why am I not surprised that djb's team won a crypto speed contest? :)

</comment><comment><USER5> I hope he'll post more info about his cluster. The 2nd place guy was running 5 nVidia GPUs, so it would be interesting to compare performance.

<comment><USER6> From the bottom of the page:

The Coding and Cryptography Computer Cluster is a a ten-node cluster of conventional desktop PCs. Each node has an Intel Core 2 Quad Q6600 CPU with a clock rate of 2.40GHz and direct fully cached access to 8GB of RAM. Each computer has a 750GB Western Digital SATA hard disk. The nodes are connected via switched Gigabit Ethernet using Marvell PCI-E adapter cards.

<comment><USER7> It also mentions that he had help from 2 folks who contributed GPU time. I can't imagine that fairly small cluster would come close without luck.

<comment><USER8> Read their tweets... "With 1 machine down (fan) still getting 428435640 hashes per second thanks to Dan's cool fast code." It would seem that DJB wrote some code for their cluster that was on par with GPU speeds.

</comment></comment></comment></comment><comment><USER9> ...is not a cloud-based solution. It's a homemade cluster.</comment>