The History of Unix, Rob Pike

Rob Pike talks about the history of Unix and his quite remarkable career.  And here’s my favorite quote from the video, referring to “The Unix Programming Environment” book:

It is amazing to me that the book that came out in the late 1983 is still technically relevant today.  It’s insane!

Specification gaming examples in AI

Here’s a super fun list of things that artificial intelligence figured out by gaming the rules, like inconsistent and incomplete specifications, bugs, and other bits that humans frequently assume and ignore.

Some examples to get you started are:

  • Aircraft landing: evolved algorithm for landing aircraft exploited overflow errors in the physics simulator by creating large forces that were estimated to be zero, resulting in a perfect score.
  • Block moving: a robotic arm trained to slide a block to a target position on a table achieves the goal by moving the table itself.
  • Data ordering patterns: neural nets evolved to classify edible and poisonous mushrooms took advantage of the data being presented in alternating order, and didn’t actually learn any features of the input images.
  • Road runner: agent kills itself at the end of level 1 to avoid losing in level 2.
  • Ruler detector: AI trained to classify skin lesions as potentially cancerous learns that lesions photographed next to a ruler are more likely to be malignant.
  • Tetris: agent pauses the game indefinitely to avoid losing.

This is truly thinking outside the box!

On submitting trivial patches

Hacker News points to this Linux kernel patch, done by a 4-year old.  With some assistance, of course, but still impressive.  And while the story is cute, the comments are even better.  In particular, a link to this email from Linus Torvalds, talking about the importance of the small and trivial contributions.

To me, the biggest thing with small patches is not necessarily the patch itself. I think that much more important than the patch is the fact that people get used to the notion that they can change the kernel – not just on an intellectual level (“I understand that the GPL means that I have the right to change my kernel”), but on a more practical level (“Hey, I did that small change”).

GraphIt – high-performance graph domain specific language

GraphIt is a high-performance graph domain specific language.  If you are involved with graph data structures (web, social networks, maps, and so on and so forth), check it out.  It’s sounds pretty cool.  Here’s a 20 minute video of a talk that does an overview of the language and some examples.

GraphIt is open sourced under MIT license.  Here’s the GitHub repository.