Blog Posts

Intel Introduces the Sandy Bridge Architecture

1 minute read

Published:

Intel introduced the Sandy Bridge architecture in 2011, and it quickly became one of the defining CPU generations of the early 2010s. For many desktop and laptop users, Sandy Bridge delivered the kind of improvement that could actually be felt: strong general performance, better efficiency, and integrated graphics that were becoming less of an afterthought. Read more

The Quiet Value Of Making Backups

4 minute read

Published:

Backups are one of the least exciting parts of using a computer. Nothing new appears when a backup works. There is no faster program, no new feature, no visual change at all. We only create another copy of something we already have. Read more

Google Announces the Chrome Web Store

3 minute read

Published:

Google opened the Chrome Web Store on December 7, 2010, simultaneously with the launch of Chrome OS and the Cr-48, a matte-black developer pilot Chromebook shipped to invited developers. The store distributed three categories of Chrome products: browser extensions (scripts and UI overlays that modified Chrome’s behavior, already available since Chrome 4 in January 2010), browser themes (visual customizations), and web applications (a new category that came in two variants). “Hosted apps” were essentially metadata packages pointing to an existing web URL — an icon, name, description, and a link — that placed a shortcut in Chrome’s New Tab page app launcher and could request additional permissions like offline storage or notification APIs. “Packaged apps” were downloaded to the user’s local Chrome profile and could use Chrome’s local storage APIs, background page capabilities, and hardware access APIs without requiring a network connection, running through Chrome’s own execution environment rather than a traditional OS process. The distinction between hosted and packaged apps was frequently confusing to users: a hosted app for Gmail looked identical in the store to a packaged app for a game, but their offline behavior, storage access, and execution models were completely different. Read more

The Kinect Sensor Reaches Consumers

3 minute read

Published:

Microsoft launched Kinect for Xbox 360 on November 4, 2010 in North America, priced at $149.99 standalone or $299 bundled with an Xbox 360 and Kinect Adventures. It was the fastest-selling consumer electronics device at the time, selling 8 million units in 60 days according to Microsoft — faster than the iPhone or iPad had sold in comparable launch windows. The device sat below or beside a TV and required approximately 6 feet of clearance between the player and the sensor. Read more

Why I Keep Notes While Programming

5 minute read

Published:

When I am deep inside a programming problem, I often believe I will remember everything. The reason for this strange function is obvious. I am certain I will recall why I changed that setting. The error message will surely stay in my mind — I spent three hours fighting it. Read more

Microsoft Launches Windows Phone 7

3 minute read

Published:

Microsoft launched Windows Phone 7 on October 21, 2010 in the United States and Europe, introducing hardware from HTC (HD7, Surround), Samsung (Focus, Omnia 7), LG (Optimus 7), and Dell (Venue Pro). The launch was a complete architectural break from Windows Mobile 6.5 (released October 2009), which had attempted to put a desktop-like interface onto a touchscreen — using stylus-oriented menus, scroll bars, and desktop Windows conventions that were poorly suited to finger input. Windows Phone 7 instead adopted the Metro design language (later renamed Modern UI by Microsoft): a home screen of resizable Live Tiles that updated dynamically with current information (new emails, weather, news), horizontal panorama-scrolling UI sections within apps, large Helvetica Neue typography without frames or borders, and a consistent navigation model using three hardware buttons (Back, Start, Search) rather than on-screen navigation. The visual identity was derived partly from transit signage design and represented a deliberate departure from both iOS’s skeuomorphic icon grids and Android’s fragmented manufacturer skins. The user experience was praised by reviewers as distinctive and fluid; Windows Phone 7 was widely considered a genuinely good mobile operating system design at launch. Read more

Google Introduces Instant Search

4 minute read

Published:

Google launched Instant Search on September 8, 2010, announced by Marissa Mayer (VP of Search Products and User Experience) at a San Francisco press event. The feature updated search results dynamically as users typed each character, with results appearing typically after 2–3 characters without requiring the user to press Enter or click Search. The visual effect was a continuously changing results page driven by AJAX (XMLHttpRequest calls returning JSON/HTML partial updates) — the same technique that had enabled Gmail’s interface in 2004, but applied to search at much greater scale. Read more

Oracle Completes Major Changes Around Java and Sun

2 minute read

Published:

Oracle completed its $7.4 billion acquisition of Sun Microsystems on January 27, 2010, nine months after announcing the deal in April 2009 (delayed by EU antitrust review). Sun’s portfolio included Java (language, JVM, and OpenJDK), MySQL (then the world’s most widely used open-source database), Solaris OS, ZFS, VirtualBox, and SPARC server hardware. Oracle CEO Larry Ellison framed the acquisition as adding strategic technology assets to Oracle’s enterprise software and database stack; the most commercially sensitive asset was Java, given its ubiquity in enterprise applications, Android’s toolchain, and university education — and Oracle’s pending legal strategy. Read more

JavaScript Is Growing Up

3 minute read

Published:

JavaScript once felt like the language used for small tricks inside a web page — validate a form, open a popup, change an image on hover. The serious programming happened on the server. JavaScript was often treated as a detail that backend developers delegated to someone else, or worked around entirely. Read more

Node.js Gains Attention as Server-Side JavaScript

3 minute read

Published:

Ryan Dahl created Node.js and first presented it at JSConf EU on November 8, 2009, releasing version 0.1.100 that evening. By mid-2010, it had attracted significant developer attention following the release of Express.js (the first major web framework for Node, June 2010) and the creation of npm (Node Package Manager, January 2010) by Isaac Schlueter. Node 0.2 shipped in August 2010, stabilizing the API enough for production experiments. Microsoft, Joyent (which hired Dahl and was paying for the project), and Heroku were all actively supporting or evaluating Node deployments by late 2010. Read more

Before Likes Became Likes

18 minute read

Published:

Long before every platform put a heart, thumb, star, flame, clap, or reaction button under everything we wrote, people were already doing the same emotional mathematics: who liked this, who agreed, who noticed, who said something, and who said something but did not press the button. Read more

C Is a Manual Transmission

8 minute read

Published:

Years ago, I tried to explain the difference between C and Java with cars. C, I wrote, was like driving a manual transmission. Java was like driving an automatic. The comparison was not academically complete. It was not supposed to be. It was the kind of explanation you give when you have spent enough time with both languages to stop thinking only about syntax and start thinking about how they feel. Read more

The Day Everyone Became a Manager

5 minute read

Published:

There are many ways to become a manager: promotion, experience, performance, politics, seniority, a carefully planned career path. And then there is the method we discovered one day at a small company — everyone above you disappears. Read more

The Gaming PC I Would Build in 2010

3 minute read

Published:

If I were building a gaming PC on July 1, 2010, this is the machine I would actually want. I am not simply choosing the most expensive part in every category. The priority is gaming performance, then reliability, cooling and enough headroom to keep the system useful for years. Read more

The Modem Restart That Gave Me More Upload Speed

12 minute read

Published:

There was a period when internet problems were not background annoyances. They were events. You noticed every kilobit, knew what speed you were supposed to have, knew what speed you actually had, stared at modem statistics, restarted hardware, and called customer support. And sometimes, after thirty minutes of explaining a technical problem, the recommended solution was the most universal instruction in the history of consumer electronics: turn it off and turn it on again. Read more

Apple Introduces the iPhone 4

4 minute read

Published:

Apple announced the iPhone 4 at WWDC on June 7, 2010, with Steve Jobs calling the design the most beautiful thing Apple had ever made. It went on sale June 24 at $199 (16GB) and $299 (32GB) on two-year contracts. The phone replaced the iPhone 3GS’s plastic back with a glass-and-stainless-steel sandwich design: flat Corning Gorilla Glass on front and back, with a stainless-steel frame that doubled as the antenna system. The A4 processor — the same chip in the first iPad, manufactured by Samsung on a 45nm process — combined a 1 GHz ARM Cortex-A8 CPU and PowerVR SGX535 GPU in Apple’s first in-house SoC design. Read more

Never Use a Floating-Point Loop Counter

6 minute read

Published:

There are programming mistakes you make once and remember forever. For me, one of them involved a for loop and a floating-point variable. Years ago, I wrote a very simple warning: do not use double or float as the loop variable, otherwise arithmetic may not behave the way you expect, and you may find yourself stuck halfway through the problem. The exact wording was a little dramatic. The lesson was not. Read more

The Algorithm for Asking Someone for Directions

7 minute read

Published:

There is a special kind of problem that exists only because you decided to think about it too much. Asking someone for directions is a good example. You are somewhere unfamiliar, you do not know where to go, and there are people around. The sensible solution is obvious: ask one of them. That should be the entire algorithm — input: lost person, process: ask nearby person, output: direction, complexity: almost constant. Read more