Archive for the 'blather' Category

h1

when unfamiliar == unqualified

Monday, September 15th, 2008

Interviewer: Do you agree with the Model-View-Controller pattern?

Candidate: In what respect, Charlie?

Interviewer: The Model — what do you interpret it to be?

Candidate: Controlling the view from the model, Charlie?

Interviewer: No, the MVC software architectural design pattern widely used in various web development frameworks.

Candidate: … I believe that design patterns are designed to rid us of the burden of reinventing the wheel over and over (…and other such generic drivel).

Interviewer: (closing the candidate’s file and marking it with a red X) Thanks for your time. We’ll keep your resume on file for six months.

h1

Maybe I should find a grayer theme

Monday, March 3rd, 2008

Michael O’Connor Clarke wishes himself a happy seventh blogday, having been blogging since March 1st, 2001.

I’m only a day younger, having stumbled into the light on March 2nd of that same year.

Things have evolved considerably since then and I’m blogging a lot less now, but it’s quite a milestone all the same.

h1

Not nearly enough rope, but I’m almost ready to hang myself

Friday, February 1st, 2008

After a long stretch of successfully avoiding getting too involved with development on a Microsoft platform, I find myself taking on the day-to-day development, debugging and support of some IIS/.NET-based applications. The apps themselves are well designed, I’m content enough to deal with C# and .NET in the scheme of things.

When it comes to interacting with the server to do any configuration, maintenance, monitoring or debugging, however, I find myself cursing more often than not.

On this one particular server, I install the .NET runtime, SQL Express, TekRADIUS, and then notice that IIS is not installed, so I install it. It will serve static pages but not .NET pages. The logs didn’t tell me anything – no indication that an access attempt was made or rejected. It takes me nearly a day to figure out that it won’t talk properly to .NET until both IIS and .NET are completely uninstalled and then reinstalled in a different order. There’s no “fix it with this config tweak”, it’s just “reinstall in a different order and it should work”. Magically, it does, but I’m not confident that it’s more than a coincidence. I’d rather know why, however, I don’t care to spend another day of this project plan on it.

I have a 30 megabyte server log file to inspect. Let’s see, what tools does Win2k3 server provide for me to look at it? Umm….. notepad. But not until I add it to “send to” or associate the file extension. How do I filter it? I can use “find” at the commandline and redirect into another file, but find is practically useless with no regular expressions. “More” only pages through the output in one direction. Where’s “tail”? I have to repoen the 30M file after I try another server access and then want to see the next entry? What do people in the W2k3 world use instead of “tail -f”? And what about log rollover? Is there nothing built into W2k3 server to manage the zipping, archiving and deletion of log files? It seems not. Any tools you will need to manage this baby don’t come with it, you have to get them yourself and install them. The tools supplied fall wayyyy short of being useful. Try to use the Event Viewer to filter by regular expression into a file that you can then manipulate further. You have to write your own programs to do stuff like this or get third-party tools. You can install Powershell, which is a great improvement, but my solution is just to install UnxUtils and get right down to being productive.

I want to use SSL. I set the SSL port, restart the instance, try https://localhost – nothing. Look at logs, nothing. Turns out I have to have a cert in place before it will work, not that the server was going to give me any hints. I had assumed a self-signed cert would be there by default. I have to find and download an SDK and follow a dozen-step process to build a cert, then import it into the cert store.

The entire configuration is a collection of settings that are entered or inspected one-by-one by tediously navigating the management GUI to varying depths of dialogs. When I have my config together and I want to set up the next server, I don’t provide it with a monolithic settings file from my reference system, I have to tediously make each click and entry, then backtrack and debug when I inevitably miss something critical. I understand the typical approach is to build a reference system and clone it, then mess with the machine IDs. What a palaver.

When I finally get through a marathon session of setting up a Windows server “just so” to make my application work, it’s like I have created a finely balanced stack of Jenga blocks from which I back away slowly on tiptoe, praying it doesn’t tumble. I’ve got very little confidence that fixing anything will be an excercise in logic and deduction more than having to know some obscure incantation or uninstalling components wholesale and reinstalling and reconfiguring them.

I’m afraid I find it really difficult to understand how any Windows server can be considered a serious business tool when it’s shipped without even the most rudimentary tools to effectively inspect, monitor and maintain its operation.

h1

It all comes together with Jaxer

Wednesday, January 23rd, 2008

The state of the art of web development has taken a leap forward recently with the announcement of Jaxer, Aptana‘s new Javascript-on-the-server environment which allows you to write a web app as a single item, without having to devote much time and brainpower towards most of the distinction between what is run at the server and what is run at the browser.

My application stack diagram from the Ajax Summit back in 2005 shows how early Ajax applications had to take it upon themselves to perform the drudgery of remote procedure call invocation, encoding and packaging, the transport layer, decoding, dispatch and then the encoding, packaging, sending, receiving, decoding and consumption of the response package.

Three years later, Aptana’s diagrams show how far they have brought us forward with their advanced client libraries and server technology that have abstracted away all of the remote procedure calls and data marshalling, making the gap between client and server much, much less of a chasm.

Jaxer is not some net new unknown – it’s built on the Mozilla Javascript and rendering engine. It’s open source licensed under the GPL. It’s backed by Aptana, whose eclipse-based IDE tool is a well known market leader, and whose Advisory Board is absolutely packed with the very top names in the Ajax sphere.

As John Resig points out in his coverage of Jaxer, this is an exciting piece of technology, and I would go as far as to say it has the potential to be a game-changing development.

h1

My Home Workspace

Wednesday, 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

h1

Ajax Pub Nite Reminder

Wednesday, 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.

h1

First Toronto Ajax Pub Nite Mon Jan 14 2008

Wednesday, 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!

h1

Bundled crap is a big part of Vista’s downfall

Friday, 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.