Raspberry Pi – a credit-card sized Linux computer for $35

Update 2011-03-09:Raspberry Pi Linux distro released, but the $35 computer faces new delays” by Ryan Paul for Ars Technica.

Today the Raspberry Pi Foundation announced that one can now buy the Raspberry Pi, a credit-card sized computer board that costs only $35. The Foundation entered licensed manufacture partnerships with two British companies to produce and sell the device. One of the two, RS Components (RS) is already experiencing tremendous interest in the Raspberry Pi. Quoting Chris Page, General Manager, Electronics at RS:

Array.prototype.concat is not generic

The ECMAScript 5.1 specification states that the array method concat is generic [1]. This post argues that that isn’t true in practice.


New Node.js module “lazylines”: read a text stream, line by line

The new Node.js module “lazylines” allows you to read a text stream, one line at a time, lazily.


Generate emails via mailto URLs on Node.js

This post tells you how to generate emails on Node.js and open them in an email program. It uses mailto URLs to do so. The advantage of this approach is that you can manually check and edit such emails before sending them.

openurl – a Node.js module for opening URLs

openurl is a Node.js module for opening a URL via the operating system. This will usually trigger actions such as:
  • http URLs: open the default browser
  • mailto URLs: open the default email client
  • file URLs: open a window showing the directory (on OS X)


Gatekeeper: Apple is taking security seriously

OS X 10.8 Gatekeeper in Depth” by Rich Mogull (for Securosis Blog) is an excellent analysis of Mountain Lion’s [1] new security features. It also gives Microsoft its due, which is rare in Apple reporting. Quote:


Major and minor JavaScript pitfalls and ECMAScript 6

Update 2012-02-24: New content in sections
  • 2.1. Function-scoped variables
  • 2.2. Inadvertent sharing via a closure
  • 2.7. for...in is weird

JavaScript has many pitfalls. This post examines whether they make JavaScript “unfixable” as a language – as some argue. To do so, it separates the pitfalls into two categories: The ones that become harmless after learning about them and the ones that don’t. We’ll also look at how the upcoming ECMAScript 6 fixes most problems.

Warning: If you are new to JavaScript then don’t let this post be your introduction to it. Consult other material first.

iCal: disable page flip animation, stitched leather look

There are two ways to disable iCal’s agonizingly slow page flip animation:


Flash browser plugin on Linux to be Chrome-only

Quoting “Adobe and Google Partnering for Flash Player on Linux” by Mike Chambers for the Adobe AIR and Adobe Flash Player Team Blog:


Twitter to eliminate their hashbang (#!) URLs

In a conversation triggered by Tim Haines, Twitter front end engineer Dan Webb refers to his article “It's About The Hashbangs” on the problems of using #! URLs in JavaScript. He then goes on to confirm:


Integers and shift operators in JavaScript

JavaScript only has floating point numbers. This post explains how integer operations are handled, specifically the bit shift operations. It will also answer the question whether n >>> 0 is a good way of converting a number to a non-negative integer.


Transforming HTML with Node.js and jQuery

The npm module jsdom enables you to use jQuery to examine and transform HTML on Node.js. This post explains how.


OS X Mountain Lion

Update: Section “More information on the web”.

Apple has just introduced the next version of OS X, called “Mountain Lion”. It will be available in late summer. This post summarizes the highlights.


NaN and Infinity in JavaScript

Update: New section “Detecting NaN”.

This post looks at two special values that can be the result of operations that normally return numbers: NaN and Infinity.


Taming tabs and bookmarks

Tabs were a major usability advancement for web browsers. They make it much easier to work with multiple locations at the same time and the ability to open links “in the background” turns them into a to-do list for pages that one still wants to read. However, before long, tabs also exhibit the negative traits of to-do lists: There are too many things still to consider and everything grows stale. This post presents ideas for how to tame tabs, for how to avoid those traits. Some of the ideas can be put into practice right now, others are about improving browsers and making a mental shift to fully exploit those improvements.

Season guide: “Star Trek: Enterprise” S3

The first two seasons of Star Trek: Enterprise were disappointing. The arc of the Temporal Cold War simply failed to engage me emotionally. All that changed with season 3 that largely dispensed with that arc and turned in a nicely plotted serialized story. Even though it is almost 10 years old, it is still fun to watch and reminded me of how much I miss having space-borne sci-fi on TV.


Exemplar patterns in JavaScript

This post explores exemplars (factories for objects) and how to implement them. The term exemplar has been proposed by Allen Wirfs-Brock to avoid the term class, which is not a good fit for JavaScript: Exemplars are similar to classes, but they are not classes.


PDF.js: display PDF files in your browser, without native code

Update 2012-08-29: Firefox 15 tip: enable the built-in PDF viewer

Quite amazing: PDF.js is a JavaScript library that displays PDFs in browsers. At version 0.2, it comes with the requisite warning: “Note: This is an early-stage prototype. Several documents might not render properly.”


Servo: a vision for the future of Firefox

  • 2012-06-28: Restructured much of the content, to make it easier to digest.
  • 2012-06-27: New section “More information on Servo”.
Recently, Mozilla stopped the Electrolysis project [1] that was to give Firefox per-tab processes. Hence, I was relieved when David Bruant pointed out to me that Mozilla haven’t given up on a parallel browser. They are working on a project called Servo which is being implemented in the Rust programming language.