Installing Debian Linux 2.0 (1998) - <AUTHOR> http://archive.debian.org/debian/dists/hamm/main/disks-i386/current/install.html <comment><USER2> So here's what installing Debian was like in 1998.

Short of going to a first-tier University AND having a campus job that allowed you near the ethernet jacks, you were either going to spend weeks downloading disk images over your 38.4 kbps modem, or you were going to buy a collection of Linux distributions + the Sunsite archive on a 5-cd set that was released quarterly and available at computer stores.

Assuming that your CDROM spoke standard ATAPI instead of some weird hooks-up- to-a-soundcard interface from 1994, you probably had to create a floppy boot disk by dd'ing it off the cdrom, as your BIOS was 50/50 able to support the El Torito extensions that allowed a CDROM to boot the computer.

The dialog-based installer wasn't too different from now, IIRC. I think it was Debian that had options for installing from not just floppy and ftp, but NFS as well.

Once the machine was booted, you hoped to see "LILO" was successfully installed to bootsector and you could choose which OS to boot. If LILO didn't install right, it would just present "LI" and a blinking cursor. If you still had DOS on the machine, the recourse was to use a DOS floppy boot disk and use the undocumented "fdisk /mbr" command to put a normal DOS boot sector back on your hard drive.

Once the machine was up, you most likely had to get PPP working with your modem. Hopefully you had an external modem. Minicom was close enough to Telix that you'd use that to make sure that AT commands were making it to the modem, and then you went down the rabbit hole from there.

Getting X working sucked. I think by 1998 there was a helper script for generating your XFree86 conf, but even that would most likely require some hand-tweaks. If at this point you had your modem working you could at least get online with PPP or even just a plain shell account to start searching DejaNews for hints on how to get that working.

dselect was awesome, it felt like being connected to the world's hugest BBS, where you were guaranteed that every piece of software in the archive would work on your machine.

Now you're a few days in: You've got X working (probably at a wonky refresh rate), you can connect to the Internet (when your ISP has an open line and you aren't hitting a busy signal) and you've got Netscape installed. Getting your soundcard working is probably still a week off.

<comment><USER3> Similar experience though it differed in the details. Downloaded disks from the internet at work. Never had problems with IDE CDROM or booting. Those parts easy.

Getting X or sound working, incredibly hard. Scary warnings about frying the monitor and manually writing "modelines."

I remember wasting an entire weekend, morning until night tinkering with zero progress to show for it. After about a week you'd give up and accept that you made "this much" progress, and would never go further. At least until the next major version came out with improved drivers.

Believe I tried the Caldera (or Mandrake?) linux in the late 90s and it was easier to install.

<comment><USER4> Caldera was the one with the graphical installer where you could play Tetris. I believe Mandrake was the one that was very similar to Red Hat (back around RH 5.2) but I remember it being a little easier to get working.

X was difficult. I remember sound being fairly easy if you had a sound blaster or turtle beach. The modem and PPP was where I always got hung up. I finally bought an external modem and that made things much easier.

<comment><USER3> Hmm, I didn't remember using PPP or a modem. Now, I remember why.

At work we had a LAN. At home I had a Windows 98 box that talked to the internal modem and dialed up, which routed to a special orange ethernet cable with the wires crossed to an emachines box in the second bedroom. That one had dual boot linux on it for tinkering and thought it was directly on the internet. Good times.

</comment></comment></comment></comment><comment><USER5> Well, it boots up in QEMU. I believe my first install of Debian was woody, or Debian 3.

'If your monitor displays color, please select "Color" here.'

edit: Hard drive partitioned; we're formatting as ext2 now.

The installer is remarkably like modern Debian.

edit: Still churning; perhaps my 8GiB partition was rather overkill ;)

[https://files.esotericnonsense.com/public/debian2/00-ext2.pn...](https://files.esotericnonsense.com/public/debian2/00-ext2.png)

golly:

[https://files.esotericnonsense.com/public/debian2/01-ext2.pn...](https://files.esotericnonsense.com/public/debian2/01-ext2.png)

8 character root password:

[https://files.esotericnonsense.com/public/debian2/02-rootpw....](https://files.esotericnonsense.com/public/debian2/02-rootpw.png)

got me a dpkg:

[https://files.esotericnonsense.com/public/debian2/03-dpkg.pn...](https://files.esotericnonsense.com/public/debian2/03-dpkg.png)

I'm installing the sysadmin 'selection' ... we're getting Python 1.5 :D

:O

[https://files.esotericnonsense.com/public/debian2/05-xfree86...](https://files.esotericnonsense.com/public/debian2/05-xfree86.png)

I didn't want me no damned GUI! Mouse is broken!

Update: I'm in, I have vim, loopback, a user account, but no network interface. Another time. :)

</comment><comment><USER6> >Disable any virus-warning features your BIOS may provide. If you have a virus-protection board or other special hardware, make sure it is disabled or physically removed while running Linux. These aren't compatible with Linux, and Linux has a better method of protecting you from viruses.

The BIOS feature is presumably referring to boot sector virus protection that old BIOSes used to have that made them read-only. But what are "virus- protection boards" ? The only search results with quotes are for variants of that page, and searching without quotes gives too many irrelevant results.

<comment><USER7> Must mean something like [https://www.asus.com/Motherboard-Accessories/TPM- M-R2-0/](https://www.asus.com/Motherboard-Accessories/TPM-M-R2-0/) e.g. before IME and so on were built in, you could add them as extras.

<comment><USER6> That's a TPM. Not sure what you mean by "IME", but TPMs both still exist and did not exist in 1998. They also don't have anything to do with virus scanning.

<comment><USER7> Right, it was just a guess. I was using Linux professionally in 1998 and I have never heard of a virus scanning board. Not sure I used Debian before 2001 though.

</comment></comment></comment></comment><comment><USER8> Oh those were the days.

Related: "Installing Linux on a Dead Badger" (2004)

[http://strangehorizons.com/non- fiction/articles/installing-l...](http://strangehorizons.com/non- fiction/articles/installing-linux-on-a-dead-badger-users-notes/)

<comment><USER9> [https://web.archive.org/web/20190810142256/https://strangeho...](https://web.archive.org/web/20190810142256/https://strangehorizons.com/non- fiction/articles/installing-linux-on-a-dead-badger-users-notes/)

</comment></comment><comment><USER10> Ah, "winmodems." I think the final boss of my ca. 1999 Red Hat install was a winmodem.

<comment><USER11> Yea getting winmodems to work on Windows was a chore good luck anywhere else. The era of managing irq's, jumpers for cpu clock multipliers, and if there was the tiny twist in middle of a floppy ribbon to make it bootable couldn't end soon enough.

<comment><USER12> The twist was to determine which was the A and which was the B drive. IMO a lot nicer than the jumpers you had to set properly on both IDE drives.

</comment></comment></comment><comment><USER13> Here's a few old Linux install-related Web pages:

* 1999 university lab/department-specific instructions for Red Hat: [https://www.neilvandyke.org/lab-linux-1999/](https://www.neilvandyke.org/lab-linux-1999/)

* 2000 assembling PC with Linux-friendly components: [https://www.neilvandyke.org/cheap-pc-2000/](https://www.neilvandyke.org/cheap-pc-2000/)

* 2003 laptop-specific install instructions for Debian: [https://www.neilvandyke.org/linux-thinkpad-560e/](https://www.neilvandyke.org/linux-thinkpad-560e/)

One thing I notice in the 1999 one is that, although I was already interested in privacy&security, I was pretty cavalier about where I got RPMs. Maybe it was hard to imagine that anything Linux could be evil?

</comment><comment><USER14> This mildly reminds me of the early 2000s when I first got introduced to Linux and my friend guided me through installing Gentoo over TeamSpeak for the first time. That was a productive 6 hours!

Fast forward to 2019 and now you can click a button on DigitalOcean's site and have Debian 10 running in about 30 seconds.

</comment><comment><USER15> > _You must have at least 4MB of RAM and 40MB of hard disk_

When the world made sense...

It would have been around this time - 97/98 - that I first set up Red Hat 4 as a dual boot with Windows 95. No hoops to run through, really, except endless fiddling with PPP to get some sort of internet connection. The thing came on a magazine cd-rom, and as my pc either didn't do cd-booting or I didn't know it did, I had to cook a couple of floppies from provided images, presumably using my beloved Disk Copy Fast. Download was out of the question. Largest thing I did in that respect back then was StarOffice - a whooping 52 Mb package which took five or six hours, done at night when phone rates were lower.

Later, I got rid of the Windows partition...

</comment><comment><USER16> Debian in 1998? Try the fall 1994 Yggdrasil Linux in 1995 then:) The CD (bought in a store, only copy available) was damaged out of the box in a subtle way so that it started spitting errors over one hour after the installation began when I was very likely in front of the third coffee. But the installation continued somehow, so in the end the system sorta worked but I had problems everywhere and no books, no Usenet, no Internet to ask for advice, just a local BBS I couldn't connect to anyway because that half working PC was the only hardware at disposal. This is what kept me back like 2 more years before trying Linux again (Red Hat).

</comment><comment><USER17> Somewhat disappointed this isn't about installing and using Debian Linux 2.0 on a PC now 2 decades later, and comparing it to the experience of a modern Debian. I'd even watch a video (does LGR know anything about Linux?).

<comment><USER18> Another thing I am curious about is the section about system requirements. How much disk space would be necessary for a full installation of literally every possible package in Debian 10?

<comment><USER19> I've been installing Debian since rougly 1998, with separate partitions for most major filesystems. My last /usr partition was 20 GB, and that's no longer sufficient for a generous (though far from complete) Debian install.

The last package count I made of _unstable_ was over 70,000 distinct software packages. I think _stable_ is well below that, though probably north of 40k.

A "full" installation is not possible as many packages mutually conflict. Though it wouldn't surprise me if a _maximal_ install of software alone would be well over 100 GB.

Much of the growth has come in support libraries, especially internationalisation. For a while there was a package which would go through, post-install, and remove unneeded translations and charactersets.

<comment><USER20> > The last package count I made of unstable was over 70,000 distinct software > packages. I think stable is well below that, though probably north of 40k.

For others, like me, interested in this you can grab a txt/JSON package list for mangling locally[1].

With the data I have grabbed it is 65k vs 57k.

> Though it wouldn't surprise me if a maximal install of software alone would > be well over 100 GB.

A rough estimate[2] of just ``main`` on Buster:

      $ awk -F: '/^Installed-Size/ {print $2}' /var/lib/apt/lists/*buster_main* | numsum
      272960149

1\. [https://packages.debian.org/stable/](https://packages.debian.org/stable/) \- Scroll to the bottom for links

2\. [https://www.debian.org/doc/debian-policy/ch- controlfields.ht...](https://www.debian.org/doc/debian-policy/ch- controlfields.html#installed-size)

<comment><USER19> That's installed size in kB, correct? So, 273 GB, more or less, for "main".

"Well over 100 GB" ;-)

<comment><USER20> There is even talk on supporting packages that are larger than 10GB[1], so three or four hundred gigabytes might be passed quicker than we'd think...

1\. [https://lwn.net/Articles/789449/](https://lwn.net/Articles/789449/) \- Gives a little information if you scan for "size"

</comment></comment></comment></comment></comment></comment><comment><USER21> I first installed SLS Linux in 1992. It came as floppy disk images on a CD- ROM. I installed it on my girlfriend's new 386 computer, which had a monster 10MB hard disk. It booted up to the text console. I logged in, typed ls, was happy it looked like the Sun machines I had used in college. Then deleted it because she needed the space for DOS, Lotus 123, dBase IV, and WordPerfect.

I used Solaris, HP/UX, AIX, etc in my day job. I used to try to install Debian on my new computers and fail because the kernel on the installer CD was too old to support the latest chips. Finally I switched my desktop to RedHat Linux in the late 90s.

For a while, I ran Gentoo, which meant compiling everything from scratch as part of the installation process. One day for everything up to text mode, then another day to get KDE running.

</comment><comment><USER22> I got my Debian from a CDROM packed with PC Magazine back in 1998.

Unfortunately the disk was scratched and the installation was failing at the unpacking of one the deb packages.

I had no knowledge in tech other than some turbo pascal and ms dos batches scripting skills. I had no internet connection (it was too expensively). I had to do installation dual boot, to preserve the ms dos partition for the job of parents. I had almost zero knowledge in English. My PC was 4 years old 386dx with 4mb of ram.

However I did had spare summer vacation time at disposal. It took every third evening this summer but just before school I was able to hack the installation to skip the bad debs and boot into the New magical OS.

And then yet another adventure of configuring the new world called Linux stared.

</comment><comment><USER23> I started tinkering with linux the same year but with Mandrake instead. It felt just like the beginning of the web, some kind of far west where anything was possible, with no clear tracks to follow.

</comment><comment><USER24> A couple years after this, you could buy a Redhat CD off the shelf at Best Buy, and if you had popular or generic hardware, it would pretty much install. And a few years after that, Mandrake or Corel Linux booted from a CD and had great graphics and everything.

By the time I got back to Debian, it was for servers. Netinstalls were compact and awesome!

And then Ubuntu came out and blew everyone's mind, how complete it was installed just off the CD. Even the idiots could install it then.

</comment><comment><USER25> > you were going to buy a collection of Linux distributions + the Sunsite > archive on a 5-cd set that was released quarterly and available at computer > stores.

I ordered debian potato (debian 2.2 / August 2000) as CD Sets via a german book store. Came with an OKish book. I distinctly remember that the SuSe book was better and i was really glad when i got a old SuSe manual from someone who upgraded his machine and got a new manual along with the 10 CDs.

Great times.

</comment><comment><USER26> I got started with Linux in that year. I think I did red hat 5.1 and then Debian 2.0. A few years later I tried openbsd 2.6.

The distros were too big for dialup, and Red Hat was charging a lot (or seemed like it for free software) for CDs in a fancy retail box. But there was a website "cheap bytes" that would burn CDs of distros for about $2.

I remember my apt-get dist-upgrade to Debian 2.1 because it took forever on dialup.

</comment><comment><USER27> My very first book that I begged my mother to buy for me was Debian GNU/Linux bible with a Debian 2.2 CD.

Debian was great for a long time but since 2014 I've been a RedHat convert using CentOS and Fedora where applicable. I firmly believe them to be better than Debian or Ubuntu. Partly because I made the effort to learn things like SElinux and iptables.

</comment><comment><USER28> Unfortunately the oldest version available seems to be 3.0, though there was a mention about 2.0 [https://cdimage.debian.org/mirror/cdimage/archive/](https://cdimage.debian.org/mirror/cdimage/archive/)

It would be interesting to test such an old version for historical purposes

<comment><USER29> [https://cdimage.debian.org/mirror/cdimage/archive/older- cont...](https://cdimage.debian.org/mirror/cdimage/archive/older-contrib/2.0/)

</comment></comment><comment><USER30> I did something similar earlier this year: I installed modern Debian on a PII machine from 1998. Turns out those are the oldest "modern" x86 chips supported by Debian. The only special thing I had to do was install it to the disk in a VM because I didn't have a way to boot from a CD on that computer.

</comment><comment><USER31> > If you have a virus-protection board or other special hardware

I've heard of all sorts of esoteric PC hardware, but I've never heard of hardware anti-virus boards.

Anyone know more about these? A web search hasnt produced anything useful.

<comment><USER32> Hard to track down, but this could have referred to something like this: [https://en.wikipedia.org/wiki/ThunderByte_Antivirus](https://en.wikipedia.org/wiki/ThunderByte_Antivirus)

</comment></comment><comment><USER33> Tried installing my first Linux distribution, Slackware (3.4) in 1997. It worked. I deleted the only partition on that 630MB Seagate drive, and wondered why Windows wouldn't boot anymore.

</comment><comment><USER34> I came to Debian slightly later than 98, but memories of the floppy net install image fill me with joy. A whole OS bootstrapped from a 1.44MB medium was very cool.

</comment><comment><USER35> 2 years later, Knoppix (one of the first popular live CD distros, based on Debian) made it much easier for people to experience Linux.

</comment><comment><USER18> It's interesting that the very first thing in the page is a section on copyrights, free software and the Debian Social Contract.</comment>


In defense of real books - <AUTHOR> https://www.theverge.com/2018/3/15/17039010/amazon-kindle-oasis-2017-vs-real-paper-books-versus-lauren-goode <comment><USER2> I believe our brains have a slightly different relationship to text on a page, because that page always has one specific location in the physical world. It will always be the same text, and on that same piece of paper. (Do you ever pick up a book and surprise yourself by remembering _exactly_ where you left off -- that last sentence of the first paragraph at the top of the page on the right?) I think we're always subconsciously assessing where things are in relation to our current position, and that carries over to text on a page.

But there's not the same permanence for text in an ebook. (Poof, it's gone! New text! There is no page, nothing has a location...) And yeah, sometimes that same "view port" can turn into an ad. Sometimes it's your book, sometimes it's Amazon selling you something.

I just truly believe that you end up with a subtly different relationship to that body of text that you're trying to read and remember.

</comment><comment><USER3> I skip pages, start in the middle of books, track back, have two or three books open at once sometimes. I haven't found an electronic interface that accomodates my nonlinear style of consuming books. They just tell me I'm reading them wrong.

<comment><USER2> Yeah, even simple things like "See Figure 4" can become a big hassle in ebooks. (Is that on the next page? The page after?) And what you really want to do is re-read the text and then quickly look back at the figure -- which is just always going to be much easier when you're flipping back and forth between two pages that you're holding with your fingers.

Maps is the other big thing. Reading a book about the Lewis and Clark expedition (or the Astoria fur-trading party), there's always one big map showing the entire route of the expedition, and you'll want to refer back to it several chapters later. Yes, you can still try to bookmark it in an ebook -- but accessing it is something like "Menu / My Bookmarks and Notes / Page forward, page forward, page forward, page forward...."

</comment></comment><comment><USER4> >Those kinds of notifications don't pop up on Kindles, either, so that's not to say that Kindles contribute to our distraction problems. Kindles are also wonderful for making books and all kinds of text immediately accessible to people, a digital consolidation of that stack of books sitting on your nightstand.

That's why I absolutely love this thing. I have the cheapest and simplest model, hope that Amazon won't put some stupid messaging service suddenly there after update. Paper books are great also. Doesn't discharge. The best thing for deep learning session.

</comment><comment><USER5> I certainly think a much better defense of "real" books can (and perhaps should) be made. I was a bit disappointed to notice that this article didn't mention what I personally find an important difference: You own a book. You can never own an ebook. They're not for sale. The best you can ever do is throw some money in the direction of a publisher and wish really hard that they honor the utterly non-binding vapid 'license agreement' which extends literally no rights to you as a consumer and places literally no obligation on them as a seller.

Sure eventually the courts will step in and declare digital property to be as real as any other form of property, and we'll see actual ownership rights return... but that might take a long time. Until then, you can give a book to a friend either as a loan or a present. You can buy used books. You can sell your books. You can always pick them up and read them. With ebooks, you cannot sell or even give them away. You can't loan them. You can't even be assured that you'll be able to pick them up and read them. You "agreed" to license that can be revoked at any time for any or no reason.

Ebooks are a vague wish and an act of faith in the publishers and nothing more. Someone will eventually push it too far. And only then will consumer rights be restored by the courts, but that could take ages and isn't even guaranteed. Sure that's the way it worked with every single other industry that has tried this exactly identical "licenses not ownership" game, but things change...

<comment><USER6> Of course you can 'own' an ebook. Unfortunately this means that you often have to commit an act of 'piracy' by defeating the DRM to extract the file from your reader.

As for the courts stepping in, be careful what you wish for because the only way to have 'owning' an ebook work the same way as owning a physical book is for there to be unbreakable DRM and/or draconian penalties for breaking it together with a register of who has the right to read it at any given moment and a list of legally allowed devices that it can be read on.

No thanks.

<comment><USER5> I don't understand how you make that leap. Physical books can be copied or stolen. We are still allowed to own and buy and sell them without any unbreakable system to track their ownership, or a register of who has the right to read the book at any given time, or anything of the sort.

<comment><USER6> Ownership in that sense is contingent on there being a physical object that is expensive to reproduce. The only way of mimicking that for ebooks is DRM.

</comment></comment></comment></comment><comment><USER7> One of the articles that came out apparently around the time of the publishing of "The Myth of the Paperless Office". I recall reading one or more of the articles, back then, and finding sense in them. I never read the book; if I learned of it, back then, I'd forgotten about it.

I don't know whether this is the best of the articles. I seem to recall a longer one. And, this one comes with a "Gladwell" (the author of the article) caution.

"The Social Life of Paper"

[https://www.newyorker.com/magazine/2002/03/25/the-social- lif...](https://www.newyorker.com/magazine/2002/03/25/the-social-life-of- paper)

"The Myth of the Paperless Office"

[https://mitpress.mit.edu/books/myth-paperless- office](https://mitpress.mit.edu/books/myth-paperless-office)

</comment><comment><USER8> ``Real'' books are an environmental nightmare. One e-reader can save countless trees.

<comment><USER2> Maybe. I'm not sure I'd call old books an "environmental nightmare." (They're made of paper, so in theory they can just be recycled -- or at least degrade back into natural elements?)

Meanwhile, the electronic parts in old Kindles have a bit of an environmental impact too -- and are probably harder to get recycled.</comment></comment>


Stop Trying to Be Productive - <AUTHOR> https://www.nytimes.com/2020/04/01/style/productivity-coronavirus.html <comment><USER2> Why can't people just enjoy a little bit of extra rest and not having to deal with stressful commutes? From this article, it seems like people are supposed to feel guilty if they didn't get a lot of extra work done.

Also, childcare requires a lot of time and attention. That is just the reality. And it seems like people should expect that the kids could easily fill up the extra time that they are getting back from not having to commute. Maybe this will help people appreciate teachers more.

</comment><comment><USER3> > The internet wants you to believe you aren't doing enough with all that > "extra time" you have now

No it doesnt. the article's proof is about 8 links (half of which come from the nytimes itself). 8 links on whole internet suggesting things people can do at home because duh its boring being stuck at home. This is a made up narrative for a made up backlash.</comment>


Zeigarnik effect – remember uncompleted tasks better - <AUTHOR> https://en.wikipedia.org/wiki/Zeigarnik_effect <comment><AUTHOR> I came across this while reading _The Science of Trust_ by John Gottman.

The Zeigarnik effect states something fairly obvious: that we tend to remember tasks that are uncompleted or interrupted and that when we complete a task we are less well able to recall the details.</comment>


I think (Algol) is richer, clearer and more expressive (than Go) - <AUTHOR> http://lua-users.org/lists/lua-l/2009-11/msg00576.html <comment><USER2> Interesting piece. Among other things, the origin of Common Lisp's infamous, love-it-or-hate-it LOOP macro is unmistakable here:

      # loop in 'for' mode
      for i from 1 to 10 do print(i) od
      # ...and in 'while' mode
      while i < 10 do print(i); i := i + 1; od
      # ...and in both!
      for i from 1 to 10 while checkWhetherCancelled() do print(i) od
      # ...just loop, no counter!
      to 10 do print("Ten times!") od

Personally, I love LOOP; it's just so damn flexible and intuitive, even if there is something a little illicit about it. But no question it's as un-Lispy as you can get. How fitting that it turns out to have been embedded Algol all along.

</comment><comment><USER3> While I don't speak Algol-68, I find the arguments interesting and enlightening... except for this bit: "state-of-the-art in programming languages hasn't moved much in those 41 years." While this is true to some extent, as mainstream dynamically typed languages pick up features from Lisp, I'd say that Haskell has a lot of new ideas. (I haven't yet figured out if those ideas help write better software, but that's more my failing than Haskell's.)

</comment><comment><USER4> Let me say this... there's a reason why ALGOL 68 is no longer used very much. At the time it was criticized for being horrendously complex, and there is some truth to this.

Notice that the email points out all the different things you _can_ do with ALGOL 68 compared to Go. If we were to compare all programming languages this way, wouldn't C++ be the best language ever?

<comment><USER5> No, C++ lacks many things ... that's why I personally hate it ... the cost you pay for the feature creep is not worth it.

A good language is not a revolutionary one, indeed, but it's kind of depressing that the state of the art is the same as 30-40 years ago, and it sometimes seems that language-designers haven't learned anything.

There's nothing I hate more about a programming language than exceptions to rules. And Go has plenty of those. I understand the pragmatism, but if some people are unhappy with C++ or Java, why make the same mistakes when designing a new one?

<comment><USER4> "A good language is not a revolutionary one, indeed, but it's kind of depressing that the state of the art is the same as 30-40 years ago, and it sometimes seems that language-designers haven't learned anything."

I think it's just a sign that computer science is a maturing field. After all, I don't hear civil engineers complaining that the fundamental concepts of building a bridge haven't changed much in the last ~2000 years.

<comment><USER6> Yeah, i dont hear people blaming civil engineers because all the bridges that they build collapse spontaneously or which need to be replaced every 6 months or which work only with 5 wheel cars. 'Computer Science' is going backwards fast, and we all know it.

<comment><USER7> Backwards? Come on. Write a Parsec-based parser, build a GUI with Qt, make a web app with Rails or Clojure or whatever you like - then compare your experience to what it would have been 10 or 20 years ago.

</comment></comment></comment></comment></comment><comment><USER8> This is silly. ALGOL did not have a garbage collector. Nor did it support threads as well as Go does. Nor did it have interfaces. I'd go on, but comparing Go to ALGOL 68 just isn't anything close to serious.

<comment><USER9> Maybe the features he highlighted are as important to some people as the features you highlight.

<comment><USER4> You mean programmers in 1968? Of course.

</comment></comment></comment><comment><USER10> While the web seems to be alight with comparisons of Go to other languages (Python, Lisp, ...), what seems to make this post unique is the comparison of Go to a forty year old language in little common use today.

To me at least, this begs a question---where do the great trolls of the Internet go to brag about their exploits? I remember in the golden age of Slashdot one could read "TrollTalk" and see links to the best posts with the most comments trying to misguidedly correct the original troll, most mod points up or down, and so on. (I think it even had a scoring system and a best-of newsletter of sorts.) Where do the great trolls of today hang out and brag about their exploits?

I don't mean just the sort of mediocre trolls who might compare Go to Visual Basic or something, but the sort of highly specialised trolls who might start a fire storm by comparing it to Algol-68. Where does one look to find the Orson Welles of modern technology trolls? Has blogging killed the once fine art of trolling?

</comment><comment><USER11> I had no idea how much of today's code carries ALGOL DNA.

<comment><USER4> ALGOL _invented_ most of the things you see in today's code. Loops, subroutines, and I believe dynamic allocation all came from ALGOL.

And the reality is that these things haven't really changed much. Most of the changes that modern languages bring are in the way of directives to the compiler/interpreter.

<comment><USER2> _Loops, subroutines, and I believe dynamic allocation all came from ALGOL._

The initial release of Fortran had loops and subroutines. But I don't think even they invented those things.

I'm not sure about dynamic allocation.

</comment></comment></comment><comment><USER12> Maybe it's just me but I personally find it funny, this was posted to the lua- users mailing list.

<comment><USER13> What's funny about it?

<comment><USER14> Perhaps because lua is obscure and aims to be innovative? I.E, pretty similar to Go.</comment></comment></comment>


YouTube to MP3 in a 2 clicks. Simple, fast, clean, web-based meta-site - <AUTHOR> http://thepara.de

<comment><AUTHOR> Been working on this small project for awhile. It is a meta-site for discovering, listening and downloading music.

Purely a meta-site, the app merges multiple services into one simple interface.

Commments / feedback always welcome!

Unfortunately, this is optimized for desktop use at the moment.

Thanks :)</comment>


Object-Oriented Inheritance in Go - <AUTHOR> http://hackthology.com/object-oriented-inheritance-in-go.html <comment><USER2> This is not inheritance, but rather embedding. A form of composition. Go does not have inheritance.

[https://golang.org/doc/effective_go.html#embedding](https://golang.org/doc/effective_go.html#embedding)

<comment><AUTHOR> Author Here: Good point. I had forgotten that the effective go document had a section on it. I will add the link. My main point is that Go embedding can be used as a form of subclassing allowing types to share, code, data or both.

</comment></comment><comment><USER3> The section "Inheriting from structs" is misleading. It's embedding, not inheriting. A big different is that it does not lead to type compatibility. Given this:

        type Foo struct {
          ...
        }

        type Bar struct {
          Foo
        }

...You can't pass Bar (or pointer to Bar) to anything that requires Foo (or pointer to Foo), even it looks like they'd have identical memory layouts and therefore be compatible, though that is exactly what inheritance aims to achieve in other OO languages.

<comment><AUTHOR> Good point and definitely an annoying limitation. The work around is to use an interface as the expected type as I do in the lexing example.

I should have included a section on the limitations of embedding. This is what happens when I don't stew on the writing for a day or two before putting it out there! I will have to make a pass through the article and clear up the terminology. Thanks for the feedback!

</comment></comment><comment><USER4> > It turns out we can use Go's built in support for inheritance to avoid this > work.

There is no support for inheritance in Go, calling struct embedding inheritance is incorrect. Inheritance implies a type hierarchy, there is no type hierarchy in Go, types are flat. If you think you can mimick inheritance with struct embedding you're going to feel a whole lot of pain when you pass values around functions then expect boxing / unboxing types to work in like C# or Java.

</comment><comment><USER5> I object to the use of the term "inheritance" here.

It's a bit more like PHP's traits - [https://secure.php.net/manual/en/language.oop5.traits.php](https://secure.php.net/manual/en/language.oop5.traits.php)

Ruby's mixins are a bit similar as well - [http://culttt.com/2015/07/08/working-with-mixins-in- ruby/](http://culttt.com/2015/07/08/working-with-mixins-in-ruby/)

Think of it as language-assisted copy paste.

</comment><comment><AUTHOR> Thanks everyone for your feedback. I improved the post to discuss limitations of embedding and some workarounds.</comment>


Show HN: I made a simple webapp to store your ideas. - <AUTHOR> http://ideab.in/ It's dead simple. There's no fancy interface. Basic features are gone. That's all on purpose.<p>If you're like me, you're always writing down ideas on pieces of paper. My webapp is like that, but for the internet.  Let me know if you find it useful. <comment><USER2> I'll go ahead and make some suggestions: like dlf said, it would be nice to be able to play with it before registering. Furthermore, you should allow the user to login with OpenID services such as Google or Facebook, anything you can do to reduce the time it takes for a user to get started.

You should add an easy way to edit the idea once it has been made. I frequently want to revise or add some resources that go along with an idea I may have.

It's a good start, but lacking some features that would prevent me from using it as a way to store my ideas primarily. I'd be interested in hearing about your progress, it's going to make for a great learning experience.

<comment><AUTHOR> Thanks for the feedback! I chose to do a standard registration/login solely because it's my first php project- I want to learn how to handle forms and interact with databases.

As per the editing, it seems that is something I should really implement.

</comment></comment><comment><USER3> Alex, you should seriously consider making this an iPhone app. You're probably aware of how much more your peers are into mobile (instagram? tumblr? etc).

Additionally, I personally find the iPhone to be an amazing tool for ideation.

<comment><USER4> Yeah I like storing my ideas on my phone too. I'm hardly ever near a computer when a lightbulb turns on! I use noted! [http://itunes.apple.com/us/app/noted!/id504164257?ls=1&m...](http://itunes.apple.com/us/app/noted!/id504164257?ls=1&mt=8) Follows the same keep it simple stuff but with better tracking than the iphone notes app.

<comment><USER5> Nice to see someone else enjoying my app!

</comment></comment></comment><comment><USER6> I like the idea, but I don't see any reason why I should have to register before playing around with the app a bit. Let the user submit ideas and only require registration when they want to create their own private "bin".

<comment><AUTHOR> The point of the app is to list your ideas. The user must register in order for the app to know which ideas belong to them.

<comment><USER6> And that's fine, assuming the user wants the app to know which ideas belong to them. From a UX standpoint, it's so much better to let the user kick the tires before requiring them to register.

<comment><AUTHOR> Where would the idea be assigned if it doesn't know who the user is?

<comment><USER6> The idea is to fake the UX without storing anything permanently. Generate a temporary ID to store data to while the user is playing with the site. If they've added ideas they want to save permanently, overwrite the temporary ID with the new user ID. Storing the data only matters if they sign up. I'm a programming noob myself, but I think this should work. If I'm dead wrong, it should only take a couple minutes for me to be corrected ;-)

A little inspiration: splendidbacon.com/

Congrats on building something cool, btw!

EDIT: Go to account and look at the email address... it's randomly generated. Cool, huh?

<comment><AUTHOR> I understand now... I don't think I would go that detailed as they have, though. I think I could achieve something similar with a demo made with Javascript on the landing page, no?

<comment><USER6> Yep. I think so.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Hey, I built something similar to this a while ago. Find it at <http://openthought.herokuapp.com/> Figured you might want to see it. I am also 16.

<comment><AUTHOR> Nice! Our apps are definitely very similar (actually the same). I really like the prompt you are given when you want to delete an idea. It's very... bold.

What is it built with? How does Heroku work?

<comment><USER7> Didn't want people deleting their stuff accidentally. Built it with Rails. Click the "Github" link at the bottom to see the source. Heroku is really smooth (though expensive) Rails hosting. It's a little like magic.

</comment></comment></comment><comment><USER2> "IdeaBin was designed and developed by Alex Greene, a 16 yr. old student at The Bronx High School of Science."

Keep up the good work, you've got some real talent for your age. Congratulations on releasing!

<comment><AUTHOR> Thanks, I really appreciate it. However, I'd rather receive criticism as if my age were not there. If I changed the 16 to a '35', would you still say the same thing?

<comment><USER2> Send me an email ra3don92[at]gmail.com I've got some more in-depth criticism i'll pass along.

</comment></comment></comment><comment><USER8> Why would this differ to a normal note taking webapp, apart from the fact if you break into this database you are guaranteed only to see ideas?

<comment><AUTHOR> You could use a note taking webapp. I use Evernote quote a bit. However, I find myself making notes of different ideas, different categories, when sometimes I just want to add an idea to a list, like you can with my webapp. For other simple not-taking webapps, if you use it for just writing down ideas, it's fine. However, I usually use note-taking webapps for.... taking notes. When I put an idea on the list, it's immediately an idea among "non- ideas". ideaBin is just for writing down your ideas.

</comment></comment><comment><USER9> If you have a demo on how it works it would be great

</comment><comment><USER4> So as the administrator you can see everyone's ideas? Nice for you.

<comment><AUTHOR> Technically yes. If I knew how to hide that I would. But seriously, I have enough ideas on my mind, I don't need yours.

<comment><USER10> Encryption maybe where the key would be something set by the user or something?

<comment><USER8> What like zerobin?</comment></comment></comment></comment>


Exercise during pregnancy gives newborn brain development a head start - <AUTHOR> http://www.nouvelles.umontreal.ca/udem-news/news/20131111-exercise-during-pregnancy-gives-newborn-brain-development-a-head-start.html

<comment><USER2> What's with the spate of press releases from hospitals in Canada recently here on Hacker News? One statement in the press release seems frankly incredible to this father of four children in the United States: "Not so long ago, obstetricians would tell women to take it easy and rest during their pregnancy. Recently, the tides have turned and it is now commonly accepted that inactivity is actually a health concern." What is the definition of "not so long ago" here? My wife exercised (rather more vigorously than what's described in the press release) during all four pregnancies with our children, the first of which was more than twenty years ago. (Our oldest son is now a hacker in New York City.) It would never have occurred to us to do otherwise, and we lived in Seattle, Washington; Minneapolis, Minnesota; and Taipei, Taiwan as our children were expected and born, and in all those places it seemed to be recommended for expectant mothers to exercise during pregnancy.

What has changed over twenty years in the United States are weight gain recommendations for pregnant women. As our first son was in utero, the recommended weight gain figures for pregnant women were at the peak that they ever reached. My wife, while exercising moderately but more vigorously than described in the submission here, also dutifully ate far more than she usually eats, and managed to gain up to the full recommended weight gain of that era. Later, the weight gain recommendations were actually revised downwards again. (Whew!) My petite and formerly rather slim wife ends up after four pregnancies with a baseline weight, more than a decade after her last child was born, heavier than she ever was before having children, but still at the low part of the "normal" body mass range for women in the United States, and she still exercises, more vigorously than ever. (She bicycle-commutes year-round here in Minnesota, and we do a lot of our discussion of family business on walks to do grocery shopping or visits to the library that involve us carrying objects home for a mile along our city trail system.)

On the whole, I'm rather astonished that as of the date of this press release submission (LUNDI, 11 NOVEMBRE 2013) there could be any controversy in any part of Canada that the kind of exercise described in the article could be anything but beneficial for expectant mothers and their children. How fast does news about better prenatal care spread around the world? I know that the place where we live, Minnesota, is ahead of the world curve in obstetric practice (indeed, my late father was present for my birth and the birth of two of my three siblings, very unusually for that era, beginning in the 1950s), but I didn't think after living in two countries and having children in both that ANYWHERE doubted the benefit of exercise by pregnant women.

AFTER EDIT: I'll add here some links to official statements about exercise for pregnant women.

"Physical Activity: Healthy Pregnant or Postpartum Women" by the Centers for Disease Control and Prevention:

[http://www.cdc.gov/physicalactivity/everyone/guidelines/preg...](http://www.cdc.gov/physicalactivity/everyone/guidelines/pregnancy.html)

"Exercise During Pregnancy and the Postpartum Period" by the American Congress of Obstetricians and Gynecologists:

[http://www.acog.org/Resources_And_Publications/Committee_Opi...](http://www.acog.org/Resources_And_Publications/Committee_Opinions/Committee_on_Obstetric_Practice/Exercise_During_Pregnancy_and_the_Postpartum_Period)

"Exercise in pregnancy" by National Health Service (Britain):

[http://www.nhs.uk/conditions/pregnancy-and- baby/pages/pregna...](http://www.nhs.uk/conditions/pregnancy-and- baby/pages/pregnancy-exercise.aspx)

<comment><USER3> My wife taught 5 fitness classes a week during our 4 children's pregnancy, and they are all geniuses (no bias here).

More seriously, in Arizona I have had friends that were pregnant told to "take it easy" and "don't lift more than 10 pounds" but for the most part the advice is that exercise is good. Usually instructions to avoid exercise are only given when the doctors fear losing the baby due to some other complications.

</comment></comment><comment><USER4> As someone who just became a father (and who's wife exercised during pregnancy), remember that (a) exercise is more difficult when pregnant and (b) anything more than light/moderate exercise is not recommended.

My wife was told not to exceed 60% of her max heart rate during exercise. A slightly brisk walk on the treadmill was enough to get her there during the latter portions if the pregnancy. anything that we non-pregnant folk might consider "real exercise" would likely be too strenuous. Now, I'm skeptical as to how accurate those recommendations are, but not enough to disobey them.

<comment><USER5> This reminds me of [http://www.telegraph.co.uk/news/celebritynews/7871698/Paula-...](http://www.telegraph.co.uk/news/celebritynews/7871698/Paula- Radcliffe-finishes-10km-charity-run-while-seven-months-pregnant.html)

Of course, Paula's pace wasn't race pace, but still... 10km in 45min. It all depends on the women's past exercising habits. You can't ask someone who rarely/never exercises to exercise when pregnant – hence 60% HR of a fit person is not the same as 60% of a non-physically active person.

<comment><USER4> I don't care how fit you are, almost no one is running a 10k in 45 minutes at 60% of max HR.

I'm sure in many cases more strenuous exercise is not detrimental, but of course the public health recommendations are going to play it safe.

</comment></comment></comment><comment><USER6> The best thing I've read all day. Three days ago my wife have birth to our son, 3.5 weeks early. She's blaming the fact that we were in the middle of a house move for bringing the birth on early. While she wasn't lifting heavy things, the new flat is on the second floor, with no lift, so twenty steps needed to be negotiated regularly. I can now tell her we were simply working on enhanced brain development for our son.

</comment><comment><USER7> Does this imply that poor village women who work pregnant are producing geniuses?

<comment><USER8> Maybe but also if they are poor, any exercise/work along with possible malnourishment could just be more of an exasperation to the underlying nutritional problem.

</comment></comment><comment><USER9> > Women in the exercise group had to perform at least 20 minutes of > cardiovascular exercise three times per week at a moderate intensity, which > should lead to at least a slight shortness of breath.

I find it fascinating that this even qualifies as exercise. An untrained person with a sedentary job will probably just have to climb a few stairs or walk quickly for a few minutes to get this intensity.

Who would have thought that healthy activities are.. healthy.

<comment><USER10> You missed the "20 minutes" part.

</comment></comment><comment><AUTHOR> The article mentions a planned follow-up study of the same babies at age 1, but I can't find any published results.

<comment><USER11> I'm sure moderate exercise, non polluted oxygen and so forth are helpful at any stage. As all the things we already now (rest, exercise, healthy food, etc.). But I have trouble accepting theories which are based on things that can not be quantified. We'll have to wait 60 years to asses and I'm pretty sure the results will depend mostly on standard-well known facts like family status, family income, schools etc. than the mother doing 'exercise' when the subject was a fetus.

</comment></comment><comment><USER12> "Breathing during pregnancy gives newborn brain development a head start"</comment>


Why bad technology dominates our lives by Don Norman - <AUTHOR> https://www.fastcompany.com/90202172/why-bad-technology-dominates-our-lives-according-to-don-norman <comment><USER2> People would rather have something new and unstable than refined but a little out of date. That's the sole reason tech is "bad". Any company that decides we're just going to focus on bug fixing is a dead company.

</comment><comment><USER3> Interesting short read. As a UX designer I am often tasked at creating ways to get people back into an app or a website. I feel like may never escape the profit driven cycle that enables taking advantage of people's attention. I don't enjoy that aspect of my job but bills must be paid.

<comment><USER4> Asking a UX designer to 'make my app / website popular again' sounds like something a soon-to-be-failed company would say.

Good content transcends bad UX. Good UX will never save bad content.

I think the "bills must be paid" philosophy goes all the way up the chain though. We're most of us in that leaky boat.

</comment></comment><comment><USER5> Capitalism rewards profitability above all else. For better or worse, a lot of "bad tech" monetizes really well.

It ain't perfect, but is there a better way to organize a large-scale society?</comment>


Rocket – A Rust game running on WASM - <AUTHOR> https://aochagavia.github.io/blog/rocket---a-rust-game-running-on-wasm/ <comment><USER2> Looks like the actual artifacts are a 6kB html (with embedded JS) and a 52kB .wasm file.

[https://github.com/aochagavia/rocket_wasm/tree/master/html](https://github.com/aochagavia/rocket_wasm/tree/master/html)

It's very nice to see that this "scales down", so-to-speak. It can be really disheartening to see small programs compile into hundreds-of-kB binary images. It's great to see that Rust+WASM can be so lean!

<comment><USER3> a "add one to a number and return it" compiled this way results in a ~100 byte binary. It's about twice the size of writing it by hand, but those gains get lost as soon as you start doing real things, so it's not a big deal.

One big jump in binary size starts when you use the allocator, as then it needs to include the allocator's code.

<comment><USER2> It would be nice if there was a modern malloc implementation (with good multi- threaded performance) that optimized for size.

<comment><USER3> We use a Rust port of dlmalloc with this toolchain.

Multithreading doesn't matter to wasm yet, incidentally; it's still single threaded.

</comment></comment></comment></comment><comment><USER4> I'd love if those to see those web games start to use KeyboardEvent.code [https://developer.mozilla.org/en- US/docs/Web/API/KeyboardEve...](https://developer.mozilla.org/en- US/docs/Web/API/KeyboardEvent/code) ; which is much more portable across keymaps and layouts than "key". Unfortunately, it's hindered by slow Edge & Android adoption:

[https://caniuse.com/#feat=keyboardevent- code](https://caniuse.com/#feat=keyboardevent-code)

<comment><USER5> I hadn't seen KeyboardEvent.code before, but after a quick skim I can't see how you'd use it in practice. Being able to recognize physical key positions is nice and all, but how do you map those to the character printed on the key so that you can tell the user what the controls are, before the user has pressed them?

The demo in that MDN page has the help text "Use the WASD (ZQSD on AZERTY) keys to move and steer" which doesn't inspire much confidence if it implies that you need to list controls for every possible keyboard layout and rely on the user knowing what they've got.

<comment><USER6> I'm not sure if it's possible to access the character given the key code (the docs you linked implies it's not), but when we're interested in physical keys, I'd much rather use that nonetheless.

A good way to illustrate the controls could maybe be with an image? The keys on the image could say WASD for all I care, as long as I'm able to see the position of them, which is what matters.

There are similar issues for other things than games. Quite a few programs have `Ctrl + /` or similar as a keyboard shortcut, which is easy on an american keyboard, but on a Swedish one there's no dedicated key for slash (it's `Shift + 7`). The same goes for most symbols except A-Z (I use Swedish QWERTY), they are in other locations and with other modifiers.

Best, of course, is when you can get the character based on the physical key. One example of this is Visual Studio Code, where the shortcut for toggling the console is `Ctrl + Ö`, and presented as such. I assume they defined the shortcut by the physical key (the one to the right of `L` in this case) and presented it by its character.

<comment><USER5> Yeah, in a native app you'd use something like MapVirtualKey [1], but I don't think there's a web equivalent yet.

You still see native apps getting this wrong, though. On a UK keyboard Sublime Text's view menu says that "Show Console" is Ctrl-` (backtick), but the key that _actually_ shows the console is Ctrl-' (single quote). Took me a while to find that.

[1] [https://msdn.microsoft.com/en- us/library/windows/desktop/ms6...](https://msdn.microsoft.com/en- us/library/windows/desktop/ms646306\(v=vs.85\).aspx)

<comment><USER7> Huh, I'm using SublimeText with a UK keyboard and Ctrl+` shows the console (Ctrl+' just types a ')

That's on Linux though, what are you on, Windows? SublimeText Version 3.0, Build 3143

<comment><USER5> Yeah, Windows 3126. May have been fixed, but definitely not just me: see [https://forum.sublimetext.com/search?q=console%20uk](https://forum.sublimetext.com/search?q=console%20uk)

</comment></comment></comment></comment></comment></comment><comment><USER8> Very good. As for the game itself, the fact that the yellow asteroids can appear right in front of the ship is frustrating (death by bad luck: the player can't do anything to avoid it).

<comment><USER9> And apart from that holding space + arrow is a very effective strat, doubly so if you do it so half your circle wraps from one end to the other confusing the tracking.

Maybe shooting needs a cost associated with it.

<comment><USER10> Also if you are able to circle between top-bottom or left-right then the balls get confused and change their direction constantly so easy to kill.

</comment></comment></comment><comment><USER11> Nice one, and thanks for the write-up!

I spent the weekend playing around with Rust/WebAssembly too - calling between Rust and WebAssembly is a bit more fiddly than I expected, but I can understand why they did it.

I ended up trying to write a text adventure in Rust/WebAssembly for Ludum Dare ([https://ldjam.com/events/ludum-dare/40](https://ldjam.com/events/ludum- dare/40)). Due to other commitments, I ran out of time for the (48-hour) "competition", but am hoping to get something working in time for the (72-hour) "jam", which ends tonight.

(Brief blog on my initial experiences at [https://maffydub.wordpress.com/2017/12/02/getting-started- wi...](https://maffydub.wordpress.com/2017/12/02/getting-started-with-rust- webassembly/) .)

<comment><USER12> It sucks, there is no way to view the code in Chrome DevTools. The WASM file isn't listed in DevTools "source" tab at all.

[https://aochagavia.github.io/js/rocket.wasm](https://aochagavia.github.io/js/rocket.wasm)

A binary blob, that cannot be viewed except with an offline hexeditor.

WASM sucks. Please remove support and go back to ASM.js, at least it was readable and fast. Or transpile to JS in the first place. Thanks for destroying the open web.

<comment><USER11> It's listed in Chrome for me.

If I go to [https://www.hellorust.com/demos/add/index.html](https://www.hellorust.com/demos/add/index.html), bring up the "Sources tab under Chrome Developer Tools and click on "Run", then a "wasm" item appears - clicking on that shows me the disassembly.

Do you not see a "wasm" item?

While WebAssembly clearly isn't as readable as non-minified JavaScript, it's probably not much worse than minified Javascript, and I really can't see any difference from a readability perspective between this and ASM.js.

<comment><USER13> Adding another comment about that this is supported in Firefox as well. Using [https://www.hellorust.com/demos/sha1/index.html](https://www.hellorust.com/demos/sha1/index.html) as a example, I can see the following:

[https://i.imgur.com/rnOtuty.png](https://i.imgur.com/rnOtuty.png)

</comment></comment></comment></comment><comment><USER14> Cool!

One question – you are moving a lot in and out of the JavaScript and Rust "worlds" in your render function. Have you measured the difference of just creating a simple data structure with the render instructions and passing that once to JavaScript instead? I would expect that to be much faster.

<comment><USER15> The interface between WASM and JS is limited to native types that WASM supports which is just integers [0] (and maybe doubles?). With that limited API you cannot pass full structures around, the best you can do is pass what are essentially pointers to memory around [1].

[0] - [https://developer.mozilla.org/en- US/docs/WebAssembly/Underst...](https://developer.mozilla.org/en- US/docs/WebAssembly/Understanding_the_text_format#Signatures_and_parameters)

[1] - [https://becominghuman.ai/passing-and-returning- webassembly-a...](https://becominghuman.ai/passing-and-returning-webassembly- array-parameters-a0f572c65d97)

<comment><AUTHOR> Doubles are supported as well through the `f64` type I think. Interestingly, I am passing booleans in my code as well... and it seems to work.

<comment><USER16> I wonder if its converting them to 0's and 1's and sending that to the javascript?

<comment><AUTHOR> Just checked what is going on and that is indeed the case. Rust booleans compile now to the i32 type (though there is no guarantee that will stay like that in the future).

</comment></comment></comment></comment></comment><comment><USER17> Excellent write up! Thank you for taking the time: I've been uncertain how people manage to get the JS to interop with <Compile-to-WASM-lang>.

</comment><comment><USER18> Nice! I was worried that there would always be a lot of tweaking necessary to make things compile for this target but apparently that's not the case.

<comment><AUTHOR> It was surprisingly easy after I figure out some basic WASM stuff!

</comment></comment><comment><USER19> Finally, I broke 500! If you get your ship circling so that it appears briefly in each corner, you can get a nice stationary cloud of dots.

<comment><USER20> This game needs a highscore...

</comment></comment><comment><USER21> Interesting to see WASM targets for languages popping up. My personal favorite is this one for JVM->WASM: [http://teavm.org/](http://teavm.org/)

</comment><comment><USER22> I have to admit I was surprised how smoothly this runs, even on a relatively low-power CPU (Core m3).

</comment><comment><USER23> wow -- starts and runs very smoothly! A very good POC!

</comment><comment> King-Aaron You might want to look up the colloquial meaning behind "red rocket" before using it in branding exercises... :P

</comment><comment><USER24> just periodically hold down left and space to get lots of points awesome future ahead for games!

</comment><comment><USER25> Slightly off-topic. Does WASM support function pointers yet?

<comment><USER26> I think so. See `call_indirect` here: [https://github.com/WebAssembly/design/blob/master/Semantics....](https://github.com/WebAssembly/design/blob/master/Semantics.md#table)

</comment></comment><comment><USER27> Slow Edge & Android adoption are a major hindrance. The time needed to figure out integration between JavaScript and Rust is too long.

<comment><USER28> Why does Edge adoption matter? The highest browser usage share I could find for Edge was 4.21%

<comment><USER29> 4% is still a decent portion of the market, and likely contains a more desirable market demographic than those that are on IE (depending on your product, obviously). I'm not saying it's really important, but any potential users gained is a good thing, right?

<comment><USER30> I don't understand how it's a problem. Just show a message "Your browser is not supported. Please use one of the following browsers." To play games on Windows people install MANY proprietary launchers(From Blizzard, EA, UBI, etc. Steam is a glorified launcher also), I don't see how installing Chrome just to play a game is more difficult.

<comment><USER29> I'm with you on that, and it's the reason at my job we aren't bending over backwards for compatibility. We don't support IE. It's not _really_ a problem, but it could lose you users. How many, I don't know. Whether that's a problem or not is up to you.

<comment><USER31> Turn the question around: can we do something else with those resources to get 4% more users and an increase in goodwill?</comment></comment></comment></comment></comment></comment>


WordPress 5.0 Release Candidate - <AUTHOR> https://wordpress.org/news/2018/11/wordpress-5-0-release-candidate/ <comment><USER3> Having tested Gutenberg in the past months, I'm not sure it's ready to be the default editor and it's not because bugs or that it constitutes a major UI change that will take time to get used to.

My problem is that the underlying cognitive model that Gutenberg uses - <USER2> that can be used like lego to create more rich content - makes writing, just writing, more difficult than ever. It's so easy to get lost in creating and fiddling with blocks. Also, blocks hide so much of the underlying HTML, making troubleshooting content issues more difficult. The classic editor hade the same problem in visual mode but at least we could easily turn to HTML mode to debug issues.

<comment><USER4> You could always check out ClassicPress or calmPress. Both are forks of WordPress intended to maintain-and-improve the old way of doing things.</comment></comment>


A Problem With Amazon's Fire TV - <AUTHOR> http://liisten.com/the-secret-problem-with-amazons-fire-tv <comment><USER2> This article is yet another example of how ISP data caps delay or block innovation. If caps were common in the 90s and 2000s, streaming media services that we take for granted today wouldn't have been able to get off the ground.

We have the same problem with LTE networks today. Want to watch a world cup game on your 720p or 1080p smartphone during your commute to the office? One match is probably half of your typical monthly LTE data cap.

<comment><USER3> "ISP data caps delay or block innovation"

So they should provide totally unlimited data for a fixed price?

<comment><USER4> There is no such thing as "unlimited data", your speed is your cap.

Anyway, it's understandable that your ISP will want to have a talk with you if you push/pull 10+ TB every month (in this case, you're probably violating their "no commercial service on consumer line" rule), but 250GB/month is just ridiculous.

<comment><USER5> I can see that you're a bit out of date on these issues, so let me inform you:

1) No, your speed is not your cap. Net providers are increasingly implementing "soft caps" that they don't tell you about when you buy the service. 2) If you think 250GB/month is ridiculously low as a cap, go try to use 10TB a month with most providers and let me know what your results are.

</comment></comment></comment></comment><comment><USER6> ASAP sounds awesome. I mean, sure it should probably be an opt-in thing, but for people with no data caps it is a pretty killer feature. I usually pick a series and watch an episode or two when I get home from work to unwind before plugging in to whatever project I'm working on. If I could get 1080p all the time, I would be so happy. Netflix and Time Warner in general get used heavily around 6pm where I live, so connections are generally shit.

Change it to opt-in and allow users to select what level of clarity they want to cache (720p vs 1080p to save on data usage), and set a cap on the data usage used with ASAP and this is a great feature.

<comment><USER7> Torrent the seasons you want of the shows you want, overnight, and you can have the future today. You'll use significantly less data than the FireTV too.

<comment><USER8> Perhaps I want to support the shows I'm enjoying.

<comment><USER9> Then mail them a check. It's unlikely that free streaming video kicks back much of anything, from what we know of the music side.

<comment><USER10> That is impractical and Prime / Netflix isn't free

</comment></comment></comment></comment></comment><comment><USER11> I too experienced this. I have low-bandwidth and data capped Internet access that I blow through every month (there are no other Internet services in my area) and though I was getting a generally better stream from the Fire TV than from my other streaming devices, I was forced to unplug it when I couldn't find the "stop sucking bandwidth all the time" switch.

I'm sure most people with streaming TV solutions have unlimited plans with plenty of bandwidth but some of us don't and Amazon's one size fits all approach that sucks up all available bandwidth even when not in use, and that blows through reasonable data caps with just a day or two of being plugged in, is simply too much for this Prime household.

<comment><USER12> Hi, asadotzler -- I'm a tech reporter at The Huffington Post in New York working on a story about this, and I'd love to connect. I'm at timothy[dot]stenovec[at]huffingtonpost[dot]com. Thanks very much.

</comment></comment><comment><USER13> It seems that there's a problem with USA internet providers and their data caps, not with the device.

Why shouldn't my video device use, say, 10% of my available bandwidth if it improves user experience ? Americans already pay unreasonably high monopoly prices for their bandwith, and they aren't even allowed to use it?

<comment><USER14> My internet's unlimited. Not all Americans buy from nasty cable companies.

<comment><USER15> > Not all Americans buy from nasty cable companies.

Not all Americans live in a place where they have the luxury of choosing their ISP.

<comment><USER14> There's always a choice. It's like if I loved forests but decided to move to the desert, doesn't make any sense. That said, I won't argue there's some serious issues with ISPs in the US.

</comment></comment></comment></comment><comment><USER16> Had the exact same problem with my Kindle Fire. All of a sudden I had 30 gigs a day worth of usage. Completely insane. Saw it as an opportunity to finally put together the Debian-based router I'd been wanting to do, and darkstat confirmed that the Kindle was the bandwidth hog. A short traffic shaping script throttled the Kindle to a more reasonable data rate and the problem was solved.

I have no idea what the average Fire user could do in this situation. I found a few complaints across the web of similar problems, and all they could do was shut the thing off and stop using it. Very frustrating.

</comment><comment><USER17> This is a great feature.

It's a shame our internet infrastructure isn't up to snuff.

<comment><USER18> That's true, but this also feels like a bug with the Fire - it surely isn't intended (and doesn't need) to consume 80gb in one day in order to pre-cache content.

</comment></comment><comment><USER19> s/rouge/rogue/ obviously a simple typo, just putting it here in case the author didn't notice it.

<comment><USER20> I've been seeing this surprisingly frequently over the past year or two. My first assumption was that the wrong spelling is spreading around like a meme. My second thought was that people are relying on a spellchecker, and since "rouge" is correct spelling of another word, not highlighting this and the user lets it through.

<comment><USER19> I've got to agree, one I've noticed a lot recently is seeing people say that they'll loose [sic] out on an opportunity or somesuch, which I attribute to what you have suggested (as your second suggestion). I find it odd that there are certain misspellings that crop up more and more though.

</comment></comment></comment><comment><USER21> In a few years this might be expected behavior. Like Facebook with updating nearly all content in realtime, many enhancements to user experience demand more network activity.

In this case, it would be intelligent prefetching.

</comment><comment><USER22> This is why more routers should have a "traffic by IP" monitoring function. It would've made troubleshooting this problem almost trivial.

</comment><comment><USER23> I wonder if it's possible to provide a work-around using QoS or similar settings on one's router.

<comment><USER24> The problem is your QoS won't know if the box is streaming something you want to watch right now or something being cached.

Your best solution is likely unplugging the network or powering down (I don't know if this is possible) when not in use.

<comment><USER25> It would be a pain in the ass to turn the wifi on/off frequently, but they take a wired connection. You can't use the Fire TV for anything at all without an internet connection so it's probably not viable.</comment></comment></comment>


Are we at the start of the web 2.0 bubble? - <AUTHOR>

<comment><USER2> A financial bubble means that people are buying something less for its inherent value and more b/c they think that other people will buy it for more. Look at real estate prices. They should always be determined by people's salaries. The amount a person can pay for a mortgage is directly proportional to their salary. Salaries haven't been increasing much lately, but in the last few years real estate prices have gone through the roof. So home owners accept that they will be over-stretched in the short term in the hopes that they can "flip it" for more. Since people have become falsely convinced that "you can't loose in real estate" they are happy buying overvalued houses b/c they "know" that the price will only go up. The problem is you eventually run out of suckers. Eventually people say, this one bedroom condo is not worth a million dollars. After the notion that real estate prices "only go up" is disproved, the bubble quickly pops.

This is all to say that financial bubbles require lots of "transactions" for the positive feedback loop to take hold. People have to see the price going up up up up up up up enough to get hypnotized. Since there are very few public web 2.0 companies I don't see how this can happen. The transactions in Web 2.0 come from angels, VC's and big companies making acquisitions. Since there are very few transactions in the cycle there is little opportunity to pump the price up and pass it on to suckers. Also the suckers in question are professional investors and big software companies. While they may make amazingly stupid decisions from time to time, they are not nearly as stupid as the hordes of unwashed E-traders.

I think the real question is, "is Web 2.0 oversaturated?" That's a very different dynamic than a bubble.

</comment><comment><USER3> No we are not at the start of a Web 2.0 BUBBLE. We are at the beginning of the Web 2.0 investment CYCLE.

We are starting up the curve where investment, attention and innovation are rising. A BUBBLE is later up the curve.

A BUBBLE has a negative connotation and implies that negative things can or are happening. The question you would be asking in a bubble is "Everyone has made a ton of money, can this get any bigger or should I get out now before the floor crashes through?"

I don't see anyone in that mindframe yet.

<comment><USER4> How much weight should we assign to the decrease in cost to entry between '99 and '06 in calculating the point at which we're saturated with startups? How many local event (and share your plans with your friends!) evite competitors do I need to have access to? It's getting a little out of hand.

When Web 2.0's cycle increases to the point of a bubble and explodes in a rainbow-reflective-gradient shower of glossy logos, it won't be the VCs that get burned, it'll be the little guys hunting VC (or profitability) who rolled their own and failed or didn't succeed in a stellar way. It'll be much, much quieter than the dot-com bomb.

I'm actually pleased to see projects starting to end up in the TechCrunch deadpool, and I'm waiting to see if traffic to FuckedCompany.com starts increasing.

</comment></comment><comment><AUTHOR> Huh! When I first submit this question, I didn't get the text box! Anyway, my main question is as follows:

-> Are we at the start of a web 2.0 bubble? I say this because I see (way) too many startups doing the same thing over and over again (e.g.: social networking, web based im, wiki/blog backed news feeds, web based video, etc). Some of the newer ones are trying to add some money making (biz model as the vc-s like to call it) tactics to the whole game, but, mostly, most of these startups have no real monetary benefits.

-> If we are at the start of a bubble, when will it burst?

-> When the bubble bursts, how bad will it be this time: global economic meltdown?

<comment><USER5> A big difference between the .com bubble of the late 90's and the situation right now is in the number of companies applying for an IPO. That number is still currently a fraction of .com bubble levels.

VC investments are on the rise but still lower than at the peak of the bubble.

When looking at these statistics it doesn't yet resemble what we saw in the late 90's. Maybe people learned their lesson. Or it could be just the resulting chilling effect from the Sarbanes-Oxley Act... Its a lot more difficult to go public nowadays.

</comment></comment><comment><USER6> I think that investors are jumping on facebook apps like they did on regular websites in the first bubble.</comment>


FBI explains how it linked North Korea to the Sony Pictures hack - <AUTHOR> http://www.engadget.com/2015/01/07/fbi-explains-north-korea-link-to-sony-hack/

<comment><USER2> One problem I have with the "you don't see what I see, just trust I'm right" line is that there's no way to refute it -- short of an outside, independent party providing a different compelling analysis and interpretation of the forensic evidence. The relevant parties (Sony, FBI, etc...) don't have any interested in sharing, and in fact have a vested interest in not sharing, that forensic evidence. So... I strongly suspect that right or wrong, the existing given position is the story that will always stand.

</comment><comment><USER3> >"They don't see what I see,"

No shit. You haven't showed us anything.

</comment><comment><USER4> The title of the Engadget story is wrong, the FBI did not explain anything, and then saying "they don't see what I see." is fairly idiotic way of adding to the explaination.</comment>


Ask HN: Recommendations for a simple JSON persistence library for JavaScript - <AUTHOR> Please recommend a simple JavaScript library to persist JSON data (could be on a third party server).
I often need to store data from JS. It takes a while build APIs and DB support for every single change in what might be a throw-away code. Also, I dont want to tie into any application framework.
There should be something simple like this. Any recommendations? <comment><USER2> [https://jsonbin.io/api-reference/bins/create](https://jsonbin.io/api- reference/bins/create)

</comment><comment><USER3> Try [https://www.jsonstore.io/](https://www.jsonstore.io/)

</comment><comment><USER4> Are you looking for something like Firebase?

<comment><AUTHOR> I assume Firebase is a heavy framework. I didn't think that's what he needs</comment></comment>


Amazon's Android App Store Opens Up Shop In 39 Countries - <AUTHOR> http://techcrunch.com/2014/07/31/amazons-android-app-store-opens-up-shop-in-egypt-singapore-and-39-other-countries/?ncid=rss&utm_content=buffer73150&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer

<comment><USER2> Yeah, good luck with that.

My experience is that the Amazon App Store has basically zero traction outside the US and UK. And then even if you do manage to sell a few then you'll probably never see the money as there isn't one Amazon store but each region has its own. This means you need to hit the minimum payout in that region before Amazon will pay you for that region.

<comment><USER3> If it's anything like Kindle Direct Publishing, you eventually see the money, even if it doesn't hit the payout limit. I vanity-published an eBook and it surprisingly sold two copies in the UK. It took three or four months, but I eventually got the royalty payment for them, something like $0.70.

</comment></comment><comment><USER4> Interesting how this compares to Apple's and Google's lists:

Google: [http://support.apple.com/kb/TS3599](http://support.apple.com/kb/TS3599)

Apple: [https://support.google.com/googleplay/android- developer/tabl...](https://support.google.com/googleplay/android- developer/table/3539140?rd=2)

Since Amazon's App Store is now available in countries where Apple and Google do not service, what was the previous option for buying apps? Did they just not do so or are smartphones not prevalent there?

<comment><USER5> In my country people do never buy apps either from Apple Store or Google, this isn't because we are not in the buyers list, but because we (the majority) don't have International Credit/Debit card, those cards can be used only in locally. At least, banks her start to offer International Cards, but you need to request them first.

</comment></comment><comment><USER6> ... and the crowd goes mild.</comment>


Countries that mandate TB vaccine are seeing fewer coronavirus deaths - <AUTHOR> https://fortune.com/2020/04/02/coronavirus-vaccine-tb-deaths/ <comment><USER2> This is quite exciting news! My understanding is that the vaccine against tuberculosis varies from a country to a country greatly, which can explain variance in the outcome.</comment>


What of the lowly page number - <AUTHOR> https://theoutline.com/post/4257/what-of-the-lowly-page-number <comment><USER2> One interesting I've noticed in older books is that instead of page numbers (which are sort of like indices in an array), they used a system of writing the first word of the recto (right page) at the bottom right corner of the verso (left page) creating a linked list of sorts.

You can see some examples in this book [https://archive.org/details/opticksortreatis1730newt](https://archive.org/details/opticksortreatis1730newt) (although it has page numbers too).

<comment><USER3> very cool, does anyone happen to if there's a term for this?

<comment><USER4> [https://en.m.wikipedia.org/wiki/Catchword](https://en.m.wikipedia.org/wiki/Catchword)

</comment></comment></comment><comment><USER5> Those animated section separators (<hr>) are very distracting. Consider that someone might want to focus on the text!

</comment><comment><USER6> I worked on page number extraction for a large online retailer. There were some amazing places they could be located. Stacked numbers indicating location in book/section/chapter, middle of the outside margin, mixed up based on if it was a title page or main body page.

</comment><comment><USER7> What of the lowly Page Down key? It certainly can't scroll this website.

<comment><USER8> [https://outline.com/bMgZ5t](https://outline.com/bMgZ5t)

<comment><USER9> It's kinda funny that theoutline.com becomes readable when accessed from outline.com

<comment><USER8> I'd noticed ...</comment></comment></comment></comment>


Text message crashes iphone - <AUTHOR>

This particular text locks iphone users out of their messaging app if sent via text message. I think its some sort of malformed unicode, but in any case this is not ok apple.<p>لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ 冗 <comment><USER2> Seems to be an overflow buffer attack that predominantly effects 5s users.

via u/MrBnF [http://www.reddit.com/r/explainlikeimfive/comments/37edde/el...](http://www.reddit.com/r/explainlikeimfive/comments/37edde/eli5_how_that_text_you_can_send_to_friends_turns/)

</comment><comment><USER3> More discussion about the possible cause in another Reddit thread: [http://www.reddit.com/r/apple/comments/37e8c1/malicious_text...](http://www.reddit.com/r/apple/comments/37e8c1/malicious_text_message/)

I don't think it's a buffer overflow attack. Seems to be something wrong with rendering Arabic text when a message is shortened.</comment>


Show HN: Why we need yet another bookmarking app. - <AUTHOR> http://beenpod.com

<comment><AUTHOR> We are releasing a public version of Been this week, and would love for you to try us out. Been bookmarking is functionally novel in two ways: (i) it's designed for quick, real-time collaboration among small, private groups of friends and family. And, (ii) its graphical UI (very much like a "heads-up display") enables uninterrupted organization and review of pages while users surf.

We introduce a twist. We want users to own their own tracking cookie alternative (which is what Been user data can become). We will not share user data with third parties. Instead, Been will facilitate the voluntary exchange of data between users and companies. We think this is a better way, and bookmarking is a good place to start.

Been is fully functional regardless of whether people ever choose to share their data with companies. Our alternative to cookies is "merely" a byproduct but an important option that is available whenever users become comfortable with this new approach and companies prepare for a different way to get their message to customers.

One more thing, for the month of December, we are conducting 3 weekly drawings for new iPad Mini Retinas for users ("Magic Been Hunt"). Directions are posted @beenpod. To play, you just need to add a designated URL (to be tweeted) to your Been collections by the weekly deadline using our add-on.

Thanks!

—Dave

</comment><comment><USER2> I like this, setup was smooth. However, I almost didn't bother due to the lack of screenshots. The video was not that persuasive; I decided to take a chance on it because this is an area where I've been actively looking for a better solution for s couple of years now. I just urge you to put some of the textual information shared here onto the website itself.

Oh, and why can't I import my existing and voluminous bookmark collection?

<comment><AUTHOR> And we've debated the point internally about the text a lot. Much of it is in the Tour section once you log in and expand the page for the "Cookie Been". But we may bring it out once again. Thanks!</comment></comment>


Cool: paulgraham.com #4 result on Google for "startups" and #5 for "startup" - <AUTHOR> http://www.google.com/search?hl=en&q=startups&btnG=Search <comment><AUTHOR> And, I just did a search for "write a story web 2.0" on google.com and Paul is #5. Apparently that's because he's also the #4 search result for just "web 2.0"

[http://www.google.com/search?hl=en&q;=write+a+story+web+2.0&btnG;=Search](http://www.google.com/search?hl=en&q=write+a+story+web+2.0&btnG=Search)</comment>


Arm China CEO has refused to step down after being dismissed by Arm's board - <AUTHOR> https://www.techradar.com/news/arm-sacks-china-boss-over-secret-cayman-islands-activity-but-he-wont-leave <comment><AUTHOR> For anyone looking for context, ARM has essentially lost control of its IP and IP licensing in China. This is largely a result of the US/China battle over Huawei; the ARM China CEO has repeatedly stated his willingness to continue working with Huawei despite the US ban. As a consequence, there will likely be a major chilling effect on hardware companies (or maybe all companies) that want to set up JV's in China.

</comment><comment><USER2> [https://www.electronicsweekly.com/news/business/arm-china- as...](https://www.electronicsweekly.com/news/business/arm-china-asks-beijing- government-intervene-row-arm-uk-2020-07/)

> Arm UK sacked the chairman and CEO of Arm China, Allen Wu, but Wu refused to > go.

> Wu is is said to have hired his own security guards and won't let > representatives of the Arm China board or Arm Ltd on the Arm China premises.

> 200 Arm China employees have signed a statement saying it "is a Chinese- > controlled joint venture that should abide by the Chinese laws and fulfil > the social responsibility in China. We plead with the government to pay > attention to the turbulence Arm China is facing now, and intervene to > protect this strategic asset."

Lovely. Brilliant demonstration on why everyone should stay out of China.</comment>


About those lava lamps - <AUTHOR> https://gist.github.com/marick/3ec112bc38b2af267e15 <comment><USER2> Left alone to our own willpower, most of us would be less accomplished. We'd live in dirtier houses, wash the dishes less, and treat ourselves less well. It's the promise of others seeing our accomplishments, being around our mess, or seeing us naked that keeps us doing right by ourselves. Doing chores is a chore, but social pressure and acceptance is a powerful drug.

<comment><USER3> I disagree. I clean my home because I like it that way. I work better in a clean, organized environment. I exercise because it makes me feel better and stronger, and is just a good idea for long-term health. I work on personal projects because I want the results of those projects to exist. About the only thing I do for other people is my actual job, which pays the bills for the larger home and more involved lifestyle that comes along with a wife and children. (Well, I guess the whole raising of children and participating in a marriage is done for other people. And charity work. But hopefully you get the larger point.)

<comment><USER4> Have you ever cleaned up because company was coming over? Then clearly external motivation was useful.

Now, you may have internalized a lot of this motivation, but at that point it's not a question of willpower just habit.

<comment><USER5> Believe it or not, some people clean because they like things clean, not because they want to impress other people. I am one of those people. A dirty environment makes me miserable, regardless of whether anybody else ever sees it (and I have many multiple-month spans of a clean apartment seen by nobody else to prove it.)

> Have you ever cleaned up because company was coming over?

Yes, but irrelevant. Note that I don't make an special effort, I just move my regular chores forward a bit so my place is seen at the peak of the cycle, rather than the trough.

<comment><USER4> _the peak of the cycle_

That's normal behavior. The point is by moving up the cleaning cycle you're reducing the time in a trough which increase the average level. Aka 100,95,90,100,95,90... has a lower average than 100,95, _100_ ,95,90,100...

PS: Anyway, this is _most people._ If you're an introvert that does not have guests it's a non-issue.

</comment></comment></comment></comment></comment><comment><USER6> This is a great story, but describing the lava lamp as a "completely irrelevant stimulus" misses a key insight into _why_ this worked: it introduced (or strengthened) social pressure to fix a tragedy of the commons.

"Everyone knew broken builds should be fixed quickly", but each individual felt a benefit of being able to push code without waiting for compilation / tests to run. Breaking the build had a cost, but that pain was being _distributed_ across the team (other programmers finding the problem), and _delayed_ (waiting for them to complain). So the feedback loop was too weak to discourage breaking the build.

This is a classic tragedy of the commons, and far from being "unreasonable" as the author suggests, it's a fairly rational inclination for each individual actor. Other people will find my bugs and breakages for me, and probably do some of the diagnostic work for me too - why _wouldn 't_ I pass off that work to them?

Since a team is (hopefully) a society rather than a competition, one answer is "because I don't want to be known as a careless individual who creates work for others". That's why paying attention to the lava lamp isn't "unreasonable" either - everyone can see it, so it makes that social pressure much more visible. It also means the cost of a broken build is less likely to get spread across the team - if someone hits a problem, instead of puzzling for half an hour whether the build is broken or they did something stupid, they can just glance up and see the red lava lamp, and immediately exert social pressure.

By making social pressure stronger and more immediate, the lava lamp pushes the cost of breaking the build back onto the person who broke it. That restores a missing feedback loop, which is often an effective way to change a culture.

<comment><USER7> In addition to all of the above, it creates one of the greatest impetuses (impeti?) for programmers, an arbitrary and voluntary constraint. I don't really have any evidence other than anecdotes, but every programmer I know loves them in some form or another.

</comment></comment><comment><USER8> A better way to state this, rather than a reason/unreason lens:

"In every job that must be done / there is an element of fun. / You find that fun and snap! The job's a game."

<comment><USER9> Wait, so every task I undertake will become a piece of cake?

<comment> squeaky-clean Games don't have to be easy for you to enjoy them (ever play Super Meat Boy, or any old Nintendo game?).

Making a game out of fixing a bug before a lava-lamp bubbles up doesn't make bug fixing easier. It just makes it into a more compelling option than taking off for an early lunch after deploying.

<comment> squeaky-clean Apparently there's a Mary Poppins' joke that went over my head.

</comment></comment></comment></comment><comment><USER10> If you were to use a higher wattage bulb with a dimmer that lets you adjust the melting time and then deliberately set that time to 15-20 minutes, would people still try to beat it?

My guess is no. Once a person gets involved in picking the time, it stops being a fun thing to challenge yourself against, and starts being your annoying boss trying to micromanage failed builds.

<comment><USER11> Maybe you could fix it a bit by making the time semi-random. It's not nearly as fun if it's a static clock and accurate down to the second.

<comment><USER12> It won't work either. You still have a person trying to play tricks on others, people resent that. You've transitioned from a self-imposed PvE challenge to an arbitrary one imposed by your boss. The game stops being a game and starts being work with weird rules.

<comment><USER10> Right, I think it works because it's arbitrary. It just happens to be in a sometimes realistic timeframe for a fix, so you can make a game out of it. If somebody else is setting/influencing the benchmarks, suddenly it stops being fun. You'd complain about "This is terribly balanced. Timer should be at least 30 minutes. Nerf wattage next patch!"

For a naturally occurring timer, you just work within the constraints you're given. That's what they are and there's nobody to blame or change it. (I mean, you could easily put a lower wattage bulb in, but that won't occur to most people)

Or maybe it's like the placebo effect where you know what's going on but somebody could control the timer and it works anyway. Who knows?

</comment></comment></comment></comment><comment><USER13> At one company I worked, we had a rubber chicken. When you broke the build, the rubber chicken lived on your desk until somebody else broke the build.

One developer got a little annoyed at this so he cut the chicken's head off, then repaired it with hose clamps. It was sort of a Frankenchicken.

<comment><USER14> > One developer got a little annoyed at this so he cut the chicken's head off

That's exactly what happens when such games are overdone or (ab)used in attempt to "compensate" for programmers being unsatisfied with whichever aspects of the project.

<comment><USER15> I also feel like this potentially unfairly makes the deva who have to work on more sensitive and critical sections look worse than they are. Perhaps it breaks because its a far more critical and sensitive space? Or am I way off base on this thought

<comment><USER13> The chicken was intended to be a silly friendly thing among our team, but not everyone seemed to take it that way. Yes, I and my team earned the chicken more than anyone mainly because 1) I seemed to check in the most code, and 2) our projects all started with the letter 'a', so we got the blame on days that multiple projects were broken.

Commonly we see many folks (particularly non-coding managers) treat a nightly build as some sort of indicator of developer competence or code quality. I have even heard anecdotes of devs being fired for breaking the build in a sufficiently large organization (but not the one with the chicken). A successful nightly build is one of those things that's trivially easy to measure and on the surface looks like progress. But of course, the easiest way to never break the build is to just never check any code changes in.

But I believe strongly that a nightly build should be treated as a tool like any other: in any large software project there will be times when a dev makes an honest mistake with the checkin process or simply _cannot_ succeed at testing every interdependency by building on his own box beforehand. So give the devs something to break, and this ought to be the function of the nightly build. If the nightly is so critical to organizational progress that it simply must not be broken, then you need to give the devs something else.

The system should be made to serve its users, and not the other way around.

</comment></comment></comment></comment><comment><USER16> So what's a good way to build a build lava lamp in 2015? I'm thinking wall adapter that has wifi and offers a simple webserver that switches on and off on POST.

<comment><USER17> Lots of off-the shelf "smart plugs" these days, with varying degrees of open- ness and convenience to their APIs.

Or for DIY, a cheap micro plus a opto-isolated relay board.

<comment><USER18> Something neat that I found out recently is the existence of solid-state- relays. They are basically opto-couplers that can directly switch a load. You can use them instead of normal relays, and drive them directly from a digital io pin. Pretty sweet.

Or just get a particle photon with the relay shield. Extremely easy to set up, and it comes with a REST API.

</comment></comment></comment><comment><USER19> [https://en.wikipedia.org/wiki/Gamification](https://en.wikipedia.org/wiki/Gamification)

</comment><comment><USER20> We use a old traffic signal powered by a Raspberry Pi to similar effect. We have found it quite useful in providing timely feedback and encouraging the quick resolution of issues.

You can see pictures and source: [https://github.com/tantalic/build- light](https://github.com/tantalic/build-light)

</comment><comment><USER21> reminds me of the days when large computer hardware had warning lamps mounted on top, whether it was a printer or tape drive, so that it was obvious to even those unfamiliar with the systems that something was wrong. So it was almost a sense of pride among the operations staff the lights were always out

<comment><USER22> _A problem light. Wow, Dad. What a super idea. No, you should always put one of those on the ninth wonder of the world._

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

</comment></comment><comment><USER23> At a video game studio I worked at a while ago I hooked up some (real) traffic lights to talk to our CruiseControl.NET server to report breakages. But actually it was just for fun and didn't make any difference - the main thing was that we managed to instil into the culture a desire to always have a working build. Pretty much all the programmers were very proactive about fixing breakages, even when it wasn't a programming problem. It was sometimes possible for artists and level designers to break the build, and the programmers would always be pretty quick to respond and help them figure out the problem and to fix it or build in safeguards and tests to ensure they couldn't check in broken stuff.

</comment><comment><USER24> Programmers would be wise to understand how irrational people are and that reason rules very little of our lives.

</comment><comment><USER25> Why do people treat a broken build as some kind of emergency, when you can just revert the commit? It's a trivial fix that anyone can make in about a minute.

<comment><USER13> Often this is done, manually. With a big enough team and code base, by the time the brokenness is detected, more commits which depend on it will have piled up.</comment></comment>