Archive for November, 2007

On Ted, Avant-Guarde Presentation Styles, and My Emerging RWness

Dru first introduced me to ted.com the notion of the “Big Think”, but I had forgotten about the site until I saw a link to one of the site’s presentations referenced in one of Ayende’s recent posts.

Despite being on a seemingly dull topic (copyright law), this 20 minute presentation by Larry Lessig is riveting due to the presenter’s unique content and effective communication style.

After watching the presentation I was left with the following thoughts:

  • I need to start making my way through the other 70 plus presentations on technology hosted on Ted.com. I have a feeling that the signal to noise ratio on this site is phenomenal. Ted, the creator of the site, appears to do an excellent job of finding people at the top of their fields who have truly unique ideas and are able to convey them very effectively.
  • In my own future presentations, I think I will try experimenting with the innovative visual style of Larry’s presentation, which often only has one or two words per slide displayed at a fairly rapid pace. It’s a stark contrast to the traditional PowerPoint slides, but when done correctly, I think it does a much better job of emphasizing the main point and keeping the audience’s attention.
  • We are entering a new Read-Write (RW) era. Larry asserts that our culture has made an historical pendulum swing during the last century from a passive back to a more interactive social existence. TV and radio were primarily passive or Read-Only (R)  mediums, but the democratization of publishing that has been driven by blogging, mySpace, and YouTube are reversing that trend and making people much more engaged with each other again. From my own personal experience with working on this blog and regularly following other people’s blogs, I know I have felt more invigorated, creative, socially engaged than I ever have before.
  • I need to download some video editing software and take up video remixing as a hobby.He showed a few hilarious remix videos clips as an example of how people are able to creatively transform existing content into something completely new, which is something that existing copyright laws don’t take into consideration. I recently dabbled with some video fun with the help of jibjab on these two posts, but it was nothing compared to the creativity and video editing magic that went into these three videos he showed.

Happy viewing!

Trouble in Paradise?

I just read Mary Jo Foley’s article talking about the all the negative publicity that Leopard, Apple’s newest operating system, is receiving due to bugs, reduced functionality, and user interface issues.

I started out on a Mac and have recently come to admire the sleek and light-weight design of my wife’s new Apple laptop. However, I also can’t help but associate Apple with some of the more annoyingly vocal zealots of their community, so I found myself smirking when I read the news.

I am guessing that a strong argument could be made that Vista still sucks more than Leopard, but it sort of feels like when a popular anti-pornography, anti-gay preacher politician is caught red-handed in a major gay sex scandal. You can’t help but feel like there is some major divine karmic retribution at play.

Any bets on whether Scott Bellware will demonstrate some fair-minded impartiality by writing a post entitled “One Less Stupid, Piece of Apple Usability Negligence Crap in My Life”?

EditPlus: A Kinder, Gentler Way To Build Nant Scripts

I’ve been working on Nant scripts this week and the experience has been much more enjoyable since a co-worker showed me how he used EditPlus (thanks Raoul). After a few quick customizations, I was able to not only get syntax highlighting for my build files but also execute Nant from within the tool and see the output from the bottom pane. Anything that decreases context switching when I have a gajillion windows open is pretty nifty in my book.

Here’s a picture of a build file with my custom button circled at the top and the nant output in the bottom pane..



Here are a list of tweaks that I made:

  • For syntax highlighting:

    1. Under the Document menu, go to ‘Change File Type’ and select XML.
  • To create a custom button that will execute the build you are editing:

    1. Select ‘UserToolbar’ under the View menu to get the user configurable buttons to appear.
    2. Click on the first button (the hammer icon) of the user toolbar that appears and choose ‘Configure User Tools’.
    3. On the dialog box that appears, click the ‘Add Tool’ button and select ‘Program’.
    4. For the Command field, navigate to the location of your Nant executable.
    5. For Argument field, enter the buildfile argument (-f:) and then choose ‘FileName’ from the drop down so that the name of the current build file you are editing will dynamically be sent as a command line parameter.
    6. For the Initial Directory textbox, choose ‘File Directory’ so that the path of the current file will be dynamically sent as a command line parameter.
  • To view the output from Nant in the bottom pane:
    1. Click on the ‘Capture Output’ checkbox from the previous dialog box.

In order to execute your Nant script, simply click on the first button that becomes enabled on the user toolbar. This is what the dialog box looks like for the above steps:

Happy Nant scripting!

A Poetic Tribute to Visual Source Safe

Recent source control woes have inspired me to write this little poem about my least favorite source control system.

VSS, I hate you so
And I can not wait to see you go.

You have the word safe in your name
Yet since you came
my IDE has crashed
And my files have been trashed.

If your integration were not so lame,
Then maybe I could do a simple rename;
All I wanted was a little bit of history
But a few files I did purge and now it’s all a mystery.

Branching and merging is something we no longer dare
So we copy and paste with much care;
A changeset would help reduce the friction
and make release reports seem less like fiction.

If only you would realize
that it should not take days to Analyze;
And it is wrong that I should have to be leery
when all I want to do is a simple query.

Because of your file based sharing
About disk space and security we gave up caring;
Haven’t you heard of atomic commits?
If so, perhaps my project wouldn’t be on the fritz.


If only I could create a simple diversion.
Then I could quickly upgrade to Subversion.
Perhaps if we had Perforce or Vault
Then our development wouldn’t grind to a halt.


VSS, I hate you so
And I can not wait to see you go.

For a non-rhyming look at some of the short-comings of VSS, I recommend this article by Alan de Smet.

Still an Open Source Virgin

I was setting up Cruise Control the other day and trying to figure out why it wasn’t working on a certain source control folder. I noticed a strange error in the cruise control log about there being an invalid character in the path, so I decided to take advantage of the fact that it is an open source project and download the source code so I could step through it in the debugger and see what the exact problem was.

It wasn’t long before I discovered the source of the error, which was a newline character embedded in the source control folder name. Since I am a vocal Visual Source Safe hater, I naturally assumed that the problem had to do with VSS data being corrupted so I scheduled some VSS maintenance and called it a day.



When VSS analyzer did not fix the problem, I took a closer look and realized that I had unfairly blamed VSS and the real problem was a bug in the Cruise Control code that parses out the output from the VSS command line tool (thank god PowerShell eliminates the need for much of this parsing voodoo). If the folder path in VSS is too long, then the command output wraps and Cruise Control incorrectly inserts a newline character inside the folder path.

The problem was easy enough to fix by stripping out the rogue newline character, so I recompiled Cruise Control, replaced the problem dll, and all was well in the world.

At that point, it occurred to me that other people must be running into this problem, so I decided to try being a good open source citizen for once and submit the bug fix. I had never tried this before, so I read the contribution procedures posted on the home page and followed their polite suggestions. I created a diff file of my fix, wrote up a detailed description of the problem, and even found a unit test that someone had commented out that failed under the current code base and worked with my fix.

I was just about ready to submit a JIRA ticket in their bug tracking system, when it occurred to me that I should probably browse the current VSS tickets first. It turns out that my issue was not only recorded in the system, but had just been marked as resolved by someone else the week before. Doh! I guess I should have tried that first, huh?



Oh well, at least I got practice going through the procedure for being an open source contributor. There are still an lots of open tickets for the current Cruise Control release, so perhaps I’ll grab one of them while I have everything already set up.

After all, I don’t want to be an open source virgin forever.

Store Financial Developers Have Mad Dancing Skillz

It turns out that my co-workers have found a new hobby. They’ve been secretly practicing this dance routine at lunch time. Thanks to Grif for helping to capture this secret footage.
NOTE: If no window displays below, then you will need to install the flash player. If your connection is slow, then the video might also randomly pause. If that is the case, just pause it and give it a chance to completely download before viewing it.

Update: Temporary issue importing video from old blog. Jib Jab video can be seen here

Hello, My Name is Russell Ball and I’m a Goaloholic

I seem to have kicked into a professional goal setting mode lately and fixated on a number of ambitious goals, such as publishing technical articles, speaking at major conferences, and creating my own version 1.0 software. Although I feel invigorated by the challenge posed by these new goals, I also have the nagging feeling that I am making a mistake by going down this road.

Don’t get me wrong, it is not that I am morally opposed to having goals. On the contrary, my personality thrives on them. I get a thrill from breaking my own self-imposed boundaries whenever I latch on to goals that seem well out of my reach. I like strategically planning out how to achieve a goal and then carefully charting my progress towards the finish line. The satisfaction I feel right after accomplishing a goal is down right addictive. Mostly, I suppose that I like the structure that having goals provides my life.

Unfortunately, I have been on the achievement roller coaster enough times in my life to realize that the psychological rush that follows attaining a goal is relatively fleeting compared with the sense of disappointment that usually follows. I often cope with this uncomfortable feeling by immediately distracting myself with an even more challenging goal. Sometimes, however, I fall prey to a deep sense of disillusionment and can’t help feeling like I have just wasted precious time valuing something that ultimately doesn’t matter.

So what is a goaloholic like me supposed to do?

It is not as simple as going cold turkey. Whenever I try to swear off goals, I usually get bored and nagged by the feeling that I am wasting my potential and dulling my senses. This somehow feels like an even worse sin than my goal addiction, so I inevitably get back on the goal bandwagon.

Is there no middle ground between these two extremes?

The one thing that does seem to help me in times like this is to remember back to a lecture that I heard in college on flow. Flow is a mental state of hyper concentration that highly skilled individuals who are doing highly challenging work can attain. Athletes sometimes refer to this mental state as being ‘in the zone’.

When you are experiencing flow, then you are so absorbed in the task at hand that you get a distorted sense of time so that you are likely to suddenly look up from what you are doing and be surprised that hours rather than minutes have passed.

When you experience flow, the activity itself is intrinsically rewarding, so your actions seem effortless. This zen-like focus on the present moment offers a stark contrast to the darker side of achievement, where the focus is completely future oriented and on the end result rather than the process.

I occasionally experience flow while programming, but would like to experience it much more frequently.

Ironically, since a prerequisite for experiencing flow is both a high degree of skill and a high degree of challenge, most of my current goals can actually help me achieve this coveted mental state. However, elevating the experience of flow over the achievement of goals somehow makes my goals seem much more palatable. They are now merely laying the groundwork for a more substantive and longer lasting experience rather than being the ultimate prize.

Has anyone else experienced flow? Has this experience been substantive enough for you to be a primary motivating force in working towards excellence or are there other more compelling reasons that drive you to excel?

Preemptive P.S. - While having women swoon and throw panties at you is certainly a compelling and motivating force, it is probably not a legitimate expectation for anyone other than Justice Gray.

All Those Hours of CSI for Naught…

I only got 4 out of 10 on the Programmer vs Serial Killer Quiz. I either need to brush up on my profiling skills or else make it a general policy not to hang out with programmers any more.

« Previous Page