My Home Workspace

January 9th, 2008

I was at the TSOT Ruby/Rails Project Night last night. It was a great gathering, and I was treated very well by the hosts – they even brought in Guinness for me!

The soiree was at the new TSOT offices in downtown Toronto, on the 11th floor at 151 Bloor West, with a beeeautiful bird’s-eye view of the Royal Ontario Museum. Last time I was there, CEO Kris White showed me around the unfinished space, but now it’s finished and filled with staff and desks and computers and books and, well, you name it.

Inspired by my pal Joey’s Office Desk posts, I figure it’s time to give you a peek into my basement home office.

Here’s a panorama of the computerized half of my L-shaped desk. I control all of the computers on it from the Dell’s keyboard and mouse, using Synergy, which allows me to pan the mouse right across, from Linux to XP to Linux to Mac, transferring keyboard control as I go, even cutting and pasting text between any of the machines.

my home office computer setup

From left to right:

  • Dell B/W Laser Printer
  • Speaker Phone with Call Display
  • Toshiba Satellite Pro 4260 pIII 550 running Xubuntu
  • Dell 9200 Centrino Core Duo T2600/2.16GHz 1920×1200 running XP Media Center
  • ASUS Eee PC 2G Surf running Xandros Linux – on top of external USB2 DVD writer
  • 8-port switch
  • Mac Mini Core Duo running OSX10.4 just under left of monitor
  • Toshiba A10 P4 2GHz running XP Home – the display died, so I ripped it off completely
  • On the monitor you see the Mac desktop, with a VNC window into the Toshiba A10, and a TV window from the EyeTV USB tuner
  • A/B switch to switch between Mac and Toshiba A10.
  • Speakers either side of monitor (subwoofer at floor level)
  • Mac keyboard in sliding tray behind the chair
  • Epson Stylus Color Inkjet Printer

What you don’t see in the next room is my server pc, a Compaq EVO small form factor with three 250G drives, which is also hooked to my home theatre, which uses an Optoma projector and 7’x5′ screen hooked to HD PVR, DVD, 5.1 audio and the Wii (at that size, it’s like having a bowling alley in your basement!). My daughter’s desk has a Dell Optiplex P4 1.8GHz with XP Home and a scanner, the kitchen has a Toshiba P4 2.8 Laptop running XP Pro, there’s a 160G NAS device at the other end of the house, and the Router is a Linksys 54G running the Tomato firmware.

My newest machine is the Asus Eee. I got the lowest model – $299 for the Blush Pink 2G Surf, with 512M RAM, 2G solid-state flash disk, no camera. When I’m in the office, I use it as a handsfree phone using Skype – at 2 cents a minute for calls to landlines in North America and Europe, it’s a great deal.

The Eee is a fantastic computer, well designed, well implemented. Best out-of-box experience I’ve EVER had. I’m looking forward to using it as a road warrior machine, for hacking, and for presentations. Those guys with their little 13 inch Apples will have nothing on me – I’ll stun them with my sheer nerdliness. With that in mind, I’ve already done a case mod to fill them all with fear and envy.

My Killer Eee PC


Ajax Pub Nite Reminder

January 9th, 2008

Just a reminder that next Monday, Jan 14, 2008 at 7pm, the first Toronto Ajax Pub Nite is happening. See http://www.ajaxcamp.org for details.


First Toronto Ajax Pub Nite Mon Jan 14 2008

December 5th, 2007

Ajax Pub Nite is coming to Toronto.

We always find people at tech gatherings who are interested in talking about Ajax. We decided to start a regular Ajax Pub Nite to see where it goes. I’ve registered AjaxCamp.org on the chance that it grows into something bigger.

The first one is in January, hope to see you there!


Bundled crap is a big part of Vista’s downfall

November 30th, 2007

I have set up two new systems lately for friends and family. Each was a brand new low-end base Intel system with a current processor of decent speed, 1Gig RAM and a large hard drive. Each came with Windows Vista Basic pre-installed with a number of OEM utilities and third-party software. One was a second-tier desktop, the other a first-tier laptop.

Each of these machines out of the box ran abysmally slowly. Over 750M RAM was consumed at all times, and CPU rarely dropped below 25%, even after a day of being plugged in, getting updates, and finishing its Vista disk indexing (and the superfluous Google Desktop indexing on one of the machines).

On both of these out-of-the-box installations, waiting for a program to load and initialize was tedious enough to remind me of the days of 32Meg memory and the era before disk cache.

The number one solution for both of these installations was to remove the Norton security suite and replace it with the free AVG anti-virus solution. This reduced memory consumption by at least 200MB and allowed the CPU to actually go to idle. I also stopped a bunch of unnecessary utilities from preloading (they can still run, they just don’t load up on boot and take up resources until you need them).

While I’m not fond of Vista – its value over XP is negligible and the differences that could matter are not enough to outweigh the effort to change – I’m convinced that Vista’s reputation as a bloated resource hog, while deserved to some extent, is vastly inflated by the poorly optimized OEM builds that most of the user community by their lack of tech knowledge is forced to accept.

The only way to get a decently performing machine is to modify your default installation so much that you will never get support on it. When my friend’s built-in video camera stopped working due to a driver conflict with a Windows update, he returned it to the store and upon seeing that it had been optimized, they told him this configuration was unsupportable and reinstalled their original setup, fixing the video but making the machine otherwise practically unusable.

Microsoft can’t even fix this problem at the source, because if they were to mandate that their OEM partners optimized their builds, it would be construed as a monopolistic play to block third party software.

Sure, Vista has its problems, but it’s not a completely unusable hunk of crap. An OEM install of Vista, however, is.


Security Education Conference – Toronto, Nov 2007

October 30th, 2007

Security expert Eldon Sprickerhoff of eSentire whispers to me from the shadows that Toronto will be the scene for a major conference on security in November.

SecTor has a stunning lineup of speakers from the cream of the security community – representing hackers, law enforcement, vendors, organizations and corporations – looks like the hats will be a mixture of white, black and all shades of gray.

[Addendum: Woohoo! If you use the discount code: “ESENTIRE” you will receive a 10% discount when signing up for SecTor – thanks, Eldon]


Ajax Experience: Wrapup

October 26th, 2007

Ajax Experience 2007 East is done. Another great show with really great content and really engaged attendees.

The final day started out with a keynote from Aza Raskin of Humanized fame, who among other things highlighted the Endless Pageless pattern that fellow Canadian Pete Forde talked about in an article last year.

I gave my Ajax Transport Layers talk to a modest yet receptive audience.

Doug Crockford‘s JSON talk was up to his usual standard.

In the afternoon there was an animated panel discussion on Ajax Futures, with John Resig from Mozilla, Andre Charland of Nitobi, Douglas Crockford and Aza Raskin.

Kris Zyp followed with a great talk on Advanced JSON. Some of the JSON-RPC stuff he talked about was very similar in concept to the Jester stuff covered by Pete and Eric yesterday. I have to say that Kris strikes me as the one guy who deserves the “smartest-guy-of-the-conference” award.

Here is a pic of the Ajax Experience Canadian speaker contingent – left to right: Andre Charland and Dave Johnson of Nitobi, and Pete Forde of Unspace.

Andre Charland, Dave Johnson, Pete Forde

And here’s a picture of yours truly, with my new t-shirt from The Dreaming. No relation, honest.

Brent Ashley, but not the one in The Dreaming


Ajax Experience: Stuart Halloway – Javascript Refactotum

October 25th, 2007

Stuart Halloway speaks again, and it’s entertaining as usual. Get the presentation slides on his blog.

Stuart’s Refactotum presentation encourages the audience to take the leap to make a contribution to an open source project.

How to be a Refactotum

  1. Set aside 4 hours
  2. Choose an open source project
  3. Get edge (the latest source from the repository)
  4. Get metrics
  5. Analyze
  6. Contribute
  7. Submit

Stuart walks us through a Refactotum project in which he made a small change to YUI’s DomCollapse. Along the way, we learn how to use TheFrontSide’s CrossCheck for Javascript unit testing, and get a great refactoring tutorial.


Ajax Experience: Ryan Breen – Ajax Performance Analysis

October 24th, 2007

See Ryan’s presentation slides in PDF form.

Ryan Breen is VP Technology at Gomez. He blogs at his own site at ajaxperformance.com

Ryan divides performance monitoring tools into two categories:

Network Visualization

  • Firebug
  • Webkit Web Inspector
  • IBM Page Detailer

Client Side Profiling

  • JSLex
  • Firebug and Firebug lite
  • Dojo.Profile

“The largest opportunity for optimization exists at the network layer”

Latency is the target for best optimization ROI. Techniques include:

  • fewer requests
  • pack more info into each request
  • reuse connections
  • increase connection parallelism
  • minimize bandwidth use
  • respect caching but don’t rely on it

Fewer Requests
A great way to make fewer requests is with image concatenation, whereby a bunch of images are bundled into a single larger image, and lay out the sub-images via css viewports into the large image.

Another way is to bundle multiple Javascript and CSS files together.

Connection Persistence
usually broken by firewall configs – test from outside your environment.

Connection Parallelism
HTTP spec allows two concurrent browser connections to each server.
Using multiple hostnames per server, you can get two connections per hostname and increase the number of parallel connections allowed.


HTTP Compression (gzip, deflate)
JS Obfuscation

Don’t overlook the simple things
when linking to a directory, remember the trailing slash so the server doesn’t have to redirect the browser

There’s a bit more as you will see when you look at the presentation PDF, and he gives some demos of code profiling in action – I imagine you can tell already that Ryan is extremely knowledgeable about and experienced with browser application performance analysis.