What's wrong with systemd - <AUTHOR> http://www.landley.net/notes.html#23-04-2014 <comment><USER2> > The systemd developers are responding to upstart and launchd and android > init as things they must _defeat_, an establish a new standard by crushing > all the competing implementations.

This actually... isn't true. If you feel like wasting valuable time of your life, try reading the Debian systemd flamewar: the people with the most rabid 'holy war' attitudes are the systemd opponents.

People who favour systemd generally use it to get shit done [1], not write blog posts about 'freedom of choice' [2].

Fedora/RHEL, SuSE, Arch, and now Debian didn't decide switch to systemd because they were all strong-armed by Lennart's evil cabal or something, they did it because each of them decided that it was a superior system.

Because it is [3], and no other system, save Upstart, actually put in the work required to be a potential replacement.

[1]: [https://lists.debian.org/debian- ctte/2014/01/msg00287.html](https://lists.debian.org/debian- ctte/2014/01/msg00287.html)

[2]: [http://www.redhat.com/archives/fedora-devel- list/2008-Januar...](http://www.redhat.com/archives/fedora-devel- list/2008-January/msg00861.html)

[3]: [http://utcc.utoronto.ca/~cks/space/blog/linux/SystemdWhyItWo...](http://utcc.utoronto.ca/~cks/space/blog/linux/SystemdWhyItWon)

<comment><USER3> In most cases the opponents are mainly opposed because of Lennart, not technical reasons, not freedom of choice, but because of Lennart. Most of them will explain their reason with refences to technical or freedom of choice but once you get down to it, its just Lennart.

You know what your average user wants? A faster booting system. In most cases that will be systemd.

<comment><USER4> You couldn't be any more wrong. The average user has no idea that she is using Linux. The number of people using a Linux system that reboots frequently enough to be noticed is zero.

<comment><USER5> Are you talking about servers? Because it's not 2000 anymore; the idea of servers running single instances of Linux for months or years at a time and rebooting is so infrequent that an extra second or two is no big deal, is obsolete. The cloud is king, and in the cloud you want to have instances which can be started up and shut down quickly and safely. That means that systemd makes just as much sense on servers as it does on desktop and mobile systems, if not more.

<comment><USER4> My cloud instances already boot up quickly and safely, thank you. I don't need a mountain of technical debt and poorly designed architecture in order to increase the speed by two seconds.

</comment></comment></comment></comment></comment><comment><USER6> I fail to understand the swipe at Canonical for having /bin/sh point to dash. Having /bin/sh point to a lightweight POSIX compliant shell seems a wholly sensible choice. Indeed, the ability to swap out one implementation for another (made possible by the POSIX standardisation of the unix shell) seems to be exactly what he's arguing for elsewhere in the article.

<comment><USER7> I'm pretty sure this change was initiated by Debian. I recall it was already the case on Debian stable circa 2008.

<comment><USER8> According to each distribution's documentation, Debian switched to dash in 2011 with Squeeze[0] whereas Ubuntu switched in 2006[1]

[0] [https://wiki.debian.org/Shell](https://wiki.debian.org/Shell)

[1] [https://wiki.ubuntu.com/DashAsBinSh](https://wiki.ubuntu.com/DashAsBinSh)

<comment><USER9> That is misleading. Debian seems to have changed earlier, but not done an official release for some time after the change; Ubuntu took, as they always do, this unreleased version of Debian and released it as the new version of Ubuntu.

<comment><USER8> > That is misleading.

No. Even if you don't agree that a stable release is the correct check point, that means the change was done during Squeeze's testing cycle and thus Lenny's lifetime, which started in 2009. Fact remains that Ubuntu switched years before Debian, as a number of sources confirm such as this LWN post from July 29, 2009[0] noting that, at that time, dash remained _a topic of discussion_ on Debian mailing lists (and an unrealised goal for Lenny) whereas Ubuntu had switched 3 years prior.

> Ubuntu took, as they always do, this unreleased version of Debian and > released it as the new version of Ubuntu.

That's not just "misleading", that's outright bullshit. Ubuntu switched to dash as /bin/sh independently from Debian and regardless of what Debian did.

[0] [http://lwn.net/Articles/343924/](http://lwn.net/Articles/343924/)

<comment><USER9> I stand corrected. I did try to do some research, and what little I could find seemed to support my recollection, but apparently I was confused and failed in my research.

I concede the point.

</comment></comment></comment></comment></comment></comment><comment><USER10> I'm kind of indifferent to system's adoption, but I've heard quite a lot of complaints about it that have subsequently turned out to be false. It can sometimes be hard to filter out the noise.

However, it looks like most major Linux distributions are going to be using systemd. Fedora, Arch, Debian, Ubuntu (eventually), Redhat, SUSE, even CoreOS. What I don't get is why there would be comprehensive adoption across distributions if systemd was obviously the wrong decision.

</comment><comment> vezzy-fnord The main source of ideological disagreement between pro-systemd and anti- systemd users is just how much an init should handle. Anti-systemd side insists on init being just an init and not exceeding its duties, whereas pro- systemd are willing to make the init handle various other functions, due to the alleged benefits.

I think at this point it's erroneous to call systemd an "init system," it's far more than that and Lennart himself freely admits it in (ironically) the article meant to dispel systemd myths ([http://0pointer.de/blog/projects/the- biggest-myths.html](http://0pointer.de/blog/projects/the-biggest-myths.html)):

 _Well, systemd certainly covers more ground that it used to. It 's not just an init system anymore, but the basic userspace building block to build an OS from, but we carefully make sure to keep most of the features optional. You can turn a lot off at compile time, and even more at runtime. Thus you can choose freely how much feature creeping you want._

I'm not entirely sure about how optional the whole package really is. I know for a fact LXC tools like systemd-nspawn, Python bindings, etc. can be removed from the build using ./configure, but I don't know the full extent to judge the veracity of his claims.

Olav Vitters of GNOME and Debian (I believe?) later echoes the same sentiment in a somewhat self-contradictory manner: [http://lwn.net/Articles/575790/](http://lwn.net/Articles/575790/)

 _Systemd is meant to do one thing and do it well: be the basic building block for Linux._

Of course, one must first define what a "basic building block for Linux" is, although that isn't really elaborated.

Personally, I don't have any strong opinions in favor of or against systemd, but I do feel it was introduced in a rather rushed manner. I think it would have payed off better for the community if people researched certain alternate init schemes that were already present before systemd (not talking about launchd/Upstart), such as Richard Lightman's depinit: [https://web.archive.org/web/20050206182736/http://www.nezumi...](https://web.archive.org/web/20050206182736/http://www.nezumi.plus.com/depinit/index.html)

However, it's probably a bit late by now, since systemd's place has been set in stone, for better or for worse.

</comment><comment><USER11> I developed an (unjust) animosity for systemd when a `pacman -Syu` installed it and broke my Arch system (which relied on a small password-prompt initscript written by me that I had completely forgotten about) but when I took a fresh look it didn't look bad. I have only a year of so of real GNU/Linux experience so take this with a grain of salt, but I think that even if systemd's got problems, they're not related to it being too monolithic. And although I haven't really measured, my ancient Atom-based MSI netbook seems to boot way faster than with initscripts.

</comment><comment><USER12> TL;DNR version: systemd breaks the one thing that makes Linux great, it's modularity and ability to swap out individual components with separate discrete implementations.

<comment><USER13> No, I think you got that wrong.

TL;DR: systemd's supporters treat anyone who doesn't like it as an enemy to be defeated rather than a fellow traveller who is taking a different path.

If I look at launchd or upstart or openrc or runit, I see a project which wants a competitive landscape where they can demonstrate their merits for various uses.

When I look at systemd I see Microsoft.

<comment><USER14> Systemd's supporters might as well be devil-worshipping baby eaters, but that's not any argument for or against systemd as such, that's simply irrelevant.

<comment><USER4> Not entirely irrelevant. Sociopath risk is real.

<comment><USER15> Not sure I understand. Are you implying that we should resist systemd because Poettering is a sociopath?

</comment></comment></comment></comment></comment><comment><USER16> Does anyone have any insight in to why something like runit[1] was never a serious candidate for a sysvinit replacement in any mainstream Linux distro?

[1] - [http://smarden.org/runit/](http://smarden.org/runit/)

<comment><USER17> A few reasons:

\- There's a general opposition to the djb's designs and tools, which has some basis in their licensing, and is why djbdns and qmail aren't in the default distro of most systems. Note that this is being reversed right now with the embrace of NaCL crypto (Salsa20/ChaCha/Poly1305, etc.) as alternatives to the mainstream.

\- runit is pretty much an reimplementation of djb's daemontools for service supervision.

\- runit/daemontools definitely do things their own way. Service directories make sense, but they tend to be shell scripts all the way down. Logging is quite different and non-centralized. Services need to be set not to fork and do their own daemon management. And the list tends to go on - this unusual- ness is generally not what people want from a core OS part.

So, in short, there's no reason why people haven't used runit, other than "nobody else is doing it" and "it's different and has quirks".

<comment><USER18> Note that both djbdns and qmail have been in the public domain for years now. The general opposition to their license seems to have long outlived their license.

<comment><USER17> I think that's more related to the non-unified, pre-DVCS patch centric model of development, and the fact that djb has better things to do/is no longer interested in developing them.

If djb would have found an interested party to accept patches to the codebase, set it up on a code hosting site, then declared "this is the main repo for continuation of djbdns/qmail development", it would have gone a lot further than just "it's in the public domain" and no other guidance.

This has lead to things like "dbndns", which are a good attempt, but definitely not a general, cross unix version solution: [http://packages.qa.debian.org/d/djbdns.html](http://packages.qa.debian.org/d/djbdns.html)

</comment></comment></comment></comment><comment><USER19> The vast majority of distros seem to agree that standardization is a good thing in the switch to systemd. If you don't want to be standardized maintain it yourself, see: GoboLinux.

But modularity of Linux doesn't seem to be going anywhere. Contrary to what the author says, systemd is not monolithic but rather consists of protocols and multiple daemons outside of PID1.

There doesn't seem to be any plans to stop one from using anything other than systemd on say Debian either. As far as I know the only hard requirement for systemd (really logind) is with Gnome on Wayland for user seats, because Consolekit is dead. Gnome seems to be willing to work with the *BSDs et al who have no plans to switch to systemd.

[https://blogs.gnome.org/ovitters/2013/09/25/gnome-and- logind...](https://blogs.gnome.org/ovitters/2013/09/25/gnome-and- logindsystemd-thoughts/)

<comment><USER20> The problem is that while systemd is superficially a bunch of different commands, they are a clinking, clanking mess of poorly documented programs that do their job worse than the programs they replace.

For a moment, let's look at one of these components, systemd-backlight, and it's terribly written manual page, [http://www.freedesktop.org/software/systemd/man/systemd- back...](http://www.freedesktop.org/software/systemd/man/systemd- backlight.html) . Okay, so what return values can you expect? Where on the filesystem does it store the saved values so you can debug if things do go cactus? Why does it always overwrite the value at shutdown? These are all things that a reasonable program either should not do, or should document why and where they put things. Systemd just is not a responsible, well-engineered project.

Furtnermore, the only real reason consolekit is dead is because Lennart again shows a complete lack of responsibility as a developer with that project. He'd rather shove everyone towards his new baby of systemd than to do a responsible hand-off. This is furthered in his inability to document the interfaces used so that people can write compatible software, so that people can debug software, and so that people can maintain things if he ever gets hit by the number eight bus going downtown. It's just not a good way to run things, period.

<comment><USER21> > Where on the filesystem does it store the saved values so you can debug if > things do go cactus?

Quoting the page you linked to: "On disk, the backlight brightness is stored in /var/lib/systemd/backlight/."

<comment><USER20> I missed it. I guess I've gotten spoiled by BSD manual pages that have file locations in a subsection labelled Files instead of stuck in the description. At the same time, it gives a directory location, instead of an actual filename, which lends one to believe that the actual name and location will be subject to change without notice, as well as the contents of the file, format, etc.

</comment></comment></comment></comment><comment><USER22> I still sorta look at systemd as a solution looking for a problem.

System V style init is just 'good enough' for most applications - and if there is anything I've found in my time, the only people more adverse to change then telecom folks are Unix system administrators.

</comment><comment><USER23> Could someone with more knowledge about the subject explain why launchd was never taken up outside of OS X? I'm not an admin by any stretch of the imagination, but it seems to fit the bill _fairly_ well, and I've always wondered why it has not been ported elsewhere.

<comment><USER24> launchd makes heavy use of Mach IPC ( [http://en.wikipedia.org/wiki/Mach_(kernel)](http://en.wikipedia.org/wiki/Mach_\(kernel\)) ) which makes a port to any other non Mach derived OS a non trivial effort. There was apparently an effort to port it to FreeBSD - [https://wiki.freebsd.org/launchd](https://wiki.freebsd.org/launchd) and more recently [https://github.com/rtyler/openlaunchd/blob/master/README.md](https://github.com/rtyler/openlaunchd/blob/master/README.md) .

</comment></comment><comment><USER21> Replying to the article:

> The first issue is that Linux has always been a commodity white box OS built > from interchangeable parts available from multiple sources, just like the > PC. Systemd goes out of its way to break that, and in doing so represents an > enormous loss of flexibility.

systemd goes out of its way to _fix_ the massive integration failures we've had for decades (and seen as almost unfixable) because Linux is so focused on modularity to a fault. And because of systemd, we're finally starting to get a level of integration that previously only appeared in proprietary operating systems. [http://islinuxaboutchoice.com/](http://islinuxaboutchoice.com/)

Linux is good at evolutionary changes, but not nearly as good at escaping local maxima via large-scale cross-project changes. Not least of which because anyone attempting to make such changes has to be prepared for the anti-change "but the UNIX way!" flames.

Every time I see someone railing about the UNIX way, I think of how people flame each other about / versus /usr, and how the original motivation for /usr was "we ran out of space on /, put some of the less critical stuff on the user disk". Appeal to tradition is not an argument unless you have a concrete reason why the tradition is _better_ , and I rarely see such reasoning in arguments leveled against systemd.

I've also found that well-articulated and well-founded arguments about problems in systemd don't tend to last long, because systemd will _fix_ them. I'd encourage people who see a legitimate _technical_ problem with systemd to go discuss it on the systemd mailing list; you might be surprised how quickly it gets fixed, if it has substance.

> Linux systems are modular, with multiple implementations of anything > important.

Feel free to make something better than systemd, document it as extensively as systemd, spend years writing guides to its most compelling features that get people eager to switch, and do as much work as the systemd developers did to help the entire Linux ecosystem adopt it with shockingly few _technical_ problems. There's nothing stopping you; you can even leverage the entire systemd codebase in the process. Fork it and change what you don't like, if you think you can keep up. Good luck; you'll need it.

> But systemd isn't like that. It's a single all or nothing blob

Refuted so many times that anyone still saying this is either intentionally misleading or utterly uninformed about what they're railing against. systemd runs incredibly little in PID 1; it has numerous separate single-purpose processes (typically named /usr/bin/systemd-foo or /lib/systemd/systemd-foo), as well as several libraries abstracting out key bits of common functionality for other code to use.

> Ubuntu did upstart, but ubuntu also did unity, and mir, and pointed /bin/sh > to dash, and their launchpad is based on the obsolete "bazaar" source > control system... People not following Ubuntu's technical lead is pretty > deeply justified at this point.

Now this one is actually a very well-made point, and it's something few people have stated outright. There's a reason that few other distributions switched to upstart; while it adds a few key features over sysvinit (such as service supervision), it has some serious deficiencies as well. It's not at all clear that switching from sysvinit to upstart would have been an improvement. And the biggest key feature of upstart, service supervision, is actually something _sysvinit already has but nobody uses_ : you can run a process directly from inittab, and sysvinit will restart it when it exits. But rather than using that, every Linux distribution just uses sysvinit to launch a shell script that launches a hundred other shell scripts.

That said, I applaud Ubuntu for actually _trying_ to make major changes to Linux. Unity isn't what everyone wants, but it's certainly an attempt at a non-incremental improvement over other desktop environments, and it has some nice properties. Similarly, Bazaar was an attempt to do better than CVS and SVN, and it's not wildly awful; it just lost to an even better system for a variety of reasons ([http://www.stationary-traveller.eu/pages/bzr-a- retrospective...](http://www.stationary-traveller.eu/pages/bzr-a- retrospective.html)). /bin/sh -> dash is, while not necessarily inherently better, an attempt to enforce an absence of bashisms in #!/bin/sh scripts, and an attempt to improve the performance of such scripts; in that, it has worked reasonably well.

There's no excuse for Mir, though. :)

> Android also has a no GPL in userspace policy

Not exactly, though Android certainly pushes back on GPLed code. They're willing to adopt it when there's no viable alternative. But systemd is LGPL these days, not GPL. And even if systemd were GPL, it would still be quite possible to use systemd as an init system to launch proprietary software.

Regardless of Android's allergy to copyleft, permissive-versus-copyleft is an ancient holy war that long predates Android. The only reason the argument comes up so strongly in this case is that systemd is the right combination of rapidly developed and _too useful to ignore_ to make it a serious threat to people who don't want to use it. If systemd were less useful, or otherwise easier to clone, its copyleft license would be less of a concern to the opponents of copyleft. _That 's a feature_, and it's exactly the kind of thing the authors of the GPL and LGPL had in mind: the existence of high-quality software under copyleft licenses that make life difficult for the proprietary software world.

Personally, I was rather disappointed when systemd switched to the LGPL; I would have rather seen it remain GPL.

> Those of us waiting to see how it shakes out feel we're having systemd > shoved down our throats by a development team actively threatened by the > idea of people _not_ using their stuff.

It couldn't possibly be that the software is sufficiently compelling that those without religious objections to it are switching to it to take advantage of its useful features. No, it must be a conspiracy.

> But even if it wanted to, android can't easily clone systemd, becuase it's > (intentionally) a moving target with no standard and no documentation.

"no documentation" is insultingly misinformed; systemd is one of the best documented software products I've ever seen.

And in any case, why should the systemd developers go out of their way to make life easier for _people who don 't want to use systemd_, when they could instead spend their time making life better for _people who want to use systemd_?

> We can't opt out and see how it goes, we must fight to stay where we are.

Sure you can opt out: just sit there doing nothing, and the world will pass you by. Or you can participate, and do as much work as the systemd developers are doing, in favor of your preferred system. What you _can 't_ do is try to stop other people from doing work you don't like without putting at least as much work into a better alternative. Keep up or get out of the way, don't shout "wait up" or "no fair".

<comment><USER6> Systemd detractors seem to view the pre-systemd landscape through rose-tinted glasses or at least completely ignore what has been going on with the desktop. I hardly think ConsoleKit embodied the UNIX philosophy, and if the various desktop environments end up replacing their own subtly different session managers with systemd user session management that seems like a step forwards to me, both for the Linux developer community and for the end user.

<comment><USER4> I can't speak for any other 'systemd detractor', but I can definitely confess that I've completely ignored what's going on on the desktop. Because it's been utter crap for the last 20 years and is clearly getting no better.

The fact that the desktop is now spawning lovecraftian horrors from the deep in the service of 'booting to the desktop faster' and 'supporting hot-plug devices better' and that those awkward, stupid requirements now threaten to invade the standard installation on my servers, that definitely has my attention now, though.

</comment></comment></comment><comment><USER25> I've been a stick-in-the-mud about changing to systemd until I bumped into an ugly wart of sysvinit. While upgrading a service I moved the old daemon aside in case I wanted to downgrade again, then remembered that I hadn't killed it. So typed `/etc/init.d/myservice stop` and saw it did nothing. Huh? Oh, that's right. The simplistic script won't do anything if the daemon file doesn't exist. I had to manually kill the PID. So would I be correct in assuming that systemd would know the service names of all running daemons and be able to stop them without having to check to original file?

<comment> vezzy-fnord Well yes, systemd is far more sophisticated than sysvinit. No one here is advocating for sysvinit, as it _does_ need a proper successor. "sysvinit or systemd" is a false dichotomy, however.

</comment></comment><comment><USER26> The theme of Monolithic vs. Modular reminds me of Linux vs. Minix.

 _The Tanenbaum–Torvalds debate was a debate between Andrew S. Tanenbaum and Linus Torvalds, regarding Linux and kernel architecture in general. Tanenbaum began the debate in 1992 on the Usenet discussion group comp.os.minix, arguing that microkernels are superior to monolithic kernels and therefore Linux was, even in 1992, obsolete. Other notable hackers such as David S. Miller and Theodore Ts 'o joined the debate._

[http://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_deba...](http://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate)

A link to the newsgroup discussion: [https://groups.google.com/forum/#!topic/comp.os.minix/wlhw16...](https://groups.google.com/forum/#!topic/comp.os.minix/wlhw16QWltI\[1-25-false\])

<comment> jude- More like a tightly-coupled (monolithic) vs loosely-coupled (non-monolithic) debate. Systemd is modular, but its components are tightly-coupled. The key difference between systemd vs the existing userspace, and Linux vs Minix, is that there's ~50 years precedent of loosely-coupled being the winning design paradigm in the long run. This is because a system made of loosely-coupled components allows the user to add, remove, and swap out parts independently of one another without having to drop the whole OS, thereby gaining the ability to adapt the OS to a changing set of requirements with minimal cost. Tightly- coupled systems do not have this advantage, and it makes them brittle in the face of change.

</comment></comment><comment><USER27> There was a lot of repetition about X, Y, and Z being anathema to the systemd people. I would've appreciated some links backing up these claims of their hostility. I've heard so much against systemd, and so little that wasn't hearsay. (This is not a comment on the merits of the objections against systemd, just on the exposure to the arguments I've gotten from casually browsing hackernews.)

</comment><comment><USER28> I have no problem with systemd but neither do I have a reason to use it (although I admit, Poettering's general attitude does bother me a bit).

As long as Slackware doesn't incorporate systemd and alternatives remain I'm fine. If alternative disappear, I guess I'll cross that bridge when it happens.

</comment><comment><USER29> Aren't the init wars just over? I saw photos from the still running German Linux Tag were people are wearing T-shirts with "I survived the init war" (or something like that) on it. I think we better leave it at that.

<comment> vezzy-fnord The init war was never properly "fought" to begin with. It was presented as a false trichotomy between systemd, Upstart and OpenRC, when there were other options lying in plain sight that could have been researched, such as depinit: [https://web.archive.org/web/20050206182736/http://www.nezumi...](https://web.archive.org/web/20050206182736/http://www.nezumi.plus.com/depinit/index.html)

systemd was simply far more visible and offered more than Upstart, which wasn't all that well engineered, admittedly. OpenRC was largely skimmed over, for some reason. systemd also had that aura of being "innovative," even though most of its concepts are old and were done well by systems such as Solaris SMF (although it isn't without flaws, either).

systemd came in at the right place, right time, was given a boost by a company as renowned in the developer community as Red Hat, and as such was adopted as a solution by people looking for a convenient fix, rather than actually trying to tackle the issue from the core.

<comment><USER29> I agree that the two developers are really good community people and therefore are able to win over votes that might not be as objective as they should have been. But I think it's also a skill to tackle a community together and focus them on one goal. This also improves FOSS as a whole, even if the software might not be the best.

</comment></comment></comment><comment><USER30> Seems like sour grapes from the author of another initialization subsystem (mdev). His argument would seem to apply to _any_ effort to standardize initialization on Linux.

<comment><USER31> The point he's making is that having One True System is the death of one of the biggest strengths of the Linux ecosystem: diversity. What he's ignoring is that the various distros that are making this change have done so because they think it's the best decision for their users.

No higher power decreed "systemd or death" and forced it on the distros. They've adopted it on its merits, and most have retained the ability to run other init systems if the user wishes.

This is a pinnacle of the Linux ecosystem, not a blemish on its record: the larger community is working towards better interoperability between distros.

<comment><USER32> What the systemd supporters are ignoring is that if the existing init system was as all-encompassing and heavily intertwined with the rest of the system as systemd is, it would be impossible to replace it with systemd no matter how much of an improvement it is.

<comment><USER33> _This time_ we have the right design! It will never need replacing, honest.

<comment><USER34> One of my favorite phrases from the Refactoring world is "speculative generality". Adding customization points in the present can make adapting in the future easier if the future aligns with your expectations, and harder if it doesn't.

</comment></comment></comment></comment></comment><comment><USER35> Interesting how the evolution of GNU/Linux distributions and their interactions with other UNIX systems just look like the second coming of UNIX wars.

</comment><comment><USER36> So, why not fork systemd and modularize it...?

<comment> jude- I think OpenBSD is working on that this summer.

[http://www.openbsdfoundation.org/gsoc2014.html#systemd](http://www.openbsdfoundation.org/gsoc2014.html#systemd)

</comment></comment><comment><USER37> > So the systemd developers are saying a billion android devices aren't > interesting [...]

Isn't being anti-GPL (and pro-vendor/anti-consumer) primarily Android's and not systemd's issue?

Even considering that Android is a big thing, it's still _possibly_ unwise to get rid of copyleft just to please Google and be accepted into phone vendors' proprietary blobs.

</comment><comment><USER38> I agree with this article. In addition, systemd, upstart, and launchd are just not up to it. Time to go back to the drawing board.

<comment><USER39> The fact that you're mentioning launchd in the same breath as systemd and upstart suggests that you don't actually know a lot about the situation. launchd is a Mac OS X init equivalent. It has never, to the best of my knowledge, been ported to Linux at all.

<comment><USER38> You didn't read the article. Launchd is being ported to BSD. If you knew anything about about any of these inits you would see their similarities.

<comment><USER39> The article's not particularly accurate on that note. There is a project to port launchd to FreeBSD, but it's basically stalled: no commits or mailing list posts in over a month, and it's not clear that it's even been successfully compiled on FreeBSD yet.

[https://github.com/rtyler/openlaunchd](https://github.com/rtyler/openlaunchd)</comment></comment></comment></comment>


What's wrong with OpenID? It hasn't taken over the world. - <AUTHOR> http://www.quora.com/What-s-wrong-with-OpenID

<comment><USER2> Take the average user, the kind of person who has a Facebook account and shops on Amazon, but who doesn't know their browser has a "view source" option in the menus.

Show that person an OpenID login and ask them to figure it out.

10 times out of 10 they will give up and either A) create a new user ID without OpenID, B) not register at all, or C) use Facebook Connect.

People seek the path of least resistance. The average person does not see a tangible benefit to OpenID, and it's easier to ignore it than to take the time to figure out what it is or how to use it.

Want an example? Try the link for "Get an OpenID" <http://openid.net/get-an- openid/>

Show that to your aunt, and see what she does when faced with that page.

</comment><comment><USER3> Whenever I start talking/thinking about Yet Another Website That Requires User Profiles, I go to OpenID and inevitably there is an issue. Here are some things that have held me back recently:

      * No support for iPhone/Android/etc apps
      * Users may be firewalled in, without access to google.com, etc
      * Facebook does not support OpenID directly
      * All users would be working for a particular org who is not an OpenID provider
      * Not all providers support discovery yet
      * Hybrid approach feels wrong for new websites,
        but so does making users sign up for an account
        with a third party first

I use it for my own accounts, but don't recommend it to others yet.

</comment><comment><USER4> Rant article, poorly reasoned points, simply makes assumptions without backing them up.

OpenID login can make logins possible with two clicks, and it is possible to use a hybrid approach.

<comment><USER5> Perhaps but I think he still makes some good points. From the average user's perspective the implications of providing a user name and password are totally clear and the process is completely under the user's control. The security implications of using a third party site to do some kind of behind-the-scenes techno-magic are completely unfathomable.</comment></comment>


Redox Is a Unix-Like Operating System Written in Rust - <AUTHOR> http://redox-os.org/ <comment><USER2> Not particularly aimed at this project, but I'm wondering if operating systems are still evolving from a functional point of view. Somehow it feels as if we're stuck with the functional requirements that were posed back in the 70s, when Unix was invented. On the other hand, I guess that the simpler an OS, the better; so perhaps its functionality should also minimally evolve.

</comment><comment><USER3> Previous discussions this year:

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

[https://news.ycombinator.com/item?id=11318004](https://news.ycombinator.com/item?id=11318004)</comment>


Why validation libraries suck - <AUTHOR> https://medium.com/@steida/why-validation-libraries-suck-b63b5ff70df5 <comment><USER2> TLDR: "I used some validation libraries and didn't like them, so use this new one I am shamelessly plugging."</comment>


Fuck it - <AUTHOR> http://www.youtube.com/watch?v=mAlzPgXb6rE

<comment><USER2> Ice-T had a meeting with a record exec once. The exec said he wanted to hear a sample of a proposed song before signing a contract. Ice-T says, "If I was selling hand grenades in an alley, I'm not gonna let you throw one to see if they're any good. You either believe I'm selling good grenades or you don't! So you either believe I can give you good records or you don't!"

The exec says, "You've got good business sense. Did you go to business school?"

Ice-T replies, "Naw, but I did sell hand grenades in an alley once."</comment>


A bestiary of single-file implementations of programming languages - <AUTHOR> https://github.com/marcpaq/b1fipl <comment><USER2> my k interpreter[0] is less than 1000 lines of JS. Big compared to many on this list, but still human-scale. Looking back on it I see many opportunities left to simplify.

further back, I wrote a compiler for part of the language described in Dijkstra's _A Discipline of Programming_ in a dialect of forth[1].

one of my colleagues, Stevan Apter, has a number of interesting toy interpreters on his site[2], particularly concatenative languages.

[0] [https://github.com/JohnEarnest/ok/blob/gh- pages/oK.js](https://github.com/JohnEarnest/ok/blob/gh-pages/oK.js)

[1] [https://github.com/JohnEarnest/Mako/blob/master/demos/FiDo.f...](https://github.com/JohnEarnest/Mako/blob/master/demos/FiDo.fs)

[2] [http://nsl.com](http://nsl.com)

<comment><USER3> Omg, its you! I want to say huuge thank you. Mako VM was something that unified my love for forth, game consoles and writing interpeters and I've learned SO MUCH by studying your well written source code. You can't even imagine what a profound influence you've had on my life :D thank you again ^^^

<comment><USER2> Mako was a great learning experience for me. It is wonderful to hear that you got something out of it, too!

</comment></comment></comment><comment><USER4> I think the ones which can self-compile are most interesting, because it passes a "it's not just a trivial example anymore" point. To do that in a single relatively small file also makes it convenient for studying.

Mini-C is even more amazing if you look at its description:

 _I set myself a challenge: write a self-hosting C compiler in 10 hours._

Although the language it accepts, being untyped, is closer to B.

Also nice to see my personal favourite, C4, in the list.

<comment><USER5> He wrote a self hosted C compiler in 10 hours?!

How?! That is straight up sorcery.

<comment><USER6> It's not that hard if you have experience in writing compilers.

</comment></comment></comment><comment><USER7> Somehow I still get those chills while reading source code of programming languages interpreters / compilers. I guess it's like getting to the origins of life, or something.

<comment><USER8> It is. As a kid, I kind of understood programs, but I could not even imagine how an interpreter (or compiler) could work. I partly got a CS degree just so I could learn the answer.

<comment><USER9> Then this talk from David Beazley will blow your mind [https://www.youtube.com/watch?v=VUT386_GKI8](https://www.youtube.com/watch?v=VUT386_GKI8)

<comment><USER10> For those of us short on time, can you summarize in a sentence or two?

<comment><USER11> From [https://www.dabeaz.com/talks.html](https://www.dabeaz.com/talks.html)

Closing Keynote: A Talk Near the Future of Python

October 13, 2019 PyCon India, Chennai

A live-coded implementation of simple stack machine that's later turned into a WebAssembly interpreter capable of running a game written in Rust.

</comment></comment></comment></comment></comment><comment><USER12> It would be nice to see more examples of how to do type checking. But there are some good examples in the Programming Languages Zoo. [1]

[1] [https://plzoo.andrej.com/](https://plzoo.andrej.com/)

</comment><comment> john-radio I laughed at the header in comment at the top of the Super Tiny Compiler here: [https://github.com/jamiebuilds/the-super-tiny- compiler/blob/...](https://github.com/jamiebuilds/the-super-tiny- compiler/blob/master/the-super-tiny-compiler.js)

</comment><comment><USER13> Forth is a great language, simple syntax, (relatively) simple to implement, has a repl, easily extendable and fast. Chuck Moore was/is really onto something.

<comment><USER14> Then how come no real software has been written in this wonderful language? Not even a decent text editor, let alone a browser or a game engine?

<comment><USER2> Most of the software written in Forth runs on embedded systems, not user- facing ones.

OpenFirmware is based on forth, and was used instead of BIOS for Sun workstations, some Powermacs, and the OLPC, among other devices. On the OLPC it offers a nice debugging interface and educational opportunity.[0]

The Wikireader "wikipedia appliance" used forth for their testing harness during manufacturing, and it's possible to write your own applications for the device using it.[1]

Forth has been used for control software for a variety of aerospace applications.[2]

I have personally used Forth as an interactive testing environment for bringing up new hardware. In one case, I prototyped software for the power management chip in an embedded linux device.

I've also written games and programming environments in Forth, both for fun and for use in educational after-school programs I helped organize. For example, a logo environment[3,4] and a rewrite of Yar's Revenge[5,6].

Is any of this software "real"?

[0] [http://wiki.laptop.org/go/Open_Firmware](http://wiki.laptop.org/go/Open_Firmware)

[1] [https://github.com/JohnEarnest/Wikireader- Adventures](https://github.com/JohnEarnest/Wikireader-Adventures)

[2] [https://www.forth.com/resources/space- applications/](https://www.forth.com/resources/space-applications/)

[3] [http://johnearnest.github.io/Mako.js/?rom=Loko](http://johnearnest.github.io/Mako.js/?rom=Loko)

[4] [https://github.com/JohnEarnest/Mako/tree/master/demos/Loko](https://github.com/JohnEarnest/Mako/tree/master/demos/Loko)

[5] [http://johnearnest.github.io/Mako.js/?rom=Yar](http://johnearnest.github.io/Mako.js/?rom=Yar)

[6] [https://github.com/JohnEarnest/Mako/blob/master/games/Yar/Ya...](https://github.com/JohnEarnest/Mako/blob/master/games/Yar/Yar.fs)

<comment><USER14> Nope, some obscure embedded or toy stuff doesn't count as real software that matters to people. Even Haskell, bless its academic ivory-tower soul, has real-time video games, IDEs and neural networks, not to mention tons of websites, written in it. And Forth has what, some device drivers and hobby/learning stuff? Point amply proven, thank you.

<comment><USER13> Did you look at some of those links? Please don't confuse 'popularity' or user numbers as being the measurement of what is 'real software'. I'm sure anyone involved in any of the aerospace projects would argue the Forth software used matters a great deal and is very real!

A few more links to meditate on [https://www.forth.com/resources/who-uses- forth/](https://www.forth.com/resources/who-uses-forth/)

</comment></comment></comment></comment></comment><comment><USER15> The LLVM Kaleidoscope tutorial [0] builds up to a single file implementation. It's a very good introduction. I'd also like to offer my winning Brainfuck compiler + direct threaded VM implemented in Ethereum assembly [1].

[0] [https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index...](https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html)

[1] [https://g.solidity.cc/submissions/wicketh.eth/9a5cb12b504b81...](https://g.solidity.cc/submissions/wicketh.eth/9a5cb12b504b81db3ac1ad8e2cb8be1e869851554f385ec8b8f4412f48d420ce)

</comment><comment><USER16> Well, that's cool. Might as well plug the one I made a couple years ago. It's an interactive tutorial too, sort of: [http://breuleux.net/blog/language- howto.html](http://breuleux.net/blog/language-howto.html)

</comment><comment><USER17> Not surprisingly most are lisp.

<comment><USER18> Why is that? What's special about lisp?

<comment><USER19> If you want to do a really poor, minimal job of implementing something that processes and executes programs, you will find that most of the complexity will rest in handling syntax. Any reductions in that complexity will have a big relative impact on trimming down the code and amount of work.

Now you can duck out of implementing solid semantics, without changing what a language _looks_ like. For instance, programs language with broken scope can look superficially like programs in a language with working lexical scope. Or, a language that works by interpreting a syntax tree using a few lines of code looks and works just as well as a compiled one, just slower.

But if you don't negotiate about what a language looks like, there is only so much simplification you can do while still correctly handling the syntax which allows the language to look like that.

Further reductions in complexity require simplifications in syntax (how the language looks), which leads toward one of several existing well-understood design families for minimal syntax: Lisp-like, Forth-like, APL-like.

<comment><USER20> I've implemented things with "Lisp syntax" a couple of times, neither of which had anything whatsoever to do with Lisp. I used to call it the "Lisp non- syntax".

Nowadays I usually bite the bullet and just use JSON or something, but if you want to implement an interpreter starting just from bare minimum string functions pretending you're in 1980 and can't just grab half-a-dozen serialization formats out of your language's package manager (not a bad thing to practice!), Lisp-non-syntax is still a pretty good choice.

</comment></comment></comment></comment><comment><USER21> The small C compilers are great.

I guess if you couldn't write a C compiler in a single small file (by modern standards) you wouldn't have been able to run a C compiler on an 8-bit machine.

<comment><AUTHOR> Actually, C compilers back then were still pretty large (also, as far as I'm aware, every machine that UNIX originated on was at least 16-bit, and the _very_ first machine it ran on was 18-bit):

[https://minnie.tuhs.org/cgi- bin/utree.pl?file=V6/usr/source/...](https://minnie.tuhs.org/cgi- bin/utree.pl?file=V6/usr/source/c)

The language was quite a bit smaller, though, and much less complex. A C2X compiler will be drastically more tedious to make than this was.

<comment><USER21> That is still not much code.

</comment></comment></comment><comment><USER22> Ha ha, no one brave enough to take on C++.

Many years ago I worked on a C++ compiler, and this was during the C++03 days. The language and standard (now C++20) is // so much larger // than it was even 15-20 years ago.

I will say, however, that when I'm brave enough to peek into the clang code (I work up the courage maybe a couple times a year), at least for someone who understands the language, it's very clean. But it's big. Very big.

</comment><comment><USER23> A bit disappointed that False is not on there, since it was both a compiler that fit in less than 1k of binary code, and also the origin of the whole esoteric language craze that is still going on.

(Brainfuck was a direct response to it, trying to make a compiler that was significantly smaller - the original compiler was 240 bytes.)

</comment><comment><USER24> Readers of this thread might enjoy the collection of links I've started collecting: [https://gist.github.com/cellularmitosis/1f55f9679f064bcff029...](https://gist.github.com/cellularmitosis/1f55f9679f064bcff02905acb44ca510)

</comment><comment><USER18> These examples blow my attempt at an interpreted programming language (thousands of lines over multiple source files) out of the water.. so impressive.

</comment><comment><USER25> Pascal-S, Mini-C, 256LOL (x86 assembler)... Nice!</comment>


Do we need 30 posts about Jobs on the front page? - <AUTHOR> In my mind, I think not. It is tragic that he has died, and there is much coverage from many sites. However, I assume that other things are happening in the world around us? <comment><USER2> If this was a common occurrence, I'd understand your point. But as is, it hardly seems like a problem, or a sign of a broken system. Just take a 6 hour break.

</comment><comment><USER3> Right now, it looks like a special tribute : The whole of the front page (30 stories) are all Jobs. For a short time, the front page was 20 stories, my guess is to achieve the same effect.

Everyone knew this day would come, which is why it's such a collective, moving (and organized) moment.

Personally, I'm more glad he got to see the tributes to his contribution to world karma when he stepped down as CEO. That was for him to savor, this is for us...

</comment><comment><USER4> This is a filtered feed that removes "steve" "jobs" and "apple"

<http://feeds.feedburner.com/hacker-news-filtered>

I'll delete it after the weekend to respect PG.

This is probably going to last quite a bit longer than the 24 hour news cycle.

<comment><USER5> Any chance you can keep it around and make it customizable?

</comment></comment><comment><USER5> Legitimate articles _not_ about Steve Jobs are currently being flagged down to 'dead' in the new section. In the meantime, my ability to flag articles has seemingly been revoked.

What an awesome system. What an awesome tribute.

</comment><comment><USER6> Literally the most important single figure in all of computer technology just died, a man more popular and beloved than the President and the Pope combined, and you're upset because this frontpage will be afire with the news for a few hours? Christ.

Congratulations. This whining, right here, marks the beginning of the end of HN.

<comment><USER5> _"Literally the most important single figure in all of computer technology just died"_

That man died in 1954.

</comment></comment><comment><USER7> Give it a few hours. I'm sure tomorrow everything will filter out.

Unfortunately I can't flag down some of these posts ...

</comment><comment><USER8> The community speaks - you have the choice to listen.

<comment><AUTHOR> The community speaks that it is obsessed with Steve Jobs? How is that many posts of something we know about going to help me learn more about business, entrepreneurship, or programming?

<comment><USER9> The community's job isn't serving your narrow interests. The community addresses its own needs.

For the moment, it needs this.

<comment><USER10> They were roughly simultaneous, and most have only a couple of comments each hours later. I don't think anybody is finding much value in actually reading all three dozen restatements of the same story. It was just a collective- action problem that HN doesn't have good tools for solving.

<comment><USER9> That may be.

But the truth is that if you had even a passing interest in technology from the 1970's or later, and you still have a pulse right now, there is not a single thing more worth discussing at this moment than the life and passing of this great man.

<comment><USER5> Why? Is there more insight to be added? Lets not confuse grieving with insightful technical conversation.

</comment></comment></comment></comment></comment></comment><comment><USER11> Its just one day for someone who actually gave us a better vision into the relationship between human beings and technology. I think we can put up with it for one day.

<comment><USER5> It doesn't do a _thing_ except make you feel better.

<comment><USER12> And celebrate a great persons life. What's wrong with that?

<comment><USER5> A _single_ topic is pushing _everything_ else off. That's what's wrong.

</comment></comment></comment></comment><comment><USER13> With all the Steve Jobs posts, I briefly thought the "jobs" tab was a special section for Steve.

</comment><comment><USER14> Hackernews filtered [http://jetsli.de/?query=-steve&sort=news.ycombinator.com...](http://jetsli.de/?query=-steve&sort=news.ycombinator.com&hits=30)

<comment><USER14> This one is a bit better and contains the last 24 hours only [http://jetsli.de/?query=-steve+-apple&time=last24&so...](http://jetsli.de/?query=-steve+-apple&time=last24&sort=news.ycombinator.com&hits=30)

</comment></comment><comment><USER15> I took a screenshot of it here: <http://hackerbra.in/steve.png>

I get a sense that there will be a vacuum in people's lives from now onward.

</comment><comment><USER16> Yes. It will only happen once. Get over it.

</comment><comment><USER17> not sure what you were hoping to do with this post, unless it was generating ill will towards yourself. if that was the case, mission accomplished.

</comment><comment><USER18> Yeah, it makes me wish he lived forever.

</comment><comment><USER19> Yes. Fuck off, come back in 3 days.

<comment><USER5> Be civil.

<comment><USER19> I'm just expressing how the thousands of people who voted up those stories feel.

<comment><USER5> That doesn't remove the need to be civil.

</comment></comment></comment></comment><comment><USER20> Short answer: Yes we do.

Slightly longer answer: It's not just a man who died, it's the movement that's dead with no successors in sight.</comment>


Show HN: JuryWatch - receive an SMS when the jury reaches a verdict. - <AUTHOR>

If you're like the rest of us you're glued to the television waiting for a verdict in the Casey Anthony trial. JuryWatch enables you to leave the television and receive a text message when the jury is done deliberating so you can run back to your televisions and watch the event.  Can see it at: http://jurywatch.com <comment><AUTHOR> Clickable: <http://jurywatch.com></comment>


The Game Innovator's Dilemma - <AUTHOR> http://blog.betable.com/the-game-innovators-dilemma

<comment><USER2> "However, these disruptive technologies typically address a new market segment or a set of under-served customers" - I would say "over-served" instead. because disruptive technology starts with customers and segments that are overshot by the continuous improvement of incumbents' products

</comment><comment><USER3> Good post. I'm curious whether you've written about the evolution of your idea at Betable. To what extent does your product now compare to the business plan you hatched in the beginning?

</comment><comment><USER4> Parts of this have much broader relevance than just game development.

<comment><USER5> That's true, we thought about making it more general but our blog is targeted towards game developers

</comment></comment><comment><USER6> Great post!

<comment><USER5> Thanks Peter :)</comment></comment>


The Segway Is Officially Over - <AUTHOR> https://www.cnn.com/2020/06/23/tech/segway-pt-shut-down/index.html <comment><USER2> The Onion at the peak of its powers absolutely destroyed the Segway.

[https://www.theonion.com/the-segway-1819587083](https://www.theonion.com/the- segway-1819587083)</comment>


Donkey Kong source code found, original developer comments - <AUTHOR> http://www.atariage.com/forums/index.php?showtopic=130904 <comment><USER2> "The programmer in question was adamant at the start that using FORTH was superior in terms of speed of delivery, space occupied by the code, and quality. In other words, much better than programming in assembler. He'd deliver DK Jr in record time. Management believed him.

So he got Atari to spring for this $800 FORTH package that came with a thick binder of documentation printed on funny-colored paper (to prevent photocopying) and wouldn't let anyone near his code. Nobody else got a copy of this package. He mucked around in FORTH getting stuff prototyped and "ready to write code" for months. And after like five months he had one or two screens working, and no sound, and the thing sucked. And all the time he was bragging about how FORTH was going to let him whip through the rest of the game like snot through a greased pig (or something like that), but it was already late, it was clear he was at sea and wasn't going to come through."

..

"Later, I heard from a Coin-op veteran something along the lines of, 'Yeah, every couple of years someone discovers this FORTH thing and thinks they can do games in it, and it never works out.'"

<comment><USER3> Now the important question is...is that the fault of FORTH, or the fault of the developer? Are the developers novices who cannot handle the POWER of FORTH?!?!

<comment><USER4> Charles Moore himself said, "…FORTH is an amplifier. A good programmer can do a fantastic job with FORTH; a bad programmer can do a disastrous one."

From my own experiments with it, I can certainly see where he's coming from - badly factored Forth rapidly collapses into an unintelligible mess, but when you work idiomatically with the language, it can be quite expressive. It's pretty low level, but worth considering in a project that would otherwise use assembler. I'd be wary of using it unless several team members were already familiar with it, though.

I haven't done a great deal with Forth day-to-day because it's a pretty bad mismatch for the problem domains I usually work in, but getting into the mindset of it was as enlightening as learning, say, Scheme or ML. Forth has strong incentives for partitioning your code into functions ("words") that are each succinct enough to be trivially testable / verifiable, and then lets you define new words via composition, building up to your problem. It heavily favors the same bottom-up / "build your own DSL" programming style as Lisp. For such a minimalistic language it has several impressive tricks up its sleeve, on par with Lisp's code-is-data. The ease in parsing Forth-like code gives it a lot of potential as an embedded language, e.g. Zed Shaw's "stackish" (<http://savingtheinternetwithhate.com/stackish.html>).

This heavily-documented i386-assembly code implementing a simple, non- optimizing Forth interpreter is worth a look. (<http://www.annexia.org/_file/jonesforth.s.txt>) There's something to be said for a language environment you can easily understand all the way down to the bare metal. It's not difficult to write your own interpreter for a Forth-like language (which is kind of the point).

<comment><USER5> And Forth is fun. It's a loveable language.

Did you know that 'Open Firmware' uses Forth - as a shell and for configuration code, device drivers etc?

<comment><USER4> Yes, and the FreeBSD bootloader, and no doubt several other things I'm not aware of.

</comment></comment></comment></comment></comment><comment><USER6> Pedantic mode activate: it's actually the developer of the atari home-console clone of Nintendo's arcade Donkey Kong. I suspect the original developer comments might be in Japanese.

Maybe I'm imagining things, but I just don't like it that US developers are often seeming to get the credit for a Japanese success. Why don't we hear stories about the original coders of Donkey Kong? Miyamoto designed it, but didn't code it, so maybe it's because it's not code romantic (?)

<http://en.wikipedia.org/wiki/Donkey_Kong_>(video_game)#Development

 _note_ HN doesn't linkerize the parentheses in that URL correctly

<comment><USER4> You can include the parens in a URL by adding %28 and %29 to it for the left and right parens, e.g. [http://en.wikipedia.org/wiki/Donkey_Kong_%28video_game%29#De...](http://en.wikipedia.org/wiki/Donkey_Kong_%28video_game%29#Development)

I swear, this should be in the FAQ by now.

<comment><USER6> thanks - I'd change it, but I just saw your reply now, and it's after the edit sunset.

</comment></comment></comment><comment><USER7> From MAIN.PRN:

      ; Prizes
      ; These are shoved into players; left-bottom justified in 8x8
      ; There's some confusion as to what to call the damn things....so I'm
      ; gonna do what I like, here...
      ...
      ; The "Birthday Cake" [I think...]
      ...
      ; The Purse ["...omigosh...that's not a /Birthday Cake/???"]

</comment><comment><USER8> Interesting discussion on the _"making of"_ & _"technical details"_ ~ <http://news.ycombinator.com/item?id=303619></comment>


The day I became a millionaire (2015) - <AUTHOR> https://m.signalvnoise.com/the-day-i-became-a-millionaire-55d7dc4d8293 <comment><USER2> Can we get a (2015) tag on this?

</comment><comment><USER3> Interesting perspective. It is conditioned, though, on the existence of a robust set of safety nets provided by society, and on those safety nets existing long enough that people have grown up with them[0].

Most of the rest of us are approximately one major health issue (for ourselves or an immediate family member) away from a cascade of failures leading to utter devastation and ruin, up to and including an early death.

We are the precariat.

[0] If the US suddenly had Medicare-for-all and Universal Basic Income tomorrow, you shouldn't expect the attitudes of people who had grown up in less-than-secure conditions to change overnight.</comment>


Radar data suggests missing Malaysia plane flown deliberately toward Andamans  - <AUTHOR> http://www.reuters.com/article/2014/03/14/us-malaysia-airlines-radar-exclusive-idUSBREA2D0DG20140314?feedType=RSS&feedName=topNews&utm_source=dlvr.it&utm_medium=twitter&dlvrit=992637 <comment><USER2> The problem still remains: where the fuck did that machine vanish?

I mean, you can't exactly land a big fat Boeing on a strip of bush without any ground tech support... you need a full-featured airport unless you want to risk the machine going up in a huge pile of burning mess upon the landing. Obviously no airport in the region (or planespotters) have noticed the machine landing...

Then, no "oh yeah, we blew up" confessions from terrorists or ransom demands either.

Something smells like fish. Weeks-old rotten fish.

edit: Okay, you _can_ land a Boeing on an improvised landing strip. But preparing a 2km long, 45m wide strip in the middle of nowhere needs lots of manpower to prepare and certainly attracts attention. Unless a nation state sponsored this, no way that this plane was hijacked for passengers/cargo.

<comment><USER3> > I mean, you can't exactly land a big fat Boeing on a strip of bush without > any ground tech support...

A 777 needs between 800m (dry runway and low weight at sea level) and 2000m (altitude, loaded, wet runway) excluding security buffer. You do need a flat and clean-ish surface (definitely not bush strips), but you don't need a "full-featured airport" just to land a plane, especially if you don't expect to get it in the air again.

<comment><USER2> We can assume the plane was half-loaded (after hours of flight, the fuel should be mostly used up, so the passengers+cargo remain as freight).

The point is (as I wrote one post further down): you'll need a ~1.5km-2km long runway to get the plane down in one piece or with everyone alive (depends on what you actually want with that plane). And that is what smells here. Something like this (or even setting up a 2km landing strip _broad enough_ to allow a Boeing to land!) would definitely not go unnoticed.

<comment><USER3> > you'll need a ~1.5km-2km long runway to get the plane down in one piece or > with everyone alive

You'll need a ~1500m long piece of hard and flat-ish ground, a good road will do (again especially if you don't need the plane to get up in the air again, at least on short order). With risks, granted, but it'll do.

> Something like this (or even setting up a 2km landing strip broad enough to > allow a Boeing to land!)

Width would probably be a bigger issue than length actually.

<comment><USER2> >You'll need a ~1500m long piece of hard and flat-ish ground, a good road will do

We're not exactly talking about developed countries here, a 45m wide strip is a German Autobahn - and thus bound to be having at least one driver a hour, so I don't see a viable way of putting down a plane in these relatively poor countries fully unnoticed.

<comment><USER3> The road itself needs not be as wide as the plane's wingspan though, only wider than the track (11m[0]).

Granted finding a good-quality 15~20m wide road with 20~30m of nothing whatsoever on either side remains a difficulty, but still a much lower one than having a fully equipped airport on hands (basically, you're looking for a 4 lane road)

[0] [http://www.aerospaceweb.org/aircraft/jetliner/b777/b777_sche...](http://www.aerospaceweb.org/aircraft/jetliner/b777/b777_schem_01.gif)

</comment></comment></comment></comment></comment></comment><comment><USER4> Stealing a plane with 237 people on board is a great story but no version that I have read address the question of how you prevent every one of those 237 people from texting about it?

Even if you're willing to kill them all it takes some time that they could use to try and make some sort of signal.

This plane fell into the sea and we'll find it eventually. The sea is vast.

<comment><USER5> Make them fall asleep by reducing cabin pressure while you fly with an oxygen mask.

edit - yes, I did nick this from "The Langoliers"

<comment><USER6> Which would cause the oxygen masks to deploy.

<comment><USER5> If you first trigger a fire alarm, it wouldn't.

</comment></comment></comment></comment><comment><USER7> There are a series of topics that TV shows love to go over, unsolved mysteries. What happened to Amelia Earhart? How about that Navy flight that took off and disappeared?

I think we're now seeing, in realtime, another one of these stories begin. Very interesting.

I have a simple question that I haven't seen addressed anywhere: assuming that somebody on the plane left their cell phone on and forgot to turn it off, or that somebody tried to use their phone in-flight, wouldn't there be a record on the ground cell towers of that particular phone's SID "pinging" the tower as the plane flew overhead? Might be something to look into.

<comment><USER8> I thought it was supposed to have flown over the sea?

</comment></comment><comment><USER9> The latest development is that the Chinese have measured a small earth quake in the sea, 1.5h after the plane has vanished. Which kind of explains why we don't find it or we shouldn't seek where it could land: it's on sea floor.

EDIT: source [http://www.chinadaily.com.cn/world/2014planemissing/2014-03/...](http://www.chinadaily.com.cn/world/2014planemissing/2014-03/14/content_17346768.htm)

<comment><USER10> Surely a plane is too low density to cause even a "small earth quake" when it sinks to the bottom of the sea (probably in many pieces). Could a shockwave from the impact on the surface of the sea be measured as a small earthquake?

<comment><USER11> It doesn't have to impact the sea floor, the Kursk explosion was detected by seismographs.

<comment><USER3> The initial explosion was barely detectable from nearby Finnmark[0] (and undetected from Svalbard or Hedmark) yet was 500kg of concentrated H2O2 and 1000kg of kerosene blowing up.

[0] [http://en.wikipedia.org/wiki/File:NOSAR_Kursk_sesmic_reading...](http://en.wikipedia.org/wiki/File:NOSAR_Kursk_sesmic_readings.png)

</comment></comment></comment></comment><comment><USER12> All these "we think it went that way!" and then a short while later "no it didn't, it might've went _that_ way!" articles in the news are almost facepalm-worthy. I'm not one to believe in most conspiracy theories, but it really makes me wonder if they already know what happened to the plane but just want to stretch this process out for some reason...

<comment><USER13> Never attribute to malice that which is adequately explained by linkbaits.

People will read whatever "new" about the plane is there. They will read the new, the correction, and the new correct version the correction, and the ... If your newspaper don't publish today's version, the people will go to another paper to read it.

To solve the problem, you must find a business model where the newspapers are rewarded for publishing correct information, and not the most recent gossip.

<comment><USER14> And to solve _that_ problem, you must find an alternate societal mindset.

</comment></comment></comment><comment><USER15> Radar can detect mental states like "deliberately" now? That's mighty good radar. Further, any story with the phrase "sources familiar with" should be immediately discounted, and its author told to feel shame.

</comment><comment><USER16> This story desperately needs some sort of map or chart.

<comment><USER17> Via The Guardian's live updates:

[https://twitter.com/sgify/status/444421777280614400/photo/1](https://twitter.com/sgify/status/444421777280614400/photo/1)

</comment></comment><comment><USER18> Port Blair Airport is on that island.

<comment><USER19> But then it is also on the video footage collected by various spy satellites. If anything remotely looking like a plane this size had landed there in the correct timeframe, there'd be police/military personel kicking in doors down there right now.

Since we haven't heared of any such operation (which would be extremely difficult to keep secret, given the circumstances), the reasonable assumption remains that the plane fell into the sea.

<comment><USER5> Spy satellites only see what they are pointed at and there are not enough of them to constantly watch all airports.

<comment><USER19> Admittedly, I don't know enough about the number of spy satellites out there. My assumption was that at this point, everything is being watched, because if they could they would and who is to say they can't.

In thinking so, I might have underestimated the size of the planet a bit.

<comment><USER5> heh :)

it is worth reflecting that it is far easier to convince people that you are in control than it is to actually be in control, and for most purposes they are almost the same thing

also, if you have to fire missiles at stuff, you probably aren't in control, given that if you are in control you do not need to and missiles are expensive

</comment></comment></comment></comment></comment><comment><USER20> So much conjecture and media picking at slivers of 2nd hand evidence.

Occam's Razor. The plane fell in the sea. It is a very very big space to search.

<comment><USER21> If you want the what ifs in detail, see the _Airliners.net_ forum. 4000+ posts so far from pilots and other aviation professionals that are far more knowledgeable than HN readers. Every technical aspect of this disaster that you could want to know.

[http://www.airliners.net/aviation- forums/general_aviation/re...](http://www.airliners.net/aviation- forums/general_aviation/read.main/6022602/)</comment></comment>


Timing the Linux -j(cpu+1) Myth - <AUTHOR> http://www.timocharis.com/help/jn.html

<comment><USER2> It's very much a case-by-case thing. On my quad-core Phenom 9650, with 8GB of RAM, I tried building FFMPEG using -j1 through -j10. Build times dropped until I got to -j9, which meant that, for my system, the fastest build occured when I ran -jN where N was 2x my CPU cores. This is the only place I documented it: [http://multimedia.cx/eggs/ffmpeg-and-multiple-build- threads/...](http://multimedia.cx/eggs/ffmpeg-and-multiple-build- threads/#comment-150325)</comment>


Of the 1%, by the 1%, for the 1% - <AUTHOR> http://www.vanityfair.com/society/features/2011/05/top-one-percent-201105

<comment><USER2> Dup: <http://news.ycombinator.com/item?id=2402027></comment>


Does a failed startup count against you on your resume? - <AUTHOR> http://blogs.msdn.com/jobsblog/archive/2008/08/28/does-a-failed-startup-on-your-resume-count-against-you.aspx <comment><USER2> Ugh. Every time I read something from the MSDN jobs blog, I come away with the same, greasy feeling that I get when I've spent more than 30 seconds talking to a recruiter who cold-calls people for jobs requiring fifteen years of Ruby experience.

If you want to know what a pirate thinks of your sailing skills, you don't ask his parrot.

</comment><comment><USER3> Yes. Why would a big corporation want to hire someone who can come up with ideas and implement them without "adult supervision"? That would make the 100 layers of management useless, and nobody wants to be useless.

The ideal candidate will be smart but have no ambition to do anything on his/her own. A failed startup means he has that ambition.

<comment><USER4> Isn't this sarcastic?

<comment><USER5> uh, yea

<comment><USER4> Thank you because I am autistic.

</comment></comment></comment></comment><comment><USER6> _I love people who take risks and follow their passions, but if your resume lists a series of short stints at failed startups, I think it's natural to question a person's career management skills._

What are "career management skills"? Two interpretations come to my mind.

The author could mean a tendency to constantly worry about how one's resume will look to big companies. If this is the case, why does Microsoft care? A person who, whenever considering a new project, worries about how it will affect his resume is more likely to get stolen by a competing big company, since big companies generally prefer conservative resumes. However, a person who isn't scared to have a resume with many jobs at failed startups is more likely to get stolen by a startup, since they generally don't care if a person has such a resume (they may even prefer it), and also because the person probably has lots of contacts in the startup world. In the American technology industry today, headhunting is a danger _regardless_ of how conservative the employee's resume is.

Another interpretation is that by "career management skills" the author means a willingness to take a steady, well-paying job when one has a family to support. This makes sense: what would you think of someone who insists on working for startups, even at the cost of having trouble feeding his three children and being forced to live in a dangerous neighborhood? But perhaps he doesn't have a family. Or perhaps the spouse has a steady job to support the kids. Or perhaps he has a trust fund or a bunch of money from a previous startup. There are so many exceptions that a resume full of failed startups is not a reliable signal of this kind of irresponsibility.

Neither of these interpretations makes much sense. But there's a less charitable interpretation: "I love people who take risks and follow their passions, _but not too much_ , because then they'd balk at the crap we'd make them do."

</comment><comment><USER7> _I love people who take risks and follow their passions, but if your resume lists a series of short stints at failed startups, I think it's natural to question a person's career management skills._

I'd rather keep working at failing start ups than apply to a company with that attitude.

Jer

</comment><comment><USER8> Whenever I hear about whether doing this or that counts for/against you on your resume, I'm reminded of this:

      This is very important, so I want to say it as clearly as I can:
      FUCK.  THAT.  SHIT.

<http://xkcd.com/137/>

</comment><comment><USER9> In concentrated high tech areas it might not count against you, but for me in San Diego it is something employers find to be a negative. To them it shows that I might not be "dedicated" to the job I am applying for. I get a lot of "How do we know if you are going to stay" and in general a lot of questions that just start with "How do we know (whatever)", it really starts going downhill once that starts in.

<comment><USER10> It's a reasonable question to ask; I ask it every time I interview a contractor who suddenly wants a permie job after years of contracting. They all say something about wanting to settle down and build a career. In the majority of cases, they just can't find a contract right now, and when they do, they scarper.

A failed startup I'd count as valuable experience (supervising people is a pain for me, I _want_ people who can think and act on their own initiative) but at the same time, I'd want a decent explanation for the abrupt career shift. "Because I need to make some money" is perfectly valid, and gets top marks from me for honesty.

<comment><USER9> If a person had been a contractor for some period of time I agree that is perfectly reasonable.

Myself I have never been a contractor and really do hate side projects of which I have taken a few and found myself tied to them far beyond what I could charge so I quickly got out of that. I did make the mistake of mentioning I have done some web sites in the past directly on my own. That is a job interview killer because employers do not want you to have any other responsibilities other then for the company, so even if you have done a few websites on the side in the past, just don't mention it. It didn't help me to mention that, it was not a positive like I thought it was. If you want to use that experience, say you did it not for someone else but to learn how to do "x" because it seemed interesting (might be modifying some cms, shopping carts, etc whatever) and there can't be any business reason, you just did it for fun and not for anyone else.

Even little things can be a job interview killer. Right out of High School I decided I would get a simple job as a person who takes telephone sales at a company that sells cpu's and memory. It was entry level with entry level pay. I had relatively no experience so I mentioned I had helped few people with there computers (innocently enough, not even as a business, just the 'hey you know computers help me with x' type thing). The 3 women (I have no idea why it required 3 people but...) said that the company was going to go into computer repair and that they couldn't possibly hire me because I would take all of there business. Then they started making jokes at my expense, I have to say I nearly cried. I have never desired to be in the computer repair business myself

I have more stories like that, it gets really bad when you work on your startup for two years and then need to get a job.

I have some simple suggestions if a person is NOT applying at a startup or a web only business:

1\. You didn't own the startup, working at the startup was a mistake you would never want to repeat. You were told that there were paying clients and that it was cash flow positive. They lied to you and you don't like being lied to.

Reason: You might leave there employment for some startup opportunity or that you might be a free thinking human being and somehow impervious to instruction. OR even worse you will compete with your new employer, your a mole out to steal there business.

2\. You do not have any side projects, you have never taken any side work like a simple website project. You would never think of doing such a thing! If you are married say your wife forbids it, then laugh and talk about how much trouble you would get into!

Reason: Employers want your full attention, if they think you are going to make any money on the side then heck you might even start doing that work during work hours or there work is going to be less important. None of that is true but people are plain stupid and you cannot afford to "chance" that the person might be a thinking human being.

I have more sage advice but this is already getting a bit long and I am pretty sure most of the people here live in areas where it is ok to have "outside" learning experiences. Not where I live :)

</comment></comment></comment><comment><USER11> I recruit for investment banks and hedge funds; it's a positive, even if it's not a tech startup.

<comment><USER10> Investment banks are not really like other large companies, tho'; they're more like a a federation of independent entities. You don't work for the bank, you work for the head of whatever desk or P&L. If a head of desk makes money, no- one cares what he does, he can run his own little fiefdom, a business within a business. This is one reason that banks infrastructure is such a mess, if the head of Dollar-Yen wants something he won't wait for central IT to get round to it, he'll give his geeks a budget and say _make it happen_.

</comment></comment><comment><USER12> I have a year of "failed startup" on my resume, and it's always either been positive or neutral in the eyes of employers.

</comment><comment><USER13> no, you probably learned more by failing at your startup for 3 years, than your peers who spent it working as low level corporate drones doing useless things.

</comment><comment><USER14> Only if it appears under "Objectives".

</comment><comment><USER15> So how about when you have a startup on your resume that didn't fail and got acquired?

</comment><comment><USER16> My experience: _Yes_ , a series of failed startups counts against you with many companies. Then again, if any of those had succeeded you wouldn't be applying there, and if you applied there on a lark they would have counted the successful startup against you.

My conclusion: Certain types of companies do not care to hire the kind of risk-taking individuals who chose to work for startups instead of putting in their five-to-ten at a more stable company.

</comment><comment><USER17> In my experience, no one really cares which companies you worked for unless they've heard of them. Well-known companies a plus. Failed ones are neutral, at worst.</comment>


Killer of Kitty Genovese Dies in Prison (Origin of "Bystander Effect") - <AUTHOR> http://www.nytimes.com/2016/04/05/nyregion/winston-moseley-81-killer-of-kitty-genovese-dies-in-prison.html <comment><USER2> [http://web.archive.org/web/20230410210145/https://www.nytime...](http://web.archive.org/web/20230410210145/https://www.nytimes.com/2016/04/05/nyregion/winston- moseley-81-killer-of-kitty-genovese-dies-in-prison.html)

</comment><comment><USER3> Interestingly enough, the New York Times' erroneous reporting had more to do with the inception of the "bystander effect" than the actual murder, for in fact, Geneovese's death was more the result of a single neighbor's negligence than 38 neighbors' inability to act.

[http://www.washingtonmonthly.com/political- animal-a/2014_03/...](http://www.washingtonmonthly.com/political- animal-a/2014_03/two_new_books_debunk_the_myths049404.php)

[http://nypost.com/2014/02/16/book-reveals-real-story- behind-...](http://nypost.com/2014/02/16/book-reveals-real-story-behind-the- kitty-genovese-murder/)

</comment><comment><AUTHOR> This event generated immense interest in social psychology concerning why bystanders and witnesses did not intervene.

From the article:

'Psychologists and criminologists called the reluctance of witnesses to involve themselves the "bystander effect," or the "Kitty Genovese syndrome." Studies discerned a "diffusion of responsibility," finding that people in a crowd were less likely to step forward and help a victim. Some communities organized neighborhood-watch patrols. In New York, an emergency call to the police was simplified later in 1964 — from dialing "O" for operator or a precinct or a borough headquarters, to a central police number. The unified 911 system was not established until 1968.'

\- Bystander Effect: [https://en.wikipedia.org/wiki/Bystander_effect](https://en.wikipedia.org/wiki/Bystander_effect)</comment>


Ask HN: Is a CDN hosted version of SubtlePatterns.com useful to anyone? - <AUTHOR>

As a quick weekend project I made backgroundhost.com.  I am just wondering if anyone has any feedback or if they think it might be useful. <comment><USER2> I'd use it, so long as it wouldnt have a long ugly url, something simple, similar to placehold.it/300x300, where the 300x300 indicates the size of the placeholder img.

<comment><AUTHOR> I thought about that. The only reason I didn't do that was that I didn't want too many DNS paths in the way. I'm sure that can be worked around though and I will work on adding that.

<comment><AUTHOR> Of course, if backgroundhost.com/{slug} is OK then this wouldn't be an issue. I could use a shorter domain name too as long as it makes sense since it is CNAMEd to the CDN anyways.</comment></comment></comment>


Functional Connectivity Between Surgically Disconnected Brain Regions? - <AUTHOR> http://blogs.discovermagazine.com/neuroskeptic/2017/04/21/functional-connectivity-discon-fmri/ <comment><USER2> I have been reading neuroskeptic for years. Their opinions have always provided a healthy dose of cold reality to douse the neuro-woo that is pretty common these days.</comment>


Show HN: Founder Tap - <AUTHOR> http://foundertap.com

<comment><AUTHOR> This past weekend I decided to put together a prototype of an idea I've been thinking about for a while and wanted to get some feedback.

The service is called Founder Tap; a better way to find cofounders and collaborators. No profiles filled with buzz words. No spammy pitches. Just curated introductions to people who are changing the world.

I was motivated to build a curated community of makers/creators because I was frustrated with other "Founder Dating" sites. I've been on these other services to find people to collaborate with, but a lot of the time the quality of matches I get has been low. For example here is a message I received on one recently:

I know you're super busy but if you have any time/desire for side projects like simple app ideas that can sell for 99 cents, I have some that probably wouldn't take too much time developing and I can do all the heavy lifting outside of the coding and get it out there...and who knows, it gains a following, sells a couple million and we're millionaires! LOL, it's simple!</comment>


Show HN: Engagespot – A tool to add realtime notification feed to Web Apps - <AUTHOR> https://engagespot.co/notification-feed-for-web-apps.php <comment><AUTHOR> Hello All!

I'm Anand, co-founder of Engagespot.

We built a tool that helps you to add a real-time notification feed and a bell icon to your web application dashboard. You already know what is a notification feed. You see and use it everyday on Facebook, LinkedIn etc :)

We think every website/web application need a notification feed. That's why we built Engagespot.

* It's like a dedicated inbox inside your web application where your users can see all your messages and alerts.

* Messages will be delivered as native browser push if the user is not logged in.

* Users will receive the notifications on all devices where they are currently logged in.

* It will update in real-time. When a new message is received, a bubble count will appear on the bell icon without annoying the user with big popups.

We'd love to hear your feedback and suggestions :)</comment>


Loss of Life in WW2 Visualization - <AUTHOR> http://www.fallen.io/ww2/ <comment><USER2> This is a unique piece of art, content, and technology. I have no other words to say how awesome this is.</comment>


From iPhones to thermostats: How Tony Fadell built Nest - <AUTHOR> http://www.cnn.com/2012/12/05/tech/tony-fadell-podfather-nest/index.html

<comment><AUTHOR> "With the thermostat, we revolutionized the product itself, absolutely -- but we also revolutionized the sale of it. Most thermostats were only purchased by contractors and installed by contractors... over 95% of them are actually installed by users themselves"

</comment><comment><USER3> Spread over 4 pages. Thanks CNN. Interesting comments on the lawsuit - <USER2> sure that its quite the same being sued at your own company as it is being sued at Apple though.

</comment><comment><USER3> Wonder what other products are like that - I know I became interested in power usage after living in a solar powered house.</comment>


Trouble with Paypal? - <AUTHOR> http://blog.fefe.de/?ts=b0946f9b Thanks to FeFe, I just read, that Paypal is supervised by the bank supervision of Luxemburg. If they e.g. freeze your account, you can address a complaint to: Commission de Surveillance du Secteur Financier 110, route d'Arlon L-2991 LUXEMBOURG Tél. : (352) 26 25 1 - 1 (central) Fax : (352) 26 25 1 - <USER2> E-mail : direction at cssf.lu <comment><USER3> Not anymore, I closed my account a month after yet another news item on HN about someone who's account was frozen for no apparent reason. When will people learn?</comment>


Write Haskell as fast as C: exploiting strictness, laziness and recursion - <AUTHOR> http://cgi.cse.unsw.edu.au/~dons/blog/2008/05/16

<comment><USER2> BTW, I moved the articles to a different host last year,

[http://donsbot.wordpress.com/2008/05/06/write-haskell-as- fas...](http://donsbot.wordpress.com/2008/05/06/write-haskell-as-fast-as-c- exploiting-strictness-laziness-and-recursion/)

and the follow-on using fusion,

[http://donsbot.wordpress.com/2008/06/04/haskell-as-fast- as-c...](http://donsbot.wordpress.com/2008/06/04/haskell-as-fast-as-c-working- at-a-high-altitude-for-low-level-performance/)

<comment><USER3> Way cool, thanks :]

</comment></comment><comment><USER4> I am happy to see UNSW powering on in the FP world. Waaay back when I went there, they tried, valiantly, to teach us grubby Engineer hacker types the virtues of purity (via miranda), of I tried to ignore it and wanted to get to the good stuff that let me flip bits on a serial port. But now I am grateful for someone at least trying to "show me the way" so early on (and over time, I think it paid off).

</comment><comment><AUTHOR> Ah, was posted previously: <http://news.ycombinator.com/item?id=190963>

Still, an awesome analysis that traverses the code hierarchy from assembly to Haskell.

</comment><comment><USER5> I personally only care about optimizations that enable someone who's a domain expert in _something else_ to write code that performs well. If I know Haskell at an intermediate level, and I'm focusing on the equations for protein folding, or game mechanics, or rocket trajectories, will I still be able to write code that performs well? Or do I need to be a Haskell expert first?

<comment><AUTHOR> Wasn't that what the author was getting at? The DSL for including rewrite/optimization rules in the compiler is actually accessible to the "mere mortal".

<comment><USER5> Yes and no. It's great that it's available. I'm just not seeing that it implies a workable routine for Joe Programmer.

Write code. Run. Runs out of memory after 3 hours of protein folding. Check the GHC processed code. Discover that you need to rewrite 5 functions. The premise is that your mental model wasn't good enough to predict this without the GHC processing, so rewrite, run through GHC, stare at code, rewrite again. If that whole cycle is necessary, then this does not sound workable. But I'd be thrilled to learn that I'm missing something.

<comment><USER6> To be fair, no language lets you just "write code" and have it run anywhere near optimally. The programmer always has to be aware of what the compiler is going to do and work with it.

I've written a fair amount of Haskell, and done a lot of this type of optimization, looking at the core (intermediate representation) and fiddling with pragmas, unboxing, strictness, etc. I've put Haskell on the back burner and gone back to C++ because I spent SO MUCH time doing this. Maybe I'm not being fair, and in another 5 years I'd be able to predict what GHC is going to do as well as I can predict what a C++ compiler will do. But for now, I can't justify the expenditure in time it takes to get a large piece of Haskell code (more than a microbenchmark) to perform at the C/C++ level. If you write idiomatic Haskell you're tracking down stack overflows (the Haskell kind, not the C kind) and misfired optimizations, and if you're writing C-in-Haskell you're better off just writing C. In the end, I think Haskell just isn't (yet) the best language for what I was doing (image processing, graphics, 3d modeling, etc.)

(The short reply to your comment is: yes, you the application writer have to be very aware of what GHC is doing if you want C-level performance.)

<comment><USER5> Thank you. That was the impression I got. I'm still curious to hear if anyone else had a different experience.

I'm not so much looking for what it takes to get code running optimally, as much as having idiomatic code run with "reasonable" performance.</comment></comment></comment></comment></comment>


Url2png - Website Screenshot API - Beautiful, Zippy, Reliable - <AUTHOR> http://url2png.com/ <comment><AUTHOR> I've been beta testing url2png.com for a few months now and it's finally been released and opened to public sign ups. The service isn't free, but having the option to avoid the many other screenshot services out there is worth the cost, imo.

Code examples (PHP, Python, BASH, Ruby): <https://gist.github.com/1007737>

</comment><comment><USER2> Free DIY alternative that I use: <http://cutycapt.sourceforge.net/>

</comment><comment><USER3> Bit more pricy than the other paid alternatives, but perhaps the speed and simplicity is worth it.</comment>


[Show HN] My SCSS grid for fixed and fluid layouts - <AUTHOR> http://www.profoundgrid.com/

<comment><AUTHOR> The main difference to other fluid grid systems is that the columns are not positioned based on the element to their left side. Instead the grid uses a system of negative margins to position the columns. The advantage is that the layout will look the same in every browser, independent of how the browser handles percentage and subpixel rounding.

Even well established grid systems like Susy suffer from the above, which becomes extremely noticeable when you have many elements in one row (i.e. 12 columns in a 12 column grid) and then resize the browser. Depending on the browser you're using, you'll see the columns "jump around" and be misaligned. My grid system solves that particular problem.</comment>


Programming Has Changed My Life - <AUTHOR> http://blog.professorbeekums.com/2016/11/programming-has-changed-my-life.html <comment><USER2> I wish he was right, but I don't think he is. There is no evidence that programmers are better at critical thinking than other people with comparable intelligence. There is also no evidence, I think, that ability to think critically in one field transfers to different a field.

I think what happened is that he basically developed his critical thinking skills naturally, regardless of the field he was working in.

<comment><AUTHOR> Your point on evidence is dead on. This is an entirely anecdotal piece which is why I titled it "Programming Has Changed My Life" rather than "Programming Can Change Your Life Too".

The latter claim requires a lot more research because it is a huge leap.

Whether I would have developed critical thinking skills naturally can be up to debate. The argument for programming being the factor is because computers are black and white in the early days. Code works or code doesn't work. We don't always get that direct feedback in human interaction.

<comment><USER3> >Whether I would have developed critical thinking skills naturally can be up to debate. The argument for programming being the factor is because computers are black and white in the early days. Code works or code doesn't work. We don't always get that direct feedback in human interaction.

Glad I refreshed before I posted a similar comment! Feedback in programming has quick and usually exacting results, giving you more feedback per unit time to tune your critical thinking process.

</comment></comment></comment><comment><USER4> I reluctantly upvoted. The content is wonderful and that ought to be enough, but the cartoon professor makes me feel a bit angry for some reason. Is this the application of Spolsky's[1] (among other's) recommendation of avoiding walls of text because nobody likes to read?

[1] [http://www.joelonsoftware.com/articles/fog0000000033.html](http://www.joelonsoftware.com/articles/fog0000000033.html)

<comment><AUTHOR> I'm sorry you hate the avatar! I get lots of mixed feedback about it, but overall the feedback has been positive. I accept that I can't make everyone happy unfortunately.

I am trying to avoid walls of text, but I think it is an unfair statement to say that people don't like to read. People are reading the same amount of text regardless of whether pictures exist or not.

Unfortunately, I can't remember the name of the book, but there's one on brain science that discusses how people process text. Letters are still images as far as our eyes and brain are concerned. There's an extra processing step to turn one type of image (letters) into another type of image (what the letters are describing). This is exhausting and throwing in images act as "taking a break" even if that break is only a second or two.

<comment><USER5> Just wanted to say I really liked the little cartoons. Do you do them all yourself?

<comment><AUTHOR> I wish I was that talented. One of my friends is an incredible artist and I asked her to make those for me.

</comment></comment></comment></comment><comment><USER6> Totally agree. I see programming as a way to run experiments on your very ability to reason about things. Or on the thing inside you that has reason. I believe much of the positive side effects of programming come from this.

</comment><comment><USER7> The cartoons make it look like marketing copy aimed at non-programming parents who want to buy lessons for their kids.

</comment><comment><USER8> So I take it they're a professor like Dr. Pepper is a doctor.

</comment><comment><USER9> Programming has certainly changed my life. Some of the changes are indeed positive. However many of them are not. I wouldn't do anything else because I love it but just like being a bricklayer or truck driver or a police officer there are downsides, risks and cost associated with career.

</comment><comment><USER10> It has certainly given me a long and gainful career that I otherwise wouldn't have had if I had become a teacher or Accountant like I had planned.

My work ethic was mostly shaped by high school athletics, but perhaps codified (pun intended) by programming.

</comment><comment><USER11> Didn't you just become older and more mature?

</comment><comment><USER12> I think you might have just grown up. And also became less arrogant.</comment>