Creating new programming languages is becoming easier ... and harder

In December 2010, Brendan Eich talked about Mozilla’s new programming language called Rust (that focuses on safety and concurrency, to replace C++ as Mozilla’s implementation language). He mentions that creating new languages is still important, because they can recycle old research, but repackage it so that it becomes more mainstream-compatible. One example is Clojure that continues the Lisp tradition, but on the Java Virtual Machine (JVM). There are two new aspects to modern language design:


ECMAScript.next features are taking shape

The ECMAScript wiki has two pages with features that might make it into ECMAScript.next:


Patterns for modules and namespaces in JavaScript

Update 2011-11-19: Bridging the module gap between Node.js and browsers

JavaScript does not come with support for modules. This blog post examines patterns and APIs that provide such support. It is split into the following parts:

  1. Patterns for structuring modules.
  2. APIs for loading modules asynchronously.
  3. Related reading, background and sources.


George R. R. Martin: a successful fantasy author and his fans

George R. R. Martin is writing the ongoing fantasy series “A Song of Ice and Fire” which has sold more than 7 million copies world wide. Recently, HBO launched a new series that is based on the first book in the series called “Game of Thrones”. The New Yorker has recently published the article “George R. R. Martin’s Fantasy Books and Fans” which gives interesting insights into the life of a best-selling fantasy author.

The Sony S2 tablet might make dual screens work, thanks to Android

There are some awful dual-screen devices out there. For example, the Acer Iconia 6120. It is a laptop where Acer made the wrong observation that tablet users love typing on glass and replaced the keyboard with a touchscreen [1]. Now Sony has given that idea another go and presented the dual-screen S2 tablet with Android Honeycomb [2].


New Honeycomb tablet from Lenovo this summer, with optional stylus and trackpad keyboard

This is my next has published a rumor about Lenovo bringing out a tablet this summer [1]. Noteworthy:


ECMAScript 5 spec: LexicalEnvironment versus VariableEnvironment

This post examines some of the details of how environments are handled in the ECMAScript 5 (ES5) specification [1]. In particular, there isn’t a single “current environment” in ES5, but two: the LexicalEnvironment and the VariableEnvironment. A piece of code at the end exploits these ES5 internals to produce different results on Firefox and Chrome.

Motorola is working on its own mobile OS

This blog post lists the steps that Motorola has taken towards creating its own operating system and then explains why that decision makes sense.


iPhones and iPads are keeping a log of where you have been

The article “Cool or Creepy? Your iPhone and iPad Are Keeping Track of Everywhere You Go, And You Can See It” [via @netzzwerg] describes that iPhones and iPads keep a log of the locations you have visited while they were switched on:

Iterating over arrays and objects in JavaScript

This post explains three approaches for extracting information from arrays and objects:
  1. for loops,
  2. array methods (courtesy of ECMAScript 5 [1]),
  3. listing property keys.
It concludes with best practices for applying these approaches.


Song: “From where I’m standing” by Schuyler Fisk

Schuyler Fisk gives a stand-out performance of the song “From where I’m standing” [itunes.com] in the movie “I’m Reed Fish” (which I also recommend, by the way). I like the unplugged version [YouTube] of this song better than the studio version [itunes.com]. But that’s because I’m not that into country music. I’d love to hear a non-country studio version.

The truth behind the seemingly too honest URL of a Kate Middleton article

Note: If you want to be nice to the Independent, you don’t click on the URLs below and believe me that they do display a Kate Middleton article (well, at least they did when I wrote this post).

Currently, the following URL is making the rounds on the Twitters:
It links to the article “Kate Middleton jelly bean expected to fetch £500”. Why does it work?


Are Amazon and Apple playing chicken regarding in-app purchasing?

Marco Arment speculates that Apple and Amazon might be locked in a power play regarding Apple’s in-app purchase requirement. Currently, Amazon is still not adhering to this requirement (whose deadline is June 30th, 2011).


JavaScript: converting any value to an object

This post is about converting between primitive values and wrapper objects [1]. Thankfully, one is usually not faced with this kind of task in JavaScript. The most frequent use case is to add properties to a primitive. As a primitive is immutable, you need to convert it to a wrapper object to do so. Read on if you want to see some of JavaScript’s more obscure corners.

Let us start with a short quiz:
What does ({}).valueOf.call(myvar) do?

Google’s difficulty with social networking

Social networking is an essential next step for Google’s two core businesses: advertising and search. For advertising, because it is becoming an important marketing instrument. For search, because people use it to share and rate information (including links). Thus, it is no surprise that Google is trying hard to catch up with Facebook regarding social networking. The article “Larry Page’s first blunder” argues that Google is currently taking the wrong approach and offers suggestions for improvement.


A preview of webOS 3 and where it’s better than the iPad

PreCentral has a guided tour of HP’s webOS 3.0 Beta 1 running on an emulator. The following is a list of things that webOS 3 does better than the iPad. List and screenshots after the break.

Great insight into the workings of the new AOL/Huffington Post

AOL has recently bought the Huffington Post. The blog post “Leaving in a Huff” [via Marco Arment] gives us great insight into how AOL does business in the aftermath of this purchase.


The problem with do-not-track (opting out of online tracking)

This post gives a brief explanation of online tracking, presents a new browser feature for opting out of it, and then points out the flaws of that feature.


Internet Explorer 10 is “native” and good for webapp developers

The Internet Explorer 10 Preview (IE10) comes with many new features, two of them are especially good news for webapp developers:

A page with useful JavaScript links

I have created the page “JavaScript links” where I am collecting JavaScript links that I find useful.


The Singleton pattern in JavaScript: not needed

This post argues that the singleton pattern is usually not needed in JavaScript, because you can directly create objects. It then slightly backpedals from that position and shows you code skeletons that you can use if your needs go beyond the basics.


The Singleton pattern and its simplest implementation in Java

This post motivates the Singleton design pattern and explains its implementation in Java.


Information management classics: Lifestreams (1996)

Lifestreams [1] were created in 1996 to correct some of the shortcomings of document management when used for personal information management. Even today, document management is still the dominant way of information management, both conceptually and as a user interface metaphor. Some of the shortcomings are:


Apple’s next dock connector

Apple will eventually need to upgrade its dock connector. The prime candidate is Thunderbolt [2], because it is fast and carries enough power even for charging iPads. It has been designed with mobile applications in mind. But there is one problem: If Apple migrates its iOS devices to a Thunderbolt connector, how are PCs and older Macs to sync with them? A patent that has recently been granted [1] to Apple sketches a solution.


How Google Chrome reduces the processor load of webapps

With the web’s popularity, it is common for web browsers to have many open tabs at the same time. Processor load can significantly increase in such a case. Google Chrome has implemented several measures to help with that:


Movie: Beautiful girls (1996)

Picture by Amazon
Beautiful girls” [amazon.com]. Cute little movie. Contains many acute observations about the dynamics of relationships. And about dreams and ideals versus reality and what actually makes us happy. The cast is great, with Natalie Portman actually looking the age of the part (which is important for the role), Michael Rapaport, Matt Dilon, Uma Thurman, and several others. This movie does not feel dated at all, it only slightly shows its age when the discussion turns to supermodels (which were a big phenomenon in the 1990s).

After you have watched it: Fun how Uma blows off each one of the three male protagonists and becomes kind of a symbol for unfulfilled dreams. The photo on the poster hints at that fact, by surrounding her with the guys. Rapaport and Portman are the stand-out performances of the movie.


Engadget Reloaded: Topolsky working with SB Nation on new tech website

Topolsky was editor-in-chief at Engadget. He left after AOL bought it and he didn’t like their policies. Now he has announced his latest project [via Marco Arment]: a cooperation with SB Nation.

Why the iTunes store should be web-based

I think that the iTunes Store (apps, video, audio, ebooks) should be web-based, in a manner similar to Amazon’s Kindle store: Buy on the web, sync with your player app later.

Amazon as a competitor to Google and Apple

Amazon seems to become a competitor for both Google and Apple. Recently, it has taken the following two steps:
  • It created its own app store for Android. [1]
  • It created an online storage service that streams music to mobile and other devices. [2]

Google is tightening its control of Android

The latest from Google:
[Google] is now demanding that content partnerships and OS tweaks get the blessing of Andy Rubin before proceeding. The alternative, of course, is to not be inside Google’s warm and fuzzy early access program, but then, as evidenced by the company recently withholding the Honeycomb source code, you end up far behind those among your competitors who do dance to Google’s pipe. [Engadget]


Scott Adams (Dilbert) on being exposed to ideas

Great meta-idea [via Marco Arment], has a Zen-like quality:
Regular readers of my blog know that the goal of my writing is to be interesting and nothing else. I’m not trying to change anyone’s opinion, largely because I don’t believe humans can be influenced by exposure to better arguments, even if I had some. But I do think people benefit by exposure to ideas that are different from whatever they are hearing, even when the ideas are worse. [...]

Contrast my style of blogging to the most common styles, which include advocacy for some interest group or another, punditry, advice, and information. [=idea monoculture]


JavaScript: an overview of the regular expression API

Updates: This post gives an overview of the JavaScript API for regular expressions. It does not, however, go into details about regular expression syntax, so you should already be familiar with it.

Using HTML5 figures in today’s browsers

HTML5 includes tags for figures and figure captions. This post explains how to use them in modern browsers.