Fear and Loathing in Debian/Ubuntu (or: who needs /etc/motd) - <AUTHOR> http://deadmemes.net/2010/10/19/fear-and-loathing-in-debianubuntu-or-who-needs-etcmotd/ <comment><USER2> As with many things Linux there are a lot of cultures that feed into it. And the author's frustration on the implementation of motd serve as a reasonable exemplar of this.

There are two (maybe three) nominal 'people' in this particular circle of hell, one is the developer who originally felt that the message of the day should reflect something important without having to actually edit it every day. One is the guy who wants the motd to have something different in it. Culturally the first guy is the 'lazy' type (in quotes because it reflects the culture of "hey I've got a computer here the more work it does the less I do" which is a popular meme in system administrator circles and elsewhere) and the other is the 'KISS' type (where KISS is the 'keep it simple stupid' type of person who oftens stresses simplicity over mechanism. The third (perhaps absent) person is the 'systems' person/distro owner who imposes an implicit design guideline on the system by virtue of the changes they accept or don't, commit or don't into what becomes the final product. In the kernel tree this is clearly Linus but in other parts of the system it isn't always clear whether or not there even is someone in this role.

Underlying this I find a strong sense of frustration at changes that are made to 'small, meaningless' parts of the system when large parts sit there on fire. Of course not everyone can fix bugs in EXT4 or memory leaks in long running daemons, everyone needs to start somewhere, and sometimes changing the colors around in ls(1) so that the default is unreadable on your favorite color scheme is probably some 'starter project' of someone who wants to become a bigger part of the solution.

It is the experience you get when you use Linux, and that experience is an artifact of how Linux is created. So hating it isn't particularly productive, although like UNIX-haters before it rooted in much the same arguments.

<comment><USER3> It just didn't have to happen, though.

Without debating the (IMO very questionable) utility of changing motd behavior, or the (IMO too sloppy) change management of Ubuntu...

A three-line update to man motd would have solved the problem, and the motd maintainer didn't do that, _and_ whoever accepted the patch didn't do that, _and_ now anyone who wants to figure what the Penguin is going on is going to have to google for it and, hopefully, find the answer before they hit the "download source" rabbit hole.

All because of a few sentences.

Yeah, at home I don't use Ubuntu directly anymore. =)

<comment><USER4> The manpage said:

> On Debian GNU/Linux this file is a symbolic link pointing to /var/run. The > contents of this file are regenerated upon every system boot based on the > contents of /etc/motd.tail.

The fundamental problem here is the blog author didn't realize that `echo foo > /etc/motd` wouldn't work, even though the manpage did, in fact, inform him that /etc/motd was just a symlink to something that gets regenerated at boot time. I'm not really sure what the manpage could have done to make it more obvious what his problem was.

Now, it's possible the manpage is out of date, and that it's regenerated via some other mechanism than /etc/motd.tail. I don't know (since I don't use Debian, or even Linux in general). But the salient point here was that it points to a file that gets regenerated at boot time.

*Edit: On second look, it sounds like this change makes it regenerate on each login, not just each boot. I can understand why someone might think that `echo foo > /etc/motd` followed by a login would then print 'foo', given the current manpage. But they certainly wouldn't expect that it would still print 'foo' after a reboot unless the break the symlink (and breaking the symlink fixes the author's complaint).

<comment><USER3> Why are we blaming the 'victim' instead of enabling a solution?

A comment in the Description area that runs along these lines would have made the entire question a non-starter:

If /etc/motd is a non-symlinked file, regeneration will not occur.

<comment><USER4> Manpages for specific utilities really should not be reiterating basic unix knowledge (e.g. that piping data to a file via the shell > operator doesn't break symlinks).

<comment><USER5> How else are new users supposed to find out? Man pages are often poorly written and unhelpful. Indeed, calling the utility 'man' instead of 'help' is unhelpful.

<comment><USER6> You have got to be kidding! Man pages are amazing - often you can figure out what is going on or what niche switch you want to use much quicker with a man page than Google.

<comment><USER5> These assertions are not mutually exclusive.

<comment><USER7> I agree; I use Linux infrequently, and I've always found the man pages to be chock-full of details on how to use particular switches, but lacking in examples. I usually have to read them very closely just to get to the point of "look, I just want the basic usage on this tool so I can do X, the thing the tool is made for, rather than X -q -m -p."

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Author here, I thought I'd respond to a few things.

I tend to write posts on my blog in a particular style. It tends to run towards bombastic, deliberately, for effect. My point with this entire post was more how something simple can unravel into a deep hole, and how, in particular, I hate the way Ubuntu does many, many things. It's not that I hate change: I hate non-obvious change.

I often don't write posts as a systems administrator might approach something (my main complaints about honeycomb, as an example, were more focused on how an average user might interact with it as opposed to, say, me - I was just annoyed), and I tend to like to turn over rocks and see what is underneath. My post serves to relay an experience, rather than plead for help, or whine, if that makes any sense at all.

I should have titled the post better, admittedly. And for the record, I don't hate Ubuntu. Or Unix. Or Linux. I've been using them in various iterations for fifteen years. Try not to read so much into a rant written mostly to amuse a few of my friends.

<comment><USER9> I guess the root confusion is whether or not you expected the equivalent of _echo "foo" > /etc/motd_ to replace the symlink with a new file containing "foo", or not.

Or if the symlink semantics just weren't something you considered at this point, which lead you to keep hunting.

<comment><USER8> The post is more about having the reasonable expectation that editing /etc/motd is sufficient to change the motd. It isn't. It's not that I didn't notice it's a symlink, or that I couldn't have just removed the symlink. The issue is more that a reasonable expectation unfolds exponentially into (what I consider to be) a surprising amount of ridiculousness. That is the point of the rabbit hole post.

</comment></comment></comment><comment><USER10> _EDIT_ : OK, I misunderstood. That paragraph is there even in the original blog post, but the author didn't pick up how to get their desired behaviour until they read the code. Also, there's the "boot time regen" vs "login time regen" change between Debian & Ubuntu.

It's hard to say in retrospect how obvious that clause is, but there's no reason the original author couldn't have raised a bug with Debian saying they didn't understand the man page, and can Debian please add another sentence saying "To have a static motd, delete the /etc/motd symlink and replace it with a plain text file." Ranting won't make it better, but a polite suggestion might.

Ditto raising a suggestion with Ubuntu about replacing "boot time" with "login time" in their manpage.

\---

Except from the motd man page on Ubuntu oneiric:

 _On Debian GNU/Linux this file is a symbolic link pointing to /var/run. The contents of this file are regenerated upon every system boot based on the contents of /etc/motd.tail._

I can see the original author's frustration, but I got to the end of the post and thought "why didn't he submit a bug report mentioning the motd man page needed updating?"

Yes, this was a mistake in Ubuntu. Nevertheless, it didn't seem like one that the Ubuntu developers would be unwilling or incapable of fixing. In fact, lo and behold, it has been fixed!

I can see there's a broader point here in general, regarding the philosophy of "change vs not-change." However, that point doesn't seem to necessitate quite so much nerdrage.

<comment><USER11> _"On Debian GNU/Linux this file is a symbolic link pointing to /var/run. The contents of this file"_

That second 'this file' is ambiguous. I think the grammatically/semantically/whateveryoucallitally best interpretation (by a tiny margin) would be that both 'this file' would talk about the same file, but I am not sure, and I think that, in the real world, that is the incorrect interpretation.

</comment></comment><comment><USER12> I regularly have to recompile a couple of Ubuntu packages after excising undocumented junk. I really should submit a patch with a c̶o̶n̶f̶i̶g̶ ̶f̶i̶l̶e̶ g̶c̶o̶n̶f̶ dconf option that does the same. But for now I haven't found the time and tell myself that at least I _can_ comment out the junk code and recompile on Ubuntu.

Incidentally, to disable _all_ chatter at login (as documented in man login, and it actually still works in Ubuntu 11.10):

        touch ~/.hushlogin

<comment><USER13> By the way, your attempt at striking out "config file gconf" looks bad on Chrome running on Windows 7 -- every letter is followed by a box. Looks fine on OSX Chrome though.

<comment><USER12> Thanks. It works in Ubuntu (Chrome or Firefox).

Playing with: <http://ipinfo.info/netrenderer/index.php> it seems that Internet Explorer won't display the strikeout characters because the font on HN is set to Verdana, which doesn't have the combining character. If I create a page without specifying the font, it works fine.

I have Verdana on my system, but the browsers and font libraries I have installed mean that the glyph is taken from another font when one is missing. I'm surprised Windows 7 browsers don't do the same. Or maybe you don't have the glyph in _any_ font, which would also be disappointing.

Of course, a real webpage would use <strike> or CSS, and strikeouts are usually poor typography anyway, except as part of lame jokes. But other unicode combining-characters can be of real use.

</comment></comment></comment><comment><USER14> Maybe I'm confused but on my Debian system this works _exactly_ as expected. Yes /etc/motd is a symlink to /var/run/motd and removing said symlink, or replacing it with something causes either the new message to show or there to be no motd. Is the author just confusing Debian and Ubuntu or am I missing something? Why do people keep doing this? Just because Ubuntu behaves in a specific way does not mean that Debian behaves the same.

<comment><USER15> It also works as expected on Ubuntu. The main difference is that /var/run/motd is generated on each login, rather than only on boot, but that's irrelevant to the author's problem.

</comment></comment><comment><USER16> Color me mildly unsure of footing, but wouldn't Debian's policy restriction of the system automatically overwriting user-modified files turn this issue into a bug?

<comment><USER6> Not if it is documented to be a symlink and the user should edit motd.tail instead.

</comment></comment><comment><USER17> If you want to have a static /etc/motd and if you see that /etc/motd is a symlink to something in /var/run, wouldn't it be the straightforward way to just make /etc/motd a regular file instead?

Despite that, I wonder a bit, who is really manually editing that file by hand?

<comment><USER18> Many employers require a usage notice in the motd, stating that this computer is public property, unauthorized use will be prosecuted, blah blah. So I have to edit motd by hand, or at least edit the motd in some fashion.

</comment></comment><comment><USER19> Scumbag Debian making Unix not work right since the 90s.

I can't tell you how many straightforward Unix configuration things -- network interfaces, resolv.conf, initscripts, etc. just plain can't be edited on a Debian or Ubuntu system except through Debian-specific tools because if you do, the Debian-spoecific tools will clobber your changes and/or other Debian- specific things won't work right.

This is why I use Arch. It's like everything I could want out of a Linux: the simplicity of Slackware, the completeness of Debian (if not quite as huge as Debian without the AUR), the rolling release schedule of Gentoo.

<comment><USER20> What does Debian have to do with update-motd? As far as I know Debian does not do anything particularly funky with the motd. On my Debian testing computer it is a symlink to /var/run/motd which is a static file generated at boot.

This specific instance of pointless complexity seems to be almost only the work of of Ubuntu.

<comment><USER21> The parent is probably using this as an excuse to rail on things like the auto-generated config files that can't be edited directly (e.g. the grub/grub2 config files).

</comment></comment></comment><comment><USER6> It amused me slightly you hadn't "ls"d /etc/motd and discovered the symlink straight away (of course, ls is aliased to ls -la)

</comment><comment><USER22> Wow. That's a lot of frustration when you could just run

      /bin/rm -f /etc/motd
      touch /etc/motd
      chattr +i /etc/motd

<comment><USER23> Except for the fact that he didn't know to do that because the documentation was incorrect. Not even merely omitting it -- no, directly contradicting the behaviour. To find out to do as you say, he had to read the Ubuntu-specific patches to the source code of the package. That is broken.

<comment><USER24> The man page is outdated. " _Fuck you Ubuntu, I am switching my OS and bitching to the whole world about._ "

Then when they are in BSD, or Arch, it will be "Fuck you Arch" you don't have this man page right, I am switching OS again and bitching to the whole world about it.

Yeah I don't hear a lot of people complain about Arch and BSD and other "canonical" *nix systems. But it not because they are flawless, but because few people are using them compared to RHEL,CentOS and Ubuntu flavors.

Another way to look at it, if motd man page is what people are now mainly complaining about when it comes to Ubuntu, Ubuntu is doing great.

<comment><USER25> Actually OpenBSD does have nearly flawless documentation.

It has other issues but documentation isnt one of them.

<comment><USER26> They actually consider documentation errors to be as serious as bugs.

</comment></comment></comment></comment></comment><comment><USER27> sudo apt-get remove update-motd

<comment><USER12> Not in Ubuntu 11.10:

% apt-cache show update-motd

 _...Description-en: superceded by pam_motd in libpam-modules_

 _...The functionality formerly provided by this package is now integrated into pam_motd, in libpam-modules._

</comment></comment><comment><USER28> I'm getting sick of people complaining that Ubuntu keeps changing things. _That's what Ubuntu does!_ They've done that since the beginning! Oh, they've changed the software manager, oh they've changed desktop environments, oh they changed the theme color... stop complaining and switch to something else.

If you're looking for stability and steadfastness, you probably shouldn't be using a distro with a 6 month major release cycle. Things change, things get broken, and if you don't know that about Ubuntu by now, you're doing it wrong.

<comment><USER29> Just change the documentation at the same time as you change a feature. That's all the author expected. Not doing that makes you a bad developer.

<comment><USER28> Maybe so, but issues like this are common in Ubuntu-land. Some people like that. Some don't. They're well-known for releasing new features that are broken and poorly documented. Usually they are fixed in the next release. This happens all the time, and complaining about it every time just gets old.

<comment><USER30> Bullshit. There are no "some people" who "like that" when Ubuntu does not update documentation to reflect the changes they have made to core functionality. That doesn't make any sense.

</comment></comment></comment></comment><comment><USER31> Did your little hissy fit feel good? I hope so, because other than "software should never ever change, doubly so if the documentation isn't updated" I got absolutely nothing from that post.

An update changed something, the documentation didn't have the answer so you checked with the source. Welcome to linux. Actually, welcome to the world of software.

Did you at least submit a bug report?

<comment><USER32> >I hope so, because other than "software should never ever change, doubly so if the documentation isn't updated" I got absolutely nothing from that post.

Seeing as how I share, almost verbatim, the author's rage, allow me to break it down into a sentence or two:

What _possible_ benefit was there from overcomplicating the bloody MOTD file? I don't see anything but complexity for complexity's sake.

<comment><USER33> I happen to like being informed, when I SSH into my server, that there are some package updates available.

I happen to like a quick status check popping up for me to either look at or just ignore at my pleasure, especially since 99% of the time, the first thing I do when I log into a server is do exactly the sort of status check available in the Ubuntu MOTD.

There are benefits. That you don't consider them worthwhile is fine, but you don't need to go apoplectic about it.

<comment><USER34> That's a valid concern - but then by all means make it an _optional package_. Linux is modular, there is absolutely no reason to mess with core-stuff like that and not provide a simple way to revert to normal.

<comment><USER33> My point is, who are you to decide how "Linux" is _supposed_ to behave by default? Why do you get veto power over what should be "optional"?

A choice has been made for Ubuntu's behavior. Other distributions are free to make their own choices. If you find Ubuntu's choice disagreeable, you can file a bug and try to change it, or you can change it for yourself on your own system, or you can just live with it, or you can change distributions. You can even fork Ubuntu and make just this change, if you like. You do have that choice.

Getting mad because Ubuntu's choices are different from choices you might make is just silly.

<comment><USER34> _who are you to decide how "Linux" is supposed to behave by default?_

I'm not deciding that, other people made those decisions decades ago. It's a bad idea to mess with defaults for no good reason and then being too lazy to at least package it properly.

 _Getting mad because Ubuntu's choices are different from choices you might make is just silly._

I couldn't care less about ubuntu, I'm not using it. I just hate to see that mindless crap trickle down into one of the last semi-sane distros (debian). This only leads to forks in the future which means more work for everybody.

Again: If some distro-maintainer wants a fancy motd then great, make it a package and make that package the default for the desktop-install. Don't mess with core-stuff that has stood the test of time since before said maintainer was even born. Down that path lies SuSE linux.

<comment><USER33> > _other people made those decisions decades ago._

This isn't decades ago, and Ubuntu is not Unix. It is Ubuntu. Decisions made decades ago for Unix are not inherently right, and have no special moral authority.

> _I couldn't care less about ubuntu, I'm not using it._

Then perhaps you shouldn't speak on the subject. /etc/motd is the least of the things they've "messed with".

Trying to treat a modern operating system as if it's a 1970s operating system is absurd.

> _Down that path lies SuSE linux._

There is nothing inherently wrong with SuSE. I don't happen to use it, but there are a lot of things I don't happen to use.

You're stuck in the past. A Unix-centric past, at that. If it works for you, great, but don't pretend we all have to stay there with you.

<comment><USER34> Not sure what more to say beyond a good old quote; Those who don't understand history are destined to repeat it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER35> This post just stems from the fact the user did not know how to do something. This has very little to do with an updated motd or the very unrelated bzr branch he had to get. Don't like it? use something else. The time you wasted writing this post was probly greater than the time wasted finding the solution.

<comment><USER36> This could possibly be the dumbest reply ever on HN.

The motd file, by convention, is displayed whenever you log in to a Unix box. It has been this way for longer than you have been alive.

There is no question of 'use something else'. There is no app store for alternatives to /etc/motd. There is no dialog box that pops up that asks you what alternative to motd you would like to see.

The standard unified method for determining what a system file is composed of is called 'man'. This has also been around since long before you were alive. The author demonstrated correctly through the use of this tool that the ubuntu system for displaying the motd is (a) needlessly overcomplicated, (b) totally broken, and maybe most importantly (c) at odds with its documentation.

Please log out of the internet.

<comment><USER31> _There is no question of 'use something else'._

So, what you're saying is that this new motd system is some seriously _disruptive technology_? Good on those ubuntu kids, showing us all how its done.

<comment><USER37> What benefit is there from changing functionality that's worked for decades and not documenting it? This is core Ubuntu functionality that they changed, and they did not document it.

It's not disruptive. It's just idiotic.</comment></comment></comment></comment>


Ask HN: Linking bitcoin payments to the rest of your software - <AUTHOR>

I would like to set up a webshop that accepts bitcoin payments, but as far as I know there is no automatized way to check whether an amount has been received.<p>The thing I came up with is letting users enter the address they sent the payment from, but then someone else could also use that address and get their products for free if they time it carefully. How would you guys make this a smart-guy-proof system? <comment><USER2> Use Coinbase - [https://coinbase.com/docs/merchant_tools/payment_buttons](https://coinbase.com/docs/merchant_tools/payment_buttons)</comment>


ZeroMQ instead of HTTP, for internal services - <AUTHOR> http://augustl.com/blog/2013/zeromq_instead_of_http/ <comment><USER2> To me it looks like a ZeroMQ client can be written in many languages so you don't need to know Clojure to use it. Therefore the article has an extra barrier to entry for understanding the content because more people understand OOP languages like Java than Clojure.

I guess my point is, don't skim the article and think it's not for you because you don't know Clojure. Here's a list of languages it supports ( [http://zguide.zeromq.org/page:all#Ask-and-Ye-Shall- Receive](http://zguide.zeromq.org/page:all#Ask-and-Ye-Shall-Receive) ):

C++ | C# | Clojure | CL | Delphi | Erlang | F# | Felix | Go | Haskell | Haxe | Java | Lua | Node.js | Objective-C | Perl | PHP | Python | Q | Racket | Ruby | Scala | Tcl | Ada | Basic | ooc

<comment><AUTHOR> OP here, thanks for making that clear. I intentionally tried to keep the Clojure code as generally easy to read as possible, and aside from the big Clojure win (more specifically, functional programming win) towards the end, the code is pretty generic ZeroMQ stuff. I suppose it's not a coincidence that the ZeroMQ docs has the code snippets available in many programming languages :)

<comment><USER3> I have to confess that I, as a non-Clojure-speaker, found it much less interesting after seeing that your example was in Clojure. Using less common languages as examples makes it feel like it's in that big world of amusing side projects instead of something trying to be mainstream. Not on purpose, it's subconscious.

<comment><USER4> OTOH, Clojure gets more common as more people use it in examples. Subconsciously, if you keep seeing this strange language every other example code then you start to think that maybe it's not so side-projecty after all.

</comment></comment></comment></comment><comment><USER5> In my experience, ZeroMQ is very fragile in RPC-like applications, especially because it tries to abstract away the "connection". This mindset is very appropriate when you're doing multicast (and ZeroMQ _rocks_ when doing multicast), but for unicast, I actually want to detect a disconnection or a connection failure and handle it appropriately before my outgoing buffers are choked to death. So, I'd evaluate other alternatives before settling on ZeroMQ as a transport for internal RPC-type messaging.

If you are fine with having the whole message in memory before parsing (or sending) it (Http is not that bad when it comes to transferring huge documents over the network), writing raw MessagePack document to a regular TCP stream (or tucking it inside a UDP datagram) will do the trick just fine. MessagePack library does support parsing streams -- see e.g. its Python example in its homepage ([http://msgpack.org](http://msgpack.org)).

Disclosure: I'm just a happy MessagePack (and sometimes ZeroMQ) user. I work on Spyne ([http://spyne.io](http://spyne.io)) so I just have experience with some of the most popular protocols out there.

</comment><comment><USER6> I always enjoy reading discussions of internal application layer communication protocols. If there was one thing I would like to add though or wish for, it would be that people would go one level deeper in their thoughts and discussions. Specifically I'm referring to the transport layer (TCP/IP). I come from the financial services sector and we are heavy users of reliable multicast as an internal transport.

The kinds of solutions, changes, and re-thinking it has allowed us to do with regards to our architecture have just been tremendous. For example, if your system is latency sensitive you can move a lot of your more intensive logging to dedicated nodes. All they have to do is listen on the specific multicast port. This allows one to reduce latency in the critical path because you don't have to spend time logging inputs and outputs which ultimately ends up as some form of disk write or other I/O. Obviously you can't get rid of all of the logging/disk writes that your system must perform to maintain durability and other availability guarantees that are required, but for most things I've noticed that the requirements aren't always that stringent.

What's even cooler about multicast is that there is nothing preventing you from re-implementing your existing point-to-point, sequential, guaranteed message delivery protocols on top of it. A reasonable question to ask would be why would any sane person person want to do this?

Because most of the time you know which sorts of requests are going to result in calls to a manageable and finite number of which services. When using point to point protocols you've essentially painted yourself into the proverbial corner because now somewhere in your architecture you're forced to write fan- ins and fan-outs at the application layer that accumulate the results of queries to various services you utilize. These things are difficult to implement, frequently a source of headache, and difficult to reason about in the event of a failure. Why not use a transport protocol that gives you all of that for free?

The real difficulty here is that in order to properly utilize one-to-many communication internally you really have to have it on your mind since it will require you to structure your software in a very specific way. It's certainly not a silver bullet, and won't cure all that ails you. But now that we've been using it for so long I'm constantly coming up with solutions or ideas that are only possible because we utilize multicast as a transport that would be otherwise too costly or tedious to implement using TCP/IP.

<comment><USER7> What kind of multicast are you using?

ZeroMQ can do multicast using PGM -- [http://api.zeromq.org/2-1:zmq- pgm](http://api.zeromq.org/2-1:zmq-pgm)

<comment><USER6> PGM :)

</comment></comment></comment><comment><USER8> Ilya Grigorik has been advocating using ZeroMQ with SPDY for modern backend RPC.

See "Building a Modern Web Stack"...

AirBnB Tech Talk: [https://www.youtube.com/watch?v=ZxfEcqJ4MOM](https://www.youtube.com/watch?v=ZxfEcqJ4MOM)

Slides: [http://www.igvita.com/slides/2012/http2-for-fun-and- profit.p...](http://www.igvita.com/slides/2012/http2-for-fun-and-profit.pdf)

Blog: [http://www.igvita.com/2012/01/18/building-a-modern-web- stack...](http://www.igvita.com/2012/01/18/building-a-modern-web-stack-for- the-realtime-web/)

<comment><USER8> BTW: I posted a ticket to add backend SPDY support to App Engine -- see Ilya's comment: [https://code.google.com/p/googleappengine/issues/detail?id=9...](https://code.google.com/p/googleappengine/issues/detail?id=9398)

</comment></comment><comment><USER9> The thing that really annoys me about ZeroMQ is that sockets aren't thread- safe. This isn't such a big problem C, but it caused some really weird and difficult to track down problems in a Haskell program I wrote where I used a PAIR socket, but I wrote and read in different threads. I ended up doing some fairly unsightly socket gymnastics to get around this limitation.

Haskell programs are generally thread-safe by construction. It's very easy to overlook thread-safety in foreign libraries, but this isn't just a problem in Haskell, multi-threaded code is the default is a number of realms.

I now try to avoid ZMQ where I can. Modern libraries should be thread-safe.

<comment><USER10> Have you found any brokerless mq alternatives? About to build a haskell project and 0mq looks good. I'll keep in mind setting up two sockets, for push and pull. The documentation shows, zeromq contexts being threadsafe, wheras passing off a 0mq socket to another thread requires, putting memory barriers around it.

[http://api.zeromq.org/2-1:zmq](http://api.zeromq.org/2-1:zmq)

<comment><USER11> You should have a look at Nitro.

[http://gonitro.io/](http://gonitro.io/)

It's still young, but it grew out of some frustrations with using ZeroMQ in large-scale deployments.

[http://docs.gonitro.io/#faq](http://docs.gonitro.io/#faq)

<comment><USER10> Yes very good. thanks.

</comment></comment></comment></comment><comment><USER12> It seems to me that ZeroMQ is very good if you are creating a messaging network with load balancing, fanout, and fanin, however I don't think what most people are using HTTP services for matches to ZeroMQ full capabilities. That being said, it is very easy to get started with ZeroMQ. The whole idea of making everything messaging oriented seems to make sense especially if you think message passing is a good way to simplify complex systems that need high levels of concurrency. The issues with threading, forking, and contexts make some things tough with ZeroMQ, see: [http://250bpm.com/blog:23](http://250bpm.com/blog:23). I stopped hacking on ZeroMQ when i was unable to trouble shoot some hard to reproduce crashes.

</comment><comment><USER13> Thrift has been my backend RPC tool of choice both at work and on personal projects. It's been terrific for building composable backend services with tightly integrated language support.

Pros: \- Explicit contracts through the IDL. I despise implicit contracts in service oriented code. \- Code generation for many languages. \- Server and client interfaces that don't require as much ceremony as HTTP. \- Fast binary protocol

Cons: \- Sometimes the generated code isn't exactly what you want (can feel a bit Java centric) \- Binary protocol isn't human readable, can be harder to debug. \- Stream oriented calls aren't very feasible without some sort of home-grown chunking solution. This is why tools like Cassandra tell you that the whole request must be able to be held in memory.

Thrift is definitely worth a look if you're shopping for an RPC tool: [http://diwakergupta.github.io/thrift-missing- guide/](http://diwakergupta.github.io/thrift-missing-guide/)

<comment><USER14> Can't you use framed transport to handle streaming better?

(my previous company gave up on thrift when we discovered it couldn't do recursive data structures (i.e. trees), and made our own interface -> service layer on top of protocol buffers instead).

<comment><USER13> As far as I know, you still have to read the entire response into memory for parsing. You could write your own streaming parser, but as far as I know the main compiled bindings don't support streaming response handling. I would love to be proven wrong though!

</comment></comment></comment><comment><USER15> I really love ZeroMQ. We used it at LogNormal for all of the back end RPC. We did run into one issue though. If your 0MQ servers (the ones that call bind) run on a virtual host, as do your clients (the ones that call connect), and if that virtual host reboots, then the clients do not automatically reconnect to the server. I didn't quite have the time to investigate this, but from what I could tell, it only happens with virtual hosts across a reboot. It may have to do with iptables rules that we have in place (we have an IP whitelist), but I can't be certain of this.

<comment><AUTHOR> I've never come across this. I'm able to kill my server (the one with the REP sockets), submit a form on the web page, have the HTTP request in the browser hang (that under the hood proxies to ZeroMQ), start up the server, and have the request in the browser get replied to almost immediately. But I've only been running ZeroMQ in topologies with two nodes at most, no advanced routing etc.

<comment><USER15> when you say kill the server, do you mean kill the server process or kill the box that the server runs on? I have no problem with the former, but I have a problem with the latter, and I can't tell why. It's pretty consistent.

<comment><USER16> It's a TCP issue. When the other end of the connection goes away silently (power goes of, cable is cut off etc.) TCP doesn't inform ZeroMQ that the connection is broken, so ZeroMQ uses it furthe without trying to handle the error.

<comment><USER17> It's only an issue with TCP if you forget to enable keep-alive ([http://www.gnugk.org/keepalive.html](http://www.gnugk.org/keepalive.html)). Keep-alive solves this problem, and it solves other problems too, like when your network equipment decides a connection is no longer needed and disables it. Or, you can implement application-level heartbeats--whenever you send you have the chance to recognize that your peer has gone away.

</comment></comment></comment></comment></comment><comment><USER18> REQ and REP have an evil, evil failure mode if they get out of sync, as I recall. The lockstep of request and reply is rather easy to break.

<comment><USER19> At JacobsParts we experienced this. Every few weeks our central API would just stop responding. We were using a threaded python zeromq server and the REP "sockets" would get stuck, even after the client was gone. Enough stuck sockets and all threads were hung. Now we use python gevent for an asynchronous server and we use ROUTER, DEALER instead of REP, REQ. Actually the clients can use either DEALER or REQ depending on if they are asynchronous or threaded. Anyway the results have been fantastic and stable for a year now. When there are many small requests the performance benefit of ZeroMQ is just amazing. Can hardly tell the difference between a remote call and a local function call!

<comment><AUTHOR> I'm curious, did you have some sort of timeout mechanic for your REP sockets? I don't, but I've never had problems either because I don't have that much traffic.

<comment><USER19> AFAIK ZeroMQ doesn't support any kind of timeout on REP sockets. It could be hacked in with signals or a watchdog thread in a multiprocessing setup, but that's ugly. If you're going to all that trouble it seems much cleaner to just move to DEALER/ROUTER.

<comment><AUTHOR> I do like the way REQ/REP keeps track of the requests and has RPC semantics, though. Instead of blocking, you could always poll and time out instead.

</comment></comment></comment></comment></comment><comment> UK-AL Anyone used a ESB(biztalk, websphere) rather than a pure messaging solution. What's the difference?

<comment><USER14> Expensive consultants, low-quality error reporting, and a bunch of useless tools that make management feel like they can program (and then leave you to fix their crap)?

I presume there must be some upside, but I never saw it.

</comment></comment><comment><USER20> I've been using Avro because of its built-in support for Authentication via SASL. Does anyone know what the author is referring to when he says work is in progress for providing encrypted transports in ZeroMQ? Is there an issue that I can follow somewhere for this?

<comment><USER21> CurveZMQ - authentication and encryption library

[https://github.com/zeromq/curvezmq](https://github.com/zeromq/curvezmq)

CurveZMQ was recently announced by Pieter Hintjens (one of the 0mq contributors) on his blog:

[http://hintjens.com/blog:45](http://hintjens.com/blog:45)

</comment></comment><comment><USER22> HTTP does have pipelining since the 90s.

<comment><AUTHOR> I did look up HTTP pipelining before rolling with this, it is severly limited. It can only really do sequential requests concurrencly, not an arbitrary mishmash of requests and replies as ZeroMQ can. Also, pipelining should only do idempotent requests, apparently.

My only source for this is the wikipedia article [1] though, do you have some additional info about this?

[1] [http://en.wikipedia.org/wiki/HTTP_pipelining](http://en.wikipedia.org/wiki/HTTP_pipelining)

<comment><USER23> [http://chimera.labs.oreilly.com/books/1230000000545/ch11.htm...](http://chimera.labs.oreilly.com/books/1230000000545/ch11.html#HTTP_PIPELINING)

</comment></comment></comment><comment><USER24> Does anyone have any experience using ZeroMQ with larger messages? For instance if you need to send messages that are several megabytes for rpc style calls.

I just remember seeing anecdotal comments about it not working well, but never really dug into whether that was sound.

<comment><USER25> I've used it to stream an uncompressed video feed (essentially a special purpose webcam) over LAN as a quick and dirty solution for a research project. It worked out ok after I set a high water mark and forced it to drop data when it couldn't keep up. Before I figured that out, messages tended to pile up and crash my process by exhausting memory.

Can't say I'd recommend it, but it can be done, depending on the needs of your project.

</comment></comment><comment><USER26> I don't follow the reasoning; wouldn't it be more sensible to compare ZeroMQ vs. TCP instead of ZeroMQ vs. HTTP? If you can so easily replace HTTP, why the fuck did you choose it in the first place instead of a plain TCP protocol?

<comment><AUTHOR> ZeroMQ is not really at TCP level, ZeroMQ is about sending messages to and from various semantic endpoints, such as REP and REQ sockets, specifically made for doing RPC. If I was using TCP, I'd have to do a _lot_ of work myself (keeping the connection up, throttling locally when it's not up, keeping track of which messages goes where, etc).

</comment></comment><comment><USER27> ZeroMQ is an impressive project and I like reading Martin's (passionate!) blog posts. Haven't really needed it though. I hope I'll get a chance to use it to build a distributed high-performance system one day.

</comment><comment><USER28> On a related note, it looks like Crossroads I/O is dead.

<comment><USER29> Crossroads I/O has been superseded by nanomsg: [https://github.com/250bpm/nanomsg](https://github.com/250bpm/nanomsg)

It's still pre-alpha but has a ZeroMQ compat layer already.

<comment><USER18> Why dead, why superseded?

<comment><USER29> IIRC: Crossroads I/O was forked from ZeroMQ by its original author, who subsequently decided to start from a clean slate with nanomsg. His blog has some really good insights on various design decisions and "lessons learned" from ZeroMQ: [http://250bpm.com/blog](http://250bpm.com/blog)

</comment></comment></comment></comment><comment><USER30> HTTP works fine for me. Seems like a nice article though.

<comment><AUTHOR> How do you manage connections? Do you use keep-alive or not? If so, you have some sort of connection pool mechanism in order to be able to perform requests in parallel? These two problems is the main reason for why I switched to a MQ instead of using HTTP.

(Hopefully I managed to not make this seem like flaming, I'm genuinely curious.)

<comment><USER31> Have you considered/tried using a decent HTTP client + HAProxy?

<comment><AUTHOR> I have, but the fundamental limitation of sequential req/rep on a connection with HTTP pushed me to find alternatives.

Do you have any recommendations for decent HTTP clients?

</comment></comment></comment></comment><comment><USER32> What about interoperability with external services? With HTTP, you could just open your APIs to the world, when it makes sense.

<comment><AUTHOR> OP here. In the blog post, I use a traditional HTTP routing library on the server, and I return HTTP-like responses. Since I didn't reinvent that part, it's actually pretty trivial to either use the same code and package it into a war file, or just fire up a Jetty in-process if you only have one server instance.

</comment></comment><comment><USER10> Any experience with json-rpc? I'm trying to decide between the two.

<comment><USER33> I'm acutally doing json-rpc over ZeroMQ using a scheme similar to the one described above to do file conversion tasks.

A ZeroMQ proxy using a ROUTER/DEALER pair with a bunch of REP sockets in the background.

The clients use a simple REQ socket.

All in plain old C using ZeroMQ and jansson for JSON while conforming to the json-rpc 2.0 spec.

<comment><USER32> If I had to do that, I'd probably go with a queue on Redis or Postgres. "Cogs bad".

What are the advantadges of ZeroMQ when you're still on one computer?

</comment></comment></comment><comment><USER34> I see a lot of bare IP addresses and whatnot in ZeroMQ examples. Is it easy to integrate with a naming system like Zookeeper?

<comment><USER35> The ZeroMQ guide has a number of sections on discovery: [http://zguide.zeromq.org/page:all#Discovery](http://zguide.zeromq.org/page:all#Discovery) However, you could also use something like zookeeper.

The guide is a fascinating read. Even if you never write anything using ZeroMQ, it's a very useful intro to designing concurrent message passing systems.

<comment><USER34> What I got from reading that is the author has no idea how to solve the problem of many frontends and many backends of many services on a large scale (same feeling I got from reading the section about heartbeating.)

<comment><USER7> Interesting. Can you enlighten us with more detail?

<comment><USER34> The author lays out a dozen different, terrible ways to discover services, only one of which is even remotely suitable. I associate that kind of stream- of-consciousness documentation with people who are making it up as they go along.

Anyway, the proposed solution of a full-mesh FE-to-BE heartbeat network over UDP, switching to TCP in case of idleness, is not going to scale. That just guarantees that you are going to run out of file descriptors in case of a packet loss event, as everyone upgrades their heartbeat protocol to TCP.

<comment><USER7> What, in your opinion, is the correct way to implement heartbeats in such a message oriented system?

</comment></comment></comment></comment></comment></comment><comment><USER36> http is a bad protocol for internal services due to arbitrary length text headers with big parsing overhead and lack of multiplexing of packets per connection by default. Even FastCGI is _much_ better choice.

Erlang's messaging protocol, Protocol Buffers, Msgpack and other carefully serializing solutions trying to reduce parsing and communication overheads.

ZeroMQ seems like natural choice for the core of so-called messaging middleware, because, well, it's what it was designed for.)

And, of course, avoiding JVM leads to great reduction of resource wasting.</comment>


Pranav Mistry: The thrilling potential of SixthSense technology - <AUTHOR> http://www.ted.com/talks/pranav_mistry_the_thrilling_potential_of_sixthsense_technology.html

<comment><AUTHOR> Looks like the MIT Media Lab stuff is coming along very nicely. I'll probably wait a few years for it to come on a pair of sunglasses though.

This is a follow-up to this video: <http://www.ted.com/talks/view/id/481></comment>


Coverage of the "Microsoft Surface" on Hacker News - <AUTHOR>

In case you hadn't noticed, Microsoft has announced some hardware.  There are a few posts already about it here on HN, and I thought I'd provide a cross-reference of them for you.

    http://news.ycombinator.com/item?id=4118122
    Microsoft Expected to Introduce Tablet
    (nytimes.com)

    http://news.ycombinator.com/item?id=4121266
    Windows 8 tablet
    (cnn.com)

    http://news.ycombinator.com/item?id=4128906
    Live from Microsoft's 'major announcement' event
    (theverge.com)

    http://news.ycombinator.com/item?id=4128994
    Live from Microsoft's mystery press conference in Los Angeles
    (engadget.com)

    http://news.ycombinator.com/item?id=4129122
    New Microsoft Surface tablet announced
    (theverge.com)

    Discussion-> http://news.ycombinator.com/item?id=4129125
                 Microsoft Introduces New "Surface" Tablet
                (microsoft.com)

    http://news.ycombinator.com/item?id=4129134
    Microsoft's new Windows 8 Tablet: "Welcome to Microsoft Surface."
    (microsoft.com)

    http://news.ycombinator.com/item?id=4129154
    Microsoft Announces Surface: New Family of PCs for Windows
    (microsoft.com)

    http://news.ycombinator.com/item?id=4129179
    Microsoft's Surface Tablet Official Video
    (youtube.com)

    http://news.ycombinator.com/item?id=4129556
    Hands on with Microsoft Surface
    (theverge.com)

    http://news.ycombinator.com/item?id=4129563
    Microsoft Breaks The Cool Barrier
    (mikecanex.wordpress.com)

    http://news.ycombinator.com/item?id=4129798
    Microsoft's Surface Tablet Takes On Apple's iPad
    (allthingsd.com)

    http://news.ycombinator.com/item?id=4130556
    Microsoft drops "Surface," its tablet product to go head-to-head with iPad
    (eweek.com)

    http://news.ycombinator.com/item?id=4130731
    Last night's Microsoft Surface
    (Tablet) Keynote (Full MP4 Video) (ms-studiosmedia.com)
 <comment><AUTHOR> Clickables:

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

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

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

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

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

<http://news.ycombinator.com/item?id=4129125> <\- Discussion

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

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

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

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

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

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

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

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


Google Chrome reportedly bypassing Adblock - <AUTHOR> http://www.neowin.net/news/google-chrome-reportedly-bypassing-adblock-forces-users-to-watch-full-length-video-ads

<comment><USER2> Looks like it's just a bug caused by a recent patch. [https://code.google.com/p/chromium/issues/detail?id=526413#c...](https://code.google.com/p/chromium/issues/detail?id=526413#c7)</comment>


Human Shape and Pose, by Number - <AUTHOR> http://blog.bodylabs.com/2015/09/09/tech-intro/ <comment><USER2> This looks like interesting work, and I suggest you repost it with two changes: (1) revise the article to be less "announcey" and give actual detail about the work; (2) don't get friends (or sockpuppets) to upvote it. HN's software detects that and penalizes the submission. We also take voting privileges away and/or ban accounts that do it.

If you (or anyone) wants more advice about how to make content that HN will find interesting and/or how (not) to get penalized or banned, please email us at email@example.com.

</comment><comment><USER3> Many years ago, I tried building my own (very basic) 3D scanner with a webcam and a leveling line laser. It was really exciting when I actually got it working and equally disappointing when I realized that my scan was point cloud full of holes. I had nothing to use it for.

This article is about a brilliant approach to not only get a usable mesh from such a point cloud, but also fill in the holes with real, human body shape. Very cool!!</comment>


ChurchMint: Communication and Discovery Platform for Churches - <AUTHOR> http://www.churchmint.com

<comment><USER2> I see the church submission form, but will there be a way to submit the churches of entire denominations whose directory of churches is publicly available?

SermonAudio.com, which also has mobile apps, already has similar functionality to this app. Why should churches use ChurchMint instead of SermonAudio? SermonAudio does cost money, so will ChurchMint be providing these services for free?

<comment><AUTHOR> This is pretty early in the process, so yes there will be a way to get whole directories of churches from denominations, even if I have to import those manually.

Sermon audio and podcasting is only a small part of what ChurchMint does overall. I have looked at other services like and including SermonAudio.com but they really aren't in the same realm as ChurchMint is.

</comment></comment><comment><USER3> I love niche apps like this.

Is it a just-for-fun project, or are you planning to monetize it? If so, how?

<comment><AUTHOR> Monitization will be from SaaS style tiered plans that churches will pay for depending on push message volume and stored audio files. The app will always be free to use and churches can add info, locations, and events free.

<comment><USER3> Great plan. I love it.

My only suggestion would be to figure out the free message volume and storage size...then half it...then half it again. Give the free plan a paltry size. I think it's fair to give only a taste and require people to upgrade to get the real functionality.

I'm sure others disagree with me, and I'd love to hear their opinions, but if the goal is paying customers then make people pay...

</comment></comment></comment><comment><USER4> Looks like a very useful app, thanks for building this!</comment>


Rockstar developers speak out about "100-hour weeks" comment - <AUTHOR> https://arstechnica.com/gaming/2018/10/red-dead-redemption-2-devs-say-quoted-100-hour-weeks-arent-the-norm/ <comment><USER2> "we don't expect everyone to work this way." <implied> just the ones that want to keep their job or get a raise</implied></comment>


The problem with taking seed money from big VCs - <AUTHOR> http://cdixon.org/2009/08/14/the-problem-with-taking-seed-money-from-big-vcs/ <comment> daniel-cussen (2009)</comment>


Kraft Reveals Revamped Mac and Cheese, 50M Boxes Later - <AUTHOR> http://www.nytimes.com/2016/03/21/business/media/kraft-reveals-revamped-mac-and-cheese-50-million-boxes-later.html <comment><USER2> We did the same thing at reddit when we upgraded the search system.

First we put a little survey on every search result that said "Are you satisfied with these results? yes/no". After we collected enough data, we changed the entire search backend out, but told no one.

After a few months of collecting data showing the satisfaction go from ~70% to ~90%, we made a blog post explaining what we did.

Here's the real kicker though that makes it different from Kraft -- we didn't say that we had done it months ago, so we kept getting comments about how it was "so much better this week vs. last week".

We did that a few times. When we moved the site to EC2, we announced it months after the fact, and people would claim to have noticed the "sudden change".

It's an interesting look into the human psyche.

<comment><USER3> Make no mistake about it, this is clearly a marketing ploy by Kraft's ad agency. They are battling the minds of consumers who are (as of recent) continually seeing companies change ingredients and then be marketed to because it's "preservatives are bad...now with less preservatives!", with an undesirable side effect of "hmmm, but it tastes different". Coke Zero is a great example of this effect.

I'm not so sure Reddit's system is that similar. Reddit had a serious issue with search functionality not reaching the desired effect, and was easily circumvented by using Google search directly on reddit.

In reddit's case it was about completing a task and reaching a goal ("I now can search for something and it works"), for Kraft this is about perception and desire ("This tastes good!").

<comment><USER4> Try dumping a can of tuna into your Kraft™ Mac & Cheese. Delicious.

<comment><USER5> I also add a can of cream of mushroom soup. It was a staple when I was in college. I named it Mancaroni and tried to feed it to my three boys. They weren't buying it. There wasn't enough hot sauce or Old Bay in the house to get them to eat it. But I like it!

<comment><USER6> In addition to the tuna?

<comment><USER5> Yes. EDIT: It's condensed, and I don't add milk or anything. I believe this recipe was on the side of the box of Mac and Cheese at some point, probably long, long, ago.

</comment></comment></comment></comment></comment></comment><comment><USER7> Having young children, there's almost always a box of macaroni and cheese in the house.

My kids, who fancy themselves mac & cheese connoisseurs, started complaining about the taste of Kraft a couple of months ago.

So now when Kraft advertises on TV that they changed their mac & cheese and nobody noticed, my eight- and six-year-old just roll their eyes. I suppose the upside is, they're already learning that you can't believe advertising.

<comment><USER8> I keep saying to myself that I need to go to one of those world food sections at my local supermarket and buy a box of Kraft Mac and Cheese to try it,but I always forget - is it really worth it?

<comment><USER9> If you are paying more than the equivalent of US$1 per box, no.

Kraft Mac & Cheese is the spiritual equivalent of top ramen noodles, artificial cheese flavor.

There is no intrinsic American cultural value to it. Many of us do grant it some nostalgia value, because we grew up without a lot of money, and it was, and still is, cheap and filling food for poor people. A suitable protein accompaniment is a can of chunk light tuna (solid albacore is for rich folks), hot dogs (aka frankfurters) cut into coin-sized slices, diced bologna slices, Spam, or a hard-boiled egg. To drink, mix up some unsweetened Kool-Aid with 3/4 the ordinary amount of added sugar. If you are feeling flush this month, you may also have a slice of dry white toast with some leftover schmaltz on it.

<comment><USER10> It's actually an English recipe.

Here is an 1859 version of the recipe, from _Mrs Beeton 's Book of Household Management_.

[http://www.gutenberg.org/cache/epub/10136/pg10136-images.htm...](http://www.gutenberg.org/cache/epub/10136/pg10136-images.html#id09333q&f=false)

And here's the original, from 1786 in _The Experienced English Housekeeper_ : [http://babel.hathitrust.org/cgi/pt?id=hvd.rsmcze;view=1up;se...](http://babel.hathitrust.org/cgi/pt?id=hvd.rsmcze;view=1up;seq=277)

<comment><USER9> Kraft Mac & Cheese bears little resemblance to anything you might achieve at home using your pantry staples and a recipe book. That is, unless you have an industrial-sized pasta extruder at home, and standing orders for sodium citrate and annatto coloring by the ton.

It cleverly evokes the _idea_ of better food, so that what you are actually eating seems somehow less disappointing. There are other brands that reproduce more faithfully the concept of the original recipe, but they may cost 2-5 times as much as Kraft's.

Also, a box of Kraft Mac & Cheese can be prepared in one saucepan on one stove burner or hot plate in less than 15 minutes, spent mostly waiting for the water to boil, whereas "real" macaroni and cheese recipes may involve cheese graters, pasta strainers, multiple saucepans, and maybe even a casserole dish and time in the oven. This point may be important if you have to feed your kids quickly after school, before going to your second job, as many heads of household in the U.S. are required to do in order to fund the monthly budget. (The kids might be able to eat both breakfast and lunch at their schools, depending on the relative affluence of the neighborhood.)

</comment></comment></comment></comment></comment><comment><USER11> ... and this is why people with severe allergies _always always always_ read the ingredients list, even if the packaging has not changed. And _always_ carry emergency medication.

<comment><USER12> Since I've discovered I've had celiac (the real deal) ~6 years ago, I've read a lot more ingredient labels than I used to, and I can vouch for the fact that food formulations change more than you'd expect without fanfare. For all that you might find "gluten free!" splattered all over a lot of things, I can tell you there have also been a lot of foods that have silently gone gluten-free over the years, along with trying to minimize their use of the other major allergens.

This includes even very big name brands, such as Doritos. For a long time, Doritos was gluten free in nearly all of its flavors _except_ its "default" Nacho Cheese flavor. Suddenly and silently, it went gluten free. I don't know exactly when because I wasn't looking. I was actually trying to show someone that only that flavor had the wheat in it, except the bag went and contradicted my claim. I may have missed it but I don't think they ever publicized it, or if they did, it wasn't much. (Contrast, for instance, Corn Chex which has talked about being gluten free on its box now for years after it changed.)

Imitation crab meat is another example; it has gone from reliably containing wheat, to unreliably being gluten free depending on brand, to what appears to be converging on generally _not_ containing wheat, just in the past few years. I'll still be checking labels for a while on that one, though.

(And before the inevitable commenter pops up: The things that I do not know whether they contain wheat are, pretty much by definition, the highly- processed foods high in refined carbs, so my examples have a selection bias in that direction. I do not eat either of the things I mention often or in quantity. But I'm not always 100% in charge of my food environment and it is nice at someone else's party to be able to eat _something_ sometimes.)

<comment><USER13> _I can tell you there have also been a lot of foods that have silently gone gluten-free over the years, along with trying to minimize their use of the other major allergens._

Good find!

But as have been indicated here [http://www.bbc.com/news/health-35727244](http://www.bbc.com/news/health-35727244) , this may be counterproductive.

<comment><USER14> You're conflating disease and allergy.

<comment><USER15> Disease, allergy and sensitivity.

My friend has celiac, my co-worker is mildly allergic to wheat, I'm sensitive to gluten.

Too much gluten makes me gassy so I avoid large quantities, but that's pretty much it. My co-worker breaks out in hives. My friend is in for a world of hurt.

</comment></comment></comment></comment></comment><comment><USER5> Whoever thought of this must be a parent. This is brilliant, and exactly like changes you make when you feed picky eaters (and they probably know that they are a staple food for picky eaters).

</comment><comment><USER16> Well, some of us connoisseurs we're prepared for this change since 2013:

      http://www.npr.org/sections/thesalt/2013/11/01/242412024/kraft-dims-that-mac-and-cheese-artificially-orange-glow

This isn't as radical a transition as "New Coke", and we haven't had to raid stores to build a stockpile like we did in the early 80s.

<comment><USER17> For people who don't know the "New Coke" story, [https://www.youtube.com/watch?v=WuMxXw9TeE4](https://www.youtube.com/watch?v=WuMxXw9TeE4) is an interesting watch.

Americans take their soda _very_ seriously (or at least did in the 80s). It makes the hoo-ha over Kraft buying Cadbury, a British staple similar to how Coke is/was an American one, and the changes they made since (some of them within days of the purchase despite having promised the government otherwise to get the deal to go ahead) look like a storm in a tea-cup.

</comment></comment><comment><USER18> I think this story is actually a pretty incredible one. Just logistically it's a very interesting story that they were able to keep their collective corporate mouth shut--and even though it seems they're gearing up to milk the marketing effort now, that they did this without immediate payout in terms of brand marketing is surprising. And it's not like we're talking about a processed food brand with a million variants on the shelf either--we're talking an iconic, one-note Kraft dinner.

I'd inquire about the taste, if it's any different, etc, but I haven't had Kraft in, uh, a long ass time.

<comment><USER19> It tastes of butter, salt, and poverty, same as always.

<comment><USER16> In the 80s, we always referred to it as "reganomics" as in "oh no, not reganomics for dinner again!"

I seem to recall a massive cheese redistribution campaign back then. And ketchup being declared a vegetable for purposes of school lunches.

</comment></comment></comment><comment><USER20> Are Kraft and Mondelez the same company? They now own British chocolate company Cadbury and have received a lot of criticism for changing recipes there (amongst other things). [http://www.telegraph.co.uk/food-and- drink/features/7-ways-ca...](http://www.telegraph.co.uk/food-and- drink/features/7-ways-cadbury-has-been-trashed0/)

<comment><USER21> Kraft renamed themselves Mondelez after spinning off grocery brands who now use the Kraft name - Philadelphia cheese etc.

Mondelez are well on the way to destroying the Cadbury brand here.

One of the things Kraft made a big deal of during the takeover was promising to keep a particular UK plant open. 7 days after finalisation they announced the plant's closure.

Creme Eggs are now revolting, It's not even Cadbury choclate any more, but some sugary cheap fake chocolate. Being egg shaped, they were commonly sold in packs of 6, now sold in 5s - same price. They're also markedly smaller.

They've fiddled with most products, generally made them noticeably worse, and shrunk the sizes of nearly everything.

I buy other makes these days.

<comment><USER22> According to Wikipedia, they transitioned from chocolate (which legally in the US must only contain cocoa butter fats) to "cocoa-flavored", which can contain less or no cocoa butter and includes cheaper fats such as vegetable oil.

[https://en.wikipedia.org/wiki/Cadbury_Creme_Egg#Changes_to_p...](https://en.wikipedia.org/wiki/Cadbury_Creme_Egg#Changes_to_product) [http://www.latimes.com/la-oe- may19apr19-story.html](http://www.latimes.com/la-oe-may19apr19-story.html)

<comment><USER21> That would explain why the texture is wrong then. Best word I can find is "slimy", and is too sweet which is quite an achievement in a product that's 80% fondant.

</comment></comment></comment></comment><comment><USER23> This strategy is how I imagine the "least painful" transition from init to systemd in a distro would go: someone would make the change, tell everyone to update, and then ask if anyone noticed.

<comment><USER24> Linux users tend to be aware of update contents. They read the changelogs, review the list of packages that will be updated, etc.

I've been using a mac at my new job, and a dialog box popped up today asking if I wanted to update. The options were something like "Not now" and "Update all". How am I supposed to know if I want to update if I don't even know what's going to be updated?

<comment><USER25> The App Store's "Updates" tab shows which apps are getting updated, and can even show build notes.

</comment></comment></comment><comment><USER26> I actually noticed a couple of months ago that it now takes 5-6 minutes to cook instead of ~4 to get the same consistency. That threw me off since I am the primary mac&cheese maker for my kids.

</comment><comment><USER27> Maybe they worried too much. Even though the change was _written on the box_ , nobody noticed or commented. That's how much people cared.

</comment><comment><USER28> I'm fairly certain this change came to Canada first but unlike the USA, it was announced. Kraft launched a new version of Kraft Dinner (what you Yanks call "Mac and Cheese") with the preservatives replaced by natural things last year. I thought it tasted fine and was happy that it's even a little healthier.

<comment><USER29> There was a change.org petition by "Food Babe" to get this changed due to a lot of bunk arguments. Replacing a tiny amount of a very common food dye is not going to affect the healthiness in any substantial way.

<comment><USER30> Food Babe: "When your body is in the air, at a seriously high altitude, your body under goes some serious pressure. Just think about it – Airplanes thrive in places we don't. You are traveling in a pressurized cabin, and when your body is pressurized, it gets really compressed!"

That line from one of her articles sums up her thought process perfectly.

<comment><USER31> I agree that Food Babe makes a lot of rather silly arguments "That ingredient in Subway bread is also used in car tires!", etc. but she _has_ drawn attention to some unnecessary additive choices (like 4-Mel in Starbucks pumpkin spice lattes), which I think is helpful. Even if the additive is not harmful, as a consumer, it's good to have more knowledge about what Starbucks puts in their drinks.

Having watchdogs like the Food Babe keeps companies a bit more on their toes about the health impacts of their additives than they would be otherwise.

<comment><USER29> And why is that an unnecessary additive? Is it actually harmful?

A quick google seems to indicate that is just the same inciteful(note: not insightful) nonsense to get page views.

Not to mention the fact that she is targeting a drink where the primary ingredient(s) are _actually_ bad for you in the quantities they are served in unless you are already following a fairly well-balanced diet.

It is insane to single out minutiae that are orders of magnitude less impactful than the huge sugar bomb that is the core of the food/beverage.

</comment></comment></comment></comment></comment><comment><USER32> They did this because yellow #5 and #6 are banned in other countries. It is still a box of processed food.

[http://www.examiner.com/article/kraft-mac-and-cheese- ingredi...](http://www.examiner.com/article/kraft-mac-and-cheese-ingredients- banned-outside-u-s)

</comment><comment><USER33> I don't remember new Pepsi, but new Coke had a huge backslash which lead to pulling the product off the market, reversing back to original formula. And if I remember correctly, this original Coke, dubbed Coca-Cola Classic saw much better sales than the same coke did before that. Making people wonder if the new coke fiasco wasn't intentional.

<comment><USER34> They didn't actually use the original formula. They used the opportunity to switch from Cane sugar to Corn Syrup. Since people didn't have the ability to taste the difference any more, no one noticed. This let them cut the cost of a major ingredient which then translated into profit. They gained a LOT more from the failed product.

<comment><USER35> The sweetener isn't part of the Coca-Cola formula (or more specifically, isn't part of the Coca-Cola concentrate). Coca-Cola provides unsweetened concentrate to independent bottlers, and the bottlers add high fructose corn syrup, sugar, or both during the bottling process. Some US Coca-Cola bottlers still only use sugar for sweetener.

<comment><USER36> Ahh, that's interesting. I remember Coke (KO) bought out the US distribution/bottling from Coca Cola Enterprises (CCE) in 2010 but Wikipedia says 5-10% of US Coke is still bottled by a handful of independent bottlers.

Allegedly, Kosher For Passover Coke (which should be available soon if not already) uses sugar.

<comment><USER37> Yes, Coke that's kosher for Passover can't contain grain, including corn, so they use sugar.

Some history: [http://time.com/3769657/coke-passover- kosher/](http://time.com/3769657/coke-passover-kosher/)

</comment></comment></comment></comment></comment><comment><USER38> Interesting idea, I guess a tech comparison would be revamping the server side code considerably but not making an announcement so users wouldn't think they had to be on the lookout for bugs / quirks that weren't originally present. If you test well you could 100% overhaul the back end with not a single end user the wiser. I suppose if you announced a "major overhaul" scheduled for some time then users may be wary or hesitant to engage with the platform thinking hat they should expect intermittent outages or broken features.

<comment><USER39> I've done this, went from a Windows Server C# based backend to Linux servers with a completely new backend in Java. Nothing changed on the frontend and no announcement, some users gave feedback that the application seemed snappier though but they were never aware of what happened "under the hood".

</comment></comment><comment><USER40> In case anyone else actually wanted to see the commercial: [https://www.youtube.com/watch?v=T3eFbpyNRiQ](https://www.youtube.com/watch?v=T3eFbpyNRiQ)

</comment><comment><USER41> This might (or might not) work for Kraft, but let me tell a cautionary tale. Those that hang on my every word have read me mention that I train dogs at the local animal shelter. Some dogs need to be taught how to be civilized members of society before adoption, so that's what my wife and I help with. Food is a great motivator, and we used to use these logs of dog food (Natural Balance, for those that care). Chop 'em up into tiny little cubes, makes a great and inexpensive training treat. Dogs love them.

Well, dogs _used_ to love them. You see, Natural Balance changed _their_ formula without telling anyone. I'm going to guess that the most common use for Natural Balance dog food is to make treats, not a meal for dogs. The new formula crumbles when you try to cut it, and here's the important part: dogs won't eat it. So Natural Balance dog food is no longer fit for the most common purpose I see in personal observation. No trainer, pro or amateur, that I know of uses it anymore. The hoity-toity major pet food chain in Seattle no longer carries it.

No worries, Red Barn makes a tasty equivalent, so we use that now. _But here 's the kicker_: even if Natural Balance pulled a Coca-Cola and put the old formula back, they've still lost us for an indefinite period (if not permanently). Why? Because we'd never know. We found an adequate substitute, Natural Balance is no longer on our radar, and it's not like The Dog Food Blog is in my RSS so I'd know when NB came to their senses.

One might get away with this with people food, as kids are more likely to bug Daddy with "but I want _Kraft_!" than a dog is to bug their handler with "What's this Red Barn crap? I want Natural Balance!" But if kids won't eat it, as implied by other comments, then Dad might try another brand, the kids love it even more than Kraft, and Kraft just falls off a family's radar. Because it seems to me that Kraft, as with Coke before them, assumes a brand loyalty that might or might not exist.

</comment><comment><USER42> So apparently (I thought Heinz, that was what the website mentions) Kraft (they're who responded to my feedback with nothing but boiler marketing "cost of ingredients" response) removed the Golden Flavor Nugget from Wyler's Mrs. Grass Soup Mix. This is what that soup was KNOWN for! The Golden Nugget! They got rid of it! Raise the price and keep your differentiator. In my feedback I told them I was returning several unopened boxes to the store since I bought/buy their soup because of the golden egg. I returned the unopened boxes.

"Dear Mr. [my name] ,

Thank you for taking the time to contact us regarding Mrs. Grass Homestyle Noodle & Vegetable Soups. In an effort to continue offering a better product to our consumer, we've removed the Golden Egg Flavor Ball from our Mrs. Grass Homestyle Noodle & Vegetable Soups. The Golden Egg Flavor Ball will no longer be reflected on the packaging. One reason for package changes is to consolidate and reduce packaging. When we're able to do this, it benefits all of us as well as the environment. We also change our packaging in an effort to bring quality products to our consumers at the most affordable price. We all know that prices are increasing on everything from gasoline and corn to automobiles and houses. As costs go up, companies often find that they must raise prices to maintain high quality. The alternative to raising the price of any given product is to offer the product in a slightly smaller size. When we reduce the size of a product, it allows us to offer the product to our consumer at the best affordable price point. I appreciate you sharing your concerns with us. I will be sure to forward your comments to the Marketing and Production staff. It is our goal to continue to offer a variety of high- quality foods at the lowest possible cost to consumers. Thank you for contacting us and please add our site to your favorites and visit us again soon!

Sincerely,

Julian Franklin Director, Consumer Relations"

[http://www.wylers.com/Gdetails/mrs_grass_home.aspx](http://www.wylers.com/Gdetails/mrs_grass_home.aspx)

</comment><comment><USER43> I must recommend the fantastic YouTube series, BoxMac: [https://m.youtube.com/watch?v=CLH1Tx2EyXE](https://m.youtube.com/watch?v=CLH1Tx2EyXE)

</comment><comment><USER44> Plot Twist: They haven't actually changed anything and will silently roll out the REAL change 6 months from now.

(Not really. But that'd be a cool story too.)

</comment><comment><USER45> I doubt there's a soccer mom in the world who didn't know this had happened already; my wife had been expecting it for months when it finally switched.

Other manufacturers are doing similar things. In fact, Trix Cereal has quietly switched away from artificial colors recently, and other General Mills "kids" cereals are expected to follow suit soon.

</comment><comment><USER21> I'm more than a little surprised it's so successful. Macaroni & cheese barely takes any longer to make properly than to warm up a pan of bought.

OK, add a few mins if you want to grill it with cheese topping, which improves it no end :)

<comment><USER46> There's a decent amount of effort involved in making a roux base for a cheese sauce compared to squeezing a packet of cheese-product into a pan. It's not a huge effort, but it's still there if you aren't accustomed to cooking much more than frozen meals and prepackaged food.

</comment></comment><comment><USER47> This was pretty genius! I'm looking forward to trying the "new formula" even though it won't taste any different haha

</comment><comment><USER48> Glad to see Craig Kilborn getting some work.

</comment><comment><USER49> Canadians are anxiously awaiting the shipping of Kraft Klassic :)

</comment><comment><USER50> Do they still put Milk Protein Concentrate in it?

</comment><comment><USER51> I really don't get why Americans are so drawn to such a nasty processed food. Italians must cringe at the sight of such an abomination.</comment>


Classical peer review: An empty gun (2010) - <AUTHOR> http://breast-cancer-research.com/content/12/S4/S13

<comment><USER2> Very interesting read. I have both submitted and reviewed several papers and grants. My impression is that peer-review is not as bad (as democracy example of the author), only when done with patience and passion. The barriers it creates are really troublesome.

I am doing a line of research in a very conservative community. You will be surprised how easily my work gets rejected from the journals, because they don't have the capacity, view and vision for such work. The grant scene is even much more devastating. Other groups don't want to let you in. You don't know who reviewed your grant; the reasons given are not major, but yet you are rejected. So, you end up wasting lots of research time looking for fundings. Quite boring.

Open journals are an alternative, of course. Yet, they need to be studies if they are an effective method of publishing. Then, the question is how to trust the results, and deal with many contradictory results. However, it seems it is time to tackle them than to worry though. My last publication goes to an open journal.

edit: typos

<comment><AUTHOR> It's worth emphasising that Richard Smith is talking only about biomed. Academic practices vary widely.

Julia's dictum in _1984_ is maybe relevant to overcoming cultural inertia: if you follow all the little rules, you can break the big rules. Likewise, it helps to eliminate trivial objections to your work when trying to get past gatekeepers.

Of course, Julia and Winston didn't get away with breaking the big rules...

<comment><USER3> The physics community gave up on peer review 15 years ago.

Today a physics paper makes a much bigger splash when it appears on arXiv.org than when it appears in a "real" journal six months or 2 years later.</comment></comment></comment>


Ask HN: Is your gmail being overrun by spam? - <AUTHOR>

I've been using gmail as my exclusive email for a while now (since mid-beta or so), and up until a few months ago, it was exceedingly rare that any spam at all made it in to my inbox.  However, for the past few months, it seems that I get between 1 and 4 spam in my inbox a day that gmail doesn't filter.<p>Is this a widespread issue, or am I just really unlucky? <comment><USER2> I've seen a sharp increase in the past 3 months also. Mine is all getting filtered to my spam folder, however my spam folder almost never received anything up until recently.

</comment><comment><USER3> I have multiple gmail accounts and still only get spam in my inbox about once a week at most and false positives about 2 times a month.

<comment><AUTHOR> See, I've never had a false positive... that I know of, anyway.

<comment><USER3> I only get false positives for mailing lists shortly after they have received spam.

</comment></comment></comment><comment><USER4> I am also getting this. Have been using gmail since 2005 without any spam getting to my inbox, but now I get about 2 per day.

</comment><comment><USER5> I wouldn't go so far as to say 'overrun', but I'm certainly seeing a lot more spam recently (last 3 months or so) than before.</comment>


Cat /proc/cpuinfo or don't trust your cores to rackspace part i - <AUTHOR> http://www.rubyrescue.com/blog/2009/10/27/cat-proccpuinfo-or-dont-trust-your-cores-to-rackspace-part-i/ <comment><USER3> Don't trust any servers to anyone. When we get a new server we check its stats against reality (have had upside and downside surprises on CPUs), run bonnie++ to make sure IO is as expected (it hasn't been due to exotic RAID problems), and run memtester to see if we have bad RAM (had that too). Takes more time, sure, but no surprises later.

<comment><USER4> That's the right attitude.

For extra points do serious burn-ins, especially on network hardware, keep a good eye on those error counters as well as mcelog in case you got a faulty ram in there.

It's all part of commissioning a server, especially if you host at a cheap outlet like rackspace.

<comment><USER5> _a cheap outlet like rackspace._

I've heard rackspace called lots of things, but this is the first time I've heard someone call them "cheap". Have their prices gone down lately?

<comment><USER4> On a relative scale they're cheap, what they call 'managed hosting' though is not what I'd call managed hosting. I think they call it managed hosting because they will do backups for you or something like that :)

The Planet/EV1, which was my choice when hosting in the US earlier was quite a bit cheaper, but service there was absolutely terrible.

It got to the point where I reprogrammed the DRAC cards to lock out their sys admins.

After The Planet took over we had all kinds of issues, then finally they had an explosion in a transformer in one of their datacenters taking down all of our stuff for days on end. After that we moved out.

They said it had nothing to do with them and we would be credited for the downtime if we stayed for at least another 6 months, but we had by then already signed up elsewhere and restored from backups. I figure if you're willing to run your operation that close to the red line then we should be taking our business elsewhere. They were lucky nobody got hurt.

Right now we're hosting in three places, leaseweb, mojohost and virtual acccess. VXS is by far the best but expensive, leaseweb is somewhere in the middle and for high volume mojohost is absolutely unbeatable.

btw, you have me curious what else you've heard rackspace called :)

<comment><USER5> _btw, you have me curious what else you've heard rackspace called :)_

Most of what I've heard about rackspace is that they had a good reputation once, but have been resting on their laurels and now have higher prices and worse service than other hosts -- but this is all 2nd hand and I have no direct experience with them, so I was curious to hear other perspectives.

<comment><USER4> Ok. I think if they worked a bit harder at justifying that 'managed hosting' bit then they would actually be worth it.

With both mojohost and leaseweb I basically only bug them when there are network or hardware issues, for the rest the problems are mine. VXS is a different story, that's where all the web servers are, their operators help with warding off all kinds of attacks, proactively scan for security issues and so on. 24x7 cell phone of the manager of the hosting facility.

It's very addictive, that level of service.

They charge a pretty penny for it, but imo it's worth it, it is still much cheaper than having a full time sysadmin for our stuff, and they probably do a better job of it.

</comment></comment></comment></comment></comment></comment><comment><USER4> If you never run top '1' then you shouldn't be operating servers for customers.

<comment><AUTHOR> attempting to ignore snarkyness, but failing - and that says what about the dozens of rackspace engineers configuring and monitoring and supporting the box over the past two years?

<comment><USER4> There once was a really nice quote here on HN: "you can't outsource responsibility".

If in two years time you've never _ever_ had a look at what kernel you are running, especially while tuning a system for performance you only have yourself to blame.

Don't tell me you're running a 'stock' kernel and never bothered tuning it for your application, or considered upgrading it. Also, in your resources list you should have the exact machine configuration, there are tools to retrieve that sort of info automatically.

Then, when you're done, store it in <http://inventory.sf.net/> or something like that.

It's typical that the people at rackspace would simply drop in the requested hardware, and that you yourself deal with the configuration.

The smart money is on running some tests after they've done that to make sure it went ok. Asking for a CPU upgrade and not checking if they're operational is just plain stupid.

I figure you literally asked rackspace to upgrade the CPU, and that's what they did.

Did you explicitly ask them to install an SMP kernel with a specific version and they didn't do it ? Or did you expect them to do it but you didn't check if they actually did until today ?

Two full years of trying to tune a box for performance and not noticing this, then publicly blaming rackspace is simply cheap, an attempt at pinning the blame on rackspace, for something that you should have noticed long ago yourself.

Kudos for writing about it but the title should be "How I messed up". That's taking responsibility and then make sure it never ever happens again.

<comment><USER6> I really do not dig this tone. The guy is obviously not a system admin. He paid top dollar for rackspace managed hosting precisely so he wouldn't have to do the kinds of things you mention.

"You can't outsource responsibility" is utter nonsense. It is completely impossible to "own" responsibility for everything important in a complex society. Meaningless platitudes should not distract from the fact - <USER2> did not do their job.

Yes, he messed up. He messed up by making assumptions and not checking Rackspace's work more closely. That's not the same as messing up in your own work. His post is a reminder to be more careful checking on the work of your "upstream". There's no need to pile on with the "if you didn't know 'top 1' you shouldn't be running a startup!" etc.

<comment><USER7> I'm not a big fan of the tone, either, however, jacquesm is spot-on in his assessment.

For one thing, my understanding of Rackspace's business practices -- and I've only dealt with them peripherally, so I might be a bit wrong here -- is that they "manage" things like their network, and the actual server hardware, and stuff like that. So, if you want a CPU upgrade, sure, they'll do that. If you need your server rebooted, they'll do that too. But, they don't have anyone sitting there monitoring your system's performance metrics and doing your sysadmin duties for you.

The way I read it, Rackspace did do their job: they upgraded the hardware. It was up to the server admin -- not Rackspace -- to check that the _software_ was then configured correctly.

And finally, I don't generally agree with statements of the form, "If you don't know X, you shouldn't be doing Y", but ... looking at dmesg and top are both really, really, really standard sysadmin operations. Entry level stuff, really. Sysadmin work doesn't just mean messing around with Apache's configuration; there are many more nuances, and it's likely that their system is vulnerable to problems that they don't even know about.

<comment><USER4> The tone is probably in large part because the OP does not take any responsibility for his own part in this and instead is pointing his finger at a third party that _may_ have been partially at fault. But that is by no means sure.

This is typical with what I think is a real problem in society, the 'externalization of blame'.

Inability to see your own responsibility is a serious issue, and it is really pervasive. If I were in the OPs position I would be headbutting a piece of concrete for 20 minutes to make sure I never ever make a mistake like that again, and I would thank rackspace for finally finding the fault that I could have noticed in 5 minutes two years ago.

That's why you have post-delivery checklists, burn in tools and inventory management, staples of everybody that has # on machines that do customer work.

I'll try to keep my 'tone' better under control, apologies for that.

At least it wasn't in Dutch ;)

</comment></comment></comment></comment></comment></comment><comment><USER8> After _the conversion from Apache [+passenger] to Nginx [+unicorn] overall throughput went up by a factor of 3._

I noticed a similar gain (10-12 req/s to 25-30req/s) for action cached pages after switching out nginx+passenger for nginx+thin. This is on a 256mb slice, and seems totally counter to the general opinion that passenger is great for VPSes.

<comment><USER9> Have you tried nginx/passenger? I ask because I wonder how much of that gain is part of switching to nginx rather than switching to unicorn...

<comment><AUTHOR> on a separate application and server, yes, and it seems faster than apache/passenger, but it still suffers from the 'passenger choke' where touching tmp/restart.txt seems to pause all web traffic for 10-15 seconds, so we never considered it here...</comment></comment></comment>


Free Software Foundation urges Google to kill Flash - <AUTHOR> http://news.techworld.com/applications/3213356/free-software-foundation-urges-google-to-kill-flash/ <comment><USER2> As if flash is just a video codec...

The only people that can kill flash are those that market it, in other words adobe. The rest of the world can compete with flash, maybe leading to reduced market share and eventual reduction in to insignificance. But they can't 'kill' it.

</comment><comment><USER3> Surely it would be against the Google mantra "Do no evil" for them to actively engage to kill Flash.</comment>


Show HN: Domain Wheel – Domain and company name generator - <AUTHOR> http://domainwheel.com <comment><AUTHOR> We have started the project during a hackaton here at Themeisle and just managed to launch a beta version for it.

While before I was wondering why there aren't any good tools for this, soon I realise that is much more complex than I thought, for now we are using various existing APIs from Godaddy,DomainsBot and DataMuse with custom rules, exclusions and suggestions to make sure we deliver much better results.

It seems that the only good solution for now and something we are working on is to integrate MTurk or microworkers and generate suggestions "on-the-fly", while building a nice database of data, I am passionated about ways that we can build a smart searh/suggestion engine "backed" by humans, will see how much it makes sense.

</comment><comment><USER2> I've used a lot this kind of services for giving me inspiration. I have to admit that I'm a bit disappointed with this one, it feels... uninspired. For the example I tried it just appended unrelated words like "home" or "lunch" to my keywords.

My personal favorite is [http://www.panabee.com](http://www.panabee.com) as it plays with the phonetic of your keywords. It gives a lot of weird things but usually one or two are catchy names.

Anyway, congratulation to OP for shipping something!

<comment><USER3> Yeah, it interprets "functional" in "functional programming" using the more general definition of just being, basically, not broken. Which, I get it, it's fine. I'm a bit disappointed in the narrowness of the returned results, but I also don't expect it to just know my intent, either.

The site you linked gave me an amusing one that's really simple: unctionalprogramming. Reminds me of the word "unctuous."

<comment><AUTHOR> guessing intent it proven to be really complex topic, we can definetively ask questions and get user feedback to tweak the results once we have more data.

</comment></comment></comment><comment><USER4> Here's something I wrote just for this purpose a number of years ago. Yes, a CGI script, in BASH no less, producing an endless stream of domain names for your startup.

[https://gist.github.com/Yetangitu/83fc77acf3d381a32c40a8f89f...](https://gist.github.com/Yetangitu/83fc77acf3d381a32c40a8f89f7354a1)

It even tells you whether the generated names are still available in .com, .net and .info, feel free to add even more specious extensions here.

Running it with a good-sized list of adjectives creates... well, just about the same nonsensical drivel as that which seems to be produced by many other similar tools. This one is free though...

       EssentialDuck
       AssuredPig
       BelovedFrog
       ProfitableMonkey
       FrontLizard
       ColorfulGator
       InfiniteDuck

(what? No ...Fish names yet?)

       GrandFox

(sorry, taken for .net and .com)

       VivaciousPig
       FunctionalPig

(for all you Haskell hogs out there)

       SuperiorMonkey
       RegularMonkey

(taken!)

       IllHippo
       StarryHound
       DiligentGator
       IncomparableDonkey

...

Well, you get the drill. It is interesting to note that the list of taken domains seems to be smaller these days compared to when I made this thing, back in the heady days of dot.com.boom. Maybe folks have wizened up to the fact that all those nonsensical names started to look stale fresh out of the wrapper?

<comment><AUTHOR> Thanks for the tip, will check this out!

</comment></comment><comment><USER5> I entered "fancy pants" the initial block was all decent stuff you'd expect, and the response was quick. Yay.

The "Check some carefully handpicked domains for you" section included Dogban.com, Guppyra.com, Cruzani.com and other completely unrelated or ridiculous things, which made my brain say "bullshit" "handpicked my ass" I would kill that section because it's a) totally useless to me and b) makes you look like liars because it is not "handpicked domains for you" it's... I dunno random crap you thought was neat? i dunno, but unless i was selling "no dogs allowed" signs (Dogban.com) everything there is just... ugh.

<comment><USER6> I'm going to register vivongm.com and kuehoral.com for my new startup about guttural choking noises!

</comment></comment><comment><USER7> Looks good and suggestions are good. A little OT but what is your opinion on using the new TLDs like .win, .rocks, etc? Does that sound professional?

<comment><AUTHOR> I chose to exclude those on purpose, I am not sure if people are that much interested in them, considering especially that some are quite expensive. I think however that some short ones like .win .rocks can be allowed.

Particularly, I don't mind using such domains, we started for e.g revive.social and I don't see any problem with it

<comment><USER8> Should probably let the user decide, and you get an extra word thats not just .com.

</comment></comment></comment><comment><USER9> I was hoping this would identify TLDs that fit into the company name. Like a company named "Untame" with website of "unta.me"

<comment><AUTHOR> is doing this sometimes, I think we need to tweak it a bit. Thanks!

</comment></comment><comment><USER10> Broken on mobile. Tried a single word and it displayed a blank block of text.

<comment><AUTHOR> is not mobile, but I noticed indeed a but when there are no results for a particular keyword.

</comment></comment><comment><USER11> Is there an open way of accessing domain availability information?

<comment><AUTHOR> not really, we are automatically showing only avaialable domains ( checking this against an API before displaying the results)

</comment></comment><comment><USER12> might want to let people register and save their favorite domain register. I use godaddy so it wouldn't apply to me but, something to think about.

<comment><AUTHOR> good point, I thought that people tend to buy right away, however you might be right, it worth at least experimenting with a favourite function, probably can be done without requiring an account neither.

<comment><USER12> I was thinking it might be "reason" to collect their information for future updates.</comment></comment></comment>


Ask HN: Would love to see post-mortem analysis of Drop.io - <AUTHOR>

As a frequent non-paying user of the service (as well as a heavy user of Dropbox), I think it would be enlightening to see (or start building) an analysis of the company from a customer validation/startup building perspective. What lessons were learned in creating it/what can it teach current startup founders? <comment><USER2> My business frequently used Drop.io when we needed to do a quick presentation or even to get a throwaway email. I was at the NY Tech Meetup when they presented. I wasn't blown away but I did tell myself "that's an easy tool to use".

So why at times did we use Drop.io vs Skype/Office/dropbox etc... it's because it was a single button click. Simple. No need to have to do multiple email verification. It was as easy using Google or doing a status update.

I do think they didn't receive a lot of traction was because their premium services was that they didn't develop the tools that weren't 100% small enterprise aimed but trying to do a consumer play.</comment>


One year later: Can Android 7.0 Nougat save the Pixel C? - <AUTHOR> http://arstechnica.com/gadgets/2016/09/one-year-later-can-android-7-0-nougat-save-the-pixel-c/ <comment><USER2> Not without a price cut, as well</comment>