It's Working for Me

Posted by Aaron West at 10:55 AM in Programming

One of the worst things you can ever say as a developer/programmer is "It's working for me." Unless of course that is immediately followed by "..but let's dig in and figure out why it isn't working for you." This type of thinking is a cancer within development teams and certainly isn't customer focused. Software breaks, apps don't work properly, and if you're a developer it's your responsibility to do whatever it takes to resolve your customer issues. A few years ago one of my dev teams was having tremendous difficulty replicating a customer-reported issue. One of the developers started the whole "It's working for me" thing and my manager heard it. He jumped in and quickly asked my developer if he was going to package up his computer and ship it to the customer. What a great response.

When you're up against tough issues, try not to think about how hard or how long it might take you to resolve the issue, but resolve to fix it no matter what it takes. Then, and as early as possible, assure your customer that you will do whatever it takes.


Solving problems is a fact of life. But those of us who serve in a technical role such as a programmer or database administrator face problems more than others. In my 10 years working in technical roles at different companies I've seen a lot of weird issues. Just today we had a situation where a customer was unable to fill out a form on our Web site. When asked what they meant they said they simply couldn't type into the form fields. It all sounded pretty bizarre to me. We eventually discovered a div layer was taking up more space than intended but only in Internet Explorer 7. The div took up so much space it trapped user clicks and wouldn't let customers interact with the form.

Tonight I was confronted with an entirely different kind of problem. My wife had a meeting to attend so I had our son all to myself. For dinner I made him a peanut butter and jelly sandwich, one of his favorites. He usually plays while I make dinner but tonight he decided to watch me spread the peanut butter and jelly on his bread. After finishing he said I wasn't supposed to spread the jelly on top of the peanut butter. I brushed off his comment and finished preparing our meal.

Continue Reading


Are you a programmer? Do you ever work as a consultant? If you answered yes to both of these questions I highly encourage you to read Jesse Warden's latest consulting chronicles blog post. Jesse provides some nice insights on how to be successful at your new consulting gig, how to build trust with other team members and managers, and how to solve difficult problems with good tools and a positive attitude. It's really a great read. If you're busy, e-mail this link to yourself. Otherwise, click over to Jesse's blog now.


Several years ago I read Understanding the Psychology of Programming by Bryan Dollery. The article was written in 2003 but you'd never know it unless you saw the date. It talks about how programming is a creative activity and how the environment of a programmer plays a large role in their creativity. I've referred to the article dozens of times over the last 6 years when conversing with other technical managers and today I want to share it with you. If you're a programmer or you are directly or indirectly responsible for the management of programmers you must read this article.

Understanding the Psychology of Programming

Contrary to popular belief, programmers more frequently resemble artists than scientists. If you want to maximize the creative potential on your development team, you've got to start thinking about the psychology of the programmer and be willing to back it up with management policy.

Read it here.


We're All Writing the Same Code

Posted by Aaron West at 8:00 AM in Programming, Personal

The presenter was on stage and had gotten past the requisite introductions and background information. It seemed like he was nearing the part of his presentation described in the conference schedule and I was looking forward to what he had to say. Before getting to that, he took time to explain why he prefers programming in his language of choice. His first point was his language was incredibly dynamic. He didn't mean his language had a dynamic personality or anything like that. He meant he could do a ton of stuff in his language and it was pretty easy to do so. Continuing, he discussed how his language is best suited for rapid application development. Using his IDE (Integrated Development Environment) he could whip out code fast, code that created serious value and integrated with many other services. He talked about the tooling and the community, how everyone chipped in to increase the value of the language and what the language provided developers. He went on for a few more minutes speaking with great conviction about his love for his programming language of choice.

What language was this gentlemen referring to? Was it PHP? ColdFusion? Ruby? He wasn't talking about ColdFusion, but I'm not sure the actual language matters.

Continue Reading


I've finally uploaded my BYOL lab content from Adobe MAX and all the assets are ready for download. My lab was about integrating BlazeDS and ColdFusion 9 and involved constructing an application that used BlazeDS messaging. If you would like to go through all the content simply use the link below to download everything. Here's what's included:

These are the slides from the first 10 minutes of the lab. I build slides with very minimal content, so these won't hold too much value without me talking through them.

This is a 30 page walkthrough PDF that has all the content we went over during the lab. It's written so anyone can read the PDF and go through the steps to build the application using Flash Builder 4 beta and ColdFusion Builder beta without me leading the class. Pay special attention to the setup instructions on page 3 and 4.

This directory has all the walkthrough code used throughout the application. Each walkthrough directory, such as wt-4 has all the code written up to but not including that specific walkthrough. There's also a final application folder that has the full application in a ready to run state. This content is referred to several times throughout the walkthrough PDF.

Download the content here.


I'm not a designer but I definitely consider myself a thinker, strategist, and decision maker. All of these roles have relevance in Scott Stevenson's blog post Measuring the Design Process. After posting a link to Scott's blog post on FriendFeed Deke Smith and I started discussing our thoughts in Facebook comments. The discussion got interesting so I decided to move it here in case others want to chime in. Here's where we are so far, feel free to post your own thoughts in the comments.

Continue Reading


If you're not a CFML developer and you want to go to a conference for free, you're in luck. The Scotch on the Rocks folks, with sponsorship from Railo, are giving away 10 FREE tickets to a developer that programs in JSP/PHP/.NET or Ruby/Rails. You read it right, you'll get to attend the SotR conference of your choosing at absolutely no cost. I think this is an AWESOME idea. I'm only wishing someone thought of it sooner. Interested developers (that meet the criteria) need to contact the Scotch on the Rocks folks via Twitter at http://www.twitter.com/sotr.


A few days ago the latest issue of Flex Authority was released. I wrote an article for the issue (Vol 1 Issue 2) on BlazeDS, Flex/AIR, and ColdFusion integration but it had to be removed due to space issues (yea, it's long). Fortunately, my article fits well with the theme of Vol 2 Issue 1 and it'll be included in both the print and PDF versions when released.

Until then, Judith Dinowitz was kind enough to provide me with a sneak peak of my article that you can download right now. Why wait, click right here to download it. Enjoy!


I was pilfering through the net looking for information on developing for the Mac menu bar in Xcode when I came across a pretty cool article on Apple's Web site. If you are at all interested in programming Java and you want to learn more about the Eclipse platform you should check out this article (http://developer.apple.com/tools/usingeclipse.html). It's all about developing Java applications in Eclipse. It covers the Java perspective, Xcode, and XSwing.


Last.fm Is Hiring - Lots!

Posted by Aaron West at 9:58 AM in Music, ColdFusion, Jobs, Programming

I recently blogged about my affinity for last.fm. While browsing around the site this morning I noticed they are looking for a Java developer to work on the last.fm back-end, a PHP developer to work on the actual Web site, and a graphic designer to work on the last.fm site. They're also seeking a smart C++ developer who will be responsible for working on their client tools. You can check out the job postings here (http://www.last.fm/about/jobs/). Now, if we could just get them to power the site with ColdFusion!


After reinstalling some development software the other day I needed to access some XML files that were in a hidden directory. Typically I would filter all my access to hidden files through the appropriate Terminal commands but I decided to look for a more elegant solution. Immediately, I found the following Terminal command that directs Apple Finder to show all hidden files:

defaults write com.apple.finder.AppleShowAllFiles ON

That's at least a start, but I don't want to fire up Terminal to run two simple commands, one to turn on hidden file viewing and one to turn it off - plus, restarting Finder altogether. After digging around a bit I found an AppleScript that automates the process. I made a few adjustments to suit my needs and I was in business. Seeing how useful my MusicStoreAutoPlay script was I decided to offer this one up as well.

Here are some installation instructions:

  1. Download the zip, and extract the AppleScript file to the /Users/your-user-name/Library/Scripts folder. If this folder doesn't exist, create it.
  2. The Finder does not have a "script" menu like iTunes does so I recommend turning on the system-wide "Script Menu." Navigate to /Applications/AppleScript/ and double-click the "Install Script Menu" Application. This will create a new "script" menu that shows in the menu bar (upper right near the clock). You can use this script menu drop-down to access the ToggleHiddenFiles AppleScript.
  3. Here's a link with more info on the system-wide Script Menu.
If you have any questions or something doesn't go right, just let me know. Enjoy.


iTunes Music Store Auto Play

Posted by Aaron West at 9:21 PM in Programming, Personal

With the iTunes Music Store selling it's 1 billionth song a few days ago (incidentally, the guy purchasing the milestone song made out like a bandit) no one can argue the face of music (and music purchases) has changed dramatically. I use the music store quite frequently and really enjoy how it has changed the way I listen to music. However, previewing albums on iTunes is not the seamless experience I'd like it to be. To solve this problem, I wrote a simple AppleScript that allows me to listen to an entire iTunes album (or any track list showing) without having to play each track individually. For instance, instead of double-clicking the next track (or pressing the right arrow key) as the current track approaches its 30-second end, I sit back, relax and listen to each track stream to my computer without my intervention. Of course, you could also read e-mail, your favorite blog, or whatever.

After sharing the script with a few friends I figured more of the general Web could benefit from it as well. NOTE: This is an AppleScript that requires Apple OS X. After downloading the script just drop it in your /Users/your-user-name/Library/iTunes/Scripts folder. Then, load up the iTunes music store and one-click the first track of an album (to highlight it). Next, use the iTunes script menu and select "MusicStoreAutoPlay" to begin playing that albums tracks.

Click here to download.


Recently, I had the need to take the journey into building Web applications for multiple languages. Internationalization - i18n for short (there are 18 letters between the "i" and the "n" in "internationalization") - is the process of building Web applications for multiple languages and/or locales. The W3C defines internationalization as "proposing and coordinating any techniques, conventions, guidelines and activities within the W3C and together with other organizations that allow and make it easy to use W3C technology worldwide, with different languages, scripts, and cultures."

While this definition is good and comprehensive I needed to only focus on a specific level of internationalization. This article describes the application I was working with, the pitfalls that I ran into, and the solutions that I found to make my application work.

Continue Reading


I came across Joel Spolsky's article "Law of Leaky Abstractions" while reading Judith Dinowitz's blog. Joel's article is absolutely fantastic and should be read by anyone with a modicum of programming experience. In his article Joel outlines how the world of abstraction (making something simple out of something difficult) tends to be as leaky as that old, dripping faucet.

Here's some excerpts:

"This is what I call a leaky abstraction. TCP attempts to provide a complete abstraction of an underlying unreliable network, but sometimes, the network leaks through the abstraction and you feel the things that the abstraction can't quite protect you from. This is but one example of what I've dubbed the Law of Leaky Abstractions: All non-trivial abstractions, to some degree, are leaky."

"Abstractions fail. Sometimes a little, sometimes a lot. There's leakage. Things go wrong. It happens all over the place when you have abstractions."

"One reason the law of leaky abstractions is problematic is that it means that abstractions do not really simplify our lives as much as they were meant to."

"The law of leaky abstractions means that whenever somebody comes up with a wizzy new code-generation tool that is supposed to make us all ever-so-efficient, you hear a lot of people saying "learn how to do it manually first, then use the wizzy tool to save time." Code generation tools which pretend to abstract out something, like all abstractions, leak, and the only way to deal with the leaks competently is to learn about how the abstractions work and what they are abstracting. So the abstractions save us time working, but they don't save us time learning."

Enticed? Click below for the full article.