A JavaScript glossary: ECMAScript, TC39, etc.

This blog post explains the difference between JavaScript and ECMAScript. And the differences between ECMAScript.next, ECMAScript 6 and ECMAScript Harmony.


Apple’s iCloud: stealing a page from Google and more

iCloud is an interesting product for Apple: It is moving into Google territory. For the first time, every Apple user will have free online storage that is pervasively integrated into many applications. This post gives an overview and mentions new facts that have come out.


Prototypes as classes – an introduction to JavaScript inheritance

Updates – read first: JavaScript’s prototypal inheritance is hard to understand, especially for people coming from other languages that are used to classes. This post explains that it does not have to be that way: The proposal “prototypes as classes” is a simplification of classes and inheritance in JavaScript. It might become part of ECMAScript.next, a.k.a. “the next version of JavaScript” (after ECMAScript 5). But there is also a library that allows you to use its features in today’s JavaScript. What’s intriguing about prototypes as classes is that they aren’t a radical departure from current practices, but rather a clarification of them.

Incidentally, this post is also a good introduction to JavaScript inheritance, because the basics are easier to understand with prototypes as classes.


Windows 8 will (probably) not deprecate C++ and .NET in favor of HTML5

Update 2011-09-16:A Windows 8 keynote review by a JavaScript programmer and Apple user” – Microsoft confirms that C++, .NET and HTML5 are all equal citizens on Windows 8.

Windows 8 introduced a new kind of application to the world of Windows: The immersive application with a tablet-first design [1]. Immersive applications will dominate Windows 8, existing applications will be relegated to a second-class status and accessible through a compatibility mode. When Microsoft first presented Windows 8, it gave the impression that immersive apps can only be written in HTML5. The article “Windows 8 for software developers: the Longhorn dream reborn?” on Ars examines whether that is true. This post summarizes the article.


Translating CoffeeScript classes to JavaScript

The post “Classes in Coffeescript” contains an interesting juxtaposition of CoffeeScript code and the JavaScript it is translated to. This post examines the result of the translation in more detail, which nicely illustrates how subclassing works in JavaScript. To understand the following, you should be familiar with JavaScript’s prototypal inheritance (explained here).


What’s up with the “constructor” property in JavaScript?

All objects produced by built-in constructor functions in JavaScript have a property called constructor. This post explains what that property is all about.


Google’s lack of social sensitivity: not everyone wants to be reminded of one’s father

A seemingly minor action by Google on Father’s Day caused a major backlash: They displayed a reminder to “call dad” in Gmail. Quoting “‘Reminder: Call Dad’ Is Another Notch In Google’s Belt Of Social Fail”:

Quick JavaScript tip: trailing commas inside an object literal

It used to be that some JavaScript engines weren’t picky about trailing commas inside an object literals, while others threw a syntax error. The ECMAScript 5 language specification [1] has made trailing commas legal, via the following syntax rule (in Sect. 11.1.5):


ECMAScript.next: the “TXJS” update by Eich

Updates: Brendan Eich held a talk [1] at the TXJS conference in which he detailed the latest updates on ECMAScript.next. This post lists the highlights of his slides and adds a few explanations.

Facebook is working on a mobile HTML5-based app platform to compete with Apple

The article “Project Spartan: Facebook’s Hush-Hush Plan To Take On Apple On Their Own Turf: iOS” [via Daring Fireball] describes Facebook’s plan’s for a new mobile application platform that is based on HTML5. Quote:


15% use one of these 10 iPhone passcodes

Someone making an iPhone lock screen app with a 4-digit passcode anonymously logged the passcodes. That led to the removal of his app from the app store. The app is called “Big Brother”, which to me sounds like a giveaway for what it does. The author now lists the 10 most commonly used codes in a a blog post. [Source: Marco Arment]


Erich Gamma (Eclipse) joins Microsoft to work on JavaScript tools

If you have ever read the “Gang of Four” book on design patterns [1] or worked with the Eclipse Java IDE (and platform) then you are probably familiar with the name Erich Gamma who was deeply involved in both. Recent news was that Gamma had left IBM and stopped working on Eclipse [4]. Now Microsoft announces that he will join them [source: Heise via Ludwig Adam]. Quote:

Equality in JavaScript: === versus ==

Update 2011-12-02: When is it OK to use == in JavaScript?

There are two operators for comparing values in JavaScript: strict equality === and “normal” (or lenient) equality ==. Many style guides (correctly) tell programmers to avoid lenient equality and always use strict equality. This post explains why.


The Twitter Firefox plugin

The Twitter plugin for Firefox has three main features:


A few things you might not know about “Star Trek (2009)”

When I watched the original Star Trek TV series as a kid in the late 1970s, it was a revelation: a new magical world opened up. Like fairy tales, but cooler, because it all seemed so real (remember: I was a kid). Since then, Trek TV series and movies have had their ups and downs. The last outing of the franchise, “Star Trek (2009)” [amazon.com, itunes.com], is a lot of fun, even though its story does not leave me completely satisfied. I recently re-watched it and collected several things that you might not know about it. [Warning: spoilers.]


The Hacker News (Y Combinator) effect

A link to my post “Implementing bookmarklets in JavaScript” became popular on Y Combinator’s Hacker News. This post briefly describes the consequences.


Fixing out-of-sync audio in VLC

Sometimes you play a movie file and video and audio are out of sync: You either see someone talk before you hear them or vice versa. This post explains how to fix this on the cross-platform movie player VLC.

Tip: use JavaScript as a calculator in Firefox and Chrome

The following tip allows you to quickly perform calculations via JavaScript in Firefox and Chrome. Many people use Google for this purpose, but this tip even works if your computer is offline.


Apple quietly revises its in-app purchasing requirements

Apple has quietly revised its in-app purchasing regulations. Mac Rumors provides details, this post gives a summary.


Implementing bookmarklets in JavaScript

Bookmarklets are little plugins for your browsers: JavaScript programs packed into javascript: URLs that you add to your bookmarks and start by clicking on them. They perform an operation on the currently open web page such as submitting it to Twitter. There are even bookmarklets that transform the current web page, for example, to add icons that, when clicked, add an event to Google Calendar. A separate post explains what bookmarklets are in more detail. This post tells you how to implement bookmarklets. It presents techniques, tools, and patterns for doing so.

Overview and analysis: Apple’s WWDC 2011 announcements (Lion, iOS 5, iCloud)

There were three main topics at Apple’s WWDC 2011 keynote and, as usual, Apple’s pages provide good in-depth coverage:
  1. Mac OS X Lion
  2. iOS 5
  3. iCloud
This post gives an overview of what has been announced and concludes with an analysis of what it all means.



Google will stop supporting older browsers

Quoting the article “Google to abandon older browsers” [via @annavester]:
As a result, from 1 August, Google will only support what it calls "modern browsers". By this it means the latest versions and major prior releases of Chrome, Firefox, Internet Explorer and Safari.

As new versions of these are released, Google will get its web services working with that and then drop support for the third-oldest version.

Support in this sense means that Google will only do compatibility testing with more up-to-date browsers. It will not carry out tests with older programmes and can make no guarantees that web services will work with them.

  • You can also read Google’s original post.
  • Radical move, but it might help move web technologies forward.
  • I like the way @elijahmanor summarizes this news: “When IE10 comes out they’ll only support IE10 & IE9”
  • Opera: is not among the four browsers explicitly supported by Google. Note that that doesn’t necessarily mean that Google’s apps won’t run on it, just that they won’t test on it.


Lessons learned by Apple Retail during its first 10 years

To celebrate its 10th anniversary, Apple Retail has created a “thank you” poster for its employees. Mac Rumors has published a photo of the poster and transcribed its contents. This post tries to bring a little more structure into the text. Some of the things that are listed are pure corporate speak, but there are also many interesting tidbits.


Windows Phone 7 Mango: the highlights

There is a video on YouTube where Joe Belfiore (whose title is the slightly weird “corporate vice president, Windows Phone Program Management”) shows off the features of the new Windows Phone 7 update called Mango. This post summarizes the highlights.


Is Windows 8 the right approach for tablet computing? Opinions are coming in...

Update 2011-09-16:A Windows 8 keynote review by a JavaScript programmer and Apple user

New opinions critical of Windows 8’s approach to tablet computing have surfaced. This post examines their merits.

Cutting off the revenue stream of spammers

I’ve always wondered why spam could not be prevented by educating the public to not purchase things advertised in spam emails. A study mentioned in a New York Times article follows a similar train of thought: By stopping banks from accepting money for spam offers, one could destroy the revenue stream of spammers. Quote:

Firefox 6: new features for developers

A post on the Mozilla Hacks blog details what’s new for developers in Aurora 6 (pre-beta Firefox 6). The following is a summary of its contents:


Windows 8: Microsoft restarts its operating system efforts (an analysis)

Update 2011-09-16:A Windows 8 keynote review by a JavaScript programmer and Apple user

Make no mistake: Windows 8 means that Microsoft is completely rethinking its operating system efforts, from the ground up. Ballmer wasn’t kidding when he called Windows 8 Microsoft’s riskiest product bet, back in October 2010 [4].


JavaScript’s with statement and why it’s deprecated

This post explains how the with statement works in JavaScript and why its use is discouraged.