Using Ubuntu for Time Machine in Snow Leopard

Over a year ago Matthias Kretschmann posted an excellent guide on how to use Ubuntu as a Time Machine backup server. The guide is quite well written all the configuration steps worked, but I received Error 45 creating backup disk image when Time Machine ran. Some more research revealed that this is because of changes to the sparse bundle image in Snow Leopard. To make it work I had to create my own sparse bundle with a plist file in it to associate my MacBook’s unique id with the time machine image.

Learning WebGL

If you’re interested in programming graphics on the web I recommend subscribing to Planet WebGL; it has a lot of great tutorials and instructional material for learning how to program graphics in a web environment. WebGL is technically a JavaScript binding to OpenGL ES 2.0. If you already know OpenGL ES and JavaScript, you should be able to pick it up pretty quickly. If you know JavaScript but not OpenGL and are in a web development career, I encourage you to look into WebGL because it could be one key component of interactive web applications in the future.

Click-to-Run Software

With Microsoft launching a click-to-run version of Microsoft Office 2010, I can’t help but think what a great idea it is. Many applications are moving to the web and I do see the web as the future of software development, but I think there is still a need for traditional applications written in a compiled language. Click-to-run works by a user clicking on a website link, which then runs an small program to download the latest version of the application.

WWW vs non-WWW Domain Names

A fairly common website optimization that a lot of web 2.0 dot com companies are doing is to remove the leading www from the domain name. Removing the legacy www leaves you with a domain like Ok so Nginx has a modern domain name but should you switch also? Reasons for non-WWW First, the domain name is more concise, easier to remember and just looks better. One caveat: you will need to setup a 301 redirect for requests with the three w’s to go to the non www version (see below).

Intro to Objects in JavaScript

Despite what you might think, JavaScript supports programming in full object oriented style including inheritance, encapsulation and polymorphism. But before we dive into all those topics I’m going to start with the basics and demonstrate how to create and use a simple JavaScript object. Lets say you have a web application that needs to track how long an AJAX request took. If you were writing it in Ruby, PHP or Python you’d have a timer object that you can start() and stop() and a seconds() method to get the number of seconds that passed between calling the first two methods.

Firebug: The JavaScript Debugger

JavaScript is a core language of many web developers and a necessary component for any modern web application; therefore having an excellent JavaScript debugger and knowing how to use it effectively is key to fixing bugs faster. Fixing bugs faster also makes you a happier software developer! I recommend Firebug, which is a JavaScript debugger, a real-time HTML, CSS, DOM, and JavaScript editor, and a network monitor. Logging One of the most useful features are the logging functions through console.

Fall 2009 Web Browser Outlook

The names are familiar: Firefox, Google Chrome and Safari. These relatively new browsers have been shaking the foundations of Internet Explorers complete victory over Netscape. These new browser are implementing fresh ideas and breaking out of the crusty browsers of the early 21st century. With the second browser wars in full swing, lets see where things stand and what’s coming. Mozilla Firefox 3.6 The Firefox team is focusing on startup performance, JavaScript performance, lightweight themes, and a few new features for developers.

WebGL Coming in Firefox 3.7

Vladimir Vukićević, the pioneer of bringing the well known OpenGL standard to the web, has just blogged using Firefox to render Spore creatures. Check it out, it’s a pretty impressive demo of this upcoming web standard. Development on what would become WebGL started back in 2007 with Canvas 3D as an extension for Mozilla Firefox 3.0. Since then it has grown from a single project to an open web standard through the Khronos standards group.

Software Complexity

Have you ever worked on a software project where you had no idea what would happen to other parts of the system if you made a code change? I have, but I have been able to ask developers on my team that know the system better than I do. If it’s a larger software project and nobody on the team knows what a change would do, then it would be fair to say the software is overly complex and making forward progress is like wading through a swamp.

Fixing MySQL Gem on Snow Leopard

NOTE: See my latest post for a solution for OS X 10.6.4 and later A fresh Snow Leopard (OS X 10.6) install does not have the mysql gem installed, and installing it fails because of missing header files: Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.