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 https://nginx.org/. 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.

Install Git on Snow Leopard

To install git on the latest version of OS X (10.6), use the git-1.6.4.2-intel-leopard.dmg (or later) package from git-osx-installer. So far it works fine for me on Snow Leopard. I like how OS X comes with a large number of open source packages such as PHP, Apache, Vim, Subversion and Ruby on Rails; however, I’d really like to see Apple add Git to the list.

Upcoming Web Browser: Google Chrome 3

The beta version of Chrome has been available for a few months now with a faster Javascript engine, a better new tab look, and the Omnibox (an improved location bar). What key enhancements has Google added for developers? Well Chrome adds support for new features in WebKit: JSON.parse for securely parsing json data HTML 5 hashchange event Canvas support for the HTML 5 canvas text APIs -webkit-border-image CSS3 attribute HTML 5 channel messaging HTML 5 Input element types for Text Fields (tel, url, email, and number) HTML 5 Forms pattern and required attributes HTML 5 draggable element implementing the current spec JavaScript getBoundingClientRect and getClientRects to find the position of an element HTML 5 Video tag with support for Theora and H.