English and Its Undeserved Good Luck - <AUTHOR> http://chronicle.com/blogs/linguafranca/2015/12/03/english-and-its-undeserved-good-luck <comment><USER2> It says a lot about the broken sensibilities of higher education that an Historian describing how an outcome occurred feels obligated to explicitly dissociate herself with the outcome ("I don't intend any of this in triumphalist spirit"). Or for that matter, even to express an opinion on the moral correctness of the outcome.

If an historian who happens to be from Egypt describes the governmental system at the time of the pyramids were built, would we expect them disavow the ancient regime? Even if they were describing the system under Nasser, a disavowal would be weird.

<comment> guard-of-terra Russian history in 20-th century is so awful that you've got to make some statement about events.

Unfortunately, people learned nothing and we're on track to repeat.

<comment><USER3> Russian history in every century is brutal. They've been fighting off invaders pretty much since the beginning of time. From Mongol hordes to Muslim invaders to European invaders, and so on. And of course you're right - in the 20th century they had a world war followed by revolution followed by another world war in which they lost 20% of their population, and an economic disaster in which they lost half their GDP...

<comment><USER4> >They've been fighting off invaders pretty much since the beginning of time

Right. Russian Empire has grown to the size of one sixth of all land on Earth by _defending_ from invaders.

<comment><USER5> Okay, so there's the Winter War and other battles throughout history where they've won land as a result of an offensive. (see also: Siberia)

However, much of Russian land was claimed after winning decisive _defensive_ victories and then going over and saying "We won't kill you if you give us [specific pieces of land]" to which the losing nation's army hands over the land.

Something many nations _never learned_ was to not launch _offensive_ battles _into Russian_ during _the goddamn Russian winter_. Napoleon wasn't the only military leader to lose to the Russians because of that mistake.

<comment><USER4> >much of Russian land was claimed after winning decisive defensive victories

Citations, please.

<comment><USER3> > Citations, please.

Read a history book, please.

This is like asking for a citation when stating that Napoleon lost at Waterloo, or that Istanbul was once Constantinople...

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> While the loss of languages is certainly hard to stomach, the biggest detriment to society is that is often signifies the loss of information. One common language used globally dramatically decreases the chances of information getting lost. It also has the benefit of increasing access to information over time. A great breakthrough can be shared globally, not insulated in one region.

I question the need to preserve a language if it inhibits the positive spread of information. Why should a country hold on to their traditional language if it holds back the potential of its citizens?

<comment><USER7> > I question the need to preserve a language if it inhibits the positive > spread of information.

I think that language diversity is bad for the _communication_ of information, but language _preservation_ is good because there are words in other languages that are difficult to articulate in English. If you still have a few people that speak their native language (Even as a second language), then those exact concepts are preserved.

<comment><USER8> > there are words in other languages that are difficult to articulate in > English.

We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us.

<comment><USER9> "The problem with defending the purity of the English language is that English is about as pure as a cribhouse whore. We don't just borrow words; on occasion, English has pursued other languages down alleyways to beat them unconscious and riffle their pockets for new vocabulary." \- James Nicoll

</comment></comment></comment></comment><comment><USER10> Amongst global languages, English is unique in the sense that its arbiters of correctness are _very_ weak. Many global languages have arbiter bodies which are considered authoritative (for example, the Real Academia Española for the Spanish language), whereas with English such institutions exist but they don't have much influence outside regional standards for formal publications.

I would argue that the decentralized and weak arbitration of correctness is what allows it to thrive in extremely diverse cultures, as there is no concept of authoritative correctness that requires you to use a construct that is cultural in nature.

<comment><USER11> The two "arbiter bodies" for English are the BBC and Hollywood. They define what "standard English" is for the world. (Actually, they define two, slightly different, standard Englishes, but they're close enough to keep the language unified, at least so far.)

</comment></comment><comment><USER12> German had a pretty good shot at becoming a lingua franca. It was the language of science for some time and the Holy Roman empire and the later Habsburg empire made it the predominant language in a quite large part of Europe. It was also reasonably popular in the US.

Personally, I think English is an easier language than German so I'm glad that German didn't win. It's sad though that Esperanto or one of the other artificial languages isn't more popular.

<comment><USER13> Given the fact that German had a shot, I'm surprised the author expects English to remain the global language. The number of native speakers is small compared to Mandarin and as China modernizes it would be surprising if economic gravity didn't shift in that direction.

Is the difficulty of Chinese writing enough to prevent it from becoming a global language?

<comment><USER14> I'm really not sure which way this could end up shaking out. English has some bizarre spellings, due in no small part to the huge percentage of loan-words it has vacuumed up from all over the world. On the other hand, if you can speak it, and know the basics of how the phonemes translate to print, you can generally make yourself understood - it mite not be kompleetlee korrect allways, but thars a lot of error tolarenz.

On the other hand, Mandarin script is abstract enough that you can conceivably use it to transliterate all sorts of languages. Historically, non-Chinese languages, like Manchu, Mongolian, Turkic, Korean, and Japanese have been written using Chinese characters. Not to mention its use as a written lingua franca in the pre-modern period for all of the more-or-less incompatible regional Chinese dialects. You do have to know thousands of characters for the ideas that you want to express, rather than the few dozen letters and letter combinations that English uses.

I think as long as English-speaking entertainment is dominant (Hollywood, the music industry, television), English is going to continue to grow.

<comment><USER13> How does grammar carry over from non-Chinese languages to Mandarin script? It feels like it could feel stilted if the grammar was sufficiently different.

</comment></comment></comment></comment><comment><USER15> The article has a weird tone.

It seems fairly obvious to me that English and the dominance of the British Empire in the 19th century followed by the rise of the USA as a superpower in the 20th century just happened to coincide with the rise of globalisations in the 20th century. It could've easily been any of the other previous imperialist super powers (Spain, France, etc), but those empires just so happen to have declined in power before globalisation.

So in short, luck.

</comment><comment><USER16> In the graphic of where English is the official language, Quebec should really be colored grey. :D

</comment><comment><USER17> I don't buy that there's even a concept of a language "deserving" to be a global language. A number of the linguistic faults the author attributes to English are a consequence of it being a global language, for example, a great many English words are adopted wholesale from other languages, spelling and all.

</comment><comment><USER18> Is there a language that _deserves_ to be the world language?

I mean, not "would be a good one"... _deserves_?

(I'm sure many people would cite some beautiful language as a "good one", but remember that in the process of becoming the "world language" it would cease to be "beautiful" anyhow.)

<comment> guard-of-terra I think Italian is way easier and contains more roots from Latin that other european languages also spot.

But obviously Italian never come close to such capability.

</comment></comment><comment><USER19> Given English has had so many external influences from other languages over time from invasion alone then English, isn't as geographic as inferred by name. Even Shakespeare's time, the language then is not what is used to today and it still evolves and with that.

Maybe English is were it is at because it adapts more quickly than other languages and with that English has changed much as a language over time and still does.

<comment><USER20> Languages are generally simplified by contact with other languages, and because of the Norman Invasion, and later the British Empire, English has had a lot of of contact. Inversely, the more isolated a language is (e.g., by mountain ranges or seas) the more complex and idiosyncratic it tends to become.

So yes, English has historically adapted more quickly than many other languages, but this doesn't have anything to do with the language itself.

</comment></comment><comment><USER21> I can't believe that no one has mentioned the industrial revolution. The nature of the industrial revolution is such that which ever country got there first was going to dominate the world. The really interesting question is why was England the first country in the world to pull itself out of the Malthusian trap via industrialisation.

</comment><comment><USER22> _But it was pure dumb luck for English that the British empire arose so quickly and so late._

No it wasn't. Being an island nation and having both invaded and suffered invasions during medieval times, Britain understood that sea power was key to its security and invested heavily in naval power - as you'd expect an island nation to do if it had the resources. This doesn't mean just investment in boats and personnel, but in things like accurate clocks to aid navigation. The government of the day offered huge cash prizes to anyone who could make a chronometer that would reliably work at sea and technologists rose to the challenge.

Britain did indeed benefit from a variety of other technological developments, but they basically deployed their blue water navy and colonial efforts in much the same way that the Romans did in the Mediterranean sea centuries before - and the success of Roman and Hellenic civilizations is easily observed in the ubiquity of Latin and Greek roots in the variety of European languages, and our ongoing use of the Latin alphabet. If the Roman empire had not collapsed in the 4th century (for reasons which are beyond the scope of this discussion) most of the world would be speaking Latin today. As with English, Latin thrived because the Romans were fairly skilled administrators of the territories they took over, prioritizing trade and economic growth rather than conquest and total destruction/

Latin and Greek are distinctive languages because they have a fully phonetic alphabet, whereas many other writing systems struggle with notating foreign languages. Ancient Hebrew, for example, derived from Phoenician writing and is based on the writing of consonant sounds and so it retains a strong oral tradition of Torah study because there are no letters for vowels and so the meaning of a given word in Hebrew depends heavily on context, substantially limiting its use by others lacking that oral tradition. The utility of an easy-to-learn alphabet should not be underestimated; look at the time cost involved in developing an adequate vocabulary in Chinese or some other ideogrammatic language. Japanese uses Chinese symbols as _kanji_ (albeit with different meanings from Chinese, though Japanese schoolchildren learn both meanings) and has not one but two phonetic scripts, one for Japanese words (to help kids look up _kanji_ in syllabic dictionaries) and one for foreign words. Oddly, though, Japan doesn't have a punning tradition based on homophony because the syllabic script came along much later.

I apologize for the extreme over-simplifications above, but this is really a book-length topic that can't be properly argued in only a few paragraphs.

<comment><USER14> I think you could argue that England didn't really become a naval power until they realized that organized piracy could be wildly lucrative. The East India company probably doesn't get founded if a British privateer doesn't capture a Portuguese carrack loaded with spices and make everyone involved rich enough to be a lord. For much of its early history, the merchant shipping of the company heartily supplemented their more legitimate trading with raiding their Spanish, Portuguese and Dutch competitors.

Even the Royal Navy was a pretty piratical endeavor. Reading through their wartime exploits, there are a very few big fleet actions, some smaller single- ship actions, and an enormous amount of prize-taking of enemy merchant shipping. And it makes sense - the captain would get one-quarter to three- eighths of the prize's value, with the remainder parceled out down the line to the ship's officers and crew.

<comment><USER22> Oh indeed. In fact I was thinking of Drake's defeat of the Spanish Armada as the thing that secured the preeminent position of naval power in English military strategy - and I think even most English people would cheerfully acknowledge that Drake was a pirate.

</comment></comment></comment><comment><USER16> For more reading, the author recommends "English as a Global Language" by David Crystal. It's available in pdf here: [http://www.culturaldiplomacy.org/academy/pdf/research/books/...](http://www.culturaldiplomacy.org/academy/pdf/research/books/nation_branding/English_As_A_Global_Language_- _David_Crystal.pdf)

</comment><comment><USER23> There's a melting pot effect, too.

</comment><comment><USER24> Well, it is great we have a common language which facilitates scientific communication, I don't really understand why the author seems so apologetic about that.

Conversely, the fact that the standard is a language where some nations inherently have an advantage over the rest of the world is an unfortunate side-effect of historical events. I also don't see the advantages leveling at any point in the future unless a country were to decide to completely give up its entire cultural heritage, literature, etc. and adopt English in every aspect of public life - and even then it would take minimally a generation before most of the new culture was assimilated, and would only level the field for said country.

Also I think there are two distinctions that need to be made. The first is that there is a global lingua franca, namely English. Now the world has a new standard language instead of French in which to communicate about everything. I see this as a great win in the sense that we can all communicate with one another, the only negative part is that its not a level playing field, but this again is simply a discomfort, it was the same before when French and Latin were lingua francas.

The second is the anglicisation of all cultures. Here in continental Europe you can almost literally observe the change as you see how many advertisements, marketing, technology, language, music, films etc. are directly imported from the English speaking world, even to the point where it now "sounds wierd" to use non-English words for certain things. Now you could see this as positive or negative. For one if you go anywhere you know what to expect, you have a universal culture to understand marketing, tech, restaurants, ads, doctors, educational systems, etc.. Of course on the flipside everywhere is the same, just as in the US you can travel thousands of miles and the stores, language, and restaurants are all the same. So you are getting sameness on a global scale. I see how the author could be sad about that happening and I think thats what's making him so apologetic. I even sympathize with him, English is great to communicate globally but I don't see why it and its countries' cultures have to encroach on all others, it seems to make the world a dimmer place.

I've often wondered why we haven't created a language based off of knowledge gleaned from the cognitive sciences and universal grammar and phonology, to create a language that was perfectly regular and maximally easy to learn (orthography/phonology/syntax/semantics) for all speakers of any language. Its certainly possible, you could even make it much more efficient for text- processing and analysis purposes. You could likely cut down the time of acquisition to less than 6 months for B2 level fluency. Of course all previous attempts at synthetic languages tell us no one will use it. I wonder how easy it would have to be to cross the threshold? Probably impossibly easy given the number of rules required to generate an infinite set of discreet symbols...</comment>


Learn cryptographic engineering by example - <AUTHOR> https://github.com/sodium-friends/learntocrypto <comment><USER2> This is more of a quick tour of the basic API for libsodium than a workshop for learning cryptographic engineering. Many of the exercises have no cryptographic component at all; the remainder basically exercise the most basic libsodium sign/verify/secretbox functionality. None of the exercises explain the rationale behind any of the libsodium constructions, and (because libsodium) nonce-based authenticated encryption is used without explaining any of the details of what a nonce is and what the requirements are for generating and handling them. Finally, the service model for the crypto involved doesn't make a whole lot of sense; most of the exercises build a "tamper proof log" from a simple chained hash function, and ultimately encrypts that log using a key exposed to the server anyways.

Respectfully, I don't think this is how you should learn cryptography (certainly: you shouldn't call this kind of work "cryptographic engineering").

I'm talking my own book here a little (but just a little, since it's not like I make a dime from this) when I say that the better way to learn and understand cryptography is stuff like the Matasano Cryptopals challenges:

       https://cryptopals.com/

These exercises will try to teach you crypto engineering by _breaking_ cryptography, and without wasting much time structuring a trivial JSON interface. You'll understand what a nonce is by the end of set 3 because you'll have written exploits for otherwise sane cryptosystems that mishandle nonces. By the end of set 8 you'll have implemented invalid curve attacks and built and broken short-tag GCM AEAD encryption and, hopefully, be a little nauseous any time someone asks you to use crypto again --- which is the way it should be.

Even after you've undergone our cryptogaphic Ludovico Process, you still won't be a "cryptographic engineer". I've been testing and building exploits for random cryptosystems for over a decade and I'm nowhere close. The simple, blunt reality of it is that if you're going to build anything close to new with cryptography, you really do have to understand the math, and anyone who claims you can get to "securing a banking interface" without a detour through abstract algebra is, I think, doing you a disservice.

Another good resource for this stuff is LVH's Crypto 101: [https://www.crypto101.io/](https://www.crypto101.io/)

<comment> loup-vaillant > _the better way to learn and understand cryptography is stuff like the > Matasano Cryptopals challenges_

Compared to OP's tutorial, this is certainly a better way. I very much doubt this is _the_ best way however, unless of course you actually want to do cryptanalysis.

Breaking stuff for real takes time. Learning that stuff _can_ be broken is much quicker. I don't need to forge messages to be afraid of ciphertext malleability. Once I understand how XOR works, _of course_ I'll run away screaming into the night at the sight of unauthenticated encryption. That said, I reckon doing the challenges is very good for street cred.

Also, some things just have to be taught. Forward secrecy for instance, is either like "I don't have the key, can't break anything", or "duh, you leaked your long term key, of course I can read everything". Exploiting breaches can help someone plug the leaks, but they won't teach them to secure their users' messages after law enforcement went for their long term keys.

And dammit, I don't aspire to be a crypto engineer. I just want to build a secure system. That said:

> _if you 're going to build anything close to new with cryptography, you > really do have to understand the math_

Oh yes. That alone warrants my upvote.

<comment><USER2> It's interesting to hear that. Out of curiosity: have you implemented an invalid curve attack, or an attack against a GCM nonce repeat? Did you feel like that was instructive?

<comment> loup-vaillant Of course not. While I do expect it would be somewhat instructive, I don't expect it would help me build a secure system. I'm generally curious, but I do have priorities. Cryptanalysis is not one of them.

Monocypher uses DJB's curves, which are naturally immune against pretty much anything (assuming constant time primitive operations). Invalid curves don't reveal anything (though one needs to check against non contributory behaviour in key exchange), and the whole thing is constant time whether the public key/point was on the curve or not.

Maybe I would take a look at invalid curves attack if I ever try my hand at ECDSA or something, but (i) I don't plan to in the first place, and (ii) even if I did, it would be quicker to just learn about those attacks and how to avoid them.

Same about GCM nonce repeat. Useless. I have read that nonce repeat is catastrophic for GCM, and I trust that. Chacha20/Poly1305 is also vulnerable to nonce reuse (reveals the authentication key and the XOR of 2 plaintext messages), but I don't need to mount an attack against it to learn anything useful. Sure, this might give me further insight about how Wegman-Carter hashes work, but I'm not inventing anything here, so I don't need to understand that part in depth.

Even if I _was_ inventing anything, I still believe being able to mount relevant attacks would _still_ be mostly useless. I don't want to attack flawed systems, I want to build a flawless system. I would have to _prove_ the system is flawless. Making sure the proof doesn't have an error is different from mounting an attack if there is.

\---

Some people may need to perform the attack to really believe in their core that it is possible after all. I don't. Seeing the math is enough to send shivers down my spine.

I see _one_ thing for which I expect cryptanalysis is genuinely useful: inventing new primitives that we _cannot_ prove secure. Symmetric cypher and hashes, elliptic curves… _Those_ require a deeper understanding, and I do expect one has to know how to break the bad stuff to come up with good stuff. There's just no way I try to elevate myself up to that level. I have no comparative advantage, and I'm not going to spend the 10 years required to have one.

<comment><USER3> The cryptopals things aren't really about cryptanalysis. And it's, in hindsight, easy to convince yourself the problems of cryptography engineering obviously follow from the properties of the cryptography maths. But, historically and empirically, that's exactly how it hasn't worked out.

<comment> loup-vaillant Wait a minute, that depends at what level you are. Sure, you have to devise attacks to come up with the relevant mathematical properties. For instance, to protect against snooping, you encrypt, and you formalise the chosen plaintext attack. To protect against forgery, you formalise the chosen ciphertext attack, and we protect against it with authentication. I expect the same happened with man in the middle, forward secrecy, and others.

Me, I don't try to push the state of the art. I just try to protect against known attacks, and I trust we won't come up with new attacks too quickly, the same way I trust we won't break existing crypto too quickly.

From there, I just have to make sure a number of mathematical properties are followed, and _voilà_ I have a secure system according to current standards. It will be guaranteed to hold out as long as no one comes up with some new unforeseen attack. And even then, I suspect everything has been pretty much worked out. The primitives themselves, with few exceptions, are still not proven secure, but the constructions have sound security models.

Which is why _now_ , we don't need to do stuff like the cryptopal challenges to build secure systems. We just need to avoid the relevant pitfalls, which have already been figured out by smarter people.

\---

Then there are side channels, but those are whole 'nother can of worm (except maybe timings, which are pretty well understood by now).

<comment><USER3> Maybe I'm not following something but it seems to me you're saying an understanding of the mathematical properties of the primitives invariably leads to their secure implementation, combination and deployment. On its face, this is demonstrably untrue.

 _From there, I just have to make sure a number of mathematical properties are followed, and voilà I have a secure system_

Or, et voilà, you have SSL.

<comment> loup-vaillant This was an oversimplification. First, take a look at my crypto library, Monocypher¹. I went for the simplest things I could find. The AEAD construction is a simple XChacha20/Poly1305. I didn't invent a single thing. So on that front, we're safe.

Then all I have to do is weed out the bugs. It's not trivial, but it _is_ pretty simple. Thanks to all primitives being constant time, the memory access patterns are identical for every input of the same length. Test all the lengths from zero to some threshold, and you pretty much test all the code paths. Then you sanitise the hell out of the code, because this is Unsafe™ C we're talking about, and _then_ you have a secure crypto library. Extend that philosophy to the entire system, and you're good to go.

Now let's say I _did_ invent something. I was close to such invention when I implemented XChacha20 from first principles (that is, from reading the XSalsa20 paper, and doing the same to Chacha20). Making sure the "invention" was sound just required I understood the relevant maths, which in this case wasn't complicated at all (it's basically "reveal only the bytes the attacker could have guessed anyway").

The same apply when one designs a protocol. One must be aware of the relevant properties the protocol must achieve, and understand the maths required to ensure those properties. Once that's figured out, it's just a matter of not screwing up the implementation.

Crypto is often underestimated, leading to horrible security issues. But I think it is also often _overestimated_ , that with "don't touch it unless Bruce Shneier said you could" or something. Really, applying crypto is not hard. A couple weeks of full time learning is more than enough.

[1]: [https://monocypher.org](https://monocypher.org)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> I would like more description in the main readme. Tell me a little about what kind of skills and knowledge will be gained by going through the exercises.

</comment><comment><USER5> As I write, this article is above another on the front page titled "A security vulnerability in Git that can lead to arbitrary code execution "

Makes me wonder if the "example" is getting pwned by a Git repo and the lesson I'll learn is to keep my system updated.

That said, browsing the repo online, it looks like a pretty useful tutorial.

</comment><comment><USER6> It would be good to have also examples of crypto over SOAP, a protocol which is vastly ignored in the wild (REST is preferred for its simplicity) but massively used in enterprise applications.

<comment><USER7> In my experience, SOAP is dying off pretty much everywhere. It's ignored for the same reason that we don't put steam engines in cars: it's unwieldy, slow, and wasteful.</comment></comment>


Show HN: Rattle.io new baby shower website, feedback needed - <AUTHOR> http://www.rattle.io

<comment><USER2> Few thoughts...

1\. Your site is very confusing to me. Maybe a quick tutorial would be helpful?

2\. Lot of UI quirks (as the other person has pointed out)

3\. Why would I use your site versus the gazzillion other options available to me? It would be helpful if you mention your value proposition on your home page

</comment><comment><USER3> The links in your navbar fade to dark on hover, but the navbar itself turns to dark on scroll. When the navbar is black, you can't read the link text on hover.

</comment><comment><USER4> I don't know what is a baby shower, but I encourage you to make it work somehow without logins. People will use it if they don't have to register.</comment>


Ask HN: ASP.Net shared hosting alternative to GoDaddy? - <AUTHOR>

Who is cheap, reliable, and anti-SOPA? <comment><USER3> I don't know AppHarbor's stance but they're doing some really cool stuff - <USER2> just do a git push and they'll deploy it for you:

<http://appharbor.com/></comment>


The US weather model is now the fourth best in the world - <AUTHOR> http://arstechnica.com/science/2016/06/the-us-weather-model-is-now-the-fourth-best-in-the-world/ <comment><USER2> this should point to [http://cliffmass.blogspot.com/2016/06/us-numerical- weather-p...](http://cliffmass.blogspot.com/2016/06/us-numerical-weather- prediction-is.html)</comment>


CyanogenMod Needs Your Help - <AUTHOR> http://www.cyanogenmod.com/blog/cyanogenmod-needs-your-help <comment><USER2> The target has been reached. Two noteworthy comments from the post, in the order I saw them.

"I'm the MD of Bytemark Hosting in the UK, and noticed that you'd asked for donations for a CyanogenMod build farm. We have a few machines that would meet your requirements (or can easily upgrade a couple) and increasing numbers of our staff think it is a very cool project. [...] Please email me - matthew(at)bytemark.co.uk - and let us know what your ideal systems would be." \-- [http://www.cyanogenmod.com/blog/cyanogenmod-needs-your- help#...](http://www.cyanogenmod.com/blog/cyanogenmod-needs-your- help#comment-442742735)

"Thank you all! The goal has been reached after 8 hours!!! You guys rock! [...] For those of you who volunteered hardware/servers, should the donation drive prove to be insufficient, we ask that you post your email or other contact info in the comments." \-- [http://www.cyanogenmod.com/blog/cyanogenmod-needs-your- help#...](http://www.cyanogenmod.com/blog/cyanogenmod-needs-your- help#comment-442909002)

</comment><comment><USER3> I have a special kind of hate for (custom skinned BS company versions of) Android, and back when my Galaxy S crashed and burned, CM was here to bring it back from the dead. While I don't own an Android at the moment, I'll definitely donate.

<comment><USER4> Thank heaven for community supported firmware - Amen.

</comment></comment><comment><USER5> > _If you'd like to contribute, please use the PayPal donation link at the > bottom of the page_

Hope PayPal doesn't freeze their account. There've been several stories on HN about people doing a donation fund-raise and suddenly getting frozen accounts.

<comment><USER6> I've read in the newspaper that a number of people are murdered in New York City every year. But just because you read about high profile cases in the news doesn't mean _you're_ likely to be murdered.

</comment></comment><comment><USER4> _Definitely_ avoid charging for CM - that will put a total damper on community enthusiasm. The better approach would be to rationalize builds - we don't have to have nightly builds. IMHO even weekly builds would be plenty.

<comment><USER7> Weekly builds would be fine if the nightlies never broke. But nightlies often do break. So you end up using yesterdays or the day before. But going in back in time with weeklies pushes you back much quicker.

<comment><USER8> However, there may emerge a development process that obviates some of those breakages.

</comment></comment></comment><comment><USER9> Put the paypal link in the post! I'm sure that will increase donations significantly, not everybody wants to scroll down that long list of comments..

</comment><comment><USER10> Thanks for the link. I don't use CM at the moment but recognize the importance of what they do and just donated.

As an aside, it would be great if they keep up support for N1 :)

</comment><comment> mike-cardwell They've reached their goal:

<http://www.cyanogenmod.com/blog/weve-reached-our-goal>

</comment><comment><USER11> How long does building 1 ROM take on decent hardware? Are we talking minutes, or closer to hours?

<comment><USER12> I never build one myself, but from my idling in #cyanogenmod-touchpad I think it's around 2, maybe 3 hours.

</comment></comment><comment><USER13> To this day these guys have put a huge amount of effort into making our handsets awesome. They deserve even our most humble help.

</comment><comment><USER14> Why do they need 50+ builds a day? Is that one configuration per handset? Do end-users need daily builds?

<comment><USER15> There are a lot of end-users willing to test the builds and provide feedback to the developers. So there's definitely a benefit for both sides.

And yes, there are builds for every handset. You can have a look at them at github[0].

[0] <https://github.com/cyanogenmod>

</comment></comment><comment><USER16> Can builds be done on a SETI at Home sort of arrangement?

<comment><USER17> probably not without serious security implications. I don't think there's a distributed java compiler available so you'd also have to write that first

</comment></comment><comment> slash-dot Made a donation as a thank you for making my zte blade usable till I can afford an upgrade. Hope they keep up the good work.

</comment><comment><USER18> Wish I could help, I am a big fan of CM. I have a spare newer poweredge, but I don't have any more room or power in my 1/3rd cabinet to rack it :(

</comment><comment><USER19> _CyanogenMod is not a for-profit business._

Maybe they should be.

</comment><comment><USER20> been on CM since WiMAX/4g was added for the original Evo. $25 in, well deserved.</comment>


Network-Less Laptops - <AUTHOR> http://www.blacktopdevices.com/ <comment><USER2> I would prefer laptops with fully free software:

[https://minifree.org/product/libreboot-t400/](https://minifree.org/product/libreboot-t400/).</comment>


gRPC: Internet-scale RPC framework is now 1.0 - <AUTHOR> https://cloudplatform.googleblog.com/2016/08/gRPC-a-true-Internet-scale-RPC-framework-is-now-1-and-ready-for-production-deployments.html <comment><USER2> Something I've wondered for awhile: why would I want to design with gRPC rather than well-defined HTTP/JSON endpoints? Is it just a perf thing?

<comment><USER3> Performance and versioning are two large benefits.

Performance benefit comes from the fact that schema is defined on each side (generally server / server) so you only send the information bytes. With a good RPC system you can also access specific fields of your structure without unpacking (or very fast unpacking, depends on what RPC system you're using).

gRPC uses Google's protocol buffers. [https://developers.google.com/protocol- buffers](https://developers.google.com/protocol-buffers)

Comparable systems use other IDLs, e.g Facebook uses Apache Thrift.

Versioning is easier because your fields are defined explicitly, so you can ignore clients sending an old field to no ill effect (again, you can access individual fields without unpacking). Whereas with json you need to deserialize first. Also if your schema changes when using json without protobufs, you may experience either the client or the server making the wrong assumptions about input data. Whereas there is no ambiguity with protobufs; future changes to proto messages add fields and old fields can just be marked deprecated.

RPC is preferable to JSON for server-to-server communication, but client- server still often uses json just because it's often easier for your client app to interpret json. Systems like gRPC allow servers to emit json as well: [https://developers.google.com/protocol- buffers/docs/proto3#j...](https://developers.google.com/protocol- buffers/docs/proto3#json)

I've heard of performance-oriented web apps using protobufs on both client and server.

<comment><USER4> I'd really love to see something like gRPC implemented over CBOR.

CBOR -- Concise Binary Object Notation -- [http://cbor.io/](http://cbor.io/) \-- is all the performance of a binary protocol, with semantics basically identical to JSON.

I appreciate some of the things protobuf does to help you version, but I also do _not_ appreciate the protobuf compiler as a dependency and a hurdle for contributors, or for wire debugging. CBOR has libraries in every major (and most minor) languages and works without a fuss with tiny overhead, both at runtime and in dependency size. It's pretty pleasant to work with.

<comment><USER5> There are two reasons why I think simpler binary packing libraries like CBOR, MsgPack, or BSON can't really match what Protobuf gives you:

\- Assistance with schema evolution and versioning is one of the best parts about using Protobuf in an API. It is really like the best parts of XML and XML Schema (validation, documentation, interoperability) without any of the bloat.

\- Working with code generation can be a pain to get working initially, but is very friendly when actually using real objects in code. There is no need to think about any representation on-the-wire... everything 'just works'. There is no need to ensure you don't accidentally serialize fields in the wrong order, or worry about encodings, etc.

Also, there is a binary decoder included with protoc that can print a debug decoding of any protobuf binary message, including integer tags for different fields. Wouldn't you have pretty much the same problems with dissection and debugging on-the-wire in CBOR?

It is really quite pleasant to use Protobuf for an API, I can see why Google is opinionated in including it as the only option with gRPC.

<comment><USER4> I don't find the utility to outweigh the PITA. I've been on both sides of the fence, and maintained large projects with heavy protobuf use.

I don't find the schema validation powerful enough. You still have to write correct code to migrate semantics. Avoiding incorrect reuse of field names is... nice, but also the most trivial of the problems.

(I do like schemas in theory. It's possible I haven't worked with good _enough_ tooling around protobufs to really experience joy resulting from those schemas. The protos themselves certainly aren't guaranteed to be self- documenting, in some of my experiences.)

I don't find code generation results to be smooth in many languages. At $company, we switched through no less than _three_ different final-stage code generators in search of a smooth experience. Not all of this was misplaced perfectionism: in some cases, it was driven by the sheer absurd method count verbosity in one code generator basically making it impossible to ship an application. (You've perhaps heard of the method count limits in early android? Bam.)

I don't think the debug decoding tools for protobuf are directly comparable to CBOR's interoperability with JSON. CBOR and JSON are _literally_ interchangable. That means I can flip a bit in my program config and start using one instead of the other. Config files? Flip the bit. Network traffic not meant for humans? Flip the bit. Need to debug on the network? Flip the bit. Want to pipe it into other tools like `jq`? No problem. There's a whole ecosystem around JSON, and I like that ecosystem. Working with CBOR, I can have the best of both worlds.

Sometimes opinionated is good and powerful and really makes things streamlined in a way that contributes to the overall utility of the system. I don't think this is one of them. Almost every major feature of gRPC I'm interested in -- multiplexing, deadlines and cancellations, standard definitions for bidi streaming, etc -- has nothing to do with protobufs.

natch, I used "I" heavily in this comment, because I realize these are heavily subjective statements, and not everyone shares these opinions :)

</comment></comment></comment></comment></comment><comment><USER6> I'll try to jump on the plane, and announce that latest GoReplay version now supports Thrift and ProtocolBuffers.

So if you are looking to load testing (or integration testing) for gRPC based apps check [https://goreplay.org](https://goreplay.org)

<comment><USER7> Unfortunate that you didn't mention it was a "pro" feature, of which there seems to be no easy way to obtain it. You need a call to action and an automated process.

</comment></comment><comment><USER8> Anyone here who tried out gRPC or is using it in production, and can share some experiences?

<comment><AUTHOR> caveat: I work in gRPC team. read target blogpost link to get a sense of experience of some of the companies. [https://cloudplatform.googleblog.com/2016/08/gRPC-a-true- Int...](https://cloudplatform.googleblog.com/2016/08/gRPC-a-true-Internet- scale-RPC-framework-is-now-1-and-ready-for-production-deployments.html)

<comment><USER9> So gRPC evolved out of Stubby. An excellent show of force would be to announce that Stubby has been internally replaced by gRPC, so that the "gRPC is internet scale" assertion can be more than just a gimmick. Knowing nothing of the first one and very little of the second I imagine it would be some important task, so I have to ask: do you plan to internally run with the stuff you open-sourced ? What is missing ?

<comment><USER10> gRPC faces a longer road to feature parity with Stubby. For external adopters this is not an issue, so it makes sense that it would be available to the public in advance of its adoption inside Google.

<comment><USER11> not to mention the internal infra grows all these knobbly bits as one-off feature requests for large/influential teams, that aren't necessarily useful outside the goog

</comment></comment></comment></comment></comment><comment><USER12> Was looking at RPC framework for a project, in the end I went with Apache Thrift since at that time there was no Python 3 support for gRPC [1]. IIRC Thrift also lacks support for my project's Python version (3.5) but at least I can use thriftpy [2].

[https://github.com/grpc/grpc/issues/282](https://github.com/grpc/grpc/issues/282) [https://github.com/eleme/thriftpy](https://github.com/eleme/thriftpy)

<comment><USER13> We put in a lot of work to make gRPC work well with python 3.5, so give it a try if possible. disclaimer: I work on gRPC.

<comment><USER12> thank you, I'll look into it as soon as I can :)

</comment></comment></comment><comment><USER14> Ugh, why does the Python driver use CamelCase method names?

        def GetFeature(self, request, context):

[http://www.grpc.io/docs/tutorials/basic/python.html](http://www.grpc.io/docs/tutorials/basic/python.html)

<comment><USER15> That's not the driver, that's just the example.

However, according to the style guide, camelcase is preferred, _and_ the compiler is supposed to generate language-native names with the correct case [1].

One thing the terrible years of SOAP and WSDL should have taught people is that generated stubs are awful to use if they go against the grain of the host language.

[1] [https://developers.google.com/protocol- buffers/docs/style](https://developers.google.com/protocol-buffers/docs/style)

</comment></comment><comment><USER16> Couple discussions from a year ago: [https://news.ycombinator.com/item?id=10135347](https://news.ycombinator.com/item?id=10135347), [https://news.ycombinator.com/item?id=9114748](https://news.ycombinator.com/item?id=9114748).

</comment><comment><USER17> This looks very good. At the moment, for the jvm, there are not a lot of features above simply building services using netty and the protobufdecoder/encoder. Similarly, http2 goodness is also already available in netty.

</comment><comment><USER14> I would like to use gRPC, unfortunately the Python driver is incompatible with Gevent[1]. And that's more or less a show stopper for us.

[1] [https://github.com/grpc/grpc/issues/4629](https://github.com/grpc/grpc/issues/4629)

</comment><comment><USER18> Would it be worth it to use protocol buffers just for the serialization. To replace a current traditional variant. So not for small http communication but for larger persistent storage. Does it help for versioning purposes and preparing for the future when your product might go from traditional to web. Performance aside, it's a clear win there. It seems you have some overhead against in-code solutions (separate .proto files) but it may pay off in versioning and future of your product given all movements to Web etc.

</comment><comment><USER19> What's missing to get client/server stub in pure C?

<comment><AUTHOR> gRPC core libraries for C++ are written in pure C. We need to extend these to use a pure C implementation of Proto and create a C based generated API. We have experimented with this and some users have also tried it. We are looking to add this in future and also welcome contributions.

</comment></comment><comment><USER20> Any plans for rust lang bindings?

<comment><AUTHOR> would love community contributions :-). I see some efforts in community but nothing very concrete yet. You can suggest project in gRPC Ecosystem. [https://github.com/grpc-ecosystem](https://github.com/grpc-ecosystem)

<comment><USER21> One rust crate that seems fairly well along is [https://github.com/stepancheg/grpc-rust](https://github.com/stepancheg/grpc- rust). It claims it can communicate with the go client.

</comment></comment></comment><comment><USER22> Any people using gRPC and Protocol Buffers from Python with good experiences?

The library for Python for one seems very unpythonic to me, starting with all those CamelCase method names. It does not seem possible to use asyncio or any other non-blocking solution on the server.

Finally, gRPC obviously only handles the transport: Are there any other useful related Python packages out there for validation etc.?

</comment><comment><USER20> Any plans for rust lang bindings? (would prefer to avoid FFI to c++)

<comment><USER21> Check out [https://github.com/stepancheg/grpc- rust](https://github.com/stepancheg/grpc-rust). Still in development.

</comment></comment><comment><USER23> > Or go straight to Quick Start in the language of your choice:

No plain-old-C?

That's a shame.

</comment><comment><USER24> Is gRPC a full fledged server for API calls?

e.g.: Will it have things like monitoring (we've handled x calls to this API in the last hour, the average API call took y milliseconds). Clustering? (a client connects to a list of grpc servers, if one server goes down, the client will automatically connect to the next on the list)? And load balancing?

If not, are there existing third party tools to implement these, or is the expectation that the community will create these?

<comment><USER10> As for monitoring, grpc is hooked into census, which provides some rudimentary statistics and is also intended to eventually exfiltrate Dapper tracing out of Google and into the public gRPC user base. It's a bit rudimentary at the moment, but see [https://github.com/grpc/grpc/tree/master/src/core/ext/census](https://github.com/grpc/grpc/tree/master/src/core/ext/census)

</comment></comment><comment><USER25> Is "internet scale" the new "web scale"?

<comment><USER26> "internet scale" is something of a term of art at Google. It's generally used to mean "scales to build systems that do things like 'search the entire contents of the Internet'"

</comment></comment><comment><USER27> So how does service discovery work? Where do I read more?

<comment><USER28> That's really an orthogonal concern. You could use Consul, DNS, &c. to do that.

<comment><USER29> It isn't really that orthogonal. Just like authentication, things like service discovery, smart clients (with load balancing, retries, etc) should likely be pluggable with some reasonable defaults, otherwise you will be building your own custom stuff on top of it and lose a lot of the value of having a standard. See Finagle for a more complete RPC framework.

</comment></comment></comment><comment><USER30> How does this compare to something like zeroMQ?

<comment><USER31> I think that it's a mix betweeen ZMQ and Thrift

<comment><USER32> One big advantage of gRPC over ZeroMQ is that HTTP/2 can traverse firewalls and proxies more easily.

</comment></comment></comment><comment><USER33> The last time I tried gRPC with Python in Windows it didn't compile out of the box.

<comment><USER34> With the 1.0.0 release, there are Windows binaries for all supported Python versions (2.7, 3.4, 3.5). Make sure you upgrade to the latest version of Pip before trying to pip install grpcio. (The binaries use some ABI tags that are only recognized by newer versions of pip)

<comment><USER33> Thanks! it works now.

</comment></comment></comment><comment><USER35> Can anyone explain like I'm 5 what an RPC framework is?

<comment><USER36> whenever you hit a json api, that's effectively an RPC call.

for example, if you visit: [https://api.github.com/repos/grpc/grpc/issues](https://api.github.com/repos/grpc/grpc/issues)

you'll get some json back. what happens is the browser resolves "api.github.com" (via DNS) to an IP address, and then opens a socket connection to that address. then, in accordance with the HTTP protocol it executes a "GET" operation (a notion particular to HTTP), and in response the github server will talk to a database or cache and respond with data appropriate to request.

because this sequence of events happens across network boundaries (ie, your browser is talking to something outside your computer), it's often referred to as a "remote" procedure call.

<comment><USER37> JSON API != RPC

Also the github api is more RESTful than RPC.

</comment></comment></comment><comment><USER38> > gRPC can help make connecting, operating and debugging distributed systems > as easy as making local function calls

Oh lol, again

</comment><comment><USER39> Can someone explain how is GRPC significantly better than WebSockets? I have used it for a few weeks and was very underwhelmed by it.

<comment><USER40> What is your use case, and what issues did you find?

<comment><USER39> Incomplete or completely lacking documentation for Objective C and Java, weird bugs, random disconnects. Overall it feels like the Ruby on Rails of networking - an opinionated package/framework that tries to do too much. Also, the whole concept of "as easy as a a local functional call" is a flawed, leaky abstraction.

<comment><USER40> I'm responsible for the Objective-C part, so please let me know of anything we can improve there. We have a couple of tutorials at [http://www.grpc.io/docs/tutorials/](http://www.grpc.io/docs/tutorials/) and a quick-start guide at [http://www.grpc.io/docs/quickstart/objective-c.html](http://www.grpc.io/docs/quickstart/objective-c.html) . For bugs and connectivity problems, filing a GitHub issue would be super appreciated.

If you look at the example code, you'll see that RPCs aren't modeled _exactly_ as local function calls. You're right that that wouldn't work very well. The libraries for all or most languages let you make RPCs asynchronously, without blocking the thread. And all of them provide with ways to write and read RPC metadata (headers and trailers).</comment></comment></comment></comment>


What Calacanis thinks of Color: Brilliant.  - <AUTHOR> http://launch.is/blog/l011-colorcom-stuns-valley-with-implied-social-network-and-a.html

<comment><USER2> I've been following @jason and @om discussing this on twitter and I look forward to Om's newsletter due later today.

I feel they both have a point. The idea of an Implied Social Network (ISN) is disruptive to services like facebook and foursquare. While it doesn't make those services obsolete, it does change the dynamic. An ISN tears down the walls of meeting people with an auto-introduction and has the potential of expanding your social network 100x.

As for the functionality of the Color application, I feel they completely missed the user experience side. It looks great and could potentially be great to use, but right now I have a picture of myself on a blank wall. They missed their opportunity at SXSW, plain and simple. The app needs a UX overhaul and some expanded connection functionality.

We are going to see an a move towards these open and fluid social networks in the near future. Social should be open to the web and the users and communities should sprout organically.

The community is coming.

</comment><comment><USER3> It could be big, but I don't think photo sharing is the right platform for what they are trying to do. Facebook allows you to connect with people who know you, twitter lets you follow people you know, but the next big website will be the platform that lets you find people in your area that you don't know but should. Whoever figures that out will be a millionaire.

</comment><comment><USER4> Disagree that FB "sucks at mobile."

<comment><USER2> I agree, FB doesn't "suck at mobile". But its a safe app, there is nothing innovative, nothing disruptive, and no killer feature. FB doesn't suck, I just expect more. They are going stagnant.

<comment><USER5> Perhaps it would have been better to say "FB is adequate at mobile--but not innovative or killer. "

<comment><USER2> Exactly, and I believe that is the best FB is ever going to achieve if their innovation strategy continues to be "copy everyone else."

</comment></comment></comment></comment><comment><USER6> if the salesman wasnt obviously selling to the point of discomfort, people would take him serious and then bother to prove him wrong.</comment>


Thailand won't make you happy. - <AUTHOR> https://medium.com/dave-craige/thailand-wont-make-you-happy-13e8b77b9e8a

<comment><AUTHOR> Thanks for checking this post out guys!</comment>


Untrusted – a user JavaScript adventure game - <AUTHOR> http://alexnisnevich.github.io/untrusted/

<comment><USER2> Previous discussion can be found at: [https://news.ycombinator.com/item?id=7547942](https://news.ycombinator.com/item?id=7547942)</comment>


1003 patients treated with AZM+HCQ, 1 death (Tweet from Dr Raoult, France) - <AUTHOR> https://twitter.com/raoult_didier/status/1244237477826703360 <comment><AUTHOR> I know the general sentiment about this man is not the best these days. Especially since the Trump intervention/tweets and because of his rather "unorthodox" methods.

But he's still a real Doctor in charge of a real (albeit small) hospital that is indeed specialized in infectious diseases.

And if what he claims is true (1003 patients treated with only 1 death), this is a pretty damn good result compared to the situation we have in Spain/Italy.

<comment><USER2> No one will respond to this because it is promising news. Sad.</comment></comment>


Argo Raises $1.5M to Stitch Together Companies' Small Data - <AUTHOR> http://techcrunch.com/2015/01/13/small-data/

<comment><USER2> This sounds like a lot of buzz words.

<comment><USER3> Yeah it is ultra-vague. I guess they invested in the people not the idea with this one.

</comment></comment><comment><USER4> Check out Argo at [https://argo.io](https://argo.io)!</comment>


Increase in Unemployment Due to Extensions of Unemployment Benefit Eligibility - <AUTHOR> http://www.iza.org/conference_files/PolicyEval_2013/mitman_k9175.pdf

<comment><USER2> Most of the literature I've seen suggests the opposite of this. I'm curious what others think of this approach?</comment>


Is Stumbleupon referring more traffic than Facebook? - <AUTHOR> http://www.allfacebook.com/is-stumbleupon-referring-more-traffic-than-facebook-2011-07

<comment><USER2> But what sort of traffic?

See, e.g., Arvind's comments on StumbleUpon visitors:

<http://arvindn.livejournal.com/133249.html>

To quote the takeaway, "most of the traffic generated by StumbleUpon users to any given site is going to be low quality because the dopamine junkies make 100x more clicks".

<comment><USER3> As far as I can tell, SU traffic is almost useless. I may get 1,000x as hits from SU, but I derive more value from some hole-in-the-wall site writing about me and sending 20 people.

</comment></comment><comment><USER4> Sincere request: Can somebody explain the dynamics of how Stumbleupon is so popular? I don't know anybody who uses it. I am friends with alpha-geeks, teenagers, senior citizens, native Spanish-speakers in Mexico, etc. Barely anybody I know uses it.

I had a StumbleUpon account before Twitter, before StumbleUpon was a URL shortener, etc. I used it a _little,_ but people didn't seem thaaaat into it. There must be some pocket of main use-case there. Is it mostly the URL shortener that even non-S.U. users bounce around in when directed to a su.pr URL?

I'd love to understand this.

(Also, as somebody else pointed out, S.U. traffic is pretty low-quality. Just peep your Google Analytics, and those sessions are quite short compared to Twitter/FB/Tumblr referrers. At least on my sites.)

<comment><USER5> I think it's less popular than these stats might indicate.

1 Facebook user might click on 1 or 2 links per day.

1 SU user "stumbles" dozens or hundreds of times in a session.

A stumble nets a pageview, but obviously has considerably less value (no intent baked into the click).

<comment><USER6> Quote from a friend who stumbles: "oh yeah. totally. i hit 100 pages and maybe read 5 of them"

It's like a youtube party, but with a little fast-forward button: <http://xkcd.com/920/>

</comment></comment></comment><comment><USER7> My site ThatHigh.com consistently gets a ton of traffic from SU, in disproportionate amounts. I'm fascinated by how massively successful that service is. The traffic has been steady for over a YEAR now. And it shows no signs of stopping.

And yet I know so little about it. I know they have something like 10M active users, which seems really high.

</comment><comment><USER8> My facebook traffic is starting to pick up, but it's still no where near StumbleUpon.

Compare: <http://i.imgur.com/oY03q.png>

It's been like this since 2008.

<comment><USER9> What is the quality of the visits like? When you factor in time on site, pages viewed, bounce rate, etc. is stumbleupon still providing better traffic? It might be, but the answer isn't obvious to me without knowing this type of data.

<comment><USER8> Depends what you're looking for. If you're being paid by CPM, then yeah, they're great visits. If you're looking for conversions, then probably not.</comment></comment></comment>


Help ArchiveTeam download all of Yahoo Video before it closes on March 15 - <AUTHOR> http://ascii.textfiles.com/archives/3001

<comment><USER2> Hi, Jason Scott here. Help is appreciated. Stop by #archiveteam on IRC and we'll chat.

The UTF-8 issue was known, fixed, and a framework setup to get any files missed. It was better to get started than spend more time on the problem as it was cropping up. Perfect is the enemy of done.

We're working together on a common goal and things are getting done. Join us if you have the time. Nobody needs to like me to do it.

</comment><comment><USER3> WTH?

You upload video to a user account. I'm presuming most of those user accounts have an email account attached - probably often a yahoo.com email. Did they not email everyone who's uploaded video and give them instructions about how to download it?

<comment><USER4> Assuming they did that, I'd imagine a scarily large percentage of those emails went unread.

<comment><USER3> Yes, but come on - they can _detect when you read the email_ and send you a few more, perhaps with differing titles and such.

That just seems like such a crappy way for them to go about it. 3 months to get everything off? I'd have suggested 6, with a concerted campaign to contact people aggressively - perhaps even reach out to geek networks like HN to help get the word out, instead of a non-alt graphic on their site only.

</comment></comment></comment><comment><AUTHOR> They could also use a little programming help. The script currently doesn't download videos with non-ASCII characters, stuff like that.

<comment><USER5> I think there is a fixed version around, come into IRC for the main communication and organisation channel.

<comment><USER6> Sucks to display such an abrasive attitude in their 'call to arms' and yet fail on something as obvious as making sure they are getting character encoding correct on the data they're trying save. To be fair though, sometimes encoding issues don't arise until you're a good way into the processing effort and it can be a huge pain to backtrack. Do you know if they plan on attempting to re-download any of the data they munged, or if they have a way to identify which data needs to be re-downloaded?

<comment><USER5> This is a random group of random people.

Yes, from what I know the failed ones will be easy to re-download later. It's not something to worry too much about anyways.

<comment><USER6> I'm not meaning to offend these people or anyone else. I even stated in my comment that it happens to the best of us. It's just that if you call yourself the ArchiveTeam and come out guns a-blazin' like you're the savior of all that is data you should at least make sure you have the basics covered. I think it's a good thing what they're doing. I just find the attitude in their plea for assistance crude.

<comment><USER5> Jason Scott is a very vocal person. I do not really like his style nor that post in particular. But hey, participating in this is fun!

<comment><USER6> Archiving data from the Web is a cool thing -- it would be fun to participate. I'm personally a fan of textfiles.com. They have some text files I wrote back in '97 or '98 still stored away somewhere. One thing I like about the ArchiveTeam's wiki are these pages:

<http://www.archiveteam.org/index.php?title=Deathwatch>

<http://www.archiveteam.org/index.php?title=Fire_Drill>

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> News: Archive.org is also doing this. Efforts will probably be combined. Yay archivists!

</comment><comment><USER7> Does anyone know if jacquesm is helping out with this project? Since he helped archive Geocities (see reocities.com), maybe he can help archive Yahoo Video.</comment>


Amazon CloudWatch Announces Custom Metrics - <AUTHOR> http://aws.amazon.com/about-aws/whats-new/2011/05/10/amazon-cloudwatch-announces-custom-metrics-lower-prices-for-amazon-ec2-monitoring/

<comment><USER2> That is a pretty decent price drop. I had no real issues with the price before. But again, a price drop is always welcome!</comment>


Patents don't aid innovation, critics say - <AUTHOR> http://gimby.org/blogs/gimby-news-focus/20130205/patents-dont-aid-innovation-critics-say

<comment><USER2> Well, this is basically obvious to everyone in the software industry, but it's been obvious for twenty years, and Congress doesn't seem to care. What can we do to make this problem more visible?</comment>


Show HN: Altered States, Python monkey-patching for Humans - <AUTHOR> http://www.plexical.com/blog/2012/03/06/altered-states/

<comment><USER2> We use the fudge module, and I have a small context manager that lets me do this:

        with autopatch(foo, bar, baz):
           foo.patch.method = something
           # first test here
           foo.patch.method = something_else

I've found that my tests usually require setting up a complex context, and then slightly varying the bit of context, so it's assuming Foo, Bar, Baz and X=1 we expect this, but if X=2 we expect that. YMMV.</comment>


Actors in Clojure -- Why not? - <AUTHOR> http://www.dalnefre.com/wp/2010/06/actors-in-clojure-why-not/

<comment><USER2> The article seems largely theoretical in nature - "efficient Actor implementations are possible". Why no links to these implementations? And if they actually do exist how do they compare to Clojure's use-it-today high performance single-machine concurrency implementation?

Also, his counterpoints sound like they either add incidental complexity or refer to _papers_ not _implementations_.

In anycase, Rich wasn't banging on Actors. He simply was arguing for his approach to concurrency over one of the most popular Actor implementations actively used in production today - Erlang.

And finally, here's a pretty interesting project for distributed computing with Clojure: <http://github.com/amitrathore/swarmiji>

<comment><USER3> Did you check out the author's "pure actor-based programming language", Humus? (It's not easy to notice, as he only mentioned it once, and white-on-bright- blue isn't easy to read.)

<http://www.dalnefre.com/wp/humus/>

</comment></comment><comment><USER4> Clojure's mechanisms for concurrent state are more powerful and flexible than actors. Clojure's agents actually have a lot in common with actors, but take arbitrary functions instead of predefined messages. From a Clojure point of view, actors are agents with restricted functionality to enable use in a distributed environment.

Adding actors to Clojure might be a good idea, but they should be explicitly for the purpose of distributed systems, and probably built on top of agents.

<comment><USER5> Actors are _not_ the same as agents. Actors have their own process calculus, and are based on ideas about time, ordering and simultaneity drawn from physics.

I don't know that agents in the Clojure sense have been studied in a comp sci sort of way. (Some agent systems have been studied - I'm not sure how much transfers to this design.)</comment></comment>


Ask HN: Freelancer? Seeking Freelancer? - <AUTHOR>

Please lead with either SEEKING WORK or SEEKING FREELANCER, your location and whether remote work is a possibility. <comment><USER2> Please see [https://news.ycombinator.com/item?id=9635551](https://news.ycombinator.com/item?id=9635551), and the canonical thread for freelancers: [https://news.ycombinator.com/item?id=9639007](https://news.ycombinator.com/item?id=9639007).

</comment><comment><AUTHOR> SEEKING WORK - Remote only (GMT -3)

Currently focused on Node.js and all things JavaScript. Front-end specialist. I enjoy developing code in small modules. Self-taught.

I gave talks at a number JavaScript and front-end related conferences [1], and I've also written a book, titled JavaScript Application Design [2]. I'm an active open-source evangelist [3], with a keen interest on releasing modular front-end components that do one thing well and are composable.

I'm also a blogger [4], and you can look at my resume on StackOverflow Careers [5].

Get in touch at firstname.lastname@example.com if you're interested. I'm @nzgb on Twitter [6].

[1]: talk at frontendconf.ch, [https://www.youtube.com/watch?v=uZ_1_fddWns](https://www.youtube.com/watch?v=uZ_1_fddWns) [2]: JavaScript Application Design book, [http://www.amazon.com/gp/product/1617291951/ref=olp_product_...](http://www.amazon.com/gp/product/1617291951/ref=olp_product_details?ie=UTF8&me=) [3]: profile on GitHub, [https://github.com/bevacqua](https://github.com/bevacqua) [4]: my blog is called Pony Foo, [http://ponyfoo.com](http://ponyfoo.com) [5]: resume on Careers, [http://careers.stackoverflow.com/bevacqua](http://careers.stackoverflow.com/bevacqua) [6]: twitter profile, [https://twitter.com/nzgb](https://twitter.com/nzgb)

</comment><comment><USER3> SEEKING WORK - remote, Coimbatore, India

I'm the designer of the io.js logo and identity: [http://behance.net/gallery/23269525/IOJS-logo- concept](http://behance.net/gallery/23269525/IOJS-logo-concept)

The logo has been further refined based on feedback and can be seen here along with banners and icons that continue the logo's theme: [http://twitter.com/official_iojs](http://twitter.com/official_iojs)

In addition to Branding/Identity, I work on responsive front-end development (Bootstrap/Angular), server-side programming (Node/io.js/MongoDB) and iOS app design and development.

Email: email@example.com

Portfolio: [http://www.dffrnt.com](http://www.dffrnt.com)</comment>


Crispr Gene-Editing May Offer Path to Cure for HIV, First Published Report Shows - <AUTHOR> https://www.npr.org/sections/health-shots/2019/09/11/759369190/crispr-gene-editing-may-offer-path-to-cure-for-hiv-first-published-report-shows <comment><USER2> Many times when I see this kind of articles about cure for HIV and cancer I do some research, get to the page of the project that work on the cure and understand that we are still really far from getting to a point wherer there is a cure and it's just a marketing tricks they do to raise funds for their research

I support this kind of innovation and understand that the marketing buzz is necessary for the projects to raise funds

just keep in mind that those titles sometimes are pretty far from reality

<comment><USER3> Unlike cancer we do know the mutation which protects against HIV and about 2-4% of the population has it so it's somewhat much simpler if you can actually use it.

That particular receptor which the mutation affects is also what some HIV drugs especially the post exposure ones target.

Edit: looks like 2-4% of Europeans have the mutation world wide population is closer to 1%

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

<comment><USER4> Exactly. A Chinese doctor was ostracized for effectively programming a zygote to be immune to HIV. Theoretically this should work for human adults. And not everyone need it too once a community achieve herd immunity.

</comment></comment></comment><comment><USER5> Three challenges with CRISPR:

\- find right change to make

\- make that change in target cell without any off-target changes to other genes.

\- efficiency - being able to change enough of the cells to have the desired effect.

The last one is probably the hardest if the cell type isn't something you can easily take out of the body, change, grow up and put back.

<comment><USER6> What are the "high score" for efficiency? Did researchers tried and were successful at modifying a whole organ, a whole body?

<comment><USER5> The human body contains 35-40 _trillion_ cells.

By far the best way to make a whole body change would be to change one cell ( the embyro/egg/sperm ) and let nature take it's course - however that has the 'playing god with human evolution' concern.

Delivery mechanisms are key - you have to get your therapeutic _inside_ each cell - this is hard and even harder to do in a cell type specific way.

It's much easier to do ex-vivo than in-vivo: ( see the diagram on this page ) [http://www.crisprtx.com/gene-editing/therapeutic- approach](http://www.crisprtx.com/gene-editing/therapeutic-approach)

How many cells you need all depends on the biology of what you are trying to do - there is no universal answer.

So you might need a small number cells if you are changing the messages the changed cells send to other cells through control networks.

In other cases, where the change only changes that cell - you might need to change a large number to see an effect.

<comment><USER7> > 'playing god with human evolution' concern

Don't mean to derail this entire thread, but even as someone who believes in God, I find it increasingly harder to understand what _objectively_ is wrong about these purported ethical dilemmas (e.g. cloning)

<comment><USER8> > I find it increasingly harder to understand what objectively is wrong about > these purported ethical dilemmas (e.g. cloning)

Believer in God here, and, like you, I find these "playing God" concerns to be largely unfounded, and often based in fear-of-the-unknown more than objectivity.

In the 18th and 19th centuries, some religious groups opposed surgery because it was playing god; "disfiguring the divine image." But today, we religious people almost invariably welcome such medical advances: the good they do far outweighs any theoretical fear-based concerns. I think the same will happen with modern medical advances.

And, theologically in the Jewish and Christian Bible, God has given humans dominion over nature. I see medical advances -- including surgery, blood transfusions, vaccines, and yes, gene editing -- as exercising that dominion to help heal people and reduce suffering.

<comment><USER5> Gene editing on an embryo involves making a choice for an unborn person without possibility of consent - and their children, and their children etc.

That assumption of knowing better than the person affected is 'playing god' in a way that doing a surgical procedure on a consenting person isn't.

Obviously that stuff is already done today - abortion or medical intervention at an early stage where the parent acts on behalf of the person.

One of the things that's different is the scope and power of these techniques.

Look at the diversity of domestic dogs, from great danes to toy dog breeds - that all came through selective breeding from the same wolf ancestor in a few thousand years.

Also remember that humans are 99% the same as chimps at the DNA level and about 85% with mice.

Direct, untrammeled genetic modification of humans could unleash huge changes in a very short time.

Until we are clear about how we want to manage that, it's easier to have a moratorium.

</comment></comment></comment></comment></comment></comment><comment><USER9> Since HIV is a virus, does that mean the same tools could be used for other viruses? Is there any hope of wiping out influenza or the common cold?

<comment><USER10> CRISPR is used against a wide range of viruses all the time -- by bacteria.

There isn't a reason why it couldn't be used against other viruses, although it may be more economical to sip chicken soup for a cold and keep your flu shots up to date.

<comment><USER9> I remember reading something one time where people were discussing if the cold could be eradicated by having everybody on the planet stay home for 2 weeks. I don't remember what the answer was though...

<comment><USER11> It looks like there are some old Reddit and Quora threads where people discuss this. Some answers there seem to be

* no because of non-human animal hosts for some viruses

* no because everyone would die if everyone actually stayed home for 2 weeks

* no because some people might be long-term carriers of some viral strains (maybe because of compromised immune systems?)

* no because people's homes aren't properly isolated from one another (e.g. within an apartment building)

* no because a virus could slowly spread between unlucky members of a single household and thereby persist within the household for many weeks at a time

</comment></comment></comment></comment><comment><USER12> Scientists were not sure if it's safe to use Crispr on people, the chinese tried it and now we know that someone has tried it. - that's about all of the info in the article

<comment><USER13> > the chinese tried it

"The chinese", really? That was one single rogue Chinese scientist.

<comment><USER14> > The first trial of CRISPR in humans took place in China in 2016, when Lu > You, a physician at Sichuan University, put gene-edited cells into a lung > cancer patient. Since then, other Chinese trials have moved forward, though > not much is known about them.

> Last year Chinese researcher He Jiankui caused a global outcry ...

Ethics aside, it's definitely more than one Chinese scientist working in this area.

[https://www.scientificamerican.com/article/despite- controver...](https://www.scientificamerican.com/article/despite-controversy- human-studies-of-crispr-move-forward-in-the-u-s/)

</comment></comment></comment><comment><USER15> I know this question might not apply to the article, but in general, how does Crispr work on adults? Does it change the DNA of all the cells in the body?

</comment><comment><USER16> Oh wow this reminds me so much about that article I read some time ago about a chinese scientist who had edited genes of babies (he actually altered a gene in IVF embryos): [https://www.sciencemag.org/news/2019/08/untold-story- circle-...](https://www.sciencemag.org/news/2019/08/untold-story-circle-trust- behind-world-s-first-gene-edited-babies)

So editing genes of adults is ok but babies is not? This article sounds so positive and supportive of the act ... I'm a bit confused.

<comment><USER17> >So editing genes of adults is ok but babies is not?

Adults can consent.

<comment><USER16> true, that makes sense ... I'm not a gene or biology specialist, but if you change the gene of a human and he has kids, the kids will inherit the modification, right? so my problem with all these gene manipulations is that the more we do and the more it will impact future generations and who knows what the impact on those will be? So for me having the adult consent is not enough as the impact is not just on him but potentially much greater.

<comment><USER18> Gene manipulation of an adult likely would target a subset of overall tissue. Although, ethics of modifying reproductive tissue could be an issue.

</comment></comment></comment></comment><comment><USER19> So the headline talks about HIV but the article states it cured cancer and didn't do anything to HIV.

<comment><USER20> Crispr didn't cure the cancer, the bone marrow transplant did; bone marrow transplants (without Crispr) are the standard of care for treating this cancer. The fact that the bone marrow transplant was necessary for the cancer gave the researchers an opportunity to also try out this HIV treatment, which requires a bone marrow transplant that would ordinarily be too high-risk to be justifiable on its own. This was a very early-stage trial, probably not expected to be curative; they were just seeing if the method in general was safe, and did _anything._ It apparently was safe, and successfully conferred the desired mutation to at least some of the patient's immune cells (so it did something), but not enough of them to be curative. It sounds like future trials will focus on improving efficacy.</comment></comment>


Ultralight matchmaking service for Chicago game developers to share feedback - <AUTHOR> http://chidevdate.com/

<comment><AUTHOR> A few of us Chicago-area independent game developers have found ourselves benefiting tremendously from small-scale, personal meetups in which we play and critique each-others' games as works-in-progress. We're experimenting with formalizing that experience a bit, or at least facilitating it.

This is a pilot program, localized to Chicago because that's where we live and work. We'd love to hear any feedback or ideas y'all might have to offer!</comment>


The Switch from Heroku to Hardware - <AUTHOR> http://justcramer.com/2012/08/30/how-noops-works-for-sentry/ <comment><USER2> So basically nothing has gone wrong yet, therefore it's a slam dunk case for Doing It Yourself.

I'm sorry, but no.

You don't pay an ops guy or Heroku buckets of $$ for when things are going well, just as you don't pay $$ for software that only handles the happy case.

You pay $$ for someone who has fixed shit that went horribly wrong and has the scars to prove it. "That deep purple welt on my lower ego ... is where I only had a backup script and never tested the backups. This interesting zigzag is where I learnt about things that can wrong with heartbeat protocols ..."

Edit: though see below for a more nuanced discussion of reasons from OP.

<comment><AUTHOR> You're saying before Heroku (or the cloud) everyone paid an operations guy to do anything?

Nope.

I don't need to suffer the same acts of terror operations people have gone through to be able to avoid, prevent, or recover from them. I'm paying __myself __to be the operations guy, as well as the engineer.

<comment><USER2> It's about value delivered and opportunity cost paid.

You're betting foregone engineering time against Heroku's value-as-delivered.

I don't think that the hours you will _inevitably spend_ fixing the ops infrastructure will turn out to be very profitable.

For a large business, moving off Heroku to inhouse operations is probably justifiable, because they can capture sufficient value from a smart ops team to offset the potentially very high monthly bill Heroku would levy for their business.

But for a smaller firm, Heroku so abundantly oversupplies value compared to the bill that you will simply never be able to capture that value from internal work at anything like the same price.

It's like saying "I should stop buying food from the supermarket, it would be cheaper to grow my own vegetables!"

In a naive dollar-cost analysis this is true. In an actual consideration of whether raising a vege patch, bearing the risks of starvation, doing it poorly because you're new at it, spending the hundreds of hours of labour it will require -- means that letting a professional farmer do it is much smarter.

Gains from trade are _gains_.

I have a pretty strong opinion on this given how much time I've already sunk on similar work: [http://chester.id.au/2012/06/27/a-not-sobrief-aside-on- reign...](http://chester.id.au/2012/06/27/a-not-sobrief-aside-on-reigning-in- chaos/)

And for my secondary startup I am thinking I will just let Heroku handle it.

</comment></comment></comment><comment><USER3> _"On the limited hardware I run for getsentry.com, that is, two servers that actually service requests (one database, one app), we've serviced around 25 million requests since August 1st, doing anywhere from 500k to 2 million in a single day. That isn't that much traffic, but what's important is it services those requests very quickly, and is using very little of the resources that are dedicated to it. In the end, this means that Sentry's revenue will grow much more quickly than it's monthly bill will."_

There's nothing in this justification that doesn't also apply to Heroku. The cost structures just aren't significantly different at a two machine scale. However, as people keep pointing out, the roll-your-own-cloud approach requires that you build and maintain a bunch of infrastructure that Heroku has already built for you, or you forego redundancy and fault tolerance that Heroku has already built for you.

The best lines of code are the ones you don't have to write.

<comment><AUTHOR> I didn't note in this post (but in others), but before I switched, my Heroku bill was almost $700 (and I couldnt get it to perform well), the current bill is far less even with growth.

<comment><USER3> Yeah, I read your original post. I've worked pretty extensively with Heroku and with large, custom, in-house infrastructure, and I don't share your experience.

There's an I/O penalty for working on AWS, but it's on the order of tens of percent, not hundreds. I suspect that your original problems were related to working set size relative to cache (since Ronin => Fugu bumps cache by over 2GB, and you said that Fugu was working well).

Heroku's largest database has a 68GB cache at an (admittedly expensive) $6,400 a month. But even so, $6,400 is a small expense for a growing web application. A mediocre developer costs more than that. Trading off server cost for developer cost is an asymptotically bad bet.

<comment><AUTHOR> Actually I think I/O was my primary bottleneck. Once I addressed that I started hitting CPU/memory constraints on Dynos.

The database definitely wasnt __unreasonable __at $400, but for a bootstrapped project (especially something thats a side project for me), that was a big consideration.

I probably would have toughed it out with Heroku if I could have gotten things to perform better. At one point I was running 20 dynos trying to get enough CPU for worker tasks to actually keep up, and I unfortunately couldn't solve the bottleneck to where the cost was reasonable.

The application isn't typical (what Sentry does pushes some boundaries of SQL storage for starters), but it was costing too much of my time to struggle with optimizing something that really shouldn't have needed that much effort.

I definitely like the redundancy provided, and the ability to add application servers with zero-thought is a huge plus, I just couldn't justify the cost of the service in addition to my frustrations/time of trying to scale it on Dynos.

<comment><USER3> _"Actually I think I/O was my primary bottleneck. Once I addressed that I started hitting CPU/memory constraints on Dynos....At one point I was running 20 dynos trying to get enough CPU for worker tasks to actually keep up"_

Something doesn't make sense. If you "addressed" your I/O problem, your CPUs were therefore all busy doing something _much, much slower_ than a disk read/write, in software (which would have to be both obvious and unbelievably horrible). If that's true, something pathological was going on in your code. I'm going to assume that you would have noticed it -- swapping, for example.

So let's go back to I/O: if your database was slow, you might observe something superficially similar to what you've described: throwing lots of extra CPUs at the problem would result in lots of blocked request threads, and _appear_ that your dynos were all pegged. The exact symptoms would depend on your database connection code, and your monitoring tools. But in no case would throwing more dynos at a slow database make sense, so I'm going to assume that you didn't do that on purpose (right?)

Given the above, I still can't meet you at the conclusion that abandoning Heroku was the magic bullet for your problems. There's not enough information, and it doesn't add up. My money is on one or more of the following: DB cache misses (i.e. not enough cache); a heavy DB write load; frequent, small writes to an indexed table; or pathological memory usage on your web nodes. And if it turns out that the cause is due to I/O, you've only bought yourself a _temporary respite_ by moving off Heroku. Eventually, you'll get big enough that the problem will re-emerge, even though your homebuilt servers are 10% faster (or whatever).

EDIT: Aha! Your comment in another thread actually explains your problem: you _were_ swapping your web nodes by using more than 500MB RAM (<http://news.ycombinator.com/item?id=4458657>).

<comment><AUTHOR> It would take me more than one blog post to describe the architecture that powers Sentry, the various areas that have and can have bottlenecks (some more obvious than others).

More importantly, this a few months ago I made the switch, and I don't remember the specifics of the order of events. I can assure you though that I know a little something about a little something, and I wasnt imagining problems.

(Replied to the wrong post originally, I fail at HN)

<http://news.ycombinator.com/item?id=4458643>

<comment><USER3> _"I can assure you though that I know a little something about something, and I wasn't imagining problems."_

Since you've made it clear in another thread that you were actually running out of RAM on your dynos, I imagine you _were_ running into trouble. There's no need to be snide about it.

Bottom line: you hit an arbitrary limit in the platform. If heroku had high- memory dynos, the calculus would be different. In the future, instead of arguing that your homebrew system is better than "the cloud", you could just present the actual justification for your choice.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> I'm okay with the concept of trading cost/time for convenience, and why that might work for some folks, but even before we get to that argument, my experience with Heroku is that it just isn't reliable enough for client sites. Since reviewing it (over the last few months) we've had a couple of instances of real downtime (ie, greater than 30 mins), and a few spots of smaller amounts (a few mins each). We don't get that from our Linode+Puppet sites (taught myself Puppet as we went along, I'm a dev rather than an ops guy really).

<comment><USER5> Well I guess you are lucky then because Linode has had massive downtimes in their London and Dallas data centres in the last few days and when I was a customer their Fremont data centre went down all the time.

<http://status.linode.com>

Heroku at least uses EC2 which will be far more reliable over time.

<comment><USER6> Not sure if the London one was really "massive", I have 12 Linodes in London all on different machines and I had one become unavailable during the downtime a few days ago and it was resolved very quickly.

</comment></comment></comment><comment><USER7> This stuff is really useful even if you don't want to move off Heroku. Just knowing that you can is really reassuring in case they stop offering what you need. Simple how to guides are even better.

It was the fact that Heroku offer an environment to run fairly standard Rails + Postgres that made me pick them over the more unique and harder to move from Google platform. Even though I was starting from scratch.

It's always good to have an exit route.

</comment><comment><USER8> A bit off topic but this is a good thread to ask in:

Those of you running startups that don't colocate your own hardware, and don't run in a cloud, where do you rent servers from these days?

Most of my stuff is at Softlayer, but their RAM pricing is killer ($25/mo/GB).

<comment><USER9> It might not work for you if you're US based (and want your servers in a datacentre you can easily fly/drive to) but I hear a lot of good things about www.hetzner.de and the prices are fantastic. I plan to use them for the venture I'm currently working on.

<comment><USER10> Hetzner.de is awesome. They are cheap and reliable which is a combination you don't see often

<comment><USER8> Unfortunately, being in Germany and using desktop-grade hardware means high latency and (comparatively) high failure rates. That's why it's cheap.

<comment><USER9> Germany isn't badly connected and any extra latency can be largely mitigated by using a CDN for your static assets.

As for desktop-grade hardware - I haven't seen this mentioned by anyone else. Any links to back it up?

If that's true (and I doubt it is), it's avoidable if you use their extremely well priced colo option (which is what I'm going for).

<comment><USER8> > are you referring to the latency

Yes, "high latency" was referring to the latency. A CDN for static assets doesn't mitigate the fact that the initial request, and everything dynamic is on the wrong side of the planet for most startups' users.

> Any links to back it up?

Hetzner.de. They list the hardware in the boxes. It's desktop processors, desktop motherboards, desktop hard drives and non-ECC RAM in all the cheap server lines.

[http://www.hetzner.de/en/hosting/produktmatrix/rootserver- pr...](http://www.hetzner.de/en/hosting/produktmatrix/rootserver- produktmatrix-ex)

7200RPM hard drives, Core/Athlon processors and non-ECC RAM don't belong in servers.

[http://arstechnica.com/business/2009/10/dram-study-turns- ass...](http://arstechnica.com/business/2009/10/dram-study-turns-assumptions- about-errors-upside-down/)

According to Google's study, you would expect about 2 memory errors per day per server running 24/7. You need ECC RAM.

> I doubt it is

It's rude to publicly call someone a liar without evidence.

<comment><USER9> I think you're over blowing the latency problem. European users interact with US hosted startups all day long and it's not like you hear us complaining.

Re: hardware. The choice is nice to have and their EX6 and up packages are "proper" server grade (as in Xeon and ECC). EX6 machines start at EUR69 which is fantastic if you ask me.

Edit: as for rudeness - chalk it up more to a disagreement over what constitutes "desktop-grade hardware" (and your omission of their higher level hardware offerings)

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> "DNS being slow (fuck it, use IPs)"

So, yeah, ops isn't hard at all, if you don't fucking take the time to do it right.

<comment><AUTHOR> It takes just as much time for DNS to propagate as it does for me to deploy a config change. It literally doesn't matter at this stage.

<comment><USER12> Run DNSMasq locally (as in, same datacenter as the computers that will be using it) and tell it to cache. It's dead-simple to set up. Then point your computers to resolve using it.

You can even add to /etc/hosts and the computers using it as their DNS will resolve it. Depending on how much control you have, DNSMasq will also function as a DHCP server and TFTP server from which you can netboot other servers and do such nifty thing as automatic reinstalls. Useful if you have a separate, internal network and want to set internal IPs, too.

<comment><USER13> DNSMasq is nice, it's so easy to make up your own, local, dns names. Do you run several to avoid a single point of failure, or do you just fall back to the "real" dns?

Even with a local DNS server, there has to be _some_ overhead though.. OTOH, avoid premature optimization etc..

</comment></comment></comment></comment><comment><USER14> Sounds to me that the main issue was running out of RAM on workers. Would this not be soved by moving to another cloud provider (such as AWS) where you are not limited to the tiny RAM provided on Heroku?

Is this not similar in strategy to choosing hardware and spinning up your own stack?

EDIT: I getting at the rather sweeping statement against all cloud providers based on a specific Heroku problem

<comment><USER15> The moment you do this, you forego one of the biggest advantages of using heroku. As long as you're on heroku only, you don't need to take care of securing the underlying stack - that is firewall rules, OS-updates, general maintenance. The moment you spin up a single AWS instance besides it, it's your problem. Depending on your use-case it could be a better choice to just go all the way to dedicated hardware: The primary advantage AWS has over dedicated hardware is flexibility. You can spin up instances depending on your current need. If your load behavior is a flat, predictable curve you might just not need that - and then real hardware is cheaper in most cases.

</comment></comment><comment><USER16> Not directly relevant to the blog post, but Sentry is an amazing piece of software. We're running it on an m1.small AWS instance along with a bunch of other stuff and it is rock solid.

</comment><comment><USER17> My company is self hosting sentry for about 30 Python & Java in-house services and it was the easiest deployment of anything that's taken me more than apt- get install to deploy.

</comment><comment><USER18> test,hahahaha</comment>


After Facebook, Now Linkedin Wants You To Snitch On Your Contacts - <AUTHOR> http://imgur.com/yY4Nz

<comment><AUTHOR> Actually, it seems that there's no an actual snitch because your contacts can see what you've endorsed about them...</comment>


Optimal usage of conversations received in a chatbot - <AUTHOR> We have created a bot in house without using any platforms like wit.ai or api.ai. We treat is as a text classification problem. We are using word2vec to vectorize the input documents and a linear svc to classify it into one of our pre defined classes.
Also we have a feedback dashboard where the admin can tag and validate incoming user queries with correct class names (similar to what existing platforms provide). This is fine until a certain level but becomes impossible later.
So now we have a few (5k) tagged queries and a lot (350k) untagged user queries. Is there any way we can use these to enhance our system ? <comment><USER2> We used to use svc for classification in the early days of chatbots, but switched to tensorflow

We are using a bidirectional lstm model for sequence classification.

</comment><comment><USER3> Retrain your model with the new data, or use it to build a better model.</comment>