Long Time No Post

I really need to find time to make more blog posting. I definitely have lots to say, opinions to share, tips and tricks learned from some of the programming work I have done over the last few months. But it seems I never have time to write.

I’m currently working on new releases for Labor Mate, my labor contraction stopwatch for the iPhone and iPod touch, and Killink CSV Editor, a csv editor for the Windows desktop. I’m also working on 3 different custom software development projects for customers and I have another one that will be starting soon. And the new White Peak Software website will be ready very, very soon with new customer support features coming soon. Needless to say, I’m swamped.

And of course Rowan is only 10 months old and I have to spend as much time as I can with him. Lucky for me I work from home so I get to spend plenty of time with the little guy daily, which is great. But he does interrupt my work from time to time.

With luck and some focused time getting some of the projects completed, I’ll be back blogging before you know it. Meanwhile you can follow me over at Twitter.

Continue reading →

Framework or CMS

I am once again pondering the question of whether to use a framework or CMS for the upcoming refresh the White Peak Software web site. I have gone back and forth on this multiple times over the years and I can never really decide which is better. And I ask this question often not just for my company web site but for customer web sites that I build.

A framework gives me great control and flexibility. I can design and architect the site to my liking. I can use the data store of my choice be it XML, a database such as MSSQL or Postgres, and I can implement site specific features that meet 100% of the requirements. But the site eventually reaches a point where the only thing needed is to publish new content. Create a new landing page for marketing, change copy on an existing page, add a new product page, and so on. This is when I start thinking “Man, I wish I had a really simple CMS in place.”

A CMS manages the site content for me. A CMS really does make publishing new content a snap. And you get a lot of additional features, or add-ons, with a CMS such as blog engine, forums or discussion groups, user management, calendar, photo gallery…the list goes on. However, most if not all CMSs are built on top of some core framework (Plone uses Zope, DotNetNuke uses .NET, ExpressionEngine uses CodeIgnitor - I think). This allows developers to expand and enhance the CMS by writing their own add-ons and extensions. But to do this the developer needs to know the underlying framework, and if you already know the framework isn’t it sometimes easier and or faster to work directly with the framework bypassing the CMS all together? Also, it’s been my experience that many of the CMSs out there tend to meet only 80 to 90% of the requirements. So you get the ease of publishing new content but other areas of the site can be lacking unless, of course, additional code is written to make up for the missing functionality. It’s a vicious circle.

So do you learn and master a framework and have ultimate flexibility or learn and master a CMS and have ease of use for managing content? And what about rolling your own “simple” CMS. It can be great experience in the beginning but it will eventually have limitations or even worse become yet another full feature CMS like those already available today. And if you end up writing your own full featured CMS you have to ask yourself “Would my time have been better spent learning and mastering an existing CMS, its framework and contributing to its community?”

Unfortunately I don’t have any solid answers here. I guess the only real answer to the question should I use a framework or CMS is “It depends.” It depends on a number of different factors unique to your situation, your needs, your time line, and so on.

So what have I decided for the White Peak Software web site refresh? Honestly I’m still a bit undecided. The site is currently implemented with ASP.NET and a home grown simple CMS mechanism. It has worked well for a number of years but I need more functionality on the site. Building on the current implementation would take too much time so I need a different approach. My original thought was to use PHP and Zend but then I discovered CodeIgnitor. CodeIgnitor led me to ExpressEngine and I thought “Ah, the solution for me. PHP+CodeIgnitor+ExpressEngine”. But then I started looking at python for general programming tasks and thought “What would it take to use Python programming for web apps?” Not much I found out so I have decided to use Python.

The decision to use Python has lead me to look at a number of different frameworks and CMS solutions. And while I’m not 100% sure what stack I will select, I’m leaning towards Python + web2py. web2py is an enterprise ready framework for web based application. Web development using web2py is very easy and fast, and I really like the development experience on my Mac.

I guess it’s safe to assume at this point that I will once again pick a framework over an existing CMS. What can I say? I’m a programmer and while the appeal for a CMS is there I still enjoy the flexibility and control I have by doing my own implementation using a framework.

Update: Here is a follow up posting that explains my own requirements and why I feel using a framework is better in my situation.

Continue reading →

Framework or CMS Revisited

Thanks to Twitter I have received some great feedback [thanks folks!] within minutes of posting my thoughts on using a framework or CMS. In the post I talk about the two approaches in general terms and I end the post saying I will very liking use a framework for the White Peak Software web site refresh. Everyone who sent me feedback suggested I use a CMS for White Peak but unfortunately I didn’t really say what my requirements are. Knowing the requirements might change the opinions of some.

Continue reading →

CodeRage III - Not a Good Start for Me

I attended CodeRage I and II. The sessions were insightful and I enjoyed the concept of attending a virtual conference. With the first two CodeRage conferences I had zero problems listening in on and viewing the conferences. But with CodeRage III is only minutes away from starting I can’t say the same thing about attending this latest conference.

For starters when you register for the conference you have select the sessions you want to attend. Of course the standard disclaimer appears on the session schedule page “Agenda is subject to change without notice” so I registered for all sessions. This caused a flood of emails to arrive in my Inbox. “Big deal” I thought. I know I registered so I deleted the emails. Today I learn I needed to save those emails. Those emails contain the “join now” links for each session. Unfortunately since I deleted the emails long ago they are now gone forever. Only solution? To re-registered for the conference, so that’s just want I did.

To re-register I had to use a different email address then the one used in my original registration. If you use the same email address you get a friendly message saying you have already registered for the event. No s#@t! Since the system already knows I’m registered it would have been nice to see an option that says something like “re-send confirmation emails”. But noooo, so I completed the registration form again this time using a different email address.

Now I have re-registered and the confirmation page says “Thank you for registering for this event. You will receive an e-mail that will let you know whether your registration is approved.” It’s been 30 minutes and still no emails. And the conference has officially kicked off as I type the CodeRage III rant. Luckily someone on Twitter has offered to forward the emails to me.

Next issue. CodeRage uses Live Meeting. Live Meeting was a great service a few years back. Heck, I even hosted an online session a time or two back 4 years ago. Problem with Live Meeting is that it only works with Windows. Guess what? Not everyone uses Windows.

I switched to the Mac last year and the experience has been so good that I never want to see Windows again. Unfortunately that won’t happen in the real world. For starter I have customers who depend on Windows and I sell products for the Windows desktop. So Windows will remain a part of my life for the unforeseeable future.

The solution to using Windows on my Mac is VMware Fusion. This great piece of software allows me to launch instances of Windows in virtual machines on my Mac. This is how I do all my Windows-based development.

So what does this have to do with CodeRage III? I’ll tell you. Because I use the Windows virtual machines to do programming I typically never configure an audio device. This means no audio will ever play from the Windows-based virtual machines I use. But to attend CodeRage III I need to use Windows. And since my only access to Windows is through a virtual machine, I now need to re-configure a Windows instance to have an audio device.

So to attend CodeRage III I need to have a Windows vm instance with an audio device. I need to install the Live Meeting component. And I need to re-register or ask someone else to send me the emails with the session links. Honestly this is just becoming too much trouble.

At this point it has been an hour since I started getting ready for CodeRage III and I’m so annoyed that I just have to move on. I might try again tomorrow (doubtful) or just want for the replays to be posted in the near future (more likely). Meanwhile, here are some suggestions for future CodeRage events.<ol>
<li>Use an online conferencing solution that is not tied to Windows only</li>
<li>Send a single email, not one for each registered session</li>
<li>Provide a web page to registered attendees with links to the sessions</li>
<li>Don’t expect me to save 20 or so emails (that are flagged as junk anyways)</li>
Hope you are listening CodeGear.

Update: I decided I want to listening on CodeRage III so I have configured audio in one of my Windows development vm. But now I’m searching though 20 different emails to find the link for today’s current session. This is just plain stupid. Yes I know. If I used Outlook it would have placed an appointment in my calendar but I don’t use Outlook. Big surprise I’m sure. Too annoyed. Will try again tomorrow when I’m in a better mood.

Update 2: It’s been more than 2 hours since I started trying to get my CodeRage on and everything is finally working. Still, the experience has not been very Mac friendly. For instance, here is what happened when the 20 emails came in.

Continue reading →

RAD Studio 2009 Is Coming

I feel smart at the moment. Or maybe “wise” is the better word.

I subscribed to the Delphi RAD Studio Professional SA during a special pricing for the pre-order of 2007. I pay $399 a year (plus or minus a few dollars - I don’t remember the exact amount I pay each year). I noticed the upgrade from 2007 to 2009 costs $624. Assuming CodeGear continues the trend started in 2007 I should save more bones over time and stay current. I like it when I feel like I have a good deal.

Have you read about the new managed code version of Delphi called Prism? It’s actually not new. It’s RemObject’s Oxygen compiler for Visual Studio. I’m actually looking forward to playing with this. I was always interested in RemObject’s Chrome (renamed to Oxygen earlier this year) but didn’t want to spend the money. But since it is included as part of RAD Studio I get it for no additional cost.

Doubt I’ll ever really use it. I don’t see converting my csv file editor to manage code and I doubt customers are not going to ask me to write their .NET apps in Object Pascal, though I do prefer Delphi programming over C#. Also, I’m moving my personal web sites to python, my new favorite scripting / programming language. [Side note: I’m starting to do more and more with python. Mostly prototyping algorithms but I do have one program that downloads daily sales reports for iPhone developers hosted at Google Code. The program has been picked up and included in another open source project. It’s been fun to do.]

So I’m excited to play with Prism but honestly it’s about 2 years too late for CodeGear in my opinion. At least 2 years too late for me. And even though RemObject’s Chrome was available 2 years ago I didn’t see spending the additional money on it at that time. Still, I might use it to play with SilverLight. Unlike CodeGear/Borland’s past .NET attempts, Prism fully supports the latest .NET frameworks, libraries, and technologies coming out of Redmond. Oh, and Mono too. Though right now I will probably use python if I need to write something cross platform.

Continue reading →

Download iTunes Connect Sales Reports Using Python

Apple publishes daily sales figures on their iTunes Connect website for software vendors who have applications for sale in the iPhone App Store. I’ve been making a point to download the daily file each morning but I know I cannot continue doing this manually. What I need is an automated way to download the daily file.

I searched the net for script code that will download the iTunes Connect daily sales report but I came up empty. So I decided to write my own.

I’ve been interested in getting into Python programming and I thought what better way to learn Python programming than to write a script that will download the daily sales report from the iTunes Connect website. It turned out to be a fairly easy task to complete using Python. Guess it goes to show how powerful Python really is.

So here is my very first Python script. I’m sure there are things I could do better in the script, but hey, it’s my first script. Enjoy.

UPDATE: The original code had a problem with retaining cookies set by the iTunes Connect website. The code below has been updated with the correct, working code.

UPDATE 2: The Python script below is now hosted over at Google. Just click here or visit http://code.google.com/p/appdailysales/ for the latest information and version.

# appdailysales.py
# iTune Connect Daily Sales Reports Downloader
# Copyright 2008 Kirby Turner
# This script will download yesterday’s daily sales report from
# the iTunes Connect web site. The downloaded file is stored
# in the same directory containing the script file. Note: if
# the download file already exists then it will be overwritten.
# The iTunes Connect web site has dynamic urls and form field
# names. In other words, these values change from session to
# session. So to get to the download file we must navigate
# the site and webscrape the pages. Joy, joy.
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the “Software”), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.

# – Change the following to match your credentials –
appleId = ‘Your Apple Id’
password = ‘Your Password’
# —————————————————-

import urllib
import urllib2
import cookielib
import datetime
import re

urlWebsite = ‘https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa’
urlActionLogin = ‘https://itunesconnect.apple.com%s’
urlActionSalesReport = ‘https://itunesconnect.apple.com%s’

print ‘– begin script –‘

# There is an issue with Python 2.5 where it assumes the ‘version’
# cookie value is always interger. However, itunesconnect.apple.com
# returns this value as a string, i.e., “1” instead of 1. Because
# of this we need a workaround that “fixes” the version field.
# More information at: http://bugs.python.org/issue3924
class MyCookieJar(cookielib.CookieJar):
def _cookie_from_cookie_tuple(self, tup, request):
name, value, standard, rest = tup
version = standard.get(‘version’, None)
if version is not None:
version = version.replace(‘”’, ‘’)
standard[“version”] = version
return cookielib.CookieJar._cookie_from_cookie_tuple(self, tup, request)

def showCookies(cj):
for index, cookie in enumerate(cj):
print index, ‘ : ‘, cookie

cj = MyCookieJar();
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

# Go to the iTunes Connect website and retrieve the
# form action for logging into the site.
urlHandle = opener.open(urlWebsite)
html = urlHandle.read()
match = re.search(‘action=”(.)”’, html)
urlActionLogin = urlActionLogin % match.group(1)

# Login to iTunes Connect web site and retrieve the
# link to the sales report page.
webFormLoginData = urllib.urlencode({‘theAccountName’:appleId, ‘theAccountPW’:password})
urlHandle = opener.open(urlActionLogin, webFormLoginData)
html = urlHandle.read()
match = re.search(‘href=”(/WebObjects/iTunesConnect.woa/wo/.
urlActionSalesReport = urlActionSalesReport % match.group(1)

# Go to the sales report page, get the form action url and
# form fields. Note the sales report page will actually
# load a blank page that redirects to the static URL. Best
# guess here is that the server is setting some session
# variables or something.
urlHandle = opener.open(urlActionSalesReport)
urlHandle = opener.open(‘https://itts.apple.com/cgi-bin/WebObjects/Piano.woa’)
html = urlHandle.read()
match = re.findall(‘action=”(.)”’, html)
urlDownload = “https://itts.apple.com%s” % match[1]

# Get the form field names needed to download the report.
match = re.findall(‘name=”(.
?)”’, html)
fieldNameReportType = match[3]
fieldNameReportPeriod = match[4]
fieldNameDayOrWeekSelection = match[6]
fieldNameSubmitTypeName = match[7]

# Ah…more fun. We need to post the page with the form
# fields collected so far. This will give us the remaining
# form fields needed to get the download file.
webFormSalesReportData = urllib.urlencode({fieldNameReportType:’Summary’, fieldNameReportPeriod:’Daily’, fieldNameDayOrWeekSelection:’Daily’, fieldNameSubmitTypeName:’ShowDropDown’})
urlHandle = opener.open(urlDownload, webFormSalesReportData)
html = urlHandle.read()
match = re.findall(‘action=”(.)”’, html)
urlDownload = “https://itts.apple.com%s” % match[1]
match = re.findall(‘name=”(.
?)”’, html)
fieldNameDayOrWeekDropdown = match[5]

# Set report date to yesterday’s date. This will be the most
# recent daily report available. Another option would be to
# webscrape the dropdown list of available report dates and
# select the first item but setting the date to yesterday’s
# date is easier.
today = datetime.date.today() - datetime.timedelta(1)
reportDate = ‘%i/%i/%i’ % (today.month, today.day, today.year)

# And finally…we’re ready to download yesterday’s sales report.
webFormSalesReportData = urllib.urlencode({fieldNameReportType:’Summary’, fieldNameReportPeriod:’Daily’, fieldNameDayOrWeekDropdown:reportDate, fieldNameDayOrWeekSelection:’Daily’, fieldNameSubmitTypeName:’Download’})
urlHandle = opener.open(urlDownload, webFormSalesReportData)
filename = urlHandle.info().getheader(‘content-disposition’).split(‘=’)[1]
filebuffer = urlHandle.read()

print ‘ saving download file:’, filename
d ownloadFile = open(filename, ‘w’)

print ‘– end of script –‘

Continue reading →

Playing with Xbox Again

Today was the first time in over 6 months that I played on my Xbox 360.

Continue reading →

Waiting on a Response?

I know there are family and friends waiting for me to response to emails, IM, txt, facebook wall posting, tweets, etc. I’m sorry to say you will have to wait another day or two. I’ll be catching up on personal emails, etc starting tomorrow. Meanwhile, check this out if you need entertaining while you wait.

Continue reading →

New Blog for White Peak Software

I decided the time has come to separate blog postings specific to White Peak Software from my personal posting found here at thecave.com. If you are interested in following product news, tips, tricks, and all other things related to White Peak Software please visit or subscribe to blog.whitepeaksoftware.com.

Continue reading →

High Royalty Rates Could Kill Web Radio

High royalty rates could kill web radio including Pandora. This is very disturbing news for me because I listen to a lot of web radio especially Pandora. I rarely if ever listen to AM/FM radio these days and web radio is my only insight to new music. Web radio influences me to buy new music.

Continue reading →

High-Tech Capital in the U.S.?

The high-tech capital in the U.S. is…New York City. I’m not surprised.

Continue reading →

It Finally Happened

It was announced yesterday that Embarcadero will acquire CodeGear from Borland. Details about the announcement are already over the net, here, here, and here for starters, so I will not recap the details.

I have been saying for a long time that CodeGear needs to separate from Borland, and now it is finally going to happen. I’m excited to see what will happen next. Embarcadero seems like a fine suitor for CodeGear. I just hope small software companies, aka microISV, without a focus on databases, such as White Peak Software, are not forgotten about.

Update: Michael Swindell of CodeGear says CodeGear will still be the go to company ISV and microISV. This is good to hear.

Continue reading →

A Computer Crash of a Different Color

My tweet from Saturday night deserves a follow up response, especially since a few folks have asked “What happened?”

Continue reading →

Add-on Cube Speaker for Griffin Evolve

Yesterday I mentioned (via Twitter) that Melanie and I had purchased the Griffin Evolve wireless sound system. I happy with the purchase but was made happier today when I found out that Griffin is now selling add-on cube speakers. Maybe I’ll throw a couple of speakers upstairs so Rowan can rock out from his room.

Continue reading →

MLB Extra Inning Subscriber I am Not

Last week Comcast was running a free preview of MLB Extra Innings. My wife and I both really liked being able to view games outside of our local marketing area, and since we will not be able to attend as many baseball games this year compared to past years we decided to subscribe to the service. I noticed at the bottom of the television screen the cost for MLB Extra Innings was only $159. A little high in my opinion but we would spend that much attending 1 game at Fenway.

I called Comcast to subscribe and to my surprise the $159 price was a sales price available only during the preview. The regular price is $199 and that was the price they wanted to charge me when I called. I explained that I saw the $159 price during the preview, but all the nice lady could say was “The codes are no longer in the system.” Well, for $40 more dollars I decided not to subscribe to the MLB Extra Innings service. Instead of taking the $40 off, signing up a new subscriber, and making $159 from me, Comcast and MLB Extra Innings will now gets $0 from me because I refuse to pay the higher price.

Comcast will survive without my $159 but it is really poor customer service. Not only that, MLB Extra Innings loses out on an additional subscriber. And who knows. My wife and I might have enjoyed the service so much that we subscribe again next year. Instead Comcast and MLB Extra Innings will get nothing extra from us and all because of $40.

Continue reading →

A Better Way To Buy Music

Nine Inch Nails quietly released their latest album, Ghost I-IV, online Sunday night but it was anything but quiet. Fans flooded the server to get the new album. This caused an overload on the server, which finally was brought down on Monday for a few hours to correct the problems. Despite the temporary server problems in the first 24 hours, this experiment in how to buy and sale music online is a complete success in my opinion and I hope more artists follow NIN’s lead.

NIN is offering a free sampling of the new album, Ghost I, which includes the first 9 songs. You can buy the complete 36-song album, Ghost I-IV, for only $5, which I did right away. A great bargain in my opinion. Other purchase options include a 2-CD set for $10, deluxe packaging for $75, and a limited signed edition, which sold out in less than 24 hours, for $300 (2500 limited edition units x $300 = $750,000 gross revenue in 24 hours…awesome!).

Years ago I collected music, first on vinyl than on CD. My total music collection was around 3,000 pieces but a third of those pieces were stolen when I moved to NYC. This depressed me and I was no longer motivated to buy new music. I went from buying hundreds of CDs a year to buying less than 5. And this lack of motivation has nothing to do with pirated music available on the Internet. My MP3 library is a copy of my favorite music from my CD collection, not pirated music. So over the past 8 years I have not listened to or bought much in the way of new music. But this is slowly changing.

Recently I bought a couple of albums from Amazon MP3 Download store. Why now? Because Amazon offers DRM-free music. Buying music online is nothing new but I have a real problem with DRM enabled music that limited my personal use. So the introduction of DRM-free music was the first step in getting me to buy new music, but I’m still not buying as much music as I use to. Why?

I prefer buying complete albums. Sure, I have a favorite song here and there, but to me the entire album represents the complete vision the artist had at that time. I can’t image buying and listening to only 1 track from Lou Reed’s New York. You really must listen to the entire album, and in song order not shuffled. Again, in my opinion. But buying complete albums even on Amazon MP3 Download store can be expensive especially for some of the music I like. For example, The Eye by Yello is $19.80 on Amazon MP3 and that’s only $2 less than what I paid for the CD when it first came out.

So the high cost of digital music downloads keeps me from buying as much music as I once did. Why pay CD price for something that is digital only? The lack of packaging and materials alone should sufficiently lower the price for a complete album.

So while I’m still slow to buy music like I once did, but that will likely change if more artist follow the lead of Trent Reznor and NIN. $5 is a great price for a digitally downloaded album, a price I’m willing to pay over and over again. And it is probably a good price for the artist too who, like NIN did with Ghost I-IV, publishes and sells the album directly to the consumer bypassing the record industry. I don’t know the actual figures but I got to believe a $5 album sold as digital download directly by the artist will put more money in the artist’s pocket than selling same album for $14 on CD though a record company.

Continue reading →

Which is Better

Which layout do you like better?

Continue reading →

What I will and will not miss about living in New York City

5 things I will NOT miss about life in New York (in no particular order):

Continue reading →

Long Time No Post

December has been a very busy month for me and my wife. We’ve had a lot going on, which is why I have been slow to post this month. And no, I have not spent the entire month playing on the Xbox 360, although I wish I had.

First the exciting news…We’re moving out of NYC!

Yep, you read it here first. We’re moving out of NYC at the end of January. Melanie and I both love this city but we also want a life style that is hard to have in the city unless you are filthy rich. And contrary to my family’s beliefs, living in Manhattan doesn’t mean you are rich and we are far from rich.

So where are we moving to? Salem, Massachusetts. I call it our “From Rainbows to Witches” move and if you know anything about where we currently live and where we are moving to you will know this is not a Wizard of Oz reference.

We found a super nice apartment in Salem. It’s actually a house but a portion of the first floor is used as office space for the church that is next door. We have a small portion of the first floor, all of the second and third floors, and a small storage room. This house is definitely larger than our small Manhattan apartment. And for a faction of the cost too. I’ll post pictures of the house in about a month.

A number of other things have been keeping me busy in December too. Migrating all my Visual Studio.NET 2003 (.NET 1.1) projects to Borland Developer Studio 2006 (C# Builder) has not gone as smoothly as I had hoped. I’ll post my experience about this later, but I will say I absolutely love BDS. Live templates are awesome and the IDE is very fast. Aside from load time I find it more responsive than Visual Studio 2005, which is why I’m moving all my .NET 1.1 projects to BDS.

I also spent a lot of time in December reviewing and evaluating specific features of Visual Studio 2005 and .NET 2.0. There are some improvements I like such as typed data sets but I’m finding my customers are slow to move to or have little interest at the moment in .NET 2.0. So while I wish BDS 2006 had support for .NET 2.0 it doesn’t look like I will be doing any hardcore .NET 2.0 work anytime soon. My focus will continue to be on Win32 and .NET 1.1.

Happy holidays to everyone.

Continue reading →

BDS and Quality Central

I finally got my copy of Delphi 2006 install and I have started using it day. I love it and it is a huge improvement over Delphi 2005.

Unfortunately the IDE crashed on me, but it did something really cool. The exception was caught and I was given the option to send the error report to Borland’s Quality Central. Not only that, but if you provide your BDN credentials you can track the report! How cool is that!

I’m happy to see this new level of commitment to quality.

Continue reading →

NYC's First Snowfall for the Season

Finally a dusting of snow is on the sidewalks of Manhattan. I was happy to finally see the white stuff, which is melting fast.

Continue reading →

My Amped3 for the Xbox 360 Review

At first I did not like Amped3 but I quickly warmed up to it. I owe Amped and Amped2 so I naturally expected to jump into Amped3 with some free riding. But that didn’t happen. Here’s my story.

My copy of Amped3 arrived a week before my Xbox 360 arrived. Since I couldn’t play the game I read the booklet. “Wow! This is going to be the best Amped yet,” I first thought. Not only can you ride the mountains but you can jump on a sled, ride snowmobiles, and even throw snowballs.

As soon as my Xbox 360 was setup and running the first game I planned was Amped3. After you setup your player you are immediately placed in the story. I found the beginning annoying because I wanted to ride the slopes but every couple of minutes I had to watch a silly movie.

You start off in a pink bunny suit and you get to do a quick, short run. I guess this part gives new players of Amped3 a chance to learn the controls. You see movies that introduce you to your crew and you meet a wacky woman. After playing Amped3, or should I say watching the wacky movies, I turned off the game and spent time with my wife. I told her I was now thinking this is probably the worse Amped game. A huge difference from a week earlier.

I started playing again a few days later only to find I was wrong. Amped3 was in fact fun and is a great game. The story mode became more interesting (and wacky) and as you progress through the story you unlock new mountains areas and new mountains. Once unlocked you can spend as much time as you like free riding, exploring, hitting the park, sledding, snowmobile riding, and even build your own park. I was finally getting into the game.

The story mode is wacky but will hold your attention for the 6 or 7 hours needed to complete it (that is, after you get pass the initial start of the story). Once you have finished the story all the mountains are unlocked and you are free to explore and complete the many, many, MANY remaining challenges. Although you can finish the story mode in a day, it will definitely take much more time to finish all aspects of the game.

My favorite feature of Amped3 is the leaderboard. When you win a gold medal on a challenge, you are ranked on the leaderboard which is posted on Xbox Live. This allows you to see how you rank with other Amped3 players throughout the world. It’s a whole new level of competation. I often find that if I don’t place well on the leaderboard for a particular challenge I will re-play that challenge over and over until I’m happy with my ranking. And I’m stoked everytime I place in the top 10 on a leaderboard.

Another new feature of Amped3 I really like are the player stats. I love stats and I review them all the time. With Amped3 you can see how much time you have spent playing the game, the number of tricks thrown down, and the number of crashes you’ve had. You can see other stats as well like how many miles covered on a snowmobile, high scores, and number of leaderboards you are on. And there are many, many stats available too.

Game play is similar to previous Amped games but the controls are easier. I imagine the game developers decided to do this to appeal to more causual gamers and/or to attact the SSX crowd. You still get awarded more points for style but jibbing is much, much easier. You don’t have to press B to start a jib. In Amped3 just land on the object, or snowboard right up to it, and you’re jibbing. Grabs, tricks and so on are determined by pressing XYBA button combinations (XYB for jibs, A will ollie when jibbing).

One feature I dislike is the awesomeness graphics. These annoying graphics are displayed around your character when you reach a level of awesomeness. I find it annonying and luckily the game designers were smart enough to provide a way to disabel the awesomeness graphics. Go to the ride customization menu and select Awesomeness. From the menu you can select the awesomeness graphics to display or you can select “None”. I prefer “None”.

My biggest disappointment with Amped3 is the lack of multiplayer support. I really expected offline, split screen multiplayer support, and I miss the online multiplayer games found in Amped2. It’s a real shame that Amped3 does not have multiplayer ability given the new features like sledding, snowmobile riding, and having snowball fights. These new features could make for hours of multiplayer fun.

By the way, there is a stupid sled game that you can play on some mountains that is multiplayer but it’s a really stupid game. You and a buddy are on sleds that are attached by a rope. The goal of the game is to get the most bodily damage. I don’t know why the game designers put this in there. It makes me think maybe, just maybe the plan was to have multiplayer support in Amped3 but got rushed since it is a launch title game. Personally I would have rather waited another 6 months for Amped3 just to have multiplayer support.

If you enjoyed Amped and Amped2 then you will really like Amped3. Just get pass the first 30 minutes and you will start enjoying the game. I also recommend playing out the story mode as quickly as possible. Afterwards you can focus on all the other challenges, building your own park - yes, I forgot to mention that. In Amped3 you can design your own park! Way cool - and exploring the mountains. The leaderboards on Xbox Live is a great new feature, but the lack of multiplayer support does suck. Still, it’s a great game and a must buy for those who loved Amped and Amped2.

Continue reading →

Borland Delphi 2006 Hits the Streets

It’s true. Borland Delphi 2006 is shipping. Unfortunately I still do not have my copy which I pre-ordered back at the beginning of November. So much for a first come, first serve approach. According to my order status, my order has been back ordered!

I hope my copy comes soon. I want to start up a new dev environment where I use the Borland Developers Studio 2006 for all my Delphi and .NET 1.1 programming. I’ll use Visual Studio 2005 for .NET 2.0 development since the Borland Developers Studio will not have support for .NET 2.0. This is unfortunate but I understand it had something to do with Microsoft consistently changing the release schedule for .NET 2.0 and a license agreement between Microsoft and Borland regarding the distribution of pre-RTM releases of the .NET 2.0 Framework. Unfortunately I can’t find the link to the blog that explains why this latest release from Borland does not support .NET Framework 2.0. I’ll post the URL if I find the link.

Meanwhile, I anxiously wait for my copy of Delphi 2006.

Continue reading →

First Descent - The movie is awesome

Melanie and I saw First Descent last night which was also opening night for the movie. We both thought the movie was excellent. If you ride, wish you could ride, or just want to learn more about snowboarding and the history of snowboarding then First Descent is a must see movie for you.

The movie has two story lines. One story is about 5 of the world’s top snowboarder getting together in Alaska for some big mountain riding. The other story is the history of snowboarding covering primarily the 70’s through the 2002 Olympics. The movie switches back and forth through the two story lines and it definitely holds your attention throughout its entirety.

I might try seeing it again this week. And of course I can’t want to buy it on DVD.

Into snowboarding? Then go see this movie! It’s a must see.

Continue reading →

Is Linux Feasible on the Desktop?

There has been a lot of buzz this week about the Desktop Linux Client Survey 2005, release earlier this week by Open Source Development Labs. In this report OSDL says the lack of a quality email program prevents Linux from being widely adopted on the desktop. Some argue that Linux is suitable for the common user while others argue that more application support and training is needed.

My opinion in this debate is simple. I believe users will go where the applications are and most applications developers (including in-house, corporate developers) and ISV are NOT targeting Linux. And the reason many developers do not write desktop applications for Linux is because there are no good RAD development environments like Delphi and Visual Studio to help increase developer productivity for Linux development. Also, there is a lack of 3rd party control support for Linux developers. At the end of the day it is easier to write and go to market with a Windows desktop application than it is with a Linux desktop application (or Mac application for that matter).

Vendors like Borland have tried in the past to sell a RAD environment to developers for Linux, and I for one wish they would continue work on Kylix. Unfortunately Borland has made Kylix a classic product which means there is still some demand but the product is no longer enhanced, supported or marketed. A real shame in my opinion.

Speaking as an ISV I would very much like to see White Peak Software target Linux for its desktop products which includes a new email client for the Windows platform due out next year. However the time to market for Linux desktop applications is much longer. Development tools like Delphi and 3rd party controls like the ones from DevExpress and /nsoftware make it easier and faster to write and publish Windows desktop applications.

Give general development community the tools needed to write Linux desktop applications faster and I believe you will see more Linux desktop applications. And once there are more useful, quality applications available on the Linux desktop the user community will follow. It worked for Palm in the 90’s. Palm made it easier for developers to write Palm Pilot applications as compared to WinCE, and Palm Pilot became the preferred hand held for the majority of users.

It has also worked for gaming consoles. The number of titles and the quality of those titles helps decide which console has the majority of the market. Microsoft wants to see the new Xbox 360 beat Sony’s PlayStation worldwide. A key point in Microsoft’s plan is to attract the biggest names in game development to produce Xbox 360 game titles. Microsoft knows that the best games must be available on its new console for the platform to be a marketing success. The gaming community will go where the best games are. The desktop user community will do the same.

Linux will become more feasible for the desktop once the number of useful software titles has reached a critical mass that attracts the general user. And to make it happen, more software developers need to target the Linux desktop. But first there needs to be better development tools that make it easier and faster to go to market with a Linux desktop application. This will attract more software developers, which in turn will produce more software titles, which will attract more users to the Linux desktop.

Continue reading →

My Xbox 360 Review

I have had a week to play with my new Xbox 360 and overall I’m happy with the purchase. However, unless you are a hard core gamer who wants the latest hardware or there is a must have, must play now game title out there, I recommend waiting until after the holidays, maybe longer, to buy an Xbox 360. Here’s why.

Although the hardware is impressive the launch titles I have played don’t really push the hardware. In other words, I’m still waiting for a next-gen game that really shows off what the Xbox 360 can do.

PGR3 and Call of Duty 2 look great on HDTV. New York City streets in PGR3 look real and Call of Duty 2 makes you feel like you are in a movie at times. Both games look good on a standard TV but really shine on HDTV. HDTV support is one area that makes the Xbox 360 a better console than the others on the market today. But if you don’t have HDTV, games look about the same as you would expect on Xbox 1 or PS2.

One thing I do like is the new Xbox Live. The new Xbox Live combines a market place with gaming. I also like the gamer card and score. I find myself consistently comparing my score to other gamers and I’m consistently working on gaining more Xbox Live achievements.

Another impressive new feature of Xbox 360 is the media capabilities. You can play music, watch videos, view digital photos and more. The console does a good job of being a complete entertainment console. The Xbox 360 can connect to a Windows PC running Media Connection software or Media Center. Once connected you can listen to music streaming from the PC or watch a movie or even browse digital photos.

I’m excited about streaming music since I have a server of 40+ GB of MP3 that I prefer listening to. Since my Xbox 360 is connected to my sound system and it can connect to a Windows PC over my home network, I am now able to listen to my music from the server through my sound system. This of course is nothing new but the Xbox 360 makes it easy to setup.

<h2>The Good, The Bad, and The Ugly</h2>

So you have just read the good. Now time for the bad and the ugly. The bad was my first experience with the Xbox 360. As I previously mentioned in a different post I had hardware failures when I first setup the Xbox 360. The hardware failures were caused by the video card not receiving enough power to operate properly. I was on hold for what seemed like forever with Microsoft Support but eventually gave up. I searched the forums and found I was not the only one experiencing problems. In fact a lot of people were having problems.

The solution that worked for me was to wipe down the mental connectors on the power brick. Apparently there was residue on the mental pieces that prevented the console from receiving full power. There are some individuals in the forums who say this is ridiculous and that wiping down the mental connectors will not fix anything. All I can say is I have not had a hardware failure since so the solution appears to have worked for my case.

Speaking of the power brick, it’s the one part of the hardware that is a real let down. Sure the console is slimmer than its predecessor but the power brick for the Xbox 360 is huge making it a pain to carry the console to a friend’s house. The power brick even has its own built-in fan, which adds to its size. Speaking of which, the combination of the console and the power brick make for a noisy experience. Yep, the fans are loud.

The Xbox 360 is louder than all my laptops and Dell servers, firewall device, network hubs and switches, wireless access points, printer, and external USB hard drivers combined. You will not notice the fan noise during game play since the game will have its own sound and music but when the Xbox 360 is powered on and there is no music or game play in progress you can definitely here the roar of the fans. Over Thanksgiving weekend I was asked a couple of times “What was that noise?” Of course I had to say it was the Xbox 360.

And lastly the travel bag. Those who know me know I am a bag junkie. I believe having the right bag is key to travel and transporting goods. I’m not talking about a purse. I’m talking about big bags and small bags with a specific purpose. And I have a lot of them so it was only natural for me to buy the Planet 21 Xbox 360 Sling Bag.

This bag looks nice but it does have some design flaws. First of all, there should be a handle at the top of the bag. This would make it easier to carry the bag when you need to walk through say the turnstile at the subway station or throwing (not literally) the console into the car. Also the shoulder strap sucks. There is no padded shoulder rest and believe me if you are carrying the console with the heavy power brick to a friend’s house and you have a 30 minute walk you want a padded shoulder strap.

But the number one disappointment I have with the Sling Bag really isn’t the bag itself but the power brick. Yes, again with the power brick. While the Sling Bag supposedly was designed for the Xbox 360 there is not good place to store the power brick. The bag has lots of pockets and compartments which I really like. Unfortunately many of them become useless once you put the power brick in the bag. I really hope a 3rd party or Microsoft comes out with a replacement power brick in the near future.

Anyway, back to the bag. It’s a nice bag and it’s okay for carrying your Xbox 360, a couple of controllers, the power brick, and a game or two especially given the price, $50 USD. But a more expensive laptop bag might make packing away the hardware and accessories easier.

<h2>And Finally</h2>

I’m really enjoying my new Xbox 360. Games like Amped 3 and Call of Duty 2 are great launch titles, but I haven’t found a launch title that really shows off the hardware. I expect this will change in 6 to 12 months after game developers have had more time to explore the potentials of the console. The new Xbox Live is great and is the one saving grace (for the moment) for the Xbox 360 in my opinion. While I don’t think the new Xbox Live is a reason to buy a new Xbox 360 it is nice to have if you already have the console. And lastly, given the initial problems reported by many Xbox 360 owners and the lack of a kill launch title that shows off the potential of the new hardware, I believe Sony has a chance to trump the Xbox 360 with its upcoming PlayStation3.

Continue reading →

BorCon 2005 Video

Borland has posted a video from the 2005 Borland Developer Conference that includes a demonstration of the new Borland Developer Studio 2006. I don’t know about you, but I am anxiously awaiting the release of Delphi 2006 and the new Dev Studio. I’m really excited about the new features included in the upcoming release.

Continue reading →

Xbox 360 Problem Could Be the Power Supply Connectors

I just read from the Xbox forums that the problem I am experiencing might be caused by the power supply connectors. Apparently some believe there is residue on the metal and pins preventing the power supply from send full power to the console. I wiped down all exposed metal pieces. Hopefully this will fix the problem.

Continue reading →

Xbox 360 My First Impressions Are Not Good

Santa came early at the Turner house. My Xbox 360 arrived this afternoon! I was impressed by the size of the console but not so impressed by the size of the power supply. It’s huge but I can live with that.

Setup was easy. It only took me a couple of minutes. I powered on the console with the plan to convert my Xbox Live account to Gold before playing any games, but low and behold the video card crapped out. Yep, that’s right.

The box was on for less than 5 minutes when the video card crapped out. The screen got fuzzy with red dots all over then thin black and white lines were displayed. My first thought was the video card was fried. I powered off the console and called support.

I was put on hold so while I waited I decided to unplug the console, plug it back in, and try it again. The console booted up fine and the video was okay. Whew, maybe it was just a freak one-time video problem.

I was still on hold with Microsoft Xbox support. I decided to stay on hold while I worked my way through the network setup and Xbox Live account conversion. Luckly I wasn’t experiencing any more hardware problems. I did have some problems converting my Xbox Live account and had to do the process twice. Microsoft could improve the conversion process user interface a bit, in my opinion.

Still no hardware problems and still on hold with customer support. 20 minutes had past so I decided to drop in my first game, Amped3. I decided to hang up the phone too. 2 minutes later, red dots everywhere! The dang video card went crazy again!

So my first impressions are not good based on the first 30 minutes or so. I felt like I did yesterday when I saw Microsoft demo pre-release version of Visual Studio Team Services on Launch Day and it did NOT work. I have been browsing the Xbox support forums and it seems others are having problems with their new Xbox too. I’m glad I’m not alone but I’m very disappointed with Microsoft.

After powering down the console, unplugging it, plugging it back, and powering it up again, I was finally able to play Amped3. The next 40 minutes were problem free. I’m heading out in a few minutes so I had to turn it off. I think I will turn it back on while I’m gone to do a burn in test.

I noticed the manufacturing date on my console is Nov 14 2005. Barely a week ago and it makes me wonder if Microsoft ever performed a burn-in test on it. Well, one thing I do know is if the video goes out one more time I’m returning the console and games.

Continue reading →

Is My Xbox 360 Problem Resolved

I’m almost hesitant to say this but my Xbox 360 has been running problem free for the last 4.5 hours. Maybe the residue problem was the cause. Time will tell. I plan to play the heck out of the Xbox 360 this holiday weekend. I’ll make another status posting at the end of the weekend along with my reviews of Amped3, PGR, and Call of Duty 2.

Updated: I’ve gotten a lot of gaming time in (over 20+ hours) on my Xbox 360 and I have not experienced any new hardware problems. I guess the problems I experienced on Day 1 were related to residue on the metal connectors of the power brick. Also, I’m having a blast with Amped 3 and Call of Duty 2. I’ll post my reviews of these games later.

Continue reading →

Using WinCV.exe with .NET 2.0

In an earlier post I mentioned my disappointment with Microsoft for not including wincv.exe in the .NET Framework 2.0 SDK. Like many developers I have found this tool to be very handy and I use it a lot. But all is not lost. WinCV.exe can be used with .NET 2.0.

WinCV.exe has a config file called WinCV.exe.config identifying the assemblies loaded and exposed by the tool. I modified the config file to include the .NET 2.0 assemblies. Low and behold this worked. I can now use WinCV.exe to examine class definitions for 2.0 classes.

I recommend copying the WinCV.exe and WinCV.exe.config to a clean directory if you have .NET 1.1 and 2.0 installed on the same machine. This way you can use one instance of WinCV.exe for .NET 1.1 and the other for 2.0. You can declare the 2.0 assemblies in the same config file as the 1.1 assembly but this can lead to confusion when looking at the class definitions in WinCV.exe. I like to eliminate confusion so I copied WinCV.exe and its config file to a different directory, which I use to browse 2.0 classes. I use the instance at the default location to browse 1.1 classes.

I have posted the WinCV.exe.config file containing the 2.0 assembly declarations here. Note I had to rename the file stored on the web server to WinCV.exe.config.xml so ASP.NET would not block you from downloading it. You will need to remove the .xml from the file extension or copy
paste the XML if you are viewing it in the browser window.

Lastly, for those of you wondering where you can find WinCV.exe, look in your Visual Studio 2003 install directory. The default location is:

C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin

Kudos to the Microsoft developer who had the smarts to use a config file for WinCV.exe.

Update: The WinCV.exe.config file posted above has the section needed to force WinCV.exe to run under .NET 2.0 when multiple versions of the .NET Framework are present on the same machine. Thanks to Don Jayamanne for recommending the the section setting.

Continue reading →

Let down twice today by Microsoft

This is more of a rant then anything else but I gotta say it. I’m really disappointed with Microsoft today. It started at the NYC Product Launch event for Visual Studio 2005, SQL Server 2005 and BizTalk 2006.

Today’s event was a let down for me. I have been to many similar Microsoft events over the years and have always left thinking “This was well worth my time.” Today’s event was only worth my time because of the free giveaways. The actual event itself was a let down and left me wondering if Visual Studio Team Services is really ready.

For starters the demo of VSTS used a pre-RTM version. This was a launch day event and pre-released software was demoed…WTF! On top of that many of the features demoed did not work, presumably because the pre-RTM release was used. Unit tests did not run, web tests did not run, load tests did not run, reports could not be displayed, and in certain cases bad practices were demoed such as saving the list of work items in SharePoint as an Excel spreadsheet. I would not want my team working from a static list of work items when Foundation Server is installed and live information can be used.

Disappointed with the event I decided to return to the office early to get some work done. My plan for the rest of the day is to evaluate the SqlBulkCopy class for a customer. I wanted to quickly see the class definition for SqlBulkCopy so I went to load wincv.exe.

For those of you who don’t know what wincv.exe is, it is a class viewer for the .NET Framework classes. I often use it to identify property and methods names, which is faster using wincv.exe then the MSDN documentation. But to my surprise wincv.exe is NOT included with the .NET Framework 2.0 SDK. What gives? I found it to be a very useful tool that I used on a regular basis. Now it is gone. Even the wincv.exe page says it ships only with version 1.0 and 1.1 of the .NET Framework.

I have been using this tool for 4 years and I’m disappointed that I cannot continue using it with the new release of the framework. Needless to say this adds to my disappointment in Microsoft today. If only my Xbox 360 had arrived today. Things might seem different.

Continue reading →

Finally more pictures

For those of you who have been asking me “When are you going to post new pictures?” Well, the answer is “Today”. Check out the gallery for almost 6 months of pictures. From the NYC Pride Day March to summer camping trips to family vacations to our trip to Italy…You finally have some new pictures to keep you occupied for the next few minutes. Enjoy.

Continue reading →

New RSS 2.0 feed URL for thecave.com

Recently I mentioned the RSS feed for this site had a bug in it. The link for each blog item was incorrect. The reason this happened is because I was using Blogger.com to generate the rss.xml file and Blogger had no way of knowing the link used on the site. I finally fixed this today but it means Blogger is no longer generating the XML file. It also means the URL to the RSS feed has changed.

If you are reading this blog from an RSS-based aggregator you will need to update the URL for the feed. The new URL is:


Continue reading →

My Opinion of Typed Data Sets is Changing

Is there a place in the .NET development world for typed data sets? I use to think resounding “No”. I despised typed data sets ever since I was first exposed to them in a VB.NET training class back in 2001. Actually, until last week I have not even looked at typed data sets since that class.

I love writing code so custom business entity and handed-rolled CRUD classes are a-okay with me. But I’m starting to develop a change in opinion about typed data sets in .NET. It all began last week when I started evaluation ADO.NET 2.0.

First of all, loading data into a DataSet or DataTable is much faster in ADO.NET 2.0, night and day faster. For instance, I ran a speed test that loads 1 million rows into a DataTable. The test took just over 52 minutes to load the 1 million rows using ADO.NET 1.1. The same test took only 27.36 seconds using ADO.NET 2.0. Now that’s a performance improvement. If you previously discard DataSet and DataTable because of performance reasons, you owe it to yourself to take another look at them in ADO.NET 2.0.

A typed data set is nothing more than code generated by Visual Studio that inherits from the DataSet and DataTable classes, among others. You can view a typed data set as nothing more than a set of generated business entity and CRUD classes. Because typed data sets inherit from DataSet and DataTable, they share the same performance boost given to its parent classes. But this alone did not convince me that typed data sets finally have a place in the development world.

Visual Studio.NET 2005 really impressed me on how easy it is to now create a typed data set. The wizards make it easy to associate your CRUD stored procedures to the table adapter, and you can just as easily extended the functionality to include adhoc queries and other non-CRUD stored procedures. And Visual Studio will generate over 800 lines of code that handles concurrency checking and other ADO.NET best practices with a simple drag and drop action. As much as I hate to say it, this is faster than writing your own business entity and CRUD classes.

The invention of a type data set is about improving a programmer’s productivity and Visual Studio 2005’s implementation of typed data sets does just that. It is one of the most productive ways I have seen to build data access and entity classes. I will definitely consider using typed data sets in future .NET 2.0 work.

Continue reading →

Can you pass 8th grade math?

You Passed 8th Grade Math

Passed Congratulations, you got 9/10 correct!

Continue reading →

Latest Announcements

Check out these latest announcements.

ANN: SMTP Diagnostics 1.4

ANN: New Web Site Design

As you can see, even thecave.com has been included in the new web site design. The goal of this redesign was to bring a similar look and feel across the 3 main sites, www.thecave.com, www.smtpdiagnostics.com, and of course www.whitepeaksoftware.com.

I hope you like what we have done.

Continue reading →

Do we need local email software?

A few months back I mentioned that White Peak Software is working on a new product to be released next year. That product, code name Vertigo, is a new type of email client for the PC. The current plan includes 3 editions to Vertigo: Basic, Personal, and Business editions. The Basic edition is a simple to use email client but the Personal and Business editions will go beyond what other email clients such as Outlook offer.

I have shared my vision of improved communication software with many people over the 6 to 12 months. A common response I get from some is “Why write a PC version of an email client?” This response typically comes from consumers who use online email such as Gmail, Hotmail, and Yahoo for personal emails. My response is always the same, “Not everyone wants to or can work with email while connected.”

For lots of users there are times when a person needs to catch up on emails while traveling on a plane or train. Or maybe that person is staying at a hotel in another country that does not offer a broadband Internet access or all you have is dial-up access to the Internet. And there are still others who want to do more with their email data such as track statistics, generate reports, and integrate/share the data with other locally run application.

I’m not the only one who believes there is a need for local email. As Rafe Needleman put it:

<div class="quote">
“People who need to work when they are disconnected–and that’s most of us–need a PC with an e-mail application, a modicum of processing power, and local storage. For us, online e-mail applications–be they consumer e-mail like Yahoo or Microsoft’s corporate solution, Outlook Web Access–are useful adjuncts to local e-mail applications. They are not a replacement.”

Will this ever change? I believe this will change within my lifetime but I don’t see it happening before 2010 or 2012 at the earliest. It requires that we are always connected to the Internet, which is not the case for so many people today. Or it might require a new way of integrating local programs with web-base application. It’s hard to time what the right answer will be, and how or if the browser will become the platform. I do know, however, that there is a need for local email programs like Vertigo and this need will continue for years to come.

Continue reading →

New Snow at Killington


Continue reading →

Small Company Claims Patent on XML

Here’s the latest in “stupid patents” news. The U.S. should end the madness and get rid of software patents.

Updated: Tim Bray’s response to the claim.

Continue reading →

More on Delphi Roadmap

Danny Thorpe, Borland Chief Scientist, posted an entry on the Delphi Roadmap for 2005-2006. But the really interesting read are the comments, which include responses from Danny.

Continue reading →

Tim's Marathon Run to Fight Cancer

My friend Tim is running a marathon at Disney World in January as a member of The Leukemia & Lymphoma Society’s Team in Training. The team is raising funds to help stop leukemia, lymphoma, Hodgkin lymphoma and myeloma. You can make a donation to this great cause and/or check Tim’s training status from his new Tim in Training web page.

Continue reading →

Marathon Results for Brooke and Josh

Speaking of marathons, my sister-in-law and her husband, aka Brooke and Josh, are running the Chicago Marathon today. Click here to see the results of their run, which is updated at various check points.

Updated: Good luck Congratulations Brooke and Josh on the excellent finish!

Continue reading →

World-wide "Thanks to the Delphi R&D, QA, and Doc Teams" Day

It started yesterday with Boz Elloy then Nick Hodges. Nick went one step further by suggesting all Delphi developers extend thanks to the Delphi R&D;, QA, and Doc teams for creating a great development tool. And now I would like to join in.

I like to give a huge Thanks to the Delphi team at Borland. Delphi has been my favorite development language and tool since the time (9 years ago or so) when I was first introduced to it by my friend Tom. And while I also work with other languages, Delphi remains my tool of choice whenever possible especially for building desktop applications.

Continue reading →

VCL.NET vs WinForm

By the way for those interested in a good article on VCL.NET versus WinForm, give Craig Stuntz’s article Choosing Between VCL for .NET and WinForms a read.

Continue reading →

Delphi and Avalon

Back in April I blogged about re-compiling Delphi source code from the 90’s into a .NET managed assembly. Delphi (and possibly C++) is the only language I know of that provides this level of support. While many Classic VB developers are porting legacy code to VB.NET or C#, I continue using Delphi code that has been unchanged for more than 7 years.

One of the next big things coming out of Redmond that will affect Windows developers is Avalon, now called the Windows Presentation Framework Foundation. While I image there will be some migration plan for .NET developers, I’m happy to see Borland has plans to implement VCL for Avalon in 2007.

Based on my experience of moving Delphi code to .NET, I’m confident that Delphi code I write today as well as code I’ve written over the years will require little to no change with I’m ready to adopt the new presentation framework from Microsoft.

Continue reading →

Writeboard from 37Signals

Writeboard, a by service from the folks at 37Signals, is live. Looks interesting. Anyone want to try it out with me by collaborating on new text for the White Peak Software web site?

Continue reading →

Delphi Road Map for 2005 - 2008

David I has posted the slide with the latest Delphi and C++ Builder road map through 2008.

Continue reading →


Check out this combination of Google Maps and live NYC traffic cameras. It’s called NYsee and it’s cool.

Continue reading →

ANN: SMTP Diagnostics 1.4 Beta 1

SMTP Diagnostics 1.4 Beta 1 is available for download. Click here for more information.

Continue reading →

Refactoring SMTP Diagnostics...The Story Continues

My small refactoring effort on SMTP Diagnostics turned into a much bigger effort but the end result is a much better code base. The exercise led to re-architecting most of the application. The GUI remains untouched but everything else behind the scenes has changed. After an 11 hour marathon session, I finally got a clean compile. I still need to re-wire parts of the GUI to the new object model before I can begin testing. But I did write unit tests (using DUnit) for all of the non-GUI code as part of the refactoring exercise. All of this re-work is definitely going to make it easier to add new features in the future.

Incorporating another New Feature

Speaking of new features, a fellow developer recommended I incorporate RSS feeds as a way to inform users of new releases within the program. I instantly fell in love with this idea mainly because it allows me to share more information with customer beyond just “a new release is available”. By using an RSS feed, I will be able to let users know about new releases, show the list of enhancements and bug fixes, send out tips, and possibly a newsletter some day.

Of course the user will have the option to turn off the feed feature, or to display the feed on demand. But I think this is a great use for RSS that I plan to incorporate in all of our products going forward.

Continue reading →

Xbox 360 Release Date: November 22 2005

According to EBgames.com, the official street date for the Xbox 360 is November 22, 2005. I pre-ordered my 360 with overnight delivery, but given that the 22nd is only a couple of days before Thanksgiving I should have requested standard ground shipping. Chances are good I will be out of town when the shipment is delivered. Oh well.

Continue reading →

Request to Buy Delphi Rejected By Board

Have you read this?

Continue reading →

Refactoring SMTP Diagnostics

In a recent blog posting, I talked about convincing a client it’s time to refactor. Well, I have spent the last few days convincing myself that it is time to do some refactoring of SMTP Diagnostics.

For those who don’t know, SMTP Diagnostics is a mailer program enabling you to troubleshoot problems with outgoing email and assist with configuring outgoing (SMTP) servers.

I have been putting off refactoring while still adding new features. I did this to “save time” but the code base has reached a point where it is now more time consuming then it should be to add new features. I can put it off no longer.

What’s fun about this exercise is that I get to build from the knowledge obtain thus far. Version 1.0 did not have a solid object model and a lot of the code was specific to this one project. Version 1.2 and 1.3 moved away from that by incorporating common code, or a common framework, that I’m using in a second product code-name Vertigo. Version 1.4, which is the next release, will finally have a reusable object model that will make adding new features much easier. For example, adding command line support will be a snap once the new object model is in place.

Look for the beta release for version 1.4 in a few days.

Continue reading →

Discovered Constant Bug in VS.NET 2003

Tonight I discovered an interesting Visual Studio.NET 2003 bug. Seems devenv.exe will throw an unhandled exception when the constant in the sample code below is compiled. From what I can tell, it looks like devenv.exe chokes on the length of the contant. Remove line 73 (LEFT OUTER JOIN…) and the exception is not thrown.

The exception only occurs when compiling the project from within VS.NET 2003 (devenv.exe). The command line compiler csc.exe does not have the problem. Also, the problem does not occur if you are using Delphi 2005. Makes me wonder what devenv.exe is doing during the project build process.

001 using System;
003 namespace ConsoleApplication3
004 {
005 /// <summary>
006 /// Summary description for Class1.
007 /// </summary>
008 class Class1
009 {
010 /// <summary>
011 /// The main entry point for the application.
012 /// </summary>
013 [STAThread]
014 static void Main(string[] args)
015 {
016 const string SQL_FORMAT = @”
018 1 AS Tag,
019 NULL AS Parent,
020 NULL AS [users!1],
021 NULL AS [user!2!strUSID],
022 NULL AS [user!2!strPrefixID],
023 NULL AS [user!2!strFirstName],
024 NULL AS [user!2!strLastName],
025 NULL AS [user!2!strUSName],
026 NULL AS [user!2!strAdd1],
027 NULL AS [user!2!strAdd2],
028 NULL AS [user!2!strTown],
029 NULL AS [user!2!strState],
030 NULL AS [user!2!strPostCode],
031 NULL AS [user!2!strCountry],
032 NULL AS [user!2!strTel],
033 NULL AS [user!2!strFax],
034 NULL AS [user!2!strEMail],
035 NULL AS [user!2!strLocked],
036 NULL AS [user!2!dtmLockedDate],
037 NULL AS [user!2!strSuspenseReason],
038 NULL AS [user!2!intLogonCount],
039 NULL AS [user!2!dtmCreatedDate],
040 NULL AS [user!2!strMedicalSpecialtyID],
041 NULL AS [user!2!blnChangePassword],
042 NULL AS [user!2!strInstitutionalUser],
043 NULL AS [user!2!strCreditCardExpDate]
046 2 AS Tag,
047 1 AS Parent,
048 NULL,
049 Users.strUSID,
050 strPrefixID,
051 strFirstName,
052 strLastName,
053 strUSName,
054 strAdd1,
055 strAdd2,
056 strTown,
057 strState,
058 strPostCode,
059 strCountry,
060 strTel,
061 strFax,
062 strEMail,
063 strLocked,
064 dtmLockedDate,
065 ID_LoginSuspenseReason.strSuspenseReason,
066 intLogonCount,
067 dtmCreatedDate,
068 strMedicalSpecialtyID,
069 blnChangePassword,
070 strInstitutionalUser,
071 strCreditCardExpDate
072 FROM ID_Login Users
073 LEFT OUTER JOIN ID_LoginSuspenseReason ON Users.strUSID = ID_LoginSuspenseReason.strUSID
074 {0}
076 “;
077 }
078 }
079 }

Continue reading →

ANN: New SMTP Diagnostics Web Site

We are happy to announcement the new SMTP Diagnostics web site. Find the latest download, purchase your license, view the FAQ, and more.


Continue reading →

WPS to Donate Software to PMC Fund Raising Event

White Peak Software is donating 10 licenses of SMTP Diagnostics to Seth Dillingham’s PMC fund raiser. The licenses along with other software that will be auctioned off in September to raise money for the Jimmy Fund. All proceeds from the auction will go to the Pan-Mass Challenge, and in turn to the Jummy Fund, for the research and treatment of cancer at the Dana-Farber Cancer Institute in Boston.

The PMC is a 192 mile bike ride across Massachusetts. This year’s ride had approximately 4,000 riders.

Continue reading →

Broken Perm Links in RSS Feeds

I recently changed the way perm links are generated for my blog entries. However, I totally forgot about making the change to my RSS feed. I guess that’s what happens when you introduce a technology like RSS and it runs problem free for months if not years. Still, that’s no excuse for overlooking the RSS feed with regard to the new perm links.

I will have a fix in place within a couple of days. Sorry it can’t be sooner but my plate is full at the moment and since that has been no complaints it’s not a top priority issue.

My apologies to those of you reading the blog through an RSS reader.

Continue reading →

Convincing a client it is time to refactor

You know what I dislike the most about doing client work? You see problems in the code, no bugs - things are working correctly, but the code itself is a problem. Finding code smells for example, and you know the best thing to do is refactor the code to save tons of time in the future. But some clients don’t get this and the ones that do get it will still say no to refactor work.

You tell the client you want to spend a couple of days to refactor the code but the client says “No”. To the client the code is working fine. Refactoring is going to cost more money and require more testing while providing little benefit to the end user. But the reality is ongoing maintenance cost for the code is going to cost more, which down the road could increase the cost to the end user, if refactoring does not occur. What is often overlooked is that maintenance costs can be lowered in the long term as a result of a refactoring investment.

Refactoring is something that should be embraced, not feared or viewed as an unnecessary cost. Refactoring improves the quality of the code and reduces code maintenance in the future and thus reduces cost.

A joy I have in writing my own software is being able to make the refactoring call myself. I don’t always say yes to refactoring but when the time is right I refactor the code. I don’t concern myself with the initial refactoring and testing costs because I know it will save me time and money in the long run.

So when is the time right? That’s a hard question to answer because the right time can be different for each shop and software package. For me a right time is when working on a new feature I find a number of code smells affecting the quality of the feature. Assuming a refactor will only affect a small portion of the entire system and it will take no more than a couple of days to refactor and test the changes, I make the yes call to refactor the code.

Do I worry about breaking existing functionality as a result of refactoring? Absolutely, especially when refactoring occurs in a critical area such as processing a credit card transaction. This is why it is so important to have automated scripts and unit tests in place. Automated regression testing definitely helps ease concerns.

So how do I convince the client it is time to refactor code? I wish there was a magic answer to the question that could be applied to all cases but there isn’t. Getting the client to okay a refactor takes having the client’s trust in your abilities and decisions.

One way to gain trust is to know when to recommend a refactor. You should make a point not to scream “fire” each time you find code smells. If each time you are asked to implement a new feature and you come back with “Before I can implement the feature I need to re-write all this other code,” your client’s trust in you will most definitely drop.

You also need to be able to show the client the long term value gained by refactoring. For instance, make the client aware of the various code smells and discuss the impact the repeated (or similar) code has to maintenance should a bug be found or a business requirement changes in the future. Also, remind the client that the need is fresh in your head but 6 months later it is going to take more time research the impact. Plus, the number of smells may have grown between the time the problem was first identified and the time code has to change, resulting in higher costs.

Lastly, be mindful of the business side. Many times developers only think of the technical aspects with no regard to the business side of things. Understand what is happening on the business side of a project will help when discussing a refactoring effort with a client. This can also help you understand why the answer is “No” and could help you identify a better “right time” to refactor.

Convincing a client it is time to refactor is no trivial task but it is possible.

Continue reading →

Date Range Check in SQL Server

I have been writing a number of stored procedures that return report data for a client. Each of these reports can be filtered by a date range, so I needed a simple way to check that a date was within a user defined date range.

As an additional requirement, if the user does not specify a begin date or end date as part of the date range then the earliest or latest supported date respectively should be used. In other words, if the user does not specify a begin date then the earliest date supported by SQL Server should be used as the begin date, and if the user does not specify the end date then the latest date supported is used for the end date.

My original approach was to use a BETWEEN clause in the SELECT statements. However, this made the code messy especially with the ISNULL call used to set the begin end dates when NULL. So I swapped out the code with a user-defined function.

The user-defined function fnIsInDateRange takes 3 parameters:<ul><li>Date to check</li><li>Beginning date of the date range</li><li>Ending date of the date range</li></ul>
The function returns one of the following:<ul><li>-1 if the date is before the range</li><li>0 if the date is within the range</li><li>1 if the date is beyond the range</li></ul>
Here’s the code for those who want it.<pre>
Determines if the date time value is within the date time range.

-1 if the date is before the date range.
0 if the date is within the date range.
1 if the date is after the date range.

SELECT dbo.fnIsInDateRange(‘2005-08-16’,’2005-08-01’,’2005-08-15’)
SELECT * FROM exams WHERE dbo.fnIsInDateRange(dtmExamDate,’2005-08-01’,’2005-08-15’)=0
@value DATETIME,
@rangeFrom DATETIME,
IF @value < ISNULL(@rangeFrom,'1753-01-01 00:00:00.000')
SET @result = -1
ELSE IF @value > ISNULL( @rangeTo, ‘9999-12-31 11:59:59.997’ )
SET @result = 1
SET @result = 0
RETURN @result

Continue reading →

I Admit to Being Lazy and Dumb

I’ve always said I’m lazy programmer, which makes me a good programmer. For instance, I’m too lazy to perform the same task over and over on a computer so I write a tool. And I hate writing the same code over and over. I would rather write it once, package it up in a library, and forget the details. All I want to remember is the API.

I also believe my lack of a quality education helps me think of solutions that smarter individual may never even consider. My seemingly childish approach to problem solving helps me think of solutions to the most time consuming yet simple problems.

But Philipp Lenssen at Google Blogoscoped has really summed up why good programmers are lazy and dumb. Give it a read.

Continue reading →

3 reasons for me to buy an Xbox 360

Amped 3, Burnout Revenge, and Dead or Alive 4.

While I believe Burnout Revenge will also be released on the Xbox in September, I plan to wait until Xbox 360. The latest disc from OXM has a playable demo of Burnout Revenge and a video showcase on Amped 3 and DOA4. All three games look awesome.

Continue reading →

Emergency Maintenance

My ISP must perform some emergency maintenance on my SQL Server box. The forums site may be down for 15 minutes. Repair work is scheduled to start at 2:00 pm MST (GMT-7).

Update: All done.

Continue reading →

Offline for the next 48 hours

I want to let the 2 readers out there know I will be offline for the next 48 hours. I’ll catch up on emails and such Wednesday afternoon/evening. Cheers.

Continue reading →

Recap of Last Week

Lake Sunapee

Continue reading →

30-day Trial vs Marketing Screens

I read a blog post that has me thinking about the trial version of SMTP Diagnostics. As the story goes, a person was unhappy with the nag screen popping up as he was trying the trial version of a software program. Annoyed at the popups, he decided to uninstall the application even though the gentleman liked the program.

The ISV that published the program in question found the blog posting and explained the company’s reasoning for displaying the popup screens in the trial version. This is the part that really got me thinking about the trail version for SMTP Diagnostics.

I didn’t like the trial mode model used in SMTP Diagnostics when I first released it and I still don’t like it. For starters, it is too confusing. In trial mode, the software will disable itself after 10 runs or 30 days which ever occurs first. While I’m not a fan of nag screens, which I prefer to call marketing screens, I believe just such a screen makes more sense for SMTP Diagnostics over disabling the software.

I would love to hear your thoughts. What would be YOUR preferred approach to encourage users to buy the product without interfering too much with the user experience?

Here’s one idea I am playing with in my head: Eliminate the current model all together and instead use marketing screens. The user will see the marketing screen every 5 times that the program is run. Also, the user will see the marketing screen every 5 times a test mail is sent within a single run. Lastly, the test mail will include a tag line at the end of each message saying something like “Sent using the trial version of SMTP Diagnostics.”

The benefit of this approach is that the program will continue to work even if it has been installed for months. The current approach does not allow for that. Under the new model, users who rarely use SMTP Diagnostics can get away with running the trial and clicking OK to close the marketing screens. Users who use SMTP Diagnostics on a regular basis will hopefully agree to buy a license to eliminate the popup screen and remove the trial version tag line in the email message.

What do you think of this approach? Or is there an approach I should consider?

Continue reading →

Support forums are back online

Thanks for a patch from InstantASP the WPS Forums are back online.

Continue reading →

ANN: SMTP Diagnostics Version 1.3 is Available

The latest version of SMTP Diagnostics, version 1.3, is now available. This release includes a number of enhancements including the ability to save and open the SMTP settings as a Profile. For a complete list of changes, please read the Revision History found in the SMTP Diagnostics Help file.

The latest version can be downloaded from our web site at:

Note: This is a FREE upgrade to all licensed users.

Continue reading →

Forum Site is offline for the moment

Apparent the White Peak install of InstantForum.NET 4.0 is tied directly to the availability an InstantASP server. Unfortunately it seems the InstantASP server is down and as a result the White Peak Software Support Forums is down as well. I am working with the vendor to resolve the problem as quickly as possible and to hopefully ensure this never happens again.

Continue reading →

Camping in Long Island

There are camp grounds in Long Island? You bet ya. Melanie and I spent the weekend camping at one of many Long Island campgrounds. We stayed at Wildwood State Park Saturday and Sunday night and had a very enjoyable time. Wildwood is about an hour and a half to two hours from Manhattan and is on the Sound side of the island.

We were a bit disappointed with the camp grounds on Saturday, rather I should say disappointed with the other campers on Saturday. There were lots of campers on that night, the grounds were near capacity. And many of the campers seemed to enjoy their cars more than the great outdoors. Music poured from car radios until 10:00/10:30 pm, people drove cars around until midnight, and car alarms could be heard throughout the night and early morning. Needless to say, Saturday wasn’t what we expected.

Luckily Sunday was the saving grace for Wildwood campgrounds. The rowdy campers left (check-out time is 11 am) and grounds were probably less than 25% full. Sunday night was quite and enjoyable, a welcome change from the previous night. We chilled by the campfire listening to the strange noises made by the creatures of the night. We cooked steaks and roasted corn on the grill, and we were constantly thankful the Saturday night crowd was gone.

Overall we really liked the campgrounds at Wildwood State Park and highly recommend it to those wanting to camp in Long Island. The campgrounds are nice and the beach is only a short walk away. Be sure to bring your bike and avoid Friday and Saturday nights.

Continue reading →

Support Forums are Open

I’m happy to announce that the White Peak Software Forums are open. Please start using the forums for your questions and feedback about SMTP Diagnostics.

Continue reading →

STMP Diagnostics 1.2 Available

SMTP Diagnostics version 1.2 is available for download from the White Peak Software web site. For those of you who don’t know, this is a SMTP diagnostic tool that helps troubleshoot problems with outgoing email and aids in configuring SMTP servers.

Continue reading →

Renaming SMTP Diagnostics?

The White Peak SMTP Diagnostics program will be released to the general public next week, but before I release it I have been thinking about a name change. While SMTP Diagnostics definitely tells what the program does, the name is a bit geeky. This makes me wonder if I should use a different name.

How about it folks? Should I rename the program with a less geeky name? And if so, what name might you suggest? Or should I leave the name as is?

Continue reading →

Never Ending To-Dos

It seems like the work never ends when it comes to publishing a new software product. At the end of each day I feel like I am one step closer to having SMTP Diagnostics ready for general release. But by the next morning I feel like there is an endless list of to-dos remaining that must be completed before program is ready for release.

For those wondering SMTP Diagnostics is a program that will help you troubleshoot problems with outgoing emails or configuring SMTP servers.

That sentence is an example of the never ending to-dos. I need a consistent message regarding the program’s purpose for marketing, and I like the sentence I just typed. Now it is a matter of copying the same message “helps you troubleshoot problems with outgoing emails or configuring SMTP servers” to the program help file, the SMTP Diagnostics web page, to the home page for White Peak Software, and so on. See…never ending to-dos.

Continue reading →

Online Again

The phone and DSL problem has been fixed. Turns out the wire outside of the building was old so the tech ran a new one. It’s good to be online again.

Continue reading →


Congratulations to Ricky and Maureen on the arrival of Gabriel Ethan.

Continue reading →

Software Businesses in Vermont

Many who know me know I love Vermont and I fantasize about living there some day. As a matter of fact, Melanie and I are planning to migrate to the New England area sometime next year.

There are many things that draw me to Vermont. Snowboarding is great, the fall colors are awesome, and the life style is just my speed especially after living in the Big City. But there is something else going on in Vermont as pointed out in this recent article in the Vermont Business Magazine.

As the article points out individuals and organizations such as Vermont Software Developer’s Alliance are working to promote Vermont-based software businesses. This gives me hope that the state may start initiatives encouraging companies like White Peak Software to move to Vermont.

Meanwhile, Melanie and I are planning a trip to Boston this weekend to start looking at towns north of Boston that will serve as our first leg in our migration to New England.

Continue reading →

Noah the Tree

Tommie answers the age old question about the sound, if any, a tree will make when it falls in the woods.

Continue reading →

Experiencing Internet Connection Problems Today

It seems we are having trouble with our phone line today which is affecting my DSL connection to the Internet. I suspect it will take a couple of days for Verizon to fix the problem. Meanwhile, expect some delays in me responding to emails.

Continue reading →

Arizona Hike

I’m back from my Arizona trek with Shawn. The trip was a blast but the hike was much harder than expected.

Before hitting the trail we loaded up with water and weighed the packs to see how much weight we would each be carrying. My pack came in at 57.4 pounds, which included 13.6 pounds of water (164 oz). This was a day’s worth of water for me. Shawn brought a water filter so we could replenish our water supply while on the trail.

To avoid the 115+ degrees temperatures in Phoenix, we headed for higher elevation. We hiked a plateau at 7,000 feet that is part of the Mogollon Rim. Day time temperatures varied based on the weather conditions. Early mornings were in the 60s but by mid-morning the temperature would raise near 90. As the thunder storms rolled in throughout the day temperatures would drop back to the 60s, and night time temperature were in the 50s.

We got a late start on Day 1 since I was traveling from New York to Phoenix on that day. We hit the trail head a little after 6 pm, which only gave us a couple of hours to hike before dark. We made it 2.4 miles before setting up camp on the ridge overlooking a dry river bed.

Day 2 was without a doubt the hardest day for me. We hiked 8.8 miles but the majority of the hike consisted over short accents and descents. We climbed multiple 100 to 500 foot ascents followed by equal size descents as we trekked across the canyon. While the elevation change between Camp 1 and Camp 2 was just under 1,000 feet, we guestimate we climbed about 3,000 feet worth of terrain.

We also found a running spring on Day 2. The timing was perfect as we were almost out of water. We re-filled our water supply with filtered water from the spring, which turned out to be cool and tasty.

Day 2 ended in complete exhaustion. The various climbs throughout the day left my legs completely shot. There was no way I could continue with the 50+ pound pack on my back. Our hope was to reach the rim overlooking the valley from 7,000 feet for Camp 2, but needless to say, we didn’t make it. Reaching the rim would have to wait until Day 3.

Day 3 was a short 5.1 mile hike with only 3 major ascents. We made it to the rim and took in the beautiful scenery. We hiked alone the rim back to the Jeep and the trail head were we started two days before.

The trip was a great experience but it did come with some lessons learned. First, it is better to setup camp early than to continuing the hike. By the time we setup camp it was almost dark and because we were total exhausted we went straight to bed after eating dinner. Looking back, the trek might have been more enjoyable if we stopped around 5 or 6 pm to setup camp. This would have given us more time to enjoy our surroundings and each other’s company.

Second, if you do not know what type of terrain to expect bring hiking boots. I brought hiking shoes with soft soles. Unfortunately most of the hike was on small rocks, which left my feet very sore. Hiking boots would have saved me a lot of pain.

Continue reading →

Out of the Office

I will be out of the office through Monday. I’m backpacking with my friend Shawn in the backcountry of Arizona. Day time temps around 115+ degrees. I’m not looking forward to that, but the rest of the adventure should be fun.

Continue reading →

Simple apps not always easy to implement

A recent thread on the Business of Software discussion forum criticizes FogCreek’s latest project as being simple and something that is easily implemented by an India student for a personal web sites. Personally I think simple software is the better software when it comes to commercial software.

When I see a commercial software product that has me thinking “That is so simple I could implement it myself,” it typically turns out to be a very good product. And experience has taught me that such an application is not always easy to implement.

A pro snowboarder makes riding look so simple. He or she floats on the snow effortlessly making perfect turns and controlling the board as if the board were an extension to his or her own body. In reality carving the perfect turn takes skill. And writing commercial software that looks so simple any programmer could implement it also takes skills.

Writing software for personal use is one thing, but writing software that is thrown into the wild and still looks simple to implement is a much harder challenge. Commercial software has to take into account many more variables than personal or in-house software. This fact alone makes the software harder to implement, and let’s not forget more time consuming.

Don’t believe me? Just try re-writing that simple application and see what kind of effort it really takes.

Continue reading →

Using WinHelp for Popup Information

I want to include a legend feature in SMTP Diagnostics to give users a clue as to the meaning of various icons used in the program. I initially tried to accomplish this by creating a new borderless window that displayed the legend. When the user clicked the legend link in the statusbar the legend window would popup. But I found an easier way to do this.

Instead of creating a new window and doing all the leg work behind the scenes to display the window, position the window, add shadowing to the window and so on, I decided to use a WinHelp popup. WinHelp popups are used in many applications such as Microsoft Office to display “What’s This?” Help. A nice feature of WinHelp popups is content can be formatted. In the case of SMTP Diagnostics, a WinHelp popup topic is used to display the legend with the icon on the left followed by the text describing the meaning of the icon.

The end result. I reduced the code used in my first attempt at displaying a legend to a single line of code. Delphi and WinHelp do all the work of displaying, positioning, and shadowing the legend window.

Click image to enlarge.

Continue reading →

Masking Email Address is Helping

For the last 24 hours I have tracked incoming spam to my email address. During that time I received a total of 225 spam messages. 163 of these messages were properly filtered on the server as spam, but unfortunately 62 spam messages were not caught by the server. This means I need to tweak the server settings more. At one time my server caught approximately 90% of incoming spam which no longer seems to be the case.

Good news is 54 of the 62 spam messages were caught by my email client. The other good news is I am seeing a major reduction in total spam received since I started masking my email address.

Continue reading →

Heads Down

I’ve been heads down all day working on SMTP Diagnostics. I did more work on the print preview, added an icon legend, and started work on the help file. The help file is probably 70% complete. Hopefully I can get the Chief Content Editor for White Peak (a.k.a., my wife Melanie) to review the help file this weekend.

I feel the app is ready for public release but I still have a number of “administrative” tasks to complete before I can release it. For instance SMTP Diagnostics still does not have a home page, and I need to setup the web store so users can purchase a license. I hope to have these things in place within the next couple of weeks.

Shoot me an email if you are interested in reviewing the preview release.

Continue reading →

EU Parliament Rejects Software Patents Directive

The EU Parliament rejects the software patents directive. Click here to read more. Now if only the U.S. could get its act together regard software patents.

Continue reading →

Spam Filter Rule Changes

Attention @thecave.com mail users: A number of you have reported an increase in the number of spam messages received. I have adjusted the spam filter rules in hopes to reduce this number. Please note that messages flagged with spam probabilities of MEDIUM and HIGH are automatically moved to your Junk Mail folder. You can override this to have HIGH messages automatically deleted by going to Settings My Spam Filtering from the SmarterMail web interface.

If you do not want to delete HIGH probability spam messages right away, you can use the auto-clean feature. I use this to force spam messages to be deleted automatically after a few days. This gives me a few days to check my Junk Mail folder should someone report sending me an report that was mistakenly flagged as MEDIUM or HIGH.

To setup the auto-clean, go to Settings
My Folder Auto-Clean from the SmarterMail web interface. Tick the “Enable auto-clean for this folder” box found under the Junk E-mail heading. Set the size before to auto-clean to 3 MB and the size after to 2 MB. This should keep the message around for a few days to a week depending on the amount of spam in your Junk Folder.

Comment or email me if you have specific questions regarding your @thecave.com email account.

Continue reading →

Installing Greatis Print Suite Pro under Delphi 2005

I purchased the Greatis Print Suite Pro today so I can add print and print preview features to SMTP Diagnostics. The components are nice but the installation is a pain for those new to Delphi 2005. And unfortunately the documentation does not include how to install under D2005.

Fortunately I was able to find a way to install the components. Here’s the steps I followed to install the component suite:

- Created a new package project (File
New Package).
- Added PrintSuiteReg.pas to the project.
- Added PrintJobsReg.pas to the project.
- Compiled and Installed the package.

Continue reading →

E-mail versus Email Revisited

It’s been 48 hours since I changed e-mail to email and the winner is “email”. It seems the google will search for both “e-mail” and “email” when “email” is used in the search string. However, it will only search for “e-mail” when “e-mail” is used in the search string. Based on this I will stop using the dash when I write the word email.

On a related note, I found google has index the wrong page on my site when searching the phrase “Masking Addresses to Prevent Email Harvesting”. It has indexed the page www.whitepeaksoftware.com/blog.aspx?xml/2005_06_01_archive.xml but I assumed it would have indexed the page http://www.whitepeaksoftware.com/archive/2005/06/25/masking_addresses_to_prevent_email_harvesting.aspx. Go figure.

Also, I wonder how google will index my blog entries given that each entry is available from thecave.com and whitepeaksoftware.com. Time will tell.

Continue reading →

Delphi Basics

I discovered this great site covering the basics of Delphi, perfect for those new to Delphi or those looking for a refresher.

Continue reading →

Cell Old Skool Style

I sometime find cell phones a pain. For example, it’s next to impossible to hold a modern cell phones up to your ear using your shoulder. Sure, you can use a headset but I can’t count the number of times I have disconnected a call while trying to connect my headset and talk at the same time. Okay, so it’s less than 5 times but still…

The folks at at Spark Fun Electronics have come up with what I believe is the first portable rotary phone, and this puppy can be yours for a little as $399. Not sure if the portable rotary phone is right for you? Well, here’s a review that might help you decide.

Continue reading →

24 Hours of Delphi on BDN Radio

David I posted a blog about the upcoming 24 Hour Delphi event on BDN Radio scheduled for July 13. This should be an interesting Internet radio broadcast.

Continue reading →

More on E-mail Harvesting

The Federal Trade Commission published a report on e-mail harvesting. Investigators seeded 175 different locations with 250 new e-mail addresses to see what would happen. Over 3,000 spam messages were received during the first six weeks. The investigators found:<ul>
<li>“86 percent of the addresses posted to web pages received spam. It didn’t matter where the addresses were posted on the page: if the address had the “@” sign in it, it drew spam.”</li>
<li>“86 percent of the addresses posted to newsgroups received spam.”</li></ul>Based on the findings in this report, my trick of masking e-mail addresses on my web sites should definitely help prevent future harvesting of my addresses.

Continue reading →

Is it E-mail or Email?

I remember having a conversation with a friend of mine 10 years ago about “e-mail” versus “email”. Should the dash be used or not? I don’t remember how we arrived to a conclusion but I do remember we concluded that “e-mail” was the appropriate spelling. But is that correct?

I did a google search on “Masking Addresses to Prevent E-mail Harvesting”, the title of a recent blog posting. I did this to see if my web site had been index based on this phrase. It was and it was fourth from the top on the first page of hits. However, google being the smart one it is asked “Did you mean: Masking Addresses to Prevent Email Harvesting”. Notice there is no dash in the word “email”.

My site does not appear on the first page when searching google using the phrase without the dash in the word “e-mail”. As a matter of fact my site does not come up on any of the first 10 pages. I stopped looking after ten pages but I bet it is safe to assume my site doesn’t show up at all on that search phrase.

Being the curious type that I am, I decided to remove the dash from the title and text of that blog item. I’ll give it 24 to 48 hours before checking google to see the effect.

Continue reading →

Another PermLink Change

I had to make another change to the blog item permlinks for this site. I realized a URL like http://www.thecave.com/2005/06/23/office_pranks.aspx would cause problems in the future. I needed a way to identify the purpose of the permlink so I added archive/ before the year. The new permlink structure look like this:


yyyy is the four digit year, mm is the two digit month, and dd is the two digit day. Including “archive” to the URL structure will give me more flexibility to use yyyy/mm/dd/ is other virtual URLs.

On a related note, I completed the monthly archive URL mapping. The structure is as follows:


This makes it easy to enter the URL for any month on the blog. For example, http://www.thecave.com/archive/2005/06.aspx.

Continue reading →

Masking Addresses to Prevent Email Harvesting

Email harvesting is a technique used by spammers to find email addresses published on web sites. Spiders crawl the net looking for text that looks like email addresses (ex: [email protected]).

Continue reading →

An All Nighter

I decided last night to make some enhancements to blog engine I wrote for this web site. That was around 7:30 pm. At 5:30 am I decided it was time to go to bed. I did roll out the changes but there’s more work to be done. And I know there are some problems too. For example melanieandkirby.com is displaying the wrong blog.

The most notable change is the new permlink for my blog entries. The old permlink, which are still valid, used a blog item ID as part of the query string. While functional it wasn’t very descriptive and not well liked by search engines like Goggle.

The new permlink uses a better structure consisting of the posting date and title. For example, the permlink for my last posting is http://www.thecave.com/archive/2005/06/23/office_pranks.aspx. As you can see the link includes the publish date followed by the title of the post. For older blog items that do not have a title the blog item id is used.

The other notable change is the blog item page itself, which is a new feature. Before you could only see the blog item on a page listing other items from that month. Now the blog item displays on its own page with the comments below. At last you can see both the post and its comments from the same page. This is a feature I have wanted implemented for a long time.

I still need to migrate the archives to the new permlink structure. For example, http://www.thecave.com/archive/2005/06/ should display all the blog items for the month of June 2005. Also I discovered that the links in the rss file are invalid, which will be fixed soon.

So why did I make the change? Simple, I want to make the site more appealing to search engines and hopefully increase my Google ranking. The blog item is now optimized by the title, which will make it easier to find specific blog items through Google and other search engines. There still many more things that need to happen to make the pages more appealing to search engines but this is a start.

One side note, all previous permlinks are still valid. As a matter of fact, the data store containing the blog items remains unchanged. I wrote an HttpHandler to map the permlinks to the correct page content. This mapping allows the site to support both the old and new permlinks.

Continue reading →

Office Pranks

Channel 9 has a video of Larry Osterman talking about some great pranks that have occurred over the years at Microsoft. My favorites include erasing an office and laying turf in an office.

Continue reading →

LUA wiki

Microsoft’s Michael Howard and others have started a wiki on Least-privileged User Account (LUA) security. Last year I tried running under LUA but found I needed administration privilege for many things, from installing software to writing code. Needless to say I gave up on my quest to use LUA daily. But with more information available today such as the nonadmin wiki I think it time for me to try again. Besides, I want to guarantee that my software installs and runs without a problem under least-privileged user accounts.

Continue reading →

UI Improvements for SMTP Diagnostics

Last week I asked a few friends to send me feedback on SMTP Diagnostics. I’ve made good progress on the program since that time and I hope to have the first release available to the public within the next few of weeks.

Today my focus was improving the user interface. I was able to eliminate the tab control across the top, which I never really liked. The new interface also has a web look to it that I think improves the overall look. Take a look at the improvements made and let me know what you think.

Old user interface versus new user interface.

Continue reading →

Publishing a Product is Time Consuming

I’m putting the finishing touches on White Peak’s first product called SMTP Diagnostics. The product does exactly what the name implies. It helps diagnose problems that can occur when sending e-mail through an SMTP server. But this last bit of work is proving to be time consuming.

I need to setup the product web page. I need to draft the EULA. I need to install and setup forum software, which will be used to offer community support for SMTP Diagnostics. I have to create the installer and publish a PAD file. Then there’s marketing.

I need sign up with a reseller. I need to include marketing techniques in the application, and I need to setup an online store where people will hopefully buy licenses. Whew, the list goes on.

Good news is that once I have finished I’ll be able to reuse much of the infrastructure for new products.

Continue reading →

Importances of Understanding Sells and Marketing

I’m back in New York City where the temperature is higher then in Atlanta. It feels like it is going to be a long, hot summer in the city. Anyway…

My return flight gave me time to reflect on the ICCA National Conference I attended over the weekend. I realized how important professional development in the area of business is for a computer geek like me.

When I started my company I believed I knew enough to run a successful company. After all, I have been in the industry for 20 years and I know software development. I’ve been told repeatedly by my peers that I’m in the top percentage of software developers, and I feel I have some unique qualities that allow me to exceed client expectations.

This was the confidence I needed to get my company going. I thought, “I know and understand software development and therefore the clients will come.” However, I missed some very important points such as having a focus, knowing how to sell and market, and how to grow a business.

Events, like the one this past weekend, prove to be invaluable to me. Like many other computer geeks I spent the majority of my career learning technology while ignoring the business side of the industry, but understanding the business side is so important especially to a computer geek wishing to go independent, whether you are building a consulting practice or going to be an ISV.

To be successful in the software industry requires more skills than slinging high quality code. An ISV can produce the best application in the world but that application will not make a dime if it is not marketed correctly. A consultant may know how to solve the most complex problems in a given industry but that individual will never find the right gigs without knowing how to sell his or her services or how to find and engage the right clients.

Point is a computer geek owning a business must understand the principals of running a business and how to succeed in that business. This is equally as important if not more important as the quality of the work produced.

I made a conscious decision last year to study more on business related topics. My book case, which was once full of technology books, is now packed with books covering marketing, accounting, selling, and other small business topics. I have replaced attending technology events like TechEd and PDC with business related events like the ICCA National Conference.

I still have much more to learn. Heck, it took me 20 years to get where I am at with regard to software development and it will probably take me another 20 years to reach that same level of confidence in business.

If you are considering breaking away from the traditional software development job to pursue independence, I highly recommend reading the following business books:

The E-Myth Revisited

Guerrilla Marketing in 30 Days

Good to Great: Why Some Companies Make the Leap…and Others Don’t

And many of the books written by Alan Weiss including Getting Started in Consulting, Second Edition.

I also recommend joining a trade organization like ICCA and ASP.

Continue reading →

More Baby Noah Pictures

More Baby Noah pictures are available in the gallery.

Continue reading →

First Business Conference

I’m spending the weekend in Atlanta at my first business related conference. Conferences I have attended in the past were technology related such as the Borland Developer Conference and Microsoft PDC so I wasn’t sure what to expect.

I definitely see a difference beyond the topics at this conference compared to the developer conferences I’ve attended in the past. For one, attendees at a business conference tend to dress better than the t-shirt and jeans geek crowd of dev cons. Another difference is the ease of networking. It is very easy to approach people at the event. I have already met a number of people, which makes the event more enjoyable. It’s comforting feeling like you are surrounded by friends.

Continue reading →

Business Lessons for Computer Geek

Earlier today I joked about the lack of jeans and t-shirts at a business related conference. But the ICCA National Conference does have something unique about it. Although everyone here works with computers and many are programmers, the conversations and event topics center around business. There are discussions on improving your marketing strategy, determining the price point, and tricks to grow your business. But today’s talk on creating a strategic plan for your business really hit home with me.

The speaker provider great information on creating a strategic plan and he provided a nice template to follow.

Define your goals - What do you want to achieve? What is the big picture outcome?

For each goal, define the objectives - What are 3 to 5 major measurable accomplishments that need to happen during the planning period?

Define the strategies - What core strategies are needed to attain the objective?

And lastly, define the actions - What could we/should we do to deliver on the strategies?

This got me thinking about my current goal for White Peak Software, and after some dialog with a fellow attendee I came up with the start of my strategic plan.

Establish White Peak Software as a Micro-ISV

Release one new product by the end of 2005
Setup e-commerce and support infrastructure
Attract interest in White Peak Software

Product Release Strategy
Marketing Strategy

To be determined

Obliviously I am not going to spend all day blogging my strategic plan. After all, the conference is still going on and the next session is about to start. My point, however, is that this conference provides a unique opportunity for computer geeks like to me to expand my mind and learn more about running a business.

Continue reading →

The Power of Auto-Responders

I purchased a pricy set of components today, or at least I tried. The browser window timed out during the final processing of the order. The problem is I do not know if the order went through or not.

I sent an email to the company’s support and sales addresses but I haven’t heard anything back yet. I find this very annoying. At a minimum I would expect an auto-responder that sends a return email saying something like “We value you business. We will respond to your request as soon as possible.” It’s been 40 minutes now with no response. Obviously the vendor does not use an auto-responder.

An auto-responder is a simple use of technology that I believe all companies selling products on the Internet should use. Heck my own company, White Peak Software, has the capability enabled to provide immediate response to client requests. It amazes me that a successful component vendor who has been in business for years does provide the simplest of services to its customers.

All is not lost though. I have learned a valuable lesson from the experience.

1) Auto-responders can be very powerful and provide assurance to customers.
2) Vendors should provide detailed information about what to expect from an online ordering experience.

This second point is very important to me as I prepare to start selling products. I definitely plan to publish a web page that explains the order process to customers. This will tell my customers what to expect and what to do should something go wrong.

Continue reading →

Sending Email from Other Networks

I am preparing the first beta release of a new application that is used for diagnosing problems with SMTP. The program allows the user to test account settings against an SMTP server by sending a test message.

I have been testing the program from various locations including the hotel here in Atlanta. I was surprised to see that the network here redirects SMTP requests to its own SMTP server which relays the message to the appropriate destination. No wonder laptop users have problems with email. The experience behind the scenes can be different based on the network and the user may never know.

Click image to enlarge.

Continue reading →

Out of Office

I will be out of the office for the next few days. I’m heading to Atlanta today, where the temperature is actually cooler right now then in NYC, to attend the ICCA National Conference. I’m looking forward to a number of the keynotes and sessions including Guerrilla Marketing in 30 Days and Building Sales by Showing Up on Top in Google.

Continue reading →

Know Your Delphi History

Here’s an interesting look at the time line of Delphi and Pascal for that matter. For the two readers out there who I know are wondering, I wrote my first line of Pascal code in the fall of 1984.

Continue reading →

Keeping a Career Fresh

Over the past few months I have come across various blog posting where a developer will say something like “I can’t see myself as a developer in 20 years” or “I can’t see myself writing code until I retire.” I on the other hand can’t imagine a time when I will not want to write code and develop software. I’ve done this for 20+ years and I’m hoping for another 20+ years.

Don’t get me wrong. I’m not saying I want to sit behind the keyboard every day for the rest of my life. After all, I still enjoy my time riding snow covered slopes. But I do see myself writing code well into my retirement years. For me the trick is keeping the work exciting and fresh.

When I start getting bored I find new ways to liven things up. For instance, over the years I have switched languages a number of times. I was a BASIC/PASCAL developer in the 80’s then I switched to C/C++. A few years later I switched to VB followed by Delphi followed by Java. ASP and a return to VB followed which was later replaced with C# and the .NET Framework. And today I am writing Win32 code using Delphi.

Other ways to make software development fresh again is to pursue new areas of interest. Instead of writing yet another web-based application, find a project that allows you to write a desktop application. If you have been doing in-house development for years consider a move to an ISV. I personally find commercial software development is a different experience and worlds apart from enterprise, in-house development.

Other ways to keep software development fresh that have worked for me:<ul><li>Participate on a standard committee - help change the industry</li><li>Spend the next year focused on a particular technology that is new to you</li><li>Work with a new team and participate in a role that is new you - for instance become the QA manager if you have been a senior developer for the last few years</li><li>Write your own software…and sell it!</li></ul>

Continue reading →

Have Broadband Will Travel

On Friday I was working remotely in the Philadelphia area. This is one of the freedoms of my job that I enjoy…working from anywhere in the world. However, working from another office or even someone else’s home is not quite the same as working from my office.

While many people these days have broadband Internet access through cable modems and DSL, not everyone has a wireless access point. So I tend to be confined to a single room when I need Internet access. Friday was one of those days.

I worked in one room which has more comfortable seating but was disconnected from the Internet. When I needed an Internet connection, I would move to the room with the cable modem and hub. By the end of the day I was becoming frustrated moving between rooms. But I solved the problem by the end of the day.

I headed to BestBuy and bought an AirPort Express. Designed to allow users to play music wirelessly from iTunes to their stereos, it also acts as a wireless USB print server and a wireless access point. But what really makes this a great device is the size. The device is very small and has no bulky power supply or cables. All you need to setup the wireless access point is a patch cable, which I already carry for me on road trip.

Whether I am in a hotel that only offers wired Internet access or a friend’s house with a broadband connection, I can now be guaranteed wireless access.

Continue reading →

Taking a Sick Day

Regrettably I need to take a sick day today. I have been feeling under the weather all week and I have been running a high fever since yesterday afternoon. I’m going to spend the day resting to get over this bug.

I will try to return all calls and e-mails by the end of the day or by tomorrow morning at the latest.

Continue reading →

XmlSerialization Patent

Early this week Microsoft was granted a patent on their approach to serializing an object to XML. While I can see how XmlSerialization provided by the .NET Framework is unique, I have mixed emotions about the patent. For instance, XmlSerialization is probably my number one favorite feature in the .NET Framework. I find I use it all the time. But I now also spend a lot of development time in Delphi writing a Win32 application and I have thought about ways to implement a similar Xml serialization feature based on RTTI.

My concern with such a patent is that it might discourage other developers from inventing a form of Xml serialization for a different environment such as Delphi that is as flexible and easy-to-use as .NET XmlSerialization. Put another way, if Borland decided to implement a way to store metadata about a class structure for a Win32 target and a developer used this metadata to provide a mechanism to map the object shape into an Xml schema as defined by the metadata and serialize the object into an Xml document based on that schema, would that be a violation of Microsoft’s XmlSerialization Patent?

Also, how does such a patent effect open source efforts such as Mono? If someday Mono is widely adapted will Microsoft want to charge developers for the use of XmlSerialization in applications using the Mono framework?

I don’t know the answers to my questions, and as I said I have mixed emotions about the patent. On one hand, I see how it is a unique technique for serializing objects to Xml. On the other hand, I fear it will limit or completely eliminate a similar approach in other development environments.

Continue reading →

Am I a Light Cycle

I took the “What Video Game Charater am I?” quiz and it said I am a Light Cycle, which is cool since I really like the movie Tron. However it also said that if I am not a Light Cycle then I’m an Asteroid. This is also also cool to me. I remember staying at my cousin’s house once and playing a single game of asteriods for 18 hours straight. We took shifts to keep the game going.

So which am I, a Light Cycle or an Asteroid?

<table border="0"><tr><td>
What Video Game Character Are You? I am a Light Cycle.I am a Light Cycle.

I drive fast, I turn fast, I do everything fast. I even breakfast. I tend to confuse people with my sudden changes of heart. Sometimes I even confuse myself, which tends to cause problems. What Video Game Character Are You?

<table border="0"><tr><td>
What Video Game Character Are You? I am an Asteroid.I am an Asteroid.

I am a drifter. I go where life leads, which makes me usually a very calm and content sort of person. That or thoroughly apathetic. Usually I keep on doing whatever I’m doing, and it takes something special to make me change my mind. What Video Game Character Are You?

Continue reading →

Xbox 360 Games

From the Microsoft site: <div class="quote">What’s even better than reading about the latest E3 news and games? Seeing it! Here’s your one-stop destination for video coverage of the biggest gaming event of the year - straight from E3 to you.</div>
Click here to see the videos.

Continue reading →

Using 3rd Party Components

Knowing when to use a 3rd party component is a key to developing a software product. The use of a 3rd party component can save count hours and allow your developers to focus on the core product. However, the selection of the wrong component can cause many headaches and cut into developer productivity.

Continue reading →

Problem Accessing NTFS for Other OSes

I was asked to look at my sister-in-law’s PC over the weekend. Apparently it was having problems. I typically avoid helping others with their PC problems but thought I would since she and her boyfriend were great hosts.

Somehow a nasty, little virus-like program was installed on her PC. I tracked down the source of the problem to the winik.sys, which isn’t in fact a Microsoft driver. This little puppy loads other programs that appear to be tracking activity on the PC and reporting information out to somewhere.

The simple solution to the problem: delete the winik.sys file along with the directory of other programs it launches and clean up the registry. Unfortunately the winik.sys loads as a driver and cannot be deleted while Windows is running. No big deal I thought. I would just boot up into a different OS and manually delete the files. This turned out to be harder than I thought. And harder then it should have been.

Not having any “tools” with me, I decided I would boot up in safe mode with a command prompt. Unfortunately this still loads the winik.sys driver. Note that my sister-in-law is running an OEM version of Windows XP Home without any updates on it…no service packs, etc. When this attempt failed, I created a DOS bootable disk from Windows. I booted up the computer from the disk and to my surprised learned that the version of DOS I was running did not recognize NTFS.

I tried using the OEM recovery disc, but that didn’t help either.

My next thought was to use Linux. I found a list of floppy based distributions, but to my surprise none of the distributions I tried supported NTFS. After spending hours trying to find ways to read an NTFS volume from another OS, I finally had to give up. After all, I needed to get on the road and head back to NYC.

I did learn a lot from the exercise even though I wasn’t able to remove the file from the PC. For instance,

1) Sysinternals has a NTFSDOS utility that will mount NTFS volumes and provide read/write access from DOS. Unfortunately the freeware version is read access only so it didn’t help me solve the problem. And I didn’t want to buy the Administration Pack just for this one problem.

2) While the idea of a Linux distribution on a floppy is cool, there are limits to what you can do. I realized I need to know more about Linux and possibly make my own distribution that would allow me to help family and friends clean up infected machines. But I’ll never take the time to make a floppy distribution.

3) I should buy this t-shirt.

Continue reading →

Nintendo World

I had no idea that Nintendo opened a store in Manhattan called Nintendo World. I’ve been thinking about buying a couple of new Gameboy titles. Maybe it’s time for a visit.

Continue reading →

Change ExpressScheduler Labels

Looking to change the label caption in the DevExpress ExpressScheduler? It is as simple as setting the resource string for the label caption. Here’s the code snippet and a screen shot of the changed label.
// Delphi

procedure TForm1.FormCreate(Sender: TObject);
cxSetResourceString(sEventLabelCaptions[3],’Money Maker’);

Click image to enlarge.

Continue reading →

NewsGator Acquires FeedDemon

If you haven’t heard, NewsGator acquires FeedDemon, TopStyle, and Nick Bradbury. I have been a huge fan of Nick’s products dating back to the first release of HomeSite many, many years ago. And I now use FeedDemon on a daily basis.

Nick has been some what of a role model for many developers and micro-ISVs including me. As I take steps towards producing my own product I am borrowing from tips I have learned from watching Nick grow a successful micro-ISV. While I am a long way away from reaching the level of success Nick has achieved, I can’t help but wonder if I could allow myself to be acquired.

When I say this, I’m not saying I would not consider selling rights to my product to a larger company. Actually that might be the only way I can fulfill the full vision I have for my product. What I’m saying, though, is I wonder if I would go to work for a company that acquires my product. This is exactly what Nick has done with the acquisition of FeedDemon and TopStyle. He will be the Architect of Client Products for NewsGator.

My problem with this is I believe you give up certain freedoms when you work for a larger company as compared to running your own shop. A hint of this can be seen in the Q&A; between Nick Bradbury and NewsGator found Greg Reinacker.
<div class="quote">
Q: Is Nick going to work for NewsGator? Is he moving to Denver? What will his role be?

Greg: Nick is indeed coming to work for NewsGator, as Architect of Client Products. I’m personally very excited to add Nick’s vision and expertise to our company. He’ll continue to work on FeedDemon, but will also add his considerable expertise to our product and platform strategy moving forward. Some of his focuses, other than FeedDemon, will be on user interface and interaction design across the platform, and some of the rich media development we’re working on. And I think he’s moving to Denver.

Nick: Umm, no, I’m not actually moving.

Greg: Oh. There I go again - heh. Ok, Nick’s not moving…but he’ll be spending a lot of time with our team in Denver moving forward, and as I said, we’re all looking forward to working closely with him.
But this process if nothing new for Nick. When HomeSite was acquired so was Nick, and I’m sure he learned a lot from that experience. In the same Q&A; mentioned above, Nick says:
<div class="quote">
Look, I can’t predict the future, and I certainly couldn’t have predicted that HomeSite would be acquired by companies that weren’t sure what to do with it. But I don’t sell my products just to see them wither and die. If anything, this acquisition breathes new life into my software - let’s face it, there’s a limit to what a one-man company can do, and I reached that limit a long time ago!

For at least the past year, I’ve spent far more time doing support, marketing and sales than I have doing actual design and development. Joining forces with NewsGator enables me to focus more on development again, and I’m really excited by that.
I hope he is able to stay in Tennessee and focus on development again. I hope a repeat of HomeSite does not happen. But regardless of what will happen I have to offer a big congratulations to Nick. He continues to achieve what most others only dream about.

Continue reading →

BrowserCap for FireFox

Something I didn’t realize until today is that ASP.NET does not generate proper HTML 4.0-compliant code for certain modern, non-Microsoft browsers such as FireFox and Safari. For instance setting the width property of an will not render the style attribute needed to set the control width in FireFox. The problem is easily fixed by including the section in your web.config or machine.config with the appropriate user agent pattern for the particular browser or browsers.

The guys at 4GuysFromRolla.com have a nice article explaining this in more details. The article also includes a sample section that you can copy
paste into your .config file that supports GECKO (Netscape 6.0+, Mozilla/Firefox, …) and AppleWebKit (Safari, …) based browsers.

Continue reading →

Disable Trillian Hotkeys

Recently I downloaded Trillian Basic 3.1 and noticed it was interfering with hotkeys I commonly use in other applications. Settings for Trillian hotkeys can be found in Trillian Preferences Advanced Preferences Automation. Note you may need to scroll down to see the hotkeys.

Even though I un-checked the Trillian hotkeys, they were still interfering with my other application. I found the only way to stop the interference was to delete the hotkeys from Trillian. After doing so I had to exit Trillian and re-launch it for the changes to take effect. And now I am able to happily use specific hotkeys in other applications.
Disable Trillian Hotkeys
Recently I downloaded Trillian Basic 3.1 and noticed it was interfering with hotkeys I commonly use in other applications. Settings for Trillian hotkeys can be found in Trillian Preferences
Advanced Preferences Automation. Note you may need to scroll down to see the hotkeys.

Even though I un-checked the Trillian hotkeys, they were still interfering with my other application. I found the only way to stop the interference was to delete the hotkeys from Trillian. After doing so I had to exit Trillian and re-launch it for the changes to take effect. And now I am able to happily use specific hotkeys in other applications.

Continue reading →

Xbox 360

The new Xbox 360 looks sweet. I can’t wait until it is release. I believe it will be available by the end of the year in time for the holiday season.

Continue reading →

Take the Delphi Poll

Share your feedback on Delphi with Borland’s latest Delphi Poll.

Continue reading →

Update on Interfaces in Delphi

After taking a break from the laptop I was able to get a much better handle on interfaces in Delphi. And I was able to implement the design I wanted. It’s not as slick as in C# but it works. And the code is readable, which is important to me.

I was returning a TObject when I should have been returning IInterface. After seeing the code it makes sense to me why my use of TObject was causing problems, and why I was trying to cast an interface from an object, which now I see was not needed.

Continue reading →

Key Binding in Help File

I recently posted a list of Delphi key bindings. I discovered most of the bindings through trial and error or by inspecting the various menus. I had originally I searched the help file and browsed the help file index but I couldn’t find the list of key binding. I never thought to look under the contents. I figure if I can’t find it in the index or search it must not exist. But it does. I think I need to spend more time browsing the help file through the content tab and not rely so much on index and search.

Continue reading →


The way interfaces work in Delphi for Win32 stinks. From what I have read it seems that interfaces were forced in to work with COM. But even if you are not using COM, interfaces imposes COM like behaviors such as ref counts and interfaces must have a GUID. But what really ticks me off is that you cannot cast an interface to an object.

For years I have abstracted framework and application features through interfaces. Now I can’t use them and it means I have to change the way I think. This limitation, which I wish I knew about 2 months ago, makes me think I should have used C# for my app.

In the end, I will be happy with my selection of Delphi. But I’m a bit ticked off at it for the moment.

For those using Delphi for .NET, this will not be a problem. Interfaces work the way you would expect, and you can cast objects to interfaces and interfaces to objects.

Continue reading →

Who is Shawn Murphy

After being off of IM for the last few weeks, I finally got around to re-installing Trillian. (I still had not installed it after my last hard drive crash.) I was happy to see a new version since I had been running my registered copy of Trillian Pro 2.x for the last few years.

The new version includes a Wikipedia feature. It will display the Wikipedia description when you mouse over certain works and phrases. But it’s not perfect.

I mentioned a buddy of name Shawn Murphy. To my surprise there was a Wikipedia desription for have name. “Shawn Murphy (born July 27, 1951 in Charlottetown, Prince Edward Island) is a Canadian politician. Murphy is a current member of the Liberal Party of Canada in the Canadian House of Commons,…” I’m not sure way but I found this to be funny.

The Wikipedia feature is a neat idea, but I’m not sure how useful it will be for me.

Continue reading →

Upgrade to VMWare 5.0

For over a year I have been running my primary development environment in a guest OS using VMWare Workstation 4.x. I run in full screen mode and I don’t even notice that I am running under a guest OS.

Tonight I installed the new VMWare Workstation 5.0. I haven’t run it through the ringer yet but I like what I see so far. Guest OS seem to run faster and network communication is definitely much faster. The old virtual NIC was only a 10mbps. The new one is 1gbps, which is noticeably faster. Although I haven’t played with it, I’m excited about the multiple snapshots feature. There’s also a new clone feature that I need to read up on. In my opinion existing 4.x users will want to upgrade to 5.0.

Continue reading →

Trillian and Wikipedia

I was wondering how does Trillian select words and phrases for Wikipedia look ups?

Continue reading →

Going Back is Hard

Going back to a programming language that you have not touched in years is hard. Syntax is easy, it comes back quickly. But trying to remember all the details, runtime library calls, and so on can be a real brain buster. And add to that that Delphi has had many improvements since 2000 in its VCL and runtime library.

It’s funny how knowledge will leak from your brain when the knowledge hasn’t been referenced in years. It’s like opening a jar of whatever that hasn’t been opened in years only to find that much of the content has evaporated.

Continue reading →

Past Repeating Itself

I have started work on the application framework for Vertigo. Well sort of. [Vertigo is the code name for the product I have mentioned a couple of times over the last week.] I have a very nice framework implemented in C# that has evolved over the years, but Vertigo is being written in Delphi. And now I face the hardest part…starting with an empty palette.

Continue reading →

NYC Geek Dinner Monday Night

Robert Scoble and Steve Rubel are organizing an NYC Geek Dinner Night for Monday, May 2. Details can be found here. I'm thinking about going.

Continue reading →


I just discovered Delphree. As the site says, “Delphree goal is to encourage and provide support for Open Source development. Delphree activities are primarily focused on Delphi, but other Borland development platforms are supported as well.”

Continue reading →

Time for a New Challenge

I read an article that talks about how e-mail is becoming an information database for people. I have been thinking a lot about this over the last year as I have become more dependent on the information stored as e-mail. I keep most e-mails I send and receive especially those related to White Peak Software. I keep every e-mail sent to and received from my wife. I keep the receipts from online purchases, and so on. I even have archives of e-mails that date back to the mid-90s.

It has reached a point were managing all this information is a struggle. Programs I use no longer meet my needs for managing the information I wish to store. And while certain add-in products for the program I use help, I still feel like there has to be a better way.

I have traveled to the far ends of the web searching for a program that will meet my needs. I found many programs that satisfy certain requirements but I have yet to find the one product that addresses all my needs. Or even 80% of my needs. What’s a poor software developer to do?

Well, this poor software developer has decided to take on a new challenge and produce a product that will satisfy the requirements I have for personal information management. This is by no means a simple task. This is not the type of program that I can crank out in a week or two and hope to start selling. The reality is that it will probably take a year or more to be as feature rich as I would like. But I believe this is something that White Peak can produce.

Fyi, the decision to produce this product explains why I have been toying around with Delphi over the last month. I personally believe there is no better development language for Windows development then Delphi.

Continue reading →

Looking Sharp

Noah He’s a sharp looking, little man.

Continue reading →

ICCA NYC Metro Meeting Recap

It’s not often I’m blown away by a non-technical presentation but that’s what happened last night at the ICCA NYC Metro meeting. Jeremy Rawitz presented an “in brief” version of his “Breaking the Rules…and Close more Sells” talk. In my opinion, this was the best presentation to date since I started attending the monthly meetings.

Jeremy uses an interactive approach to get points across. The exercises started with breaking the group up into teams, but instead of saying “Pick 4 people” or “This group of people is Team 1, this group is Team 2” and so on the teams formed themselves.

Pictures of animals were hanging on the walls. Jeremy asked the attendee to go stand by the animals that you feel best reflect yourself. People stood next to an animal of choice and next thing we knew teams were formed.

There was an instance bond on each team since each team member already shared something in common, the belief that the animal best represented him or herself. While the focus on the presentation was on a new sells approach, I was immediately impressed Jeremy’s approach to breaking the group up into teams.

Things continued to get better from there. Teams did different exercises to understand the traditional sells process and the problems associated with it. Additional exercises and roll playing were used illustrating a new approach to sells, which felt like a more natural approach.

At the end of the meeting, I was left with wanting more. Jeremy’s presentation was only a taste of his workshop, which I can only imagine is most excellent.

Continue reading →

Break the Rules...And Close More Sales

Jeremy Rawitz will be speaking at tonight’s ICCA NYC Metro meeting on closing more sales. He will present new approaches that “will transfer the selling experience to one that produces win-win results every time.” Click here for more information.

Continue reading →

Getting an MBA without going to School

For the last 4 months I have been doing lots thinking about White Peak Software and the direction I want to take the company. I even hired a business coach to help me work through ideas and gain more focus. What I find interesting is that I knew 2 years ago what type of company I wanted. I just didn’t realize it.

I have read a lot of business related books over the last 18 months. I have learned about networking, marketing, and building business relationships. I have talked to many entrepreneurs, some of which have become mentors for me. And I have become active with business related organization such as ICCA NYC, which has taught me a lot about the business of consulting.

With all this learning I feel like I have gotten an MBA without going to school.

Continue reading →

Find Declaration is better in VS.NET

While Delphi has the cool hotkeys for navigating source code - Alt+[Up Arrow] to find declaration and Alt+[Left Arrow] to return - it can only find the declaration within the current project. On the other hand, VS.NET can find the declaration across all projects within the solution. And since I partition my C# across multiple projects I have to say VS.NET’s find declaration feature is better than Delphi’s.

Continue reading →

Baby Noah

Last week Melanie and I made a very special trip to Memphis. My sister Renay and her husband Tommie were expecting the delivery of their first born. Renay was admitted to the hospital around 6:30 am and Baby Noah decided to make his appearance some 13 hours later. Family and friends were able to meet Noah only a short two hours later. It was amazing to think that Melanie and I both got to hold Noah only hours after being brought into this world.

Pictures available in the gallery.

Continue reading →

Another Key Binding

I just discovered another useful key binding in the Delphi IDE. Alt+[Up Arrow] will take you to the declaration of the token and Alt+[Left Arrow] will return you to the previous position. These two bindings are very useful for navigating code. For instance, you can place the cursor on the name of a method anywhere in code, press Alt+[Up Arrow] to go to the implementation of the method, then press Alt+[Left Arrow] to return back to the original cursor position.

Continue reading →

Delphi Key Bindings

I start writing a Delphi application this morning to post entries to my blog. While writing the code, I needed to comment a block of code. VS.NET has a key binding for this, Ctrl+K+C to comment and Ctrl+K+U to uncomment, but I wasn’t using VS.NET. I was using Delphi, so I searched the help file for a list of key bindings.

Unfortunately I did not find anything in the help file so I googled for the key bindings. And to my surprise I didn’t find much there either. A key stroke here and a key stroke there was all I found.

I decided to search the IDE itself for key bindings by looking at menus and using trial and error. I did evenually find the key binding for commenting/uncommenting blocks of code (Ctrl+/) but not before typing up a list of other bindings, many of which are very useful. Here’s the list. Hopefully others will find it useful.

Delphi 2005 Key Binding
<table style="color: #336699" border="1" cellpadding="2" cellspacing="2"><tr><td>Keys</td><td>Binding</td><td>Remarks</td></tr><tr><td>Ctrl+K+I or Ctrl+Shift+I</td><td>Indent selected text</td><td> </td></tr><tr><td>Ctrl+K+U or Ctrl+Shift+U</td><td>Unindent selected text</td><td> </td></tr><tr><td>Ctrl+Shift+R</td><td>Start/Stop macro recorder</td><td> </td></tr><tr><td>Ctrl+Shift+P</td><td>Playback macro</td><td> </td></tr><tr><td>Ctrl+F11</td><td>Open project</td><td> </td></tr><tr><td>Shift+F11</td><td>Add file to project</td><td> </td></tr><tr><td>Alt+F11</td><td>Use unit</td><td> </td></tr><tr><td>Ctrl+S</td><td>Save file</td><td> </td></tr><tr><td>Ctrl+Shift+S</td><td>Save all</td><td> </td></tr><tr><td>Ctrl+Z</td><td>Undo</td><td> </td></tr><tr><td>Ctrl+Shift+Z</td><td>Redo</td><td> </td></tr><tr><td>Ctrl+X</td><td>Cut</td><td> </td></tr><tr><td>Ctrl+C</td><td>Copy</td><td> </td></tr><tr><td>Ctrl+V</td><td>Paste</td><td> </td></tr><tr><td>Ctrl+Del</td><td>Delete</td><td> </td></tr><tr><td>Ctrl+A</td><td>Select all</td><td> </td></tr><tr><td>Ctrl+F</td><td>Find</td><td> </td></tr><tr><td>Ctrl+Shift+F</td><td>Find in files</td><td> </td></tr><tr><td>Ctrl+R</td><td>Replace</td><td> </td></tr><tr><td>F3</td><td>Search again</td><td> </td></tr><tr><td>Ctrl+E</td><td>Incremental search</td><td> </td></tr><tr><td>Alt+G</td><td>Go to line number</td><td> </td></tr><tr><td>Ctrl+Alt+F11</td><td>View project manager</td><td> </td></tr><tr><td>Ctrl+Alt+P</td><td>View tool palette</td><td> </td></tr><tr><td>F11</td><td>View object inspector</td><td> </td></tr><tr><td>Alt+0</td><td>View window list</td><td> </td></tr><tr><td>Shift+Alt+F11</td><td>View structure</td><td> </td></tr><tr><td>Ctrl+Alt+B</td><td>View break points</td><td> </td></tr><tr><td>Ctrl+Alt+S</td><td>View call stack</td><td> </td></tr><tr><td>Ctrl+Alt+W</td><td>View watches</td><td> </td></tr><tr><td>Ctrl+Alt+L</td><td>View local variables</td><td> </td></tr><tr><td>Ctrl+Alt+T</td><td>View threads</td><td> </td></tr><tr><td>Ctrl+Alt+C</td><td>View CPU</td><td> </td></tr><tr><td>Ctrl+Alt+F11</td><td>View FPU</td><td> </td></tr><tr><td>Ctrl+Alt+V</td><td>View event log</td><td> </td></tr><tr><td>Ctrl+Alt+M</td><td>View modules</td><td> </td></tr><tr><td>Ctrl+F12</td><td>View unit</td><td>Works with active project only</td></tr><tr><td>Shift+F12</td><td>View form</td><td>Works with active project only</td></tr><tr><td>F12</td><td>Toggle form/unit</td><td> </td></tr><tr><td>Ctrl+Shift+E</td><td>Refactor: Rename</td><td> </td></tr><tr><td>Ctrl+Shift+V</td><td>Refactor: Declare variable</td><td> </td></tr><tr><td>Ctrl+Shift+D</td><td>Refactor: Declare field</td><td> </td></tr><tr><td>Ctrl+Shift+M</td><td>Refactor: Extract method</td><td> </td></tr><tr><td>Ctrl+Shift+L</td><td>Refactor: Extract resource string</td><td> </td></tr><tr><td>Ctrl+Shift+A</td><td>Refactor: Find unit</td><td> </td></tr><tr><td>Ctrl+Shift+F11</td><td>Project options</td><td> </td></tr><tr><td>Ctrl+F9</td><td>Compile project</td><td> </td></tr><tr><td>Shift+F9</td><td>Build project</td><td> </td></tr><tr><td>Ctrl+Shift+F9</td><td>Run without debugging</td><td> </td></tr><tr><td>F9</td><td>Run</td><td> </td></tr><tr><td>F8</td><td>Step over</td><td> </td></tr><tr><td>F7</td><td>Trace into</td><td> </td></tr><tr><td>Shift+F7</td><td>Trace to next source line</td><td> </td></tr><tr><td>F4</td><td>Run to cursor</td><td> </td></tr><tr><td>Shift+F8</td><td>Run until return</td><td> </td></tr><tr><td>Ctrl+F2</td><td>Program reset</td><td> </td></tr><tr><td>Ctrl+F7</td><td>Evaluate/modify</td><td> </td></tr><tr><td>Ctrl+F5</td><td>Add watch at cursor</td><td> </td></tr><tr><td>F5</td><td>Toggle breakpoint</td><td> </td></tr><tr><td>F1</td><td>Help</td><td> </td></tr><tr><td>Ctrl+K+n or Ctrl+Shift+n</td><td>Create bookmark</td><td>where n is some number between 0 and 9</td></tr><tr><td>Ctrl+n</td><td>Go to bookmark</td><td>where n is some number between 0 and 9</td></tr><tr><td>Ctrl+K+P</td><td>Print selection</td><td> </td></tr><tr><td>Ctrl+N</td><td>Insert new line</td><td> </td></tr><tr><td>Ctrl+O+O</td><td>Insert compiler options</td><td> </td></tr><tr><td>Ctrl+K+C</td><td>Copy
paste selected text</td><td> </td></tr><tr><td>Ctrl+Shift+J</td><td>Sync edit mode</td><td> </td></tr><tr><td>Ctrl+K+W</td><td>Write selected block to a file</td><td>Great for saving code snippets to a text file</td></tr><tr><td>Ctrl+K+R</td><td>Read block from file</td><td>Inserts content from a text file</td></tr><tr><td>Ctrl+K+F</td><td>Upper cases sort of</td><td> </td></tr><tr><td>Ctrl+K+N</td><td>Upper case selected text</td><td> </td></tr><tr><td>Ctrl+Space</td><td>Code Completion</td><td> </td></tr><tr><td>Ctrl+Shift+Space</td><td>Code Parameter Insight</td><td> </td></tr><tr><td>Ctrl+Shift+K+O</td><td>Toggler gutter size</td><td>Seems to turn off code collapse feature</td></tr><tr><td>Ctrl+[left click]</td><td>Navigate to declaration</td><td>Click on the token name, i.e., variable, method, etc</td></tr><tr><td>Alt+[Up arrow]</td><td>Navigate to declaration</td><td>Same as Ctrl+[left click]</td></tr><tr><td>Alt+[Left arrow]</td><td>Return to the previous location</td><td>Used in conjunction with Alt+[Up arrow]</td></tr><tr><td>Ctrl+[Up/Down arrow]</td><td>Scroll page up/down</td><td>Does not move the cursor</td></tr><tr><td>Ctrl+Shift+G</td><td>Generate GUID</td><td> </td></tr><tr><td>Ctrl+J</td><td>Code template</td><td> </td></tr><tr><td>Shift+Alt+[arrow keys]</td><td>Colum select</td><td> </td></tr><tr><td>Ctrl+Shift+C</td><td>Complete class declaration</td><td> </td></tr><tr><td>Ctrl+T</td><td>Delete word right of cursor</td><td> </td></tr><tr><td>Ctrl+Shift+Y</td><td>Delete string right of cursor</td><td> </td></tr><tr><td>Ctrl+Shift+T</td><td>Add to do item</td><td> </td></tr><tr><td>Ctrl+Backspace</td><td>Delete work left of cursor</td><td> </td></tr><tr><td>Ctrl+F4</td><td>Close the page</td><td> </td></tr><tr><td>Ctrl+Enter</td><td>Open file at cursor</td><td> </td></tr><tr><td>Ctrl+/</td><td>Toggle comments</td><td> </td></tr><tr><td>Ctrl+Shift+Enter</td><td>Find reference</td><td> </td></tr></table>

Continue reading →

Delphi Popularity on the Rise

Delphi has moved up to position 7 on the April TIOBE Programming Community Index; two positions higher than C# and only one position below VB.

Continue reading →


Big congrats to Renay and Tommie on the arrival of Baby Noah. 8.1 oz, 21.5 inches…and he is cute to boot.

Continue reading →

In Memphis This Week

Melanie and I are in Memphis this week awaiting the arrival of my new nephew. Yep, my baby sis if having a baby of her own.

Unfortunately none of the Starbucks in Memphis have T-Mobile HotSpot access to the Internet so I might be slow to respond to e-mails.

Continue reading →

Final Days

Break out the sunblock, put on the geek t-shirt, and enjoy some fun in the sun. It’s not a day on the beach. It’s a day on the slopes enjoying some spring time snowboarding.

Melanie and I wrapped up our ski/snowboard season this weekend in Killington. The snow was great, a little heavy, but fast. We worked our legs to death. And the grilled burgers and tasty beers on the deck at Bear Mountain deck really hit the spot. We finished the season wanting more. I’m already excited about my next day on the slopes in November.

Continue reading →

My Delphi 2005 is Here

I’ve had a series of unfortunate events occur over the last week, from items taken from my checked bag when returning from Mexico to being a victim of identity thief resulting in thousands of dollars in illegal credit card charges to a hard drive crash earlier today that caused me to be down all day. But my luck is turning around with the arrival of my copy of Delphi 2005, which FedEx dropped off earlier this evening.

I wasted no time installing Delphi on my laptop…after getting the machine up and running again of course. Given the buzz last month about the future of VB, I decided it would be fun to open an old Delphi project and see if it would compile.

I found the source code for a time tracking application I wrote back in 1998. I copied the source to a sandbox directory and opened the project in Delphi 2005. Delphi needed to do was upgrade the project file so it prompted me for the target platform, Win32 or .NET. I selected Win32 because after all that was the target platform for the app back in ‘98.

As I expected /and hoped/, the application compiled and ran without a problem. And the original source code remained unchanged. I should mention the application does not use any 3rd party controls or library. It’s a basic application written in Delphi using out-of-the-box VCLs only.

I decided I wanted to push the envelope so to speak and compile this application written in 1998 for the .NET platform. I copied the original source to a new directory and opened the project file. Once again Delphi prompted me to select the target platform. This time I selected .NET. I compiled the application and it ran. Yep, Delphi source code written in 1998 compiled and ran as a managed code application in 2005. And without having to change a single line of code!

Try that with the simplest of VB applications and you will not have the same results.

Continue reading →

PGD - Dog Fight Competition 2005

Check out these games developed in Delphi for the PGD - Dog Fight Competition 2005.

Continue reading →

ICCA NYC METRO Chapter President

I am happy to announce that I have been elected President of the ICCA NYC METRO Chapter. I will be working with an excellent group of business professionals who make up the rest of the Chapter Board of Directors. Together we will continue to grow the Chapter and find ways to provide greater value to our members as started by the previous Board of Directors.

While this opportunity will present a new set of challenges for me, I’m excited by the fact I will be pushed beyond my comfort zone in certain areas which will help me improve my own soft skills. Thank you to the members who voted for me and to those who expressed their confidence in my abilities to be effective in this new role.

Continue reading →

April Fools on Me

My mom and sister got me good today with an April Fools joke. I had forgotten that it was April Fools Day and totally fell for the joke.

My sister is pregnant and is expected to deliver within the next couple of weeks. I received an e-mail from my mom with the subject line “We’re on our Way!!!” The e-mail said, “Renay’s going to the hospital. I think this might be it!!!!!”

Believing this to be true, Melanie and I jumped into action. I was on the phone calling Mom and Renay to confirm. Melanie was checking flights to Memphis. And we were already thinking about what we needed to pack. 2 minutes later after reaching Renay on her mobile, I heard the infamous phrase “April Fools!”

Continue reading →

Delphi - What's the Catch?

There’s a nice thread on Joel on Software discussing Delphi, reasons why it hasn’t really caught on yet, and why it is a great development language. It’s a long thread but interesting.

On a related note, Steve Trefethen of Borland has posted some resources on converting from VB to Delphi.

Continue reading →

Back in Town

We’re back from Mexico. We had a great time soaking up the sun.

Continue reading →

Out of the country for the next few days

I will be out of the country for the next few days. The office will be closed until Thursday, March 31. I will respond to e-mails and phone calls when I return.

Continue reading →

BetaNews | Microsoft Delays Visual Studio 2005

[BetaNews Microsoft Delays Visual Studio 2005](http://www.betanews.com/article/Microsoft_Delays_Visual_Studio_2005/1111435820): “Microsoft officials acknowledged on Monday that the releases of Visual Studio 2005 and SQL Server 2005 have slipped yet again. The updates are now slated to ship towards the end of”

Continue reading →

Is it Time to Move to Delphi?

There were many rumbling last week in the Blogosphere regarding Microsoft’s decision to end support for Visual Basic 6.0. While I am not impacted by this decision, I couldn’t help but reflect on this.

I started using VB in 1993. I was amazed at how much easier it was to write a Windows application using VB as compared to C, and I was excited about the move to VB. But to put things in prospective, I was also excited about Clarion for Windows and Topspeed.

Over time the applications I wrote using VB became more complex and I needed more power. For instance, I had a need for owner drawn controls and writing Windows services. Yes, there were ways to get around limitations of VB such as using SpyWorks but I became increasingly annoyed with VB.

Delphi v1 was released in February of 1994 but I didn’t take notice of it until v2. I instantly fell in love with Delphi. It offered the easy of VB with the power of C/C++. Finally, I could do anything I needed using one language. I no longer had to rely on 3rd party DLLs or my own components written in VC++ to enhance my VB applications. Unfortunately my clients, as well as many U.S. companies, did not adopt Delphi as their language of choice. VB was the standard.

In my attempts to illustrate to clients the benefits of Delphi, and to keep my skills up, I would write prototype applications using Delphi and re-write the production app using VB. I would use Delphi features out of the box that would look and function better than the production VB app using 3rd party controls. In some cases I had to “dumb down” my Delphi prototype app as to not outshine the final result of the VB application. Still, there was one common message echoed by my clients when they saw the power of Delphi, “What is the future of Delphi?”

While Delphi appeared to be the better development platform, clients would question the longevity of Delphi as compared to Visual Basic. The thought was that by selecting VB, intellectual properties (aka source code) would be supported for years to come. After all, it was Microsoft’s flag ship development language for corporate development.

Fast forward to March 2005…200+ Microsoft MVPs along with 2000+ other concerned developers signed an electronic petition asking Microsoft to continue support and further development of VB6 and VBA. Companies world wide must now face the reality that their IP must be ported to VB.NET, or to another language, to continue receiving the technology advancements and benefits provided by tool vendors. And many are not too happy about it.

Meanwhile many Delphi applications today, even ones written in older versions of Delphi, continue to thrive and evolve. And migrating a Delphi application from Win32 to .NET is made easier with the support of VCL.NET and Delphi 2005. I’ve even seen cases where the only difference between a Win32 Delphi application and the .NET managed code equivalent is the project file. The application code remains unchanged.

If the companies that selected VB 10 years ago could have looked into the crystal ball, I wonder if they would have stuck with that decision or made a move to Delphi. And I wonder if the companies facing the challenges of porting countless lines of VB code will take a serious look at Delphi, its history, and its future.

Continue reading →

Ranking Programming Language Popularity

While reading about the recent Microsoft MVP revolt regarding VB and VB.NET I came across a link (see below) that shows the popularity of programming languages. Delphi is currently ranked 10th and has moved up the rankings since last year. I definitely plan to keep an eye on this site to see if Delphi continues to move up. And as for the revolt, maybe the developers forced to rewrite all those lines of VB code to VB.NET will consider migrating to Delphi.

TPCI - TIOBE Programming Community Index: “The TIOBE Programming Community index gives an indication of the popularity of programming languages.”

Continue reading →

Baby Otis is Here

Congratulations to Rachel and Dana on the arrival of baby Otis.

Continue reading →

VCL.NET = wow!

I’m really impressed with the Delphi.NET or should I say VCL.NET. I’m viewing a sample application were the only difference between the native Win32 application and the VCL.NET application is the project files and how the application is initially loaded. The core code was identical for both apps. All I can say is WOW!

Continue reading →

StartupJournal | Marketing and Sales

Ever wonder how Accenture got its name? This article talks about the joys companies go through determining a name and brand. And the author talks about the events leading up to the name Accenture.

Continue reading →


If you are interested in playing with Mono running under a Linux distribution but you don’t want to go through the trouble of setting up a Linux machine (or virtual machine), check out Monoppix. Monoppix is a bootable CD image with the Knoppix distribution of Linux and Mono pre-installed. Pop in the CD, re-boot the computer and you are off and running with nothing to install on your hard drive. It runs completely off the CD.

Continue reading →

Delphi Turns 10 Years Old

Okay, so this posting is a little dated but Delphi turned 10 years old on February 14 of this year. Delphi has long been a favorite development language of mine, and I have always been bummed about not getting opportunities to use it more. But that will change very soon as White Peak Software has plans to develop a new desktop application using Delphi. I will speak more on that in the coming weeks and months.

Meanwhile, check out this Borland Radio broadcast replay of a phone interview with Anders Hjelsberg, Gary Whizin, and Zack Urlocker. They talk about the days leading up to the release of Delphi version 1.0 on February 14, 1995.

Continue reading →


At White Peak, we use FogBugz Version 4.0 to track issues and manage projects. It’s been in use for a week now and I have to say it is the best issue tracking application I have ever used. What makes it so great is its simple interface. For instance, from within a case I can reference another case by including the text “case” followed by the case number (i.e., case 20). The software automatically sets a two-way hyperlink between the cases.

If you are looking for a powerful yet easy-to-use project management and issue tracking tool, I highly recommend you check out FogBugz.

Continue reading →

Paris Pictures

Pictures from our Valentine’s Day in Paris are in the gallery.

Continue reading →

Finally, New Pictures in the Gallery

Melanie and I decided to take a weekend off from snow riding and what happens? A Noreastern dumps in New England. Sunday River got 30 inches. Attitash received 24 new inches. Just our luck to miss the fresh powder once again.

Speaking of snowboarding, I finally posted new pictures from our recent Big Sky trip. And pictures from the Redneck Shindig are in the gallery as well. Enjoy.

Continue reading →

Hour Children Web Site Launch

I am pleased to announce the launch of the Hour Children web site. The site was funded through a service grant provided by the Taproot Foundation of which I am a volunteer.

Hour Children is a non-profit family service provider providing short- and long-term support to incarcerated mothers, ex-offenders and their children. It has been an awarding experience to use my skills for an organization that provides such loving care to mothers in need, to their children, and to the community.

Continue reading →

PhotoRoom v1.7 Released

After a long hiatus in releases, PhotoRoom Version 1.7 is finally ready for download. Big thanks go to Chris Lewis who made this release happen.

Continue reading →

Long Time No Blog

Although it is probably silly to apologize for not posting a new entity in over a month, I still feel compelled. So I apologize for not posting a new entity in over a month.

Whew, glad that’s over.

As you can probably guess, I have been busy over the last month. I wish I could say I had been spending all my time snowboarding and playing Xbox but I can’t. I’ve only spent a small amount of time on the slopes and behind the S-controller. And I’ve been catching up on episodes of Aqua Teen Hunger Focus and Warren Miller TV too. But the majority of my time has been with White Peak Software.

I have been doing some exciting work over the last month which I hope to post more about in the coming days and weeks. For instance, I finally got around to learning how to use the MSI NAntContrib task as part of a build script, and I’ve been working with the PropertyGrid included in the .NET Framework.

All these ideas floating in my head, I just need to find some time to share them with others.

Continue reading →

Using Cache in Your WinForm Applications

Ever wonder if you could use the System.Web.Caching.Cache object within a WinForm application? You can and my latest article on CodeProject.com shows how.

Continue reading →

Happy Birthday White Peak Software

White Peak Software Inc is officially 1 years old as of today. It’s been a great year and we are looking forward to an even better second year.

Continue reading →

Halo2 Stats

As you can probably tell from the lack of postings to this blog, I have been busy over the last month. White Peak has new clients, which is where I have been spending most of my time. But I decided to take a break over the weekend and play Halo2.

Halo2 is awesome! The story line is captivating, the graphics are amazing, and game play is fun. Best of all, Halo2 is Xbox Live compatible. I started playing online last night with some friends. After our frag fest party I decided to continue playing in the rank matches. As expected, every player online is better than me. But what I really like about the online experience is what happens after you finish a game.

Bungie.net is tracking all the statistics from the online play, and players can view their stats as well as the stats of others through the Bungie.net web site. But it doesn’t stop there. Bungie.net also provides an RSS feed for individual player stats.

Beginning the geek that I am, I decided to add a new web part to my blog site that shows my Halo2 stats. You can view a summary in the side bar and view complete details from the halo2 page.

Now that break time is over, it’s time to get back to real work.

Continue reading →

PhotoRoom for SharePoint?

There was an interesting question on the help forum for PhotoRoom. I have been doing more and more with SharePoint over the last month and this idea really excites me. PhotoRoom for SharePoint. Sounds like a fun project to do. More to come soon.

Continue reading →

It's Time to Vote Once Again

For all you Rocky Horror fans…“The Presidential Horror Show!”

Continue reading →

Exciting Prospects Follis Style

John Follis, President and Creative Director for Follis, Inc, spoke at tonight’s ICCA NYC meeting about getting prospects excited. I really enjoyed his talk and he answered many questions I had. For instance, how does marketing differ from networking?

The difference between networking and marketing has long been a blur to me. I often wondered when one stops and the other begins. As John puts it, networking is one on one while market reaches more than one person. I am networking when I meet a new person who might be a prospect or a referral to a prospect. On the other hand, a monthly newsletter is marketing as it will reach out to more than one person at a time. Having articles published is another form of marketing as it reaches a greater audience than networking alone.

Another concept John mentioned tonight that I liked is how people perceive the difference between investment and expense as it relates to marketing. When marketing is done right the cost is an investment while marketing gone wrong is an expense. Here’s hoping I will continue to invest in my marketing strategy and avoid having a huge marketing expense.

Lastly, John pointed out that marketing is not just about giving out information. Giving out information can be stale and boring. Marketing should tap emotions. For White Peak Software this means illustrating the experience and excitement felt as the result of a successful software release. I plan to incorporate the concepts shared by John at tonight’s meeting. And as with last month’s ICCA meeting, the presentation provided real value to small IT business owners like me.

Continue reading →

New Pictures in the Gallery

From Laguna Beach to Chapel Hill to Maine, we have been bouncing around the country for the last few weeks. And here are the pictures from our travels. Enjoy.

Continue reading →

Special Evening with the NYPC VB SIG

Nik Kalyani of the DotNetNuke core team will be speaking at the next NYPC VB SIG on Wednesday, October 6. I’ve heard Nik will be talking about the internals of the portal software and how to write your own extensions. You should plan to attend if you have an interest in DotNetNuke. I know I will be there. The event starts at 6:15 PM at the Microsoft Office, 1290 6th Avenue, one block north of Radio City Music Hall.

Continue reading →

End of a Long Day

Some of you may have noticed that the site was down today. An unfortunate set of events prevented me from getting the site up sooner. It all started this morning when I deployed a new version of the site software.

I tested the changes on a Windows 2003 Server running .NET Framework v1.1. However, the production environment is running .NET Framework v1.1 Service Pack 1. Core pieces of the web site framework code that have been running problem free for years failed under Service Pack 1. I fixed the code after trouble shooting the problems, but then came more problems.

A series of network problems prevented me from deploying the fixes. From an issue with my wireless access point to service provider issues, it seemed as if there was something that did not want me to deploy the fixes. And to top it off, while talking with a prospect I asked that he visit the White Peak web site forgetting that the site was down. Definitely not the image I want when talking with someone about building web applications.

After a long day, the site is finally up and running. The code is a bit better as a result, and I’m reminded of the importance of testing software in an environment that mirrors the production environment as closely as possible even for a site as simple as this one.

Continue reading →

Pictures from Brussels

I posted pictures of a recent trip to Brussels in the gallery.

Continue reading →

Great Day of Learning

I had the pleasure of meeting Jeffrey Richter of Wintellect today during his full day talk on .NET Framework internals. He talked on topics such as threading, asynchronous programming model, app domain, reflection, and key differences between C# and VB.NET. His presentation style was entertaining, and I was amazed at his depth of knowledge around the .NET Framework. I definitely learned more than a thing or two from Jeffrey.

I ended my day with the monthly ICCA meeting featuring Liz Lynch as tonight’s speaker. Liz is a business management consultant and the author of 102 Secrets to Smarter Networking. She presented her approach for smarter networking, which is based on concepts of preparing, connecting, and strengthening. Her advice was invaluable and will help me improve my networking skills.

It’s been a great day of learning. However, I’m exhausted and ready for bed.

Continue reading →

save from url

I encounter a rather strange problem today. I have a set of HTML files stored locally on my machine. I can view each of the web pages in Fire Fox but not in IE. Every time I attempted to open the HTML in IE, IE would report that the file was missing even though I knew it was on the hard drive. I tried opening the file using the menu item File|Open from IE but it reported the same error message. Finally I decided to load the HTML file into Visual Studio.NET. To my surprise the file would not load and VS.NET would not report an error message. If I attempted to load the file a second time in VS.NET, the IDE would simply lock forcing me to kill the process.

After some detective work, I discovered the source of the problem. Seems that each HTML file I attempted to open had a comment line near the top of the file that looked like this: . Apparently this is special information that Microsoft products such as IE and VS.NET look for. I’m not sure how the information is used but I do know that neither tool reported meaningful messages regarding the commented line in the HTML file.

To resolve the problem, I removed the saved from url lines from each HTML file. IE and VS.NET are now happy as can be with regard to viewing these files.

Continue reading →

Contact Management Tools

Here is a list of contact management tools that provide integration with Outlook. Business Contact Manager from Microsoft is working for me but others may be interested in other options.

Continue reading →

Deleting Information in BCM

Users of Microsoft Business Contact Manager for Outlook 2003 should be careful when deleting accounts. All business contacts linked to the account will be deleted when you delete the account. And there is no warning message when deleting an account. Simply highlight the account and press the delete key and your account and linked contacts are gone.

From the menu bar, you can go to Business Tools | Others | Delete Items to see the delete account. However the deleted contacts will not appear in the list. The Delete Items feature seems like a nice idea but not really a useful. Besides, there is no “undelete” feature.

I highly recommend making a backup of your data prior to deleting any information in Business Contact Manager. To make a backup go to File | Business Database | Backup on the Outlook menu bar and follow the instructions for making a local backup.

Also, if you need to delete an account but want to keep the contacts, unlink the contacts from the account prior to deleting the account. To unlink a contact, you must go to the business contact detail screen, click the “…” button for the account name, and click the “Clear Selection” button in the pop-up window.

Continue reading →

Welcome Brian

Welcome Brian Harp of Class IV Solutions to the blogsphere.

Continue reading →

Get Organized

Eric of Delta PointSolutions recently turned me on to a new add-on for Outlook 2003 called
“>Business Contact Manager
. I had recently migrated all my contact, calendar, and e-mail to software other than Outlook so I have the unfortunate joy of migrating everything back to Outlook. But Business Contact Manager makes the move back worth while.

A full fledge CRM solution is overkill for my organization White Peak Software making Business Contact Manager ideal for me. It allows you to manage business contacts, accounts, which are tied back to business contacts, and opportunities. BCM gives you the ability to link e-mail messages, appointments, phone calls, and more to contacts, accounts, and opportunities making it much easier to find information. And the auto link feature for e-mails is perfect for managing the countless e-mails that flow between me and my business contacts and accounts.

The add-on is very easy to learn and those already familiar with Outlook 2003 will be up to speed in minutes. It includes reporting capabilities, and helps small business owners manage opportunities. The opportunities management is one of my favorite features of BCM. I can track the progress, cost, sales stage and more.

If you are a small business owner using Outlook 2003 and CRM are overkill for you, I suggest you check out Business Contact Manager. It’s definitely worth the pain of migrating my information back into Outlook.

Continue reading →

St Louis

I’ll be in St Louis for the next few days. Send me an e-mail or give me a ring if you are interested in meeting up for happy hour on Friday.

Continue reading →

Spam Filtering

Attention @thecave e-mail users. The default for spam filtering is as follows:

- Messages with LOW spam probability will remain in your Inbox with the subject prefix “SPAM-LOW:”.

- Messages with MEDIUM and HIGH spam probability will be moved to the Junk E-mail folder.

You can override this by going to Settings|My Spam Filtering.

Continue reading →

SmarterMail 2.0

This notice is for all @thecave.com e-mail users who use the web interface. SmarterMail 2.0 was installed last night. It offers dramatic changes over the previous version include:<ul>
<li>Completely redesigned interface</li>
<li>More logical organization and structure</li>
<li>Foreign language support for the interface and spell check dictionaries</li>
<li>HTML creation of messages</li>
<li>Improved Help documentation</li>
<li>More robust spam detection (including Bayesian filtering)</li>
<li>Improved Content Filtering</li>
<li>Much more</li>
</ul>Email accounts will not actually be converted to 2.0 until they log some type of activity (e.g. if you log in to the mailbox, or even if you simply receive an email). Therefore, once you initially log in, you may see a longer load time. During this process, no emails or users will be lost.

Two things you will want to check after the conversion are your spam and content filters. The content filters should not be affected, but Spam options will default to the new SmarterMail 2.0 settings. If you want to utilize custom settings versus these default spam settings then you will want to go into the spam filtering configuration and make any changes you feel are necessary. When checking your spam settings, pay particular attention to the use of the Bayesian filtering option as this is what you use to “teach” the mail server what you consider to be spam.

I think you will find this laest version is far better than the previous version. Feel free to ping me if you have any questions regarding SmarterMail 2.0.

Continue reading →

Catching Up on Family News

Seems that there is something in the water down in Memphis because my family has recently gone baby crazy. Congratulations to John and Lisa for the arrival of Elizabeth Marie. Congratulations to Bill and Melissa for the arrival of Matthew Cole. Congratulations to Michael and Kimberly for the arrival of Gracen Brooke, and sorry for the misspelling. I didn’t receive an official announcement e-mail with the correct name spelling. I’m not even sure I know the name of Rip’s offspring.

And for the really big announcement, congratulations to Tommy and Renay (my little sis). The two are expecting a new homo sapiens arrival of their own. It will be interesting to see how the baby blends in with the personal zoo they have. Will the baby sleep in the same room as the frogs, snakes, rats, bats, and giraffes? Will he or she crawl around with the 12 dogs and 18 cats? Seriously, Melanie and I are both very excited for you guys.

And congratulations to all, and to all a good night.

Continue reading →

For CEOs, offshoring pays

For CEOs, offshoring pays - News - ZDNet: “Chief executive officers at the companies shipping the most U.S. jobs overseas seem to be pocketing some of the savings, according to a new report.”

Continue reading →

Interesting Day Indeed

I was heading up to Connecticut for an afternoon meeting so I scheduled a morning meeting at Grand Central Station. As we drank our coffee and talked business, 18 year old “kids” (military of course) walked around carrying semi-automatic weapons. Police were in full force at all the train stops from the West Village to Grand Central. Officers performed random sweeps on the trains including the one I took up to CT. Definitely not a typical day in the office.

On a related note, I had time to kill between my meeting at Grand Central and the train ride up to CT. I decided to check my e-mail so I walked out of the station in search of a Starbucks. To no surprise there was a large Starbucks just a block and a half away. I have often joked about Starbucks being on every corner but today it paid off. And it paid Starbucks as well as I order an ice coffee and signed up with T-Mobile for a day pass. Gotta love the convenience provided by Starbucks.

Continue reading →

Road to Independence

I recently wrote the article below but have not published it yet. I am working on an article section on the White Peak Software web site but I haven’t completed the software change yet. So instead of waiting longer, I decided I would post a draft of the article here on the blog.

Road to Independence (Part 1: How I Got Here)
Kirby Turner
White Peak Software Inc

July 2, 2004


Earlier this week I told my employer that I resign from my position so that I may pursue a career as an independent consultant. This has been a long time in the making. It is both an exciting and scary move for me.

Although it has been done before, I thought it would be fun to share my experience as I journey down the road to independence. This article is the first in a series I plan to publish where I share the good, the bad, and the ugly of going and being an independent consultant and running my own software company.

Disclaimer: This first article is more about my history and less about lessons learned. Future articles in this series will be more practical for the individual considering a move towards independent consulting.

How Did I Get Here

The first computer I ever played with was a Sinclair 1000. It was my father’s and I was immediately fascinated with it. A few years later my high school was selected as a pilot school for hosting a computer class. Note this was in the early 1980’s. The class focused on the history of computers for the first half of the school year. I was bored and sometimes disruptive in class. Needless to say I did not make a good grade nor did I leave a good impression on the teacher who was considering kicking me out of the class before the start of the second semester.

During the second half of the school year the class focused on programming in BASIC. My boredom quickly left and I completed all of the class assignments for the second semester within the first few weeks. From that point on I helped other classmates learn how to program. It was my first experience as a mentor.

An advance computer class focusing on PASCAL programming was offered the following year, my senior year, taught by the same teacher. Before teaching these classes, the teacher taught math. While teaching she returned to school to studying for her master’s degree in Computer Science. Once again I finished the class assignments early in the school year so the teacher gave me assignments based on her own college assignments to keep me busy.

She resigned from her teaching position at the end of the first semester, but she agreed to continue teaching the advanced computer class through the end of the school year. She left teaching to start her own computer consulting company and I was her first employee. I was still in high school getting paid to write software for customers of the teacher who was considering kicking me out of class a year earlier.

Over the years since that time I have spent most of my career as a computer consultant writing software for different clients. I have also worked for a few ISV which is where I got exposure to commercial software development. I went independent in 1999 as a sole proprietor but that lasted only a year. I learned I wasn’t ready for the responsibilities of being an independent and I didn’t have the skills I felt were needed to grow a business. It was back to regular employment for me.

Working Smarter Not Harder

It was during the next four years that I learned about running a business and how to engage other businesses. It was also during this time that I became increasingly more frustrated with my career. Although successful during these years, I saw things happening that I did not agree with. And I was constantly telling myself and those around me that if we used this or that approach we could improve and do better. We could work smarter, not harder.

The idea of working smarter not harder became a top principal held by me and one that started guiding my career towards independence. It gave me a new way of thinking about my career and how it fits into my life. I was tired of giving up my life to work harder. I was tired of working long hours, 60, 80, and sometimes 100+ hours per week. Working smarter was my only option.

There was another motivating factor for working smarter. While I was learning more about business over the last 4 years, I was also an exempted employee which meant I did not get paid overtime. The real kicker though was that if I worked 60 hours during a single week for a customer that customer would be billed for 60 hours even though I was getting paid for only 40 hours. For me, working smarter was also about not giving my time away for free to someone who is profiting from that time.

Life Goals

Working smarter gave me a new way of thinking about my career and how it fits into my life. I had learned the importance of life outside of work and I no longer wanted to be a workaholic. Working smarter allows me to be more productive than working harder while at the same time keeping reasonable hours. As a result I have been able to enjoy more out of life with this new balance between professional and personal life. But I wanted more.

Last year I looked around and asked: Is this what I want to do with my life? Do I want to continue working for others, helping my employer make more money while I make the same amount I was making 4 years ago? The obvious answer was no.

I enjoy creating software and helping customers meet business objectives through the implementation of software solutions, but I also want to spend more time with my wife and family. I want to spend more time on the wintry slopes snowboarding, and I want to spend more time pursuing career goals and interest that I otherwise have not been able to pursue while employed by others. Yes, there still is a bit of the workaholic in me but remember computers are just as much a hobby for me as they are a career.

I remembered my time as sole proprietor, which was one of the highlights in my career. It only made sense for me to return to that career life but this time leverage the business skills I had acquired. Thus began the concept of White Peak Software Inc.

Continue reading →

Bloggin' Boris

Boris has a blog on his travels through the Far East.

Continue reading →

All For One Pass

Last day for the All For One season pass at cheap, cheap prices.

Continue reading →

ClickOnce Deployment in .NET 2.0

Brian Noyes gave a nice talk on ClickOnce Deployment using .NET 2.0 at last night’s NYC .NET Developers Group meeting. ClickOnce is the combination of the best ideas from web deployment, No Touch deployment, and Microsoft Updater Block. Visual Studio 2005 makes ClickOnce a snap and requires little to no coding. VS2005 allows you to set all the configuration needed for ClickOnce through project settings and publish the deployment package out to a server. No need to write your own manifest files! And it is part of the .NET runtime so you do not have to make changes to your application. As a matter of fact, you can deploy applications built on .NET 1.1 through ClickOnce.

Continue reading →

New Joel on Software Book

Joel Spolsky of Joel on Software fame has published a new book called “Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity.” That’s some title. According to Joel’s e-mail, the book consist of 45 “timeless” articles from his site. Not much new content but sometimes a book is preferred over a web page.

Continue reading →

Life as a Minimum Privileged User

Living life as a minimum privileged user can be rough. It seems almost every program I use requires administration rights to the machine for installation. Once I have my new virtual machine setup and configured this will not be as much of a pain as it is today. A helpful way to make life easier is to use Remote Desktop and connect back to your machine using an administrator account. I keep this running as I do my installs and luckily only one application required a re-boot.

Continue reading →

Back to Admin Rights

After running into numerous problems I gave myself admin rights to my local machine. I had too many problems trying to install and run various applications and I don’t have the time to trouble the problems tonight. I will try again to run as a minimum privileged user when I have more time to trouble shoot problems.

Continue reading →

Install Woes with Roxio

After a 3 hour struggle I finally got Roxio Easy CD & DVD Creator 6 installed on my laptop. Here’s the story.

I run my laptop under a minimum privileged user account. I go to install Roxio but it requires administrative rights to the machine for installation. Okay, given the nature of the software I am okay with signing in as administrator for this install. And that’s where the problems started.

Roxio 5 was already installed on my laptop so the install process asked to un-install it for me. I tell it yes, the old software is removed, and the machine reboots. I ran the installer under an administrator account from my primary user account which as I said has minimum privileges. After the reboot, I signed in with my primary user account to finish the install but the install did not run. I manually re-ran the install but it told me I needed to re-boot my machine to finish the install. After doing this a couple of times, I realized that the install process was not going to restart unless I sign in as an administrator even though I started the process using a Run As the administrator. Sigh…I sign out and back in this time as the administrator. The install process runs and completes.

With the software in place, I plug in my new Plextor PX-708UF into a USB2.0 port on my laptop. The OS recognizes the device, does it magic, and I now have access to the device. I launch the Roxio Creator Classic software to write out some virtual machines to DVD. Roxio sees the device but it does not know how to interact with the device. It doesn’t know what formats are supported by the device and it doesn’t recognize the media in the drive. I re-boot. No luck. I sign in as administrator and still no luck. I tried a combination of things and still no luck. Finally I decide to re-install the Roxio software.

Being a bit wiser this time around, I left the Plextor device turned on while I installed the Roxio software under the administrator account. Ah, the missing piece reveals itself. This time around the Roxio software detects the Plextor device and immediately downloaded additional driver tables to support the device. Note, I had to remain in the administrator account for this to happen. Finally all the pieces are in place and I am burning to DVD and CD without a problem.

Lesson learned: When installing Roxio software, 1) have the device installed and turned on before installing the software, 2) install using a user account that has administration rights, 3) continue using the administrator account until the software installation is complete and you have verified that everything is working correctly. Follow these steps and you will be able to use the Roxio software to burn DVD and CD in minimum privileged user accounts.

Continue reading →

Oracle Developer Day in NYC

Yesterday I attended the Oracle Developer Day. This hands on workshop covered Service Oriented Architecture (SOA) and how you would implement SOA solutions using Oracle tools. The morning sessions talked about SOA and how it fits into the application architecture. The architectural concepts presented here also apply to .NET solutions. It was refreshing to see that whether you use .NET or Java the same good architecture can be applied to either platform.

We spend the rest of the day hands on implementing a multi-tier application using JDeveloper. JDeveloper has a similar look as Visual Studio.NET but some of the features were not as intuitive. The tool that impressed me the most was Toplink. This tool integrates with JDeveloper and allows the developer to map an object structure to a relational model.

Toplink is ideal for building the persistent layer of a solution and the developer does not have to write code. You define a class structure of getters and setters, map the properties to the appropriate fields in the database, and viola…Toplink generates a persistent layer that will retrieve data from your database.

JDeveloper provides a lot of assistance for implementing end-to-end solutions built on top of SOA. But as easy as it was, I could not help wondering how often the tools are used for real world development of enterprise solutions. The lab sample was a simple application but can more complex solutions be implemented without needing to write a lot of code? I will need more time to explore the set of tools Oracle to see.

Continue reading →

Unit Testing Gone Bad

Sorry but I have to rant for a minute. I have been working with a team lately that doesn’t get unit testing. In 4 months, this team has been unable to have all 200+ unit tests run successfully. This to me is an indication that 1) the team does not understand unit testing and its importance, or 2) the team just does not care. My initial thought is the team does not care, but after today I am starting to think the team just does not understand unit testing.

Today a programmer committed code changes to CVS with a comment stating that the class failed unit testing with a stack overflow problem. The programmer apparently cared enough to run the unit tests prior to committing the code but didn’t take the time to fix the code, which by the way would have only taken a minute. Instead of fixing the code he commented in the log message that the class failed unit testing.

What kills me is the programmer cared enough to run the unit test against his code prior to committing to the source repository and yet didn’t care enough to fix the problem. Did the programmer think the test was falsely reporting an error against his assumed-to-be perfect code? It is as if the programmer does not realize that the unit test is trying to help him determine problems in his code. “Yeah, the unit test failed against my code but I know my code is correct so I’m going to commit anyway.” I don’t get it.

Continue reading →

Installers and My Document Directory

In setting up my new laptop, I decided to go with VMware to host various guest operating systems for my development, collaboration, etc. For the most part this is working out well but there are still glitches. For example, to share the My Document folder with multiple guest OS I created a share in the host OS. Each guest OS maps the My Documents folder to the UNC \.host\Shared Folders\kirbyt\documents. The problem I have experienced with this configuration has nothing to do with me authoring documents, etc. Instead I have encounter two cases where installers have failed.

The .NET Framework 1.1 installer and the Adobe Reader 6.0 apparently need access to the My Documents folder during the installation process. However, both fail because of the UNC reference to the actual folder. My temporary work around to date has been to re-map the My Documents folder to a temporary directory on the local hard drive within the guest OS, prefer the install, and re-map the My Documents folder back to the original UNC location.

I wonder what these two installers want with the My Documents folder during installations and I wonder why their not smart enough to recognize the UNC reference.

Continue reading →

July ICCA Meeting

I attended my second ICCA NYC Chapter meeting last Tuesday. Turn out was not as good as the previous month but that was probably due to the pouring rain. The meeting was about planning for the upcoming year. We talked about the topics that will be presented over the next 12 months and attendees had a chance to vote for topics that he or she was most interested in hearing. Internet marketing and better networking (not the technical kind but the person to person kind) were top on the list with many other exciting topics following. The next 12 months of meetings are shaping up to be interesting and useful.

Continue reading →

Back from Vermont

We’re back from Vermont. It has only been a couple hours since we got home and I already miss the Green Mountains.

Continue reading →

Weekend in Vermont

Melanie and I will be in Vermont this week. Can’t wait. It’s been too long since our last visit.

Continue reading →


Here’s what this blog looks like to Snoop Dogg’s Tha Shizzolator. And check out the shizzolated code down below.

Continue reading →

Shift + Arrow Keys Not Highlighting

I learned that some Dell Latitude D600 configurations will prevent Shift + Arrow key combination from highlighting text within a VMware guest OS.  The problem also prevents selecting multiple list items too.  I found that the problem is caused by the ATI tray icon application.  Disable the ATI tray icon application to get Shift + Arrow key highlighting working again within Windows guest OS'es.

Continue reading →

Building a Business Relationship

Over the last few years I have watched and learned about building business relationships. I have seen huge mistakes made and I have seen techniques used that lead to great success. However, the key to building a relationship, whether good or bad, is always same…communication. A lack of communication will spell disaster for any relationship while a good amount of communication can spell success.

Good communication does not guarantee success but it eliminates the element of surprise. Most people don’t like surprises unless it is for happy moments. Having a surprise birthday party thrown in your honor will make you feel good. We like those types of surprises. However, being told that the project is going to take twice as long to complete and at twice the cost is not the type of surprise you want. It’s not a happy moment and the customer does not like those types of surprises.

While we all know no one likes the bad moment surprises, I’m constantly amazed when I see a development team surprise the customer team and project stake holders with bad news. You are not going to be able to prevent bad things from happening within a project, but you can eliminate the element of surprise and it starts with communication.

You can eliminate the element of surprise by communicating with the customer on a regular basis. This communication must include the good, bad and the ugly. The good news is always easy to share, but you also should be willing to share the bad and ugly news even at the risk of having the project canceled. The relationship you are building will only strengthen with your honesty and upfront nature, and this should result in greater awards further down the road.

Frequent, open, and honest communication is a key to building successful relationships. However, one must know how to balance the information communicated. Someone who cries wolf all the time will loss credibility. Likewise the individual who only shares good news is likely to be perceived as hiding information, which can result in a loss of credibility as well. The trick here is to balance the information shared and provide only the information required by your audience to keep them informed and to eliminate surprise.

As an example of this, if your project is showing signs of slippage share this knowledge with your customer, but don’t make it sound like a crisis. Just indicate that there are early signs of slippage and outline your plans to counter the affects. This should be done early on instead of waiting until there is major slippage in the project timeline.

If slippage occurs, the customer will not be surprised by the news. If slippage does not occur then the customer will see your were able to mitigate the risks. Either way you were able to eliminate the element of surprise and instilled greater confidence in your abilities with your customer and thus strengthening the business relationship.

Eliminating the element of surprise with regard to unfortunate news will help strengthen your business relationship with your customer and will hopefully result future work with your customer.

Continue reading →

VPC versus VMWare Revisited

After playing with Virtual PC off and on for a couple of days, I decided to return to VMWare. There are two main reasons why I decided to go with VMWare over VPC.

Reason one: Network bridging. Simply put, I could not get bridging to work with VPC but it worked flawlessly with VMWare. Overall, I think VMWare does a better job at networking. I especially like having control of the DHPC service settings.

Reason two: UNC support to the host. This feature seems to only exist in VMWare. \.host\Shared Folders\ gives you access to VMWare shares defined in the host OS. I could not find an equivalent feature in VPC.

Continue reading →

Regex Library

Looking for a particular regular expression? Check out the Regular Expression Library (http://regexplib.com/).

Continue reading →

A Binding Formatter is Called Twice

It seems that a binding formatter is called twice when a user leaves a textbox control. As the user leaves the control the Leave event for the control is fired followed by the binding format event. The setter method of the bounded property is called next followed by the getter method then finally the binding format event is called again.

Continue reading →


Melanie and I were planning to fly into Manchester, NH next week and drive to Vermont for a break from NYC.  However confusion set in when we started checking the fly availability and car rentals.  Flights into Manchester are filling up and car rentals are sold out.  What gives?
Duh!  The Democratic Convention 2004 starts on Sunday, July 26 in Boston.  No wonder Manchester is so busy that weekend.  Needless to say, Melanie and I are breaking convention (no pun intended) and driving up from NYC to avoid the Boston/Manchester madness.

Continue reading →

To Data Bind or Not To Data Bind? That is the Question.

I had a lengthy discussion with another developer today regarding data binding in .NET.  I started thinking about this more after the conversation ended and I realized there are some who think data binding should always be used in Windows based .NET applications.  The conversation today brought back memories of how developers overused data binding when VB 3.0 was released into the wild.

Data binding in .NET is a vast improvement over past attempts at providing a data binding feature in a programming language.  I for one love the fact that I can data bind to different data structures and that I am not limited to binding to ADO.NET datasets only.  I often use data binding in my ASP.NET applications that use a repeater.  This feature alone has helped me build web pages faster, but I do not believe data binding is the silver bullet for all cases of moving data between structure and presentation.

Consider a case where you are developing a Windows application and the presentation tier works with custom data structures only, no dataset.  The window must allow the user to edit values stored within the data structure.  One easy way to do this is to bind the data structure to the window elements.  Changes in the data will immediately be reflected in the data structure.  Now assume that the user wishes to cancel the data changes.  Unfortunately the data structure has already been updated with the changes.  How do you reset the data structure?

There are probably 101 ways to solve this problem.  One approach that works well and does not use data binding is to copy data from the data structure into the window elements for display and copy the data back from the window elements to the data structure for persistence.  This is accomplished by writing two private methods, one to copy from the data structure to the window elements and the other to copy from the window elements to the data structure.  The on change event from each editable window element can be wired to a single event handler that sets a flag that indicates data has changed, i.e., IsDirty.

Within the form load event of the window, the private method to copy data from the structure to the window elements is called.  Within the form close event or some other event indicating a desire to save the data, the private method to copy the data from the window elements to the data structure is called.  The flag indicating data has changed can be used here to avoid copying data when no changes exist.  In other words, only copy the data from the window elements if the IsDirty flag is true; otherwise do not copy the values.

This approach does require the developer to write code.  Data binding would of course eliminate the need to write the code but in doing so you give up some flexibility in what you can and cannot do.  In many more complex solutions, giving up that flexibility can lead to more costly problem solving approaches such as writing code for workarounds to problems caused by the loss of flexibility.  This can be true when data binding is used. 

I have seen projects that use data binding go down the path of writing various parsers, formatters, utility helper classes, implementing interfaces such as IEditableObject on data structures, and so on just to overcome limitations imposed by the use of data binding.  In the attempt to avoid writing code that follows a straight forward pattern of moving data from a structure to window elements and back, the project developers have made life much harder for themselves.  Design meetings, whiteboard sessions, and developer time are wasted on producing these workarounds just to eliminate the need to write simple snippets of clean code within the window.

Data bind has its place in the application development world, but do not assume it is the only approach to use within your applications.  Don’t be afraid to write code.  You might be surprised at how easy it is to maintain, enhance, and most importantly improve the richness of your applications when you don’t use concepts like data binding.  And when you do use data binding use it wisely.

Continue reading →

Performance Review: Virtual PC versus VMWare

Hernan Di Pietro has done a nice job of comparing the performance between Virtual PC and VMWare. I think I will start with VPC as I begin setting up the new laptop.


Continue reading →

It's Official

It’s official. Over the next few weeks I will be transitioning my day time job from Avanade to my own company White Peak Software Inc and I will be 100% focused on White Peak starting Monday, August 16. This is a very exciting time for me as I move to the world of independent consulting and it is something I could not do without the love and support of my wonderful wife Melanie.

Continue reading →

Early Bird Specials

American Ski Company finally gets it. They are offering low cost season passes for those people who wish to buy their passes early. These are All for One passes with access to Killington, Pico, Mount Snow, Sugarloaf, Sunday River, and Attitash Bear Peak for as low as $349. Quantities are limited so act now.

Continue reading →

Dell Latitude 600 Setup

I received my new Dell Latitude 600 today. Sweet machine but now it’s time to set it up to my liking. My plan going into it is to setup the host OS with the general tools I need each day such as Eudora Pro, Office 2003, iTunes, and so on. I will use either VMWare or Virtual PC to host guest OS for my development environments. I plan to setup the primary user account for each OS with minimum privileges to force me to become even more security minded.

I’m still not convinced that hosting my development environment in a guest OS is the right choice but I do like the idea of creating a new development environment in a matter of minutes instead of hours. The big decision I have to make though is whether to use VMWare or Virtual PC. I have been a VMWare user for some time now but there are some cost benefits for using Virtual PC. Post a reply if you have an opinion on VMWare versus Virtual. Meanwhile I’ll post more about my setup and configuration experience as I go through the process.

Continue reading →

Delta to Invest in Radio Tags for Luggage at Airports

Reported by the The New York Times, “Delta Air Lines said yesterday that it planned to use disposable radio tags to track all luggage it handles at domestic airports.”

Continue reading →

Dave and Lexi

Congratulations to Dave and Lexi on their recent marriage. Melanie and I are looking forward to the reception in October.

Continue reading →

Why Software Quality Matters

“This is a warning for any creator of computer programs: that software quality matters, that applications must be foolproof, and that-whether embedded in the engine of a car, a robotic arm in a factory or a healing device in a hospital-poorly deployed code can kill.”

This quote comes from an article my friend Matt pointed to me from Base Line Magazine titled Why Software Quality Matters.

This article really illustrates the importance of software quality. As more software is used in the daily lives of people the importance of quality software increases. Recently I read in Consumer Reports that a particular model of luxury car is being recalled due to a problem related to a transmission controller chip. The software in this chip can cause the car moving forward to shift into reverse. Imagine the pileup that could be caused by a car suddenly shifting into reverse as it and other drivers speed down the NJ Turnpike during rush hour.

Many programmers like me can and have argued that our business applications pose no threat to human life. But does this mean we can set quality levels for our work to a lower standard? Does it mean we can intentionally deploy poorly written applications? I say absolutely not! Software developers must start accepting the responsibility of writing high quality code and they should be held accountable for any code not adhering to a high standard of quality.

Continue reading →

Explicit Interface Implementation in C#

I was a grumbling VB developer for a number of years. At the time Delphi was my language of choice but in the part of the country I lived customer work using it was almost non-existent. In the summer of 2000 at PDC, a friend of mine from Microsoft showed me the .NET Framework and C#. I was instantly drawn to C# because it reminded me of Delphi, which is no surprise for those who know their C#/Delphi history.

Continue reading →

It Came from Inside

Over the last month a lot of my time has been spent focusing on security as I design a security framework and strategy for a customer. One comment I hear often is “we don’t need to worry about internal security threats” or “internal security threats are minor and represent a low priority”. I couldn’t disagree more and have been repeatedly emphasizing the importance of protecting ones assets from internal attacks, which for some companies is a greater threat.

Yesterday’s report of an AOL software engineer being arrested for stealing 92 million customer screen names proves my point. Some people will do crazy things when offered enough money. And companies that believe “it won’t happen here” or “our employees would never do such a thing” are fooling themselves. Why risk it? Invest in reducing security threats, both external and internal.

Continue reading →

Another Microsoft Patent

I thought Microsoft’s patent on //TODO was silly but Microsoft’s patent for using human skin as a power conduit tops it. Actually this patent sounds interesting. I can see how wearable devices can benefit from a personal area network.

Continue reading →

NYC Visitors are Coming

My friend Phil was in town this week which means one thing. Time for BenZona to rock Luna Lounge. They had a great gig last night and it was good to see Phil, Keith and others again. We also stuck around to hear San Francisco based Candy From Strangers who I definitely got into.

Continue reading →

Unit testing and VS.NET 2005

I agree with Scott. Unit Testing support should be included with all versions of Visual Studio 2005 and not just with Team System. However, I am not sure I agree with the unit testing support using a new framework developed by Microsoft. NUnit is here today and works with all released versions of the .NET Framework. And I am sure support for version 2 of the .NET Framework will be included in NUnit once Microsoft has released it.

I doubt many of my customers will be ready to move to VS.NET 2005 and the .NET Framework 2.0 when it is released, but I will still be developing solutions for them. And I will continue to provide unit tests for custom written production code. So while I agree that all versions of Visual Studio.NET 2005 should include support for unit testing, I would like to see stronger support for NUnit and not some new testing framework. This will help ease the migration to the new tool and framework.

Continue reading →

Firefox Extensions

For those new to Firefox, be sure to check out the list of extensions. They’re easy to install and there are many helpful extensions that will improve your browsing experience. As a matter of fact, I’m using the BlogThis! extension right now to post this entry.

Continue reading →

Firefox 0.9 Available for Download

While nothing really new, other than security updates has happened to IE in quite some time, Mozilla has continued work on its next generation web browser called Firefox. Firefox 0.9 is available for download and I feel it is a worth while download.

I have been running Firefox as my default browser for the last 24 hours. I really like tab browsing and how Firefox blocks pop-up windows. It works fine for almost all sites I visit including a Microsoft SharePoint Window Services 2.0 site that I use daily. I don’t get the drop down command list on SharePoint documents like I would in IE but I’m still able to do everything I need with a document through the document design page.

My only complaint to date is when I attempt to open a link in a new window from SharpReader, the RSS aggregator I use. For some reason the web page is displayed in both a Firefox window and an IE window. I doubt this is the fault of SharpReader and is more the fault of the IE component used within SharpReader. In other words, I think the IE component is launching the additional IE window when Firefox is set as my default browser.

Aside from that one problem, I enjoy browsing with Firefox based on my 24 hour experience and will probably keep it as my default browser for a while.

Continue reading →

Visual SourceSafe Gets a Much Needed Upgrade

Microsoft has published the latest Visual SourceSafe Roadmap, which outlines where VSS is heading with the release of Visual SourceSafe 2005. The new version will still be geared towards individual developers and small teams, i.e., teams with less than 5 developers but it will finally include remote access. I’m glad to see VSS is finally getting a much needed upgrade but I doubt the new release will convince me to switch back from CVS.

Continue reading →


A friend pointed me to BindingPoint, which is an XML web services directory. I did a quick search on “snow report” and found my snow report web service. I checked out the service description that I setup in UDDI over a year ago and ran the quick test from BindingPoint. It brought back memories of my UDDI and Web services work I did last year. And I still think UDDI rocks!

Continue reading →

New AirPort Express: Is there anything it can't do?

Apple’s new AirPort Express sounds simply amazing. It can act as a wireless bridge, provides wireless access to USB printers, and play music broadcasted wirelessly from your computer. The device fits in the palm of your hand and it has a built-in AC adaptor meaning no cables or power supply. This little puppy will be great to take on the road too. You can connect it to the hotel’s ethernet and access the Internet wirelessly. Or use it at the home of friends and family who have broadband Internet access but no wireless access point. I might have to buy one once Apple starts shipping it.

Continue reading →

MSN Alerts for Xbox Live

Microsoft recently announced MSN Alerts for Xbox Live users. It works by linking your Messager account with your Xbox Live gametag. You can receive alerts for game invites, friend requests, know when friends sign in, and more. Sounds cool but unfortunately I use Trillian as my IM client.

Trillian is awesome in that it is a single IM chat interface for different IM services such as AIM, Messager, ICQ, and Yahoo. With Trillian I no longer need to run different IM programs. Instead I run one program and it communicates with the different services. The only beef I have with Trillian is the lack of support for MSN Alerts, but I’m sure that has more to do with Microsoft then with the Trillian folks. And as much as I like the concept of MSN Alerts I’m not going to give up Trillian.

Continue reading →

Yet Another Silly Patent

Microsoft has created a patent on // TODO. Fortunately it only applies to software development environments so individuals can still produce their own TO-DO list for things such as grocery shopping.

Continue reading →

Map of Springfield

This is too funny. I would have never thought you could find such a detailed guide to Springfield USA.

Continue reading →

Tools of Choice

Lately I have seen a handful of developers blog the list of tools they use so I’ve decided to do the same. Here are the ones that come to mind because I use them daily.

Continue reading →

Which XML API?

I had an interesting chat with a team member today about which XML parsing API from the .NET Framework to use for a particular situation. He mentioned that using the XPathNavigator with an XmlReader would not load the document into memory. However, after some quick research I found this to be incorrect. XPathNavigator is different than XmlDocument in that it is optimized for XSLT processing and the XPath data model, but it is similar in that the entire document is read into memory. XPathNavigator appears to use a cursor-base model for traversing the document while XmlDocument uses a tree-base model.

The rule of thumb I have come up with is this: Read-only, forward-only XML parsing API tend to read from a stream and do not store the entire document in memory. Random access XML parsing API, which typically use a tree-base model or cursor-base model, will traverse in-memory the XML document which means this entire document is stored in memory.

Continue reading →

Making the Move to Test Driven Development

I have been using NUnit since its early days but it has only been in the last six months that I have made the move to test driven development. TDD is concept of writing production code based on unit test cases that are written first. And using a framework such as NUnit enables the developer to write automated unit tests that will test the features of an application at a functional level thus encouraging test driven development.

TDD is a paradigm switch for many developers as it was for me. Sure I have been unit testing my code for years. I would employ techniques such as console applications, shell programs, and other types of test harnesses to test the functions of my code. But until recently I never
started the development of a module by writing unit tests first.

Test driven development is an investment up front in the quality of your code. That investment is in the form of the unit tests before production code. Many developers today write the production code first (after the design phase of course), followed by commenting the code, then followed by testing the code. And in many cases the later work of commenting and testing never happens because bug fixes become the developer’s top priority. But by investing in the quality of the code at the start developers will find that bugs are reduced, the classes and functions of the code are better designed, and over all quality of the work is greatly improved. Best of all, refactoring code becomes less of a risk with TDD because recursion testing at the unit level is possible.

Here are some tip I would like to share that will hopefully help you make the move to test driven development:
<li>Just do it. Force yourself to write your unit test first. Over time the quality of the unit test will improve, writing unit test will be easier, and it will because almost second nature for you to start with a unit test.</li>
<li>When testing data changes to a database, start a transaction in the SetUp of the unit test and roll back the transaction in the TearDown. This provides an easy way to clean up the data after each unit test.</li>
<li>Writing a unit test prior to writing the production code will give you insight into the design of your class or function. Use this insight to improve on the design prior to writing production code.</li>
<li>Use composite unit testing to test implementors of interfaces.</li>
<li>Write a unit test for each defect reported. This provides a great way to ensure a problem never reoccurs. And for those who already have existing applications but no unit tests, this approach will give you an introduction to writing unit tests.</li>

Continue reading →

Yet Another Reason to Use Eudora

I just read an article about a new service called DidTheyReadIt. In a nutshell, this service places a small Web bug in HTML formatted e-mails that acts as a tracking device. When the e-mail recipient reads the e-mail a script on the DidTheyReadIt site logs the action. It will even log how long it took to read the e-mail message. Based on logged information the e-mail sender can know if you read the e-mail or not. Fortunately this service only works with e-mail readers that support HTML formatted e-mails, which is something I have never liked. Unfortunately most people view e-mail message as HTML.

HTML e-mails look nice but too much can happen behind the scenes that the message reader does not know about such as tracking when the e-mail message was read. I use Eudora as my preferred e-mail reader. It allows me to turn off viewing e-mail as HTML. I can still see the e-mail and read it, but it is not rendered as HTML. This means the e-mail message might not look as nice but it also means there is no unknown activity happening behinds the scenes when I read the e-mail. And I still have the option for view the message as HTML if I like.

Continue reading →

New Pictures...sort of

I forgot to mention that pictures from Laura’s graduation have been posted in the gallery on thecave.com. Enjoy.

Continue reading →

Double Wedding Weekend

Melanie and I have just returned from our first of three double wedding weekends for this year. Congratulations to Brooke and Josh on their marriage Saturday, and congratulations to Alex and Meg on their marriage on Sunday.

Continue reading →

RAIL - Runtime Assembly Instrumentation Library Project

Just came across this dandy project called RAIL - Runtime Assembly Instrumentation Library. RAIL provides “an API that allows CLR assemblies to be manipulated and instrumented before they are loaded or executed.” Imagine if you will loading an assembly, inspecting it, altering the IL, and executing the mutated assembly or even saving it. This has some interesting applications for aspect-oriented programming.

Continue reading →

How to Unit Testing Implementations of an Interface

I have become a firm supporter of writing unit tests for most if not all code I write, and NUnit is an ideal framework for implementing unit tests. But one problem I have had repeatedly is finding a good way to test specific implementations of an interface. My approach has always been to write a new test fixture for each implementor of an interface. But the problem with this approach is that I end up duplicating unit tests for each implementor, and if I need to write a new test I have to copy it to multiple fixtures.

Continue reading →

A comment or two on Visual Studio Team System

This week at TechEd, Microsoft announced Visual Studio Team System. It includes a number of features to get development team more into the life cycle such as unit testing, profiling, and code coverage. Sounds exciting but a couple of things I have read bother me.

Class diagraming will not use UML. Instead Microsoft has created a new notation which Microsoft says is needed to support two-way application design. The other point that I read that worries me is that Visual Studio Team System integrates tightly with SQL Server 2005. My assumption here is that as a team tool the database used most likely has to be a centralized database accessible by all team members. However, this is just an assumption at the moment but as a developer who uses a laptop and one who does development disconnected from a network from time to time such as when flying, I wonder how this will change the development experience or worse how it will limit the development experience. Guess I will have to wait until I get my hands on the bits to see what will happen.

Continue reading →

hipster bingo

Here’s a fun game to play while walking the streets of New York, hipster bingo.

Continue reading →

Using Enterprise Templates to Group Projects

I’m currently working on a customer project with 16+ VS.NET projects in a single VS.NET solution file. The single solution file is handy in that all the source code that makes up the complete customer solution is available in one place. The solution includes multiple C# projects, unit test projects, database projects, and one Reporting Services project. Also our build environment relies on NAnt scripts so each project that produces an assembly also has its own .build script.

A single solution approach is nice because I have access to everything that makes up the solution, from build scripts to C# source code to stored procedures. But finding the right project or file is becoming more challenging each day as more is added to the solution. This is where Enterprise Template Projects comes to the rescue.

An Enterprise Template Project is a project type available in Visual Studio.NET Enterprise Edition or greater, and it can contain any type of file including other project types. I started out by creating a set of enterprise template projects that represent the grouping I want. For example, I created template projects with the names Applications, BusinessServices, Databases, Frameworks, NAntScripts, and UnitTests. Within each of these projects I added the appropriate reference based on the grouping to existing project files. UnitTests contains references to the C# projects responsible for producing our NUnit unit test assemblies. BusinessServices contains references to projects that make up the middle tier of the solution. Framework contains references to framework projects, and so on.

NAntScripts is interesting in that it does not contain a reference to another project but instead it contains references to .build scripts files found in other projects. I like this because many times when I am working on the build scripts I need to modify more than one script. Before making the grouping I was jumping from project to project in search of the .build script file. Now I have references to all the script files in one place making it easier to find a particular script file.

With this new grouping I am able to more efficiently find the projects and files I need to work on. The grouping has proven itself to be a huge time saver for me especially when working with large single solution files.

One additional note on using enterprise template projects to organize your single solution: To prevent scattering .etp files throughout project directories containing the source code I recommend creating a single directory that will store all of the .etp files. References within an enterprise template project do not have to fall under the template project. Instead files referenced within the .etp can be stored anywhere on the hard drive. This means the .etp file does not have to dirty up the project directory where the source code actually resides.

Continue reading →

Multiple NUnit tests from NAnt

I have been working today on stabilizing our build environment for a customer project. NAnt has been a great to so far for this. But today I wanted to start running NUnit tests of our assemblies from the NAnt script. I have tried a combination of Xml in attempts to get the NUnit task to work as expected. All assemblies except one have a configuration file so I must use the element. I have tried defining a single section with multiple elements, one for each assembly to test. And I have tried multiple sections within a single target, but the result is the same. Not all tests do not always run.

Say I have 4 test assemblies. 2 out of the 4 may load. The other two seem to be ignored. The section seems easiest enough, but I must be missing something. Shot me a reply if you have a suggestion. Thanks.

Continue reading →

Man this Whomps

When did the term code monkey become inappropriate in the office?

I was talking with a programmer who is employed by the customer yesterday and a question came up about coders. This lead to a conversation about the meaning behind terms like “coder”, “programmer”, and “developer”. All can be the same while having some differences. During the conversation I mentioned the term code monkey. The programmer I was talking to never heard of the term so I showed him the definition of code monkey from The Jargon Dictionary.

Later that day the GM from my employer talked with me about the term, and 15 minutes later I got an e-mail from our HR Generalist requesting to talk with me about this. Apparently code monkey has become an offensive thing to say, or at least it has within the walls of my employer.

I see nothing wrong with this phrase. I have even considered myself a code monkey from time to time. Last summer I was on a project for a customer where I got to be a code monkey and I loved it. It was one the best project I have been on since joining my employer.

The whole situation reminds me of an episode of Recess called The Story of Whomps. The school principal and one of the teachers deem the word “whomps” as a cuss word and set out to punish the kid who created the word. The scandal goes all the way up to the Board of Education. When the superintended learns the scandalous word is “whomps” he says something to the tune of “Anyone who hears something vulgar in the word ‘whomps’ has a vulgar mind.” And that’s how I feel about the term code monkey. If you hear something offensive in the term code monkey than you probably have an offense mind.

Continue reading →

Don't be a "Cargo Cult" Programmer

Don’t be a “Cargo Cult” Programmer (or don’t get bit by the “Law of Leaky Abstractions”)

Continue reading →

Cheap price for MSDN Universal subscriptions

Amazon has some great prices on MSDN Universal subscriptions. A first time subscription is only $2399 USD saving more than $400 USD over Microsoft’s price. The upgrade price is $1974.99 USD. I think these prices are for U.S. customers only.

Continue reading →

usnews.com: Technology: Bill Gates' House

Take a virtual tour of Bill Gates’ estate.

Continue reading →


The PInvoke.net Add-in for Visual Studio.NET will insert PInvoke signatures into your code. What’s cool about this is that the add-in retrieves the PInvoke information from the PINVOKE.NET wiki. And you can contribute signatures back to the wiki from the add-in. What a neat idea.

Continue reading →

Being a Software Developer

Joel Spolsky has posted his foreword to Mike Gunderloy’s new book, Coder to Developer. The foreword puts in very simple terms what it takes to be a software developer, which is more than knowing how to writing code. As Joel puts it, a software developer can “take a concept, build a team, set up state of the art development processes, design a software product, the right software product, and produce it.” I’ll add that a software developer should understand various development methodologies and how to apply them, and the importances of QA and testing even though these are assumed to be part of the state of the art development process.

Continue reading →

MSN Careers - Avoiding Burnout - Career Advice Article

MSN Careers - Avoiding Burnout - Career Advice Article: “Avoiding Burnout”

Continue reading →

Pac Manhattan

This sounds like fun. I’ll have to check it out this Saturday.

Continue reading →

New Geek Toys Finally

Some people think of me as a gadget geek. Surprisingly though I’m not. Before Melanie I did not have cable TV for years. Broadcast TV was good enough for me. The last time I brought a computer was the first part of 1999, which was a laptop. And the last time I brought a desktop system was in 1998. And yes, both of these computers are still in use today.

The only gadgets I tend to keep up to date are gaming consoles, even though I don’t game as much as I would like. I have a PS/2, 2 Xbox consoles, Sega Dreamcast, Super Nintendo, and a Gameboy Advance. I gave away my older consoles when I moved to New York. I would have kept them if I had the space.

So contrary to popular belief I’m not much of a gadget geek…until yesterday. I finally broken down and bought a Dell PowerEdge server for use with upcoming work. And I’m planning to buy more computers, servers, laptops, etc over the next year. But the really cool geek gadget in my live as of yesterday, and in Melanie’s life, is DVR (Digital Video Recorder).

Melanie was kind enough to visit the Time Warner office yesterday and upgraded our digital cable box with the new DVR box. It’s like having TiVo built into the cable box, and I for one am totally hooked. Recording shows has never been easier. And the instance replay and rewinding of live shows is awesome. It comes with a series manager that allows us to record entire show series airing on one or more channels. And we can record two shows at the same time, which is pretty dang awesome.

Time Warner DVR will definitely change the way we watch TV. Digital cable gives us tons of channels which on any given day there is nothing to watch. But combined with DVR there will also be an interesting show to watch, from Brady Bunch to South Park to the latest XPlay on TechTV.

Continue reading →

Finally a Pleasant Night

Melanie and I were cursed of sorts by mother nature last year when it came to attending outdoor sporting events together. Baseball games we went to were either cold, rainy, or both. And it rained on us at the U.S. Open for a second year in a row. The last time we remember attending a pro sporting event outdoors without bad weather had to be in 2002. But last night our bad luck finally changed.

We had a great time at Yankee Stadium watching New York triumph over Oakland. And the weather was perfect. No rain and the temperature was ideal. Hopefully the rest of the summer will be like this for us.

Continue reading →

Season Continues for Others

I was looking at the Whistler and Killington cams today. Still snow at both resorts. It sucks to think I could be snowboarding this weekend. Guess I shouldn’t have packed up the gear.

Continue reading →


Melanie and I have a very busy but fun life. With work, travel, events in New York, it is sometimes hard for us to remember were we will be in 6 months. So I setup a web calendar for us to use.

I used open source project WebCalendar, which is a PHP-based calendar application. Setup was a snap thanks to the folks at CrystalTech, which is my hosting provider. Their support of PHP and MySql made getting the site up and running very easy. However, I did have to make one change to the code.

Inside of init.php is a number of “include-once” statements. Each of these statements refer to the a file in the “includes” directory such as “includes/translate.php”. To make the site work correctly within the server environment I had to remove the “includes/” string literal portion of the “include-once” statements. I did not have to make any other changes to get the application running from the shared server.

Continue reading →

A Portrait of J. Random Hacker [The Jargon Dictionary]

A Portrait of J. Random Hacker [The Jargon Dictionary]: “A Portrait of J. Random Hacker”

Continue reading →

Re-Throwing Exceptions

Words of wisdom on re-throwing exceptions in .NET.

Continue reading →

The Trick

“The trick to living well is not to live on as much money as you can but to live well on as little money as you can.” -Bob Reselman

Continue reading →

O'Reilly's big mistake

I have always been a big fan of O’Reilly. The books are great, the web sites are useful, and Safari is my favorite. But after O’Reilly’s attempt to implement a single sign on for all their sites I am left with multiple user profiles, one for O’Reilly sites and one for my Safari account which I can now only access through a different URL. Having multiple accounts is not exactly single sign on in my opinion.

And I’m still fuming over not being able to access Safari for more than 24 hours. Unfortunately I really needed access yesterday too.

I’m very surprised that a company like O’Reilly has let something like this happen. I have always thought the company was better than that. Hopefully improvements will come soon now that lessons have been learned.

Continue reading →

Congratulations to Tom and Janet

Congratulations to my friends Tom and Janet who tied the knot over the weekend!

Continue reading →

I need my Safari

It seems I am no longer able to sign in to O’Reilly’s Safari Bookshelf. I didn’t realize until today how important this reference site has become to me. Come on support team. Get my access active again.

Continue reading →

A Night in New York

Melanie and I had our first in over 2 months NYC Saturday together where it was just the two of us. We hit 55 Bar for some great blues music and the singing of Sweet Georgia Brown. The late show set was definite the best, with lots of energy and excitement coming from the crowd. The evening reminded me how much fun Saturday night can be in NYC.

Continue reading →

Creative Loafing Charlotte | They're Young, They're Vibrant...

Here’s a good online article that features my good buddy Dave.

Creative Loafing Charlotte | THIS WEEK IN: “They’re Young, They’re Vibrant…
And they’ve all beaten cancer “

Continue reading →

Only 9% evil

According to the Gematriculator, this site is only 9% evil. Guess I need to work on it more and get the evil percentage up. (insert evil laugh here)

Continue reading →

Happy Birthday to this blog

Happy birthday to this blog, which started two years ago today.

Continue reading →

Will India price itself out of offshore market? | CNET News.com

[Will India price itself out of offshore market? CNET News.com](http://news.com.com/2100-1022_3-5180589.html): “The U.S. technology industry’s demand for offshore services is apparently beginning to drive up pay rates in India, raising questions about the long-term benefits of outsourcing work to that country.”

Continue reading →

End of the Season

Melanie and I ended our ski/snowboard season this weekend in Killington, VT. The spring time conditions were great. Mash potato bumps, slush, and firm snowpack could be found throughout. Saturday was mostly cloudy to very cloudy while Sunday was nothing but blue bird skies.

We didn’t get in as many days as we have in past seasons but that was expected given the wedding and all. Still this season gave us the best snow conditions either of us have seen while we were in Whistler. This season also gave us our first visit to Park City, UT, where we got to visit with Kate and Shawn. We got some hang time with Brooke and Josh on a Killington weekend trip. I completed my snowboard/Lord of the Rings birthday trilogy. And we got to spend time on the slopes of Killington with the whole Davis crew.

Even though it was a short season for us, it was still a great one. And it has left me wanting more. I can’t wait until next season.

Continue reading →

Ask Joel - Offshoring

A long read but worth it.

Ask Joel - Offshoring: “‘Stop wasting your time coding.’

The problem with this argument is that you’re assuming a split between ‘design’ and ‘code’ that (although believed by most managers & wannabe architects) many developers believe just isn’t there.”

Continue reading →

Park City photos

Pictures from our recent trip to Park City, UT, and pictures from Brooke and Josh’s first wedding shower are available in the gallery. Enjoy.

Continue reading →

St Patty's Day

The fact the yesterday was St Patty’s Day totally escaped me. I didn’t even have a beer yesterday. And I can’t recall missing a St Patty’s Day celebration since 1994. What has my job done to me that I missed one of my favorite holidays of the year? Oh the humanity…

Continue reading →

Major site software update

I am making major updates to the site software to support addition sites. The work should be completed by the end of the weekend. Please let me know if you experience any problems.

Continue reading →

ZDNet News: The real costs of going offshore

Interesting panel discussion on the real costs of going offshore.

ZDNet News: “‘Offshoring’ is the term du jour, but the process it describes is complicated and riddled with pitfalls. At the Sand Hill Group’s Software 2004 conference in San Francisco, a panel of senior executives share their experiences and warn that the total costs of ownership can be higher than expected.”

Continue reading →

The Running Network -- Product Reviews -- Product Review

Congratulations to Josh for the recent award on one of his New Balance shoe designs.

The Running Network – Product Reviews: “New Balance has focused its attention on the trails for several seasons now; in fact, some of its greatest successes in recent years have come in this category. This spring’s introduction of the new 1100 marks their best effort to date.”

Continue reading →

Southwest Airlines

I wonder if A&E; new show Airline is helping or hurting business for Southwest Airlines. It seems every episode I have seen shows a paying passenger being refused boarding because he or she has had a few drinks prior to boarding. In tonight’s episode a 72 year old man was denied boarding by Southwest because he had a little too much to drink at the airport bar while waiting for a 3 hour delayed flight. Because it was the last flight of the night the old man had no choice but to either sleep in the airport or find a hotel.

I for one typically visit the airport bar when my flight is delay by hours. And I have been known to be a little tipsy by boarding time, but once I am on the plane I sleep through the flight. However I can’t help but wonder if I would have been denied boarding if I had been flying Southwest Airlines.

And what of these individuals denied boarding a Southwest flight for throwing back a few frosty brews as they wait for their flight? Do they pose a threat to the other passengers? Does Southwest believe these individuals will cause a disruption on the plane?

In one episode a gospel singing group took a Southwest flight. On the flight the group sang songs. These individuals were sober. However in my opinion the sober singing group seemed more disruptive then the beer drinking individuals who denied boarding.

There’s probably more to the story then what is aired on the TV show. However it seems that Southwest has a strict policy against drinking prior to flying, which makes me glad I don’t fly Southwest.

Continue reading →

Killington Weekend

Melanie and I just returned from a fun weekend in Killington, VT with her family. The snow was good Friday and Saturday but so-so on Sunday. But the views on Sunday were great. Our next trip is Park City next weekend with the Murphy’s. Can’t wait. It’s our first Park City run.

Continue reading →

Melanie's Birthday Party Pictures

Pictures from Melanie’s surprise fourth 26 birthday party are now in the gallery. Check them out now before she has me pull out the embarrassing ones.

Continue reading →

Logging Frameworks

Today I spent time comparing Logging frameworks. I looked at log4net and one developed internally by my employer. log4net is the clear winner. It is easier to setup and configure. And it has features to watch for configuration changes so you can change log settings without restarting your application. Sadly though I may be “forced” to use the Logging framework developed internally.

Continue reading →

Quality Xbox Time

I finally got in some quality Xbox time last year thanks to Melanie. The awesome Tony Hawk’s Underground (THUG) was the game of choice. That game is so addicting. I couldn’t stop playing. I’m not far in the game but I have hit New Jersey, Manhattan, and Tampa. I’m really starting to get the hang of the controls which means better tricks and higher scores. But I need to continue playing it to maintain and improve my skills. Taking two months off between sessions is no way to finish a game. Maybe I can squeeze in another hour sometime tomorrow morning before work.

Continue reading →

NAnt Rocks!

I have been working on making an automated build environment for a customer project and I have to say NAnt simply rocks! I am able to do some many things with it should as touch redist files, send e-mails on success and failure events, and build different targets. Later I will try posting complete details on the continuous integration environment I have built using NAnt, NUnit, CVS, VMWare and more.

Continue reading →

Why I won't use TurboTax again

I have used TurboTax for a number of years to do my annual federal and state tax returns so this year should have been no different. But from the start I had a bad feeling about using TurboTax. First it seems Intuit only provides a web version of the product. Not that I have anything again doing my taxes on the web. It’s just I prefer to use a desktop application.

As if filling my return on the web wasn’t bad enough I struggled with various worksheets as Melanie and I are now filling as a married couple. What does one do when a question ask for information from the previous year’s return? Do you add the total from the two returns? Anyway, combine this with the sell of some stocks last year that resulted in long term capital gains and losses and I started finding bugs in the online software. In all cases I found I had to completely delete records of information and re-enter the same information to get around bugs. An example of a bug was when I answered a question only to later learn that I answered the question incorrectly. When I returned to the question to answer it correctly it seemed the software ignored the new answer. Regardless of what I tried the software continued to ignore the corrected answer. So as a last resort I deleted the section of information and re-keyed it. A major plan but nothing compared to the final problem I had with TurboTax for the Web.

While completing my New York return I was asked to provide information from my New Jersey return. Note: I did some work in New Jersey over the summer which requires I complete two state returns. No problem I thought. I’ll just stop work on my New York return and complete my New Jersey. To my surprise there was no way for me to create a second state return. I searched the online help and FAQ but found no answer. I tried an online chat with tech support but after waiting a very long time I gave up waiting for someone from Intuit to reply. I would have called support over the phone but noticed that a $19.95 charge applies. And I refuse to pay $19.95 to a company only to learn there is a limitation in their software or they designed a poor user interface.

In total frustration and after wasting lots of time trying to navigate the pains of TurboTax I decided I am better off paying a tax professional to complete my return. Yes it will cost more than the TurboTax software but at least I know it will be correct and it will not take up a full day of my time. And it’s sad that I can’t use TurboTax given that our taxes when compared to many others are not complex.

Looks like I am no longer a TurboTax user. Maybe it’s time for me to look at Microsoft Money 2004 as well and dump Quicken.

Continue reading →

Whistler Pictures Online

Finally some new pictures. Check out the new pix from Whistler in the WASTED 2004 folder. Enjoy.

Continue reading →

Travel Journal.org - Experience, Advice & Tips for Cheap International Travel

Melanie’s good friend Chris Hart has started a new travel site. Check it out.

Travel Journal.org - Experience, Advice & Tips for Cheap International Travel: “Advice on cheap international travel from a backpacker who has “seen it all” is here on Travel-Journal.org.”

Continue reading →

Correction: Found desktop version of TurboTax

I stand corrected. I was able to find a desktop version of TurboTax but I didn’t find it from the www.turbotax.com website. Instead I found it from the www.intuit.com website. Go figure.

Update: I decided to give TurboTax one more chance before going to a professional but not the web version. Instead I order my old, familiar friend, the desktop version. Hopefully the experience will be much better and I can get our taxes done.

Continue reading →

Freeware versus Build

I know I have said this before but this time I hope I really mean it. I plan to start making more technology related posting to this blog. And to start things off I will share my rambling on using a CMS verses building a web site by hand.

I am in the process of setting up a web site for a new software company. Originally I wanted to use DotNetNuke to manage the site. It’s a great solution that has evolved since original releases of IBuySpy. However there are some database issues I have with DNN. Specifically the software company’s hosting provider only provides a single database so multiple applications hosted under the one account must share the database. Unfortunately DNN and another application already hosted attempt to use the same table names. Now there are ways around the problem using tricks like assigning different owners to the tables,
etc. And from what I have heard DNN v2.0 will have table name prefixes and other enhancements to prevent the problem. But DNN v2.0 has not been released yet.

I have tried Rainbow. It’s similar to DNN in that it originated from IBuySpy but it is different in that it is written in C#. DNN is written in VB.NET. Rainbow doesn’t appear to be as well supported as DNN either. Good news is that Rainbow does not conflict with other applications hosted under the account. And it has support for skins. Unfortunately there are not a lot of skins available for Rainbow, and it took me a day to create my own skin. And I have been having problems with building a good menu system for pages that
appear off of a root page or tab.

I like the features these products offer but at the same time I’m not quite happy with the end result of the web site. In some cases these products are overkill for my needs. So the software developer in me keeps saying “Write your own.” And I’m starting to listen. There are some definite
pros for writing my own web site or even creating my own CMS for that matter. But the biggest con is the lack of time I have right now. So I struggle with the debate as to whether or not I should use one of these fine products or write my own. If only I had a week of time to crank out a new web site with all the features I need. The ability to edit content online, the ability to define page layouts and support different module types, a built in blog engine, and maybe a blog engine that ties back to blogger.com (another time saver for me). I could drop the online editing features of the blog engine and the content and do something quickly with ASP.NET. But at the same time I like the ability to edit online for those rare cases when I am without my laptop.

The struggle continues. Feel free to post your opinions if you have one.

Continue reading →

Off to WASTED 2004

WASTED 2004 started over the weekend and for the first time Melanie and I were not there for the start of the trip. But we are heading out tomorrow. Be sure to check the WASTED site at http://www.wastedboarding.com/ for daily (or almost daily) posting.

Continue reading →

Ambrosia Software, Inc. -- news/newsletter

Ambrosia Software, Inc. – Bitwise Operator: The Plain Truth About Piracy “It’s a rare day when a shareware programmer gets firm statistics on the extent of software piracy, but just recently, I got that chance.”

Continue reading →

Commentary: The Upcoming GNOME Monarchy of Mono - OSNews.com

Commentary: The Upcoming GNOME Monarchy of Mono - OSNews.com: “Unix was originally all about not being… Multics. If Mono is to follow a similar nomenclature (just for the kicks), we have to talk about Mono’s upcoming ‘monopolization’ and ‘monarchy’ in the next generation of the Unix programming land. Your see, if everything goes well, in 2 to 3 years most new Gnome user/desktop applications will be written –hopefully– in Mono and C#. “

Continue reading →

Articles - Avoiding the Spam Trap: Get your message delivered!

Articles - Avoiding the Spam Trap: Get your message delivered!: “If you send emails to your customers, I have some bad news for you. Not all of your emails are making it to your intended recipients. Between ISP spam filters, spam-blocking email servers, spam-killing email software, and email content filtering everywhere in between, the chances are high that your messages just aren’t making it past all of these roadblocks.”

Continue reading →

Holiday Posting

A lot has happened since my last posting. As usual my life has been very busy. I took a sick day from work on December 22 to snowboard during the day and watch the Lord of the Rings. Three years in a row. I’m sure Melanie is glad the movie was only a trilogy.

For my birthday and Christmas Melanie gave me a couple of new Xbox games, Tony Hawk’s Underground and Project Gotham Racing 2. Both rock! THUG’s story mode is very addicting and PGR2 is much better than I expected. And I really like the Xbox Live support in PGR2.

Melanie and I spent the holidays with her family. Lots of food and good cheer. And tons of presents. The Davis’s really get into the gift giving thing during the holidays.

And lastly, Melanie and I are staying in NYC for the New Years. We are hosting a small wine tasting event Wednesday night and ringing in the New Years with some friends.

Continue reading →

Attention @thecave.com E-mail Users

Attention @thecave.com E-mail Users: There was a serious problem with the SmarterMail today that forced my new hosting provider to reset the passwords of all the e-mail accounts. I have reset the password to the value provided in the e-mail I sent out last week. If for some reason you do not know your password please reach out to me by e-mail or phone and I will get you going again.

I apologize for the outage this afternoon. The timing could not have been worse. Less than one week with the new provider and already one serious problem. Hopefully this will not be a sign of things to come. And in defense of the new hosting provider, the support staff reacted quickly to the problem and helped ensure no loss of e-mails.

Again, sorry for the problem and please let me know if you have any other problems.

Continue reading →

thecave.com is moving

thecave.com is moving to a new hosting provider tonight. I anticipate problems such as posting a blogment and e-mail users will need to check both servers over the next few days. I will work on resolving any and all problems as they come up over the next couple of days. I apologize in advice for any inconvenience.

Continue reading →

VMWare vs VirtualPC: A 5 Minute Review

Over the last year I have been using VMWare to host multiple guest operating systems on my laptop. This has made me a much more efficient developer as I can have clean copies of multiple environment to build and test my applications. It also gives me a safe way to evaluate beta software without fear of hosing my host operating system.

Microsoft has recently released Virtual PC 2004, a product that is similar to VMWare. For grins I decided to give it a whirl. What I first noticed was that VPC is not supported by Microsoft on host operating systems other than Windows 2000 Professional and Windows XP. However it ran for me without a problem under Windows Server 2003. I found the user interface to be more amateurish compared to VMWare, and the UI is less intuitive. For example to mount an ISO file you must drag and drop the ISO file onto the CD disc icon in the status bar of the Virtual PC window.

There were no surprises in setting up a new guest OS. However, it seems RAM is the only configuration item available during the setup of a new virtual machine. I did not see settings for controlling network access. VMWare definitely shines in this area. I found it interesting that formatting the new partition within the virtual hard was a slow process using VPC. VMWare can format the virtual partition in a snap. Installation of the new guest OS seemed slower under VPC than VMWare as well.

As for running the guest operating system I have not noticed any major differences between the two products aside from the better VMWare UI shell. After my 5 minute review of the Virtual PC I have to say I still prefer VMWare. VMWare appears more professional and is easier to use for someone like me. I will need more time with VPC before I decide if it is an appropriate replacement to VMWare for my needs. And since I don’t have the time it will be VMWare for me for a while.

Continue reading →

From the Alps to the Green Mountains

Melanie and I do live a charmed life. As we left Nice, France this morning I saw one of the most beautiful views of the snow covered French Alps I have ever seen. I was kicking myself for not having my camera on hand. But the charmed life doesn’t end there. Once we arrive in New York we are driving up to the green mountains of Vermont. Funny, the first real snow I have seen this season was this morning flying over the Alps but the first real snow I will ride on is in Killington, Vermont only 24 hours later. Yes indeed, a charmed life.

Continue reading →

New PhotoRoom V1.6

PhotoRoom V1.6 is now available for download.

Continue reading →

Opening Day

Killington opened today!

Continue reading →

Xbox Live

I am finally enjoying the Xbox Live experience with two new games, Top Spin and Amped 2. Both games are a blast and both have quickly become my favorites. But what I really like about both is the online play through Xbox Live.

Continue reading →

A Practical Guide to XP

I just finished reading the book A Practical Guide to eXtreme Programming, which I found to be very refreshing and motivating. Although I have heard a lot about XP over the years I didn’t really understand it completely or know all of the principals and practices of the process. I found it interesting that many of the concepts are things I believe in today although admittedly I tend not to follow. Testing first is one example. I have worked on one project where I used this approach but I have to change and start doing it for all projects.

One myth about XP cleared up for me after reading this book was around documentation or more specially the misbelief that XP prompts no documentation. I have heard this mentioned by others in the past but didn’t know what the real story was to debate it. The truth is that XP does in fact encourage documentation but only the right amount of documentation.

I strongly recommend this book to anyone interested in XP and to opponents of XP who have not read a complete book on the process.

Continue reading →

New Snow in Killington

While Melanie and I are enjoy sunny beaches in Hawaii snow is falling in Killington. I can’t wait for my first run of the season.

Continue reading →

PhotoRoom v1.4 Just Released

PhotoRoom 1.4 was released earlier today. I am hoping to update this and the wedding site with the latest version later today.

Continue reading →

New Book Idea

Thought of an idea for a new book today, The Anti-Management Book: Tips for Overachievers Looking to Underachieve in the Corporate World. Could be a best seller.

Continue reading →

Interesting Read

Aoccdrnig to rscheearch at Cmabrigde Uinervtisy, it deosn’t mttaer in what oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae.

The rset can be a total mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.

Continue reading →

Hot Key to Lock Windows

I learned something today. You can quickly lock Windows XP using the Windows Key + L key combination. No more Ctrl+Alt+Del, Enter for me.

Continue reading →

Art Watch - September 7, 2003 - MP3s Are Not the Devil - The Ornery American

Art Watch - September 7, 2003 - MP3s Are Not the Devil - The Ornery American: An excellent observation of why the record industry is way of mark with regard to MP3s and music sharing.

Continue reading →

Brian in the House

Tonight I met up with a good friend Brian, who is back in the U.S. after a year and a half of life in the far east. The conversations were great, and I really enjoyed catching up with him and hearing his stories about his travels. It was great to see you Brian. Talk to you soon.

Continue reading →

Viva Las Vegas

Heading out to Vegas within the hour. It’s the start of my bachelor party weekend Vegas style. I hate the fact that I have to take “nice” clothes. I thought Vegas was a jeans and t-shirt type of place but I guess I was wrong. It’s also going to be hot. Very hot! Like 101 for a high! All this negative vibe at the start of my bachelor party? I need a beer. Time to get started. I’ll post the stories I can share when I get back, which hopefully there will be no postable stories. Just kidding Melanie.

On an unrelated note, I am once again having problems with Blogger. Second time this week. Was the sale to goggle.com a good thing or a bad thing? I’m starting to wonder. Anyway, this posting was original planned for the wedding site but because of problems I’m not able to post there. And hopefully posting via e-mail will work.

Continue reading →

Small ISV in NYC

Are there no small ISV in NYC other than Fog Creek? New York has just about everything including bright technologist. But it lacks software shops like those found on the Left Coast. Why is that? Do they exists but stay underground? Post a comment or send me an e-mail (kirby at thecavedotcom) if you work for or now of a small ISV in NYC.

Continue reading →

All Rain and No Tennis

Last week I went to a Yankee’s game. I got to sit by 3rd base only 9 rows behind the dugout. But I forgot to take the camera.

Then Saturday Melanie and I went to the U.S. Open. Even though there were some rain delays during the day we got to see some matches at night. But again, I forgot to take the camera.

Monday we returned to the U.S. Open. Actually twice in one day. Nothing but rain. Rain, rain, rain. We saw only 5 quick games. Not even a full set. But this time I remembered to bring the camera. Pictures are in the gallery. Enjoy.

Continue reading →

We're Not Candy

Today I learned about an old PSA aired in the NYC area called We’re Not Candy. I’ve heard the audio, which is hilarious. But I really want to see the video. I was told the song is sung by little pills. Shoot me an e-mail if you have a copy of the video.

Continue reading →

Catch up post

Power returned to the West Village Friday afternoon, just in time for Melanie and I to leave the city. We headed to Lake George in upstate New York for a weekend getaway at Camp Murphy. It was great seeing everyone over the weekend. We didn’t want to leave but we had too. I’ll have photos posted in the gallery later today.

Continue reading →

Camp Murphy Pix Online

From beer to cliff jumping to beer to wiffle ball to Boones to tubing to beer to Beirut to beer, Camp Murphy has it all. Latest pictures are in the gallery.

Continue reading →

Slow return of power

My last posting of the night. It seems that power is slowly returning to the island. As I type this I can hear the rumble of the Path train beneath the apartment building. I could see stars from the fire escape earlier but now the stars are being replaced with the glow of city lights. I’m guessing Time Square or the Upper West Side finally has power.

For me, I’m still sitting in the dark rockin’ out to tunes on the iPod. Candles light the apartment. And I’m missing Melanie as I eat my midnight pasta. I spent the evening hanging with the next door neighbors. Beers on the fire escape. We wandered out for a bit. Blind Tiger was closed but Chumly’s, a place that never disappoints, was open and serving cool beer.

The street is still very dark. Oh the things that must be happening in the dark corners of the city.

I’m glad Melanie is okay. I talked with her a little while ago to say good night. She will be home tomorrow morning just in time to pack her weekend bags for Lake George and Camp Murphy.

Good night all and here’s hoping for a bit of electricity in the morning.

Continue reading →

Power Outage

As many may have already heard, New York and other major cities are experiencing a major power outage. For family and friends, I am home and fine. Melanie arrived back in NYC earlier today and was in the process of making it home when the power went out. I’m not sure if she was on a bus or in the subway. I hope she had not made it down to the subway just yet as no subways are running and people are stranded in the dark. I will update the site as soon as I have an update on Melanie.

Continue reading →

Phone service

And for those wondering, mobile phone service seems to be out but the land lines are working. I am in the process of looking for a non-electrical phone (i.e., non-coreless) so people can call the apartment and so we can call out. As of right now, the Internet is the only way to reach Melanie or I. Well, as long as we have battery power in the laptops.

Continue reading →

Getting dark

It’s starting to get dark outside. Should be a unique night in the city. I just might have to walk around a bit.

Still no word from Melanie. I’m sure she is safe, but she is probably very annoyed. And I don’t blame her. I hope she gets home soon. I really miss her. If you have heard from her, please send me an e-mail or make a posting on this blog. Thanks!

Continue reading →


I finally talked with Melanie. She is fine and safe. A nice New Yorker in Brooklyn has taken her in for the night. I miss her but I’m glad to know she is okay.

Meanwhile, I am going to walk around the city for a bit.

Continue reading →

Novell buys Ximian

The Register: “Novell is beefing up its Linux play with the cash acquisition of Ximian. The company has confirmed that it will continue to support Ximian-sponsored Mono and GNOME open source projects.”

Continue reading →

C# on Linux

For grins I decided to install the latest version of RedHat Linux version 9 and play with Mono. Mono is an open source effort to port the .NET Framework to other platforms. Once I had everything installed, which was fairly simple and straight forward, I wrote a sample console application using C#. It compiled and ran without a problem.

For fun, I decided to copy the .exe to Windows XP and run the same program under Microsoft’s .NET Framework. I was delighted to see that the program ran without the need to re-compile. I also copied a program to RedHat that I had compiled using Microsoft’s .NET Framework 1.1. It ran under Mono without a problem.

There are still features of the .NET Framework not yet implemented under Mono, but there is a lot that is there. Even a test of XmlSerialization ran without a problem. And best of all, I was able to run programs under the two different operating systems without the need to recompile. Now how sweet is that!

Continue reading →

Blues Cruise

Melanie gave me a sweet surprise the other night as we celebrated two years together. She treated me to an evening on the Blues Cruise with a live performance by Buckwheat Zydeco. For those wondering, the Blues Cruise is a cruise around New York harbor with live music. Buckwheat had the boat a-rockin’ and Melanie is the sweetest girlfriend ever for treating me to this unexpected surprise.

Continue reading →

Vermont Photos in the Gallery

Pictures from our weekend in Vermont on online in the gallery.

Continue reading →

Matrix Reloaded on IMax

One additional last minute New Orleans highlight for me…Matric Reloaded on IMax. It was awesome seeing it on the really big screen.

Continue reading →

Last Evening in New Orleans

My New Orleans trip is almost over. Events are winding down and people are heading home. The trip highlights for me have been (in no particular order and aside from the primary reason for me being here):

Continue reading →

New Orleans

I’m in New Orleans this weekend and having a great time. Last night I ran into 4 or 5 buddies from St. Louis, which was cool. Talked about old times. Unfortunately I have had very little sleep over the last few days but I have had many, many beers. After all, it is New Orleans.

Continue reading →

Off the Blacklist

Looks like the server hosting thecave.com’s mail server is off the AOL blacklist, which means I can once again send e-mails to AOL and CompuServe members.

Continue reading →

Removed: Efficient use of XmlSerializer

Last night I published a rather lengthy blog entry only to find out that I was mistaken about the interworkings of the XmlSerializer infrastructure. Based on some resent code I started to believe that the XmlSerializer would gen a temp assembly each time a new instance was initialized even when the same type was used. Simon Fell posted a comment correcting my assumption. And after writing with a quick sample that iterated through initialization of XmlSerializer instances with the same type, I saw that Simon was in fact correct. For that reason, I have pulled my fault posting from the site.

Thanks Simon for the correction.

Continue reading →

Blacklisted on AOL

Bad news for my friends, family and others on AOL and CompuServe. Apparently my mail server and/or service provider has been blacklisted by AOL since Friday, July 11. What this means is I am unable to send e-mail to members of AOL and CompuServe. My service provider is working hard to resolve the issue but AOL is saying it will take another 5 to 10 business days. AOL is claiming they are backlogged, which is the reason for the delay.

Maybe if AOL wasn’t busy blacklisting legitimate mail servers, there wouldn’t be a backlog. On the other hand, if the spammers would simply fall off the face of the Net there wouldn’t be a backlog either. And I would be able to send e-mail to AOL and CompuServe members, specifically my friends and family.

My e-mail address is all over the Internet, so it is no surprise to me that I receive spam mail. I receive around 250 spams per day. With Eudora Pro and Spamnix, I have been able to control it and it does not require me to devote a large amount of time each day parsing through useless e-mails. But this latest problem as a result of spam is the worse. I can’t even send e-mail to Melanie.

Anyway, if you are a AOL or CompuServe member and you are expecting a reply e-mail from me, you may not get it for a while. Don’t blame me. Blame AOL.

Continue reading →

Weapons of Mass Destruction

Weapons of Mass Destruction 404

Continue reading →

The Making of Amped 2

The Making of Amped 2: “Chris Gunnarson of Snow Park Tech and Brenner Adams from Microsoft AMPED II offer insight about one of the most anticipated Xbox video games of this year!”

Continue reading →


The Robots are robotfood.com have named their name movie “Lame” due out in September. Be sure to check out the new teaser video.

Continue reading →

Date set for WASTED 2004

The date for WASTED 2004 has been set. January 24, 2004 through February 7, 2004 at Whistler-Blackcomb of course.

Continue reading →

Field versus Property

.NET class structures defined in the CLR can have public fields and public properties among other things. On the surface, a public field and a public property appear to be the same. The .NET Framework Glossary even says a property “is like a public field.” However the two are not same. The most obvious difference is in the declaration of the two. For example, consider the follow class:

Continue reading →

PhotoRoom v1.3 Released

PhotoRoom v1.3 has finally been released and is available for download. I hope to have the gallery</a> @thecave.com updated with the latest version within the next few days.

Continue reading →

NYC 4th of July Pictures Online

Our pictures from this 4th of July weekend in NYC have just been posted. Enjoy.

Continue reading →

Catch up posting

I know I have been slow to post tech talk on this blog lately. The ironic thing is that I have been doing more .NET work over the last couple of months than I have done over the last year. I even completed my MCSD for .NET last week. Although I took all the .NET exams last year I needed to pass my one elective, which for me was the SQL Server exam. I previously took the 4.2 and 7.0 SQL Server exams and I was worried about the 2000. But it turned out to be the easiest of the three, the most developer focused, and I was able to pass by not studying, playing Xbox, and drinking beer the next better. Go figure.

Hopefully I will get back into posting on this blog soon. My customer work is very exciting and gives me lots to talk about. For example, we have extended WSDL to support our own binding, written tools for generating a proxy class to our own services, and are building out a framework by which developers do not need to write code for middle-tier component that most retrieve information from various backend resources. Exciting stuff.

Continue reading →

NYC Gay Pride

Melanie and I with friends enjoyed our fire escape view of this year’s NYC Gay Pride March. It was one of the best parades we even seen. Lots of excitement, good music from float to float, but best of all, our first row seats on the fire escape. It was the best way to see a parade.

Pictures in the gallery.

Continue reading →

Transworld Snowboarding.com | Snowbiz | Jake Burton Chases Winter Across Six Continents

Jake Burton Chases Winter Across Six Continents: “Burlington, VT - Most of us can only dream of setting off on a world tour. This year, Jake Burton and his family will be living the dream, embarking on a 10-month trip to snowboard all over the globe, covering six continents and following winter the whole way.”

Continue reading →

thecave.com RSS feed

Those using thecave.com RSS feed will notice that I am using Blogger’s new full feed feature. Unfortunately it is setting the resource link incorrectly for my site. Guess I might need to generate the RSS file myself to have complete control. Until I do, the link will be invalid. Sorry Charlie.

Continue reading →

New photos

New photos are in the gallery. Photos include a cookout at Chris and Sarah’s, Adina and Justin’s wedding, and our recent Garden City, SC trip. Enjoy.

Continue reading →

Xbox in the Hotel

After many months of no Xbox, I finally replaced mine this week with a brand new one. Now I can start playing video games while I am sitting in the hotel. But there’s one problem. Most hotels do not allow you to connect game consoles to the room TV.

To get around this problem, I decided to try a couple of different mobile monitors. The first was the Xbox Mobile Monitor from Intec. This gives you a 5.6 inch LCD TFT screen. The entire device snaps to the top of the game console and includes built-in speakers. The problem I have with the Mobile Monitor is that the screen is too small to see while sitting back in a chair. Also, the graphic quality is awful. And finally, the overall size is too big for such a small screen. I’m not able to keep my console stored in my carrying case with the Mobile Monitor installed. The only pro was that I can use any controller for game play.

The other device I tried was the Hip Screen Pad from Hip Gear. The monitor is much smaller, only 2.6 inch TFT screen, but the quality is excellent. It’s like looking at a very small TV. Also, since the monitor is attached to the game controller, I am able to sit back in a chair, get comfortable, and play for hours. My only compliant is with the controller’s play action. It is not as responsive as the S-controller. The X button is slow to respond as is the left directional arrow on the cross hair pad.

So after spending a night with each monitor I decided to stick with the Hip Screen Pad. The overall size is much smaller, making it easier to carry when travelling. And it’s $80 cheaper with better screen quality. I don’t recommend Intec’s Mobile Monitor purely based on the crappy screen resolution.

Continue reading →

Mozilla Firebird

I have started playing with the latest build of the Mozilla Firebird browser and I must say “Daddy likes.” It has some very cool features including tabbed browsers, which I am starting to really like as it keeps my desktop clean. My only compliant so for is using it with the latest Outlook Web Access, which I use to access office e-mail from the customer site. Mozilla repeatedly prompts for my user name and password over and over for each resource being download. Aside from OWA, I have not found any problems and I am considering making it my default browser.

Continue reading →

Beach Vacation Ironing Board

Next week, the “cousins” from my family are getting together in Garden City, SC for a fun on the beach vacation. Historically I have not been a fan of beach time vacations but I am actually looking forward to this one. Not only will I be trying surfing for the first time, but I get to hang with the couzs and they get to meet Melanie.

Beach vacations are something fairly new to me in my adult life with the first one being last year with Melanie. So I am by no means an expert on what one needs for the beach but a flurry of e-mails have been going around between the couzs about the need of an iron and ironing board. Admittedly this has me baffled. Why would one need an iron and ironing board for this type of vacation?

Ironically, I will be the first to admit I bring an iron with me on most of my snowboard trips, but for a very good reason. I use the iron to wax my snowboard. Wax is the secret to a sweet ride. But I doubt we need an iron to wax a surf board. And even if we did, why would we need an ironing board.

I did a few searches on google.com in hopes to understand this ironic puzzle. Searches for things like “101 uses for an ironing board” and “Why would you bring an ironing board on a beach vacation” resulted in nothing. It is probably the only topic that does not yet exists on the Internet. The irony here is that now the topic does exists on the Internet and others in search of the reasons behind the need of an iron and ironing board for a beach vacation will find this posting but still have no clear answers.

Now, I do agree that if you are going on a fancy beach vacation where you plan to dine at finer restaurants, you might have a need for an iron and ironing board. But our vacation is all about the beach, grilling out, miniature golf, and beer. And of course there will be some personal interest as well, like my attempt at surfing. But who would want to take the iron board to the beach and iron clothes?

Hopefully the answers will become clear to me next week as I am drinking my beer, listening to the surf, and watching someone pressing their swim trucks.

Continue reading →

New Skateboarding Trick

I learned a new skateboarding trick tonight. I discovered if you attempt to roll over a little piece of metal tubing small enough that you don’t even see it while riding, and you are going down a slight hill at a nice cruising speed, you can lock your back wheel, drag the piece of metal for 10 inches or so, and do a hand first slide on the asphalt as if your were sliding hands first into third base. Can you say “Ouch?” I did. I really gotta start wearing pads. And yes, I got back on the board and rode for a bit more.

Continue reading →

STLtoday - business

STLtoday - business Seattle company buys tech-wreck survivor G.A. Sullivan

Continue reading →

Looking for a new text editor

For many years, I used MultiEdit as my primary text editor. I loved that program. It did everything I needed except one thing. It does not support Unicode files. Lately I have been using Visual Studio.NET as my editor of choice but there are things I don’t like about it either. For example, sometimes I want to create a simple console app and I don’t want to have to create a VS.NET project for it. I would rather get create a new .cs file and F9 to compile it, or something like that. MultiEdit will do this but as I mentioned it does not support Unicode.

So my question for all: What would you recommend as a sweet text editor that I can use as my editor of choice? And please, don’t say Notepad.

Continue reading →

East Durham Irish Fest pix online

East Durham Irish Fest pix online in the gallery. Enjoy.

Continue reading →

Avanade acquires G. A. Sullivan

Press release: “Avanade Inc., a premier global technology integrator for Microsoft solutions in the enterprise, today announced it has acquired G. A. Sullivan, of St. Louis, Mo.”

Continue reading →

Irish for the weekend

Melanie and I just returned from East Durham, NY in the Catskills. Christine and the Early family invited us up for the 26th annual East Durham Irish Festival, and for the second year in a row I had a blast. The music was great especially the Young Dublins from LA and NYC’s McCabe. And as always, Lizzy Joe’s shepherd’s pie was delicious. But the funniest moment was when Christine grabbed the micro from the stage and shouted “Black 47 sucks…”.

Thanks Christine for a great weekend. I can’t wait until next year.

Continue reading →

Reflector for .NET

A new version of Reflector is out. It is a class browser for .NET components and assemblies. It has a very nice C#/VB decompiler, which seems to be better then Anakrino, imo. Reflector is a must have for .NET devs.

Continue reading →

New hacking tool sees the light | CNET News.com

[New hacking tool sees the light CNET News.com](http://news.com.com/2100-1009_3-1001406.html?tag=fd_top): “A Princeton University student has shed light on security flaws in Java and .Net virtual machines by using a lamp, some known properties of computer memory and a little luck.’

Continue reading →

Sony DAV-C770 is rockin'

After being away for almost two weeks, I finally returned home last night. And one of the first things I did was setup our new Sony DAV-C770 DVD Dream System. These system is perfect for our place and has very nice sound quality. Afterbang never sounded so good.

Continue reading →

Interesting work...finally

I am finally working on an interesting customer project with some guys from Microsoft. One of the coolest things about the project is how we are using WSDL to describe services and generating code for the service. My latest task is to spec out how to describe bindings for .NET remoted services using alternative channels, i.e., not HTTP or TCP, in WSDL. It’s fun to hack up the XML then write a console app to try it out.

Continue reading →

X-Men a Bore

Saw the new X-Men movie tonight. Sorry to say but I thought it was a bore. The first one was much better in my opinion. Although I can say it is the best movie I have seen in the theatre this year. But at the same time, it is the only movie I have seen in the theatre this year.

Continue reading →

Nothing after 8 pm

Okay, so here’s one issue with working in MON, NJ. I decided to see the new X-Men movie tonight. My plan was to have dinner first followed by a movie. Little did I know the last showing was at 8 pm. I hadn’t even left for dinner at 8 pm. Oh well. Maybe I will catch the flick tomorrow night.

Continue reading →

Mel Jacker

Here’s Melanie role playing as a federal air marshal during a recent flight attendant training course.

Continue reading →

Week in Review

I figure it’s about time for me to make another posting since it’s been a while. It’s been a busy week, that’s for sure. First news is, I’m finally staffed on a project. I’m working for a customer down in Hopewell, NJ. Not the ideal location but the project works looks like fun. After more than two years with Avanade, I can finally excited about a project.

This project definitely will challenge me. I’ll be working on a piece of a integration framework with Microsoft. System level coding using the System.CodeDom and System.Xml.* namespaces with some reflection here and there. Without a doubt, I will be learning a lot on this engagement. Heck, I have already learned a lot this week alone. And my favorite .NET feature of the week is the System.CodeDom namespace. Being able to generate code in different languages is so cool.

At the home front, our blinds finally arrived. It’s bee a month since we ordered them but it was worth the wait. They look super nice in the apartment. And now Melanie can change clothes in the bedroom instead of hiding in the hallway or bathroom.

Wedding plans are coming along. We have a trip to Bryn Athyn planned for next weekend. We are hoping to get a lot done. And Dave is hard at work organizing my upcoming bachelor party to be held the first weekend in September in viva Las Vegas baby!

And finally, the WASTED Crew has been talking this week about the next WASTED trip. That and the WASTED movie has me dreaming of snowboarding once again. Skateboarding is fun and I am enjoying it, but it ain’t like riding a snowy slope. Think I might have to buy a new board this year too. But first, we have to pay for the wedding and honeymoon.

That’s it for the week in review. It’s a glorious day in New York. I’m sitting out on the fire escape enjoying the weather as I type waiting for Melanie to return from Brussels. Hopefully you are outside as you read this. And if you’re not then stop reading, shut off the computer and go play outside!

Continue reading →

WASTED II: The Movie available for download

After slaving away for half a day, I finally completed my first ever movie. WASTED II is now The Movie. Re-live all the excitement and fun of this past season’s WASTED trip.

Note: This is a 4 MB file so it will take some time to download on slower Internet connections. I also have a high resolution version that will be available soon on CD.

Continue reading →

Skate and Skateboarding

This weekend was the return to the skateboard for me. I have not been on a skateboard, aside from my freebord which is a different type of skateboard all together, in more than 20 years. But I finally broke down, bought a new board, and hit the Hudson River Park. And to add to the excitement, Melanie decided to buy a pair of in-line skates. So now we can ride together down the Hudson.

One other thing. I want to be a bit better at skateboarding. I’ve only gone out twice now and both times were for only an hour or so. But darn it, I want to be better. Tricks seems so easy in my dreams. It should be that easy in real life.

If you want to see some folks who do make it look easy in real life, check out the Dogtown and Z-Boys video. These guys know how to ride. The moves they do are just sick. I can’t imagine carving the concrete as low to the ground as these guys get.

Continue reading →

SnowReport Service Passes WS-I Test

WS-I.org recently published a set of test tools for XML Web services. These tools test for conformance with the WS-I’s Basic Profile. For fun, I decided to test my Snow Report Service.

Continue reading →

WS-I Testing Tools - Beta Release

WS-I has published a beta version of its comformance test tools. This version will test for version 1.0 of the Basic Profile. Note: You will need the .NET Framework version 1.1.4322 if you plan to use the C# version of the test tools.

Continue reading →

WASTED Wear Arrived Today

My latest order of WASTED Wear arrived today. The WASTED hoodie rocks! It’s comfy and the print job is nice. Not as nice as the t-shirt given away in Whistler but still nice. The golf shirt is okay but the logo is a little low for my liking. And the shirt quality is only so so. The baby doll shirt looks good though. Can’t wait for Melanie to try it on.

Continue reading →

Season is Over

My snowboard season is finally over, and it ends with me wanting more. This weekend in Killington was one of the best times on the slope for me this season. And to add to the great snow, the weekend was made a bit better by spending time with the Davis’s. The turkey was delich and the ham was more than heavenly. But this posting is about the snow.

Saturday was overcast and warm with slope side temps in the 50’s. The snow was soft with lots of nice banks on the bumps. Saturday felt like surfing over and over without having to wait for the perfect wave. The half pipe was surprisingly good given the warm weather and I almost made it to the top of the 15 foot wall more than once.

Sunday was the best of the two days. Sunny and warm. Temps in the 60’s during the morning and accordingly the Killington snow report, in the 70’s during the afternoon. Definitely t-shirt weather. The surface condition was snow in most places, bare in others. And there was also the occasional water puddle. My favorite part of the day was smashing through soft bumps and face spraying myself with snow.

I got 32 days on the slopes and Melanie made her record high of 27 days spread over a long, 5 month season. Somehow Melanie and I missed the powder all season. I felt like I was riding the same stuff all season, be it in Whistler or Killington. But this weekend reminded me how much fun snowboarding is. And it left me wanting more. I can’t think of a better way to end the season.

Continue reading →

New Robot Food Teaser Video

The robots at Robot Food have just released a new teaser video for their next video available September 2003.

Continue reading →

New photos online

Photos from Dave’s visit and Easter weekend in Killington on online in the Gallery. Enjoy.

Continue reading →

You know you travel too much when...

You know you travel too much when the Avis Car Rental bus driver can tell you which airline you are flying on before you can.

Yep, this happened to me today. And lucky for me he knew which airline because I may have tried flying out on American West instead of American Airlines.

Continue reading →

On the Plane Again

So here I am flying back to New York. I spoke at a Web services boot camp today in the Research Triangle of North Carolina. A fun day, I must say. But it got me thinking, and the first thought was that I don’t post enough technical content on this site. Why is that?

The main reason is most likely are result of a lack of excitement in technology with my job. As a consultant, you sometimes have to work with less interesting technologies because of customer demand. Lately that less interesting technology for me has been Microsoft SharePoint technologies.

Now don’t get me wrong. SharePoint version 2.0 is a nice offering, and I have been impressed with the ASP.NET implementation. It is once again proof that some of the best and brightest minds work at Microsoft. Unfortunately for me, to be involved with technology at a level that would interest me the most would mean relocating to the Seattle area.

Relocating is not going to happen though, especially right now. First and foremost, I love New York City. And I love being close to the New England area, especially Vermont.

So what is a technology starved individual like myself who gets terribly excited about technology of interest, like Web services and the Microsoft .NET Framework, to do? Let me know if you can help me out. I’m soul searching my career and I need guidance.

And on a totally unrelated note, when can I start surfing the Net from the plane in a very cost effective way? Wireless net access everywhere. That’s the way life should be be.

Continue reading →

Freebord Day 2

I took the freebord out for another 30 minute while in Bryn Athyn for the weekend, and quickly learned that the hills were too big for me. I did a nice concrete roll while trying to stop and I struggled to link turns. The board is definitely harder to ride than a normal skateboard. Speed is a good thing to have when learning to ride but too much speed is a bad thing. I’ll probably buy elbow pads before trying it again in BA.

Continue reading →

WASTEDBoard.com Online Store is Open

At long last, the WASTED Online Store is finally open. Now you can get your favorite piece of WASTEDWear delivered to your home. Everything from shirts to boxers are available. Note: All proceeds will go towards the upkeep and maintenance of the WASTEDBoarding.com web site.

Continue reading →

Transworld Snowboarding.com | News | Snowiest March On Record At Whistler Blackcomb

[Transworld Snowboarding.com News Snowiest March On Record At Whistler Blackcomb](http://www.transworldsnowboarding.com/snow/news/article/0,13009,438674,00.html): “Whistler, March 27, 2003 - Daffodils may be blooming in Vancouver, but in Whistler, the only thing that is growing is the snowbase. This month, it snowed 21 days in a row, and almost 11 feet of snow has fallen, making it the snowiest March on Whistler Blackcomb record.”

Continue reading →

Smoke Free New York

New York City has ban smoking in the bars. And although I think people should be free to smoke in public, I have to admit I enjoyed coming home from the bar last night not smelling of smoke. Melanie said after returning “It was like not being at a bar” because either of us smelled. I think I might be in favor of the ban after all.

Continue reading →

Killington Dump

12 inches in Killington so far and it’s still snowing! Why do I live so far away? And why don’t I have a car?

Continue reading →

Freebording at Last! Freebording at Last!

After months of collecting dust, my freebord finally hit the concrete today. I tried it out for about 30 minutes along the bike path on the Hudson River. It doesn’t quite feel like riding a snowboard (yet) but that’s probably because I wasn’t going fast enough. I started with a short, small slope but quickly learned that I needed more speed to balance the board. I found a steeper slope that was a bit longer that did the trick. It was perfect for learning. I’m not doing full carves yet but I’m able to balance and ride straight.

Continue reading →

WSE, WSTK, and WS Security

I spent the morning taking a deeper look at WS Security using Microsoft’s WSE and IBM WSTK. Specifically I wanted to learn more about encrypting a SOAP message, and I have to say I am not only impressed with the standard but with the implementations from both Microsoft and IBM. Once I resolved issues around my X.509 certificate, I was able to play. I found it very easy to sign and encrypt my SOAP messages. And on initial glance, it looks like interop between the two toolkits works well.

If I have more time, I hope to play with WS Security more. It’s an interesting spec. Unfortunately it looks like I am about to spend the next few weeks learning SharePoint v2.0, something I’m not all to happy about. Not that it is a bad product. It actually looks good, but I’m just not interested in it.

Continue reading →

Archive Links

I thought about an interesting problem today. Recently I updating the code behind this site so that all content is stored in XML. But within the archive section, I have references to past posting that use the old URL. These old URL now give a HTTP 404 error. I have always thought it interesting when a site tries to determine the new URL for an old one. I guess now I have a chance to try resolving that problem. Hmmm, maybe I will look into doing that tomorrow.

Continue reading →

New Snow in the East

I should have watched that weather yesterday. There were snow flurries in New York but I didn’t think about further north. Killington got 4 inches, Stratton 3 to 4 inches, and Stowe got 6 to 8 inches. Today would have been a good day to call in sick.

Continue reading →

melanieandkirby.com is Online

melanieandkirby.com is online and DNS replication should be done through most if not all of the U.S.. Enjoy.

Continue reading →

Happy Birthday

It’s been a year since I changed thecave.com to a weblog, and it’s been interesting to watch how it has evolved from what I thought would be more technical related posting to more personal postings. I guess it’s a direct reflection of what is going on in my life. My job has been anything but technical over the last six months or so, which may explain the lack of tech postings. On the other hand, the personal postings have been well received by my friends and family who check the site on a regular basis.

When I first setup this weblog last year, it was basically static HTML with some ASP. Today, it’s a full blown ASP.NET application using C# with an XML backend. It also exposes Web services such as the one for the daily snow dumps. The site has given me the opportunity to not only keep in touch with friends and family, but it has given me the opportunity to do something I rarely do at work. And that is to write code; something I really enjoy doing.

I’m curious to see what will happen over the next 12 months and how I will evolve the software for the site. For example, I have two other sites, melanieandkirby.com and wastedboarding.com, which are based on the same software. This work is giving me ideas for creating a framework for certain types of web applications. Who knows. Maybe it’s time to port geeklogs.com to ASP.NET.

Thank you to all who have visited this site over the last years. And special thanks to those continue to return on a regular basis. Your encouragement gives me motivation to do more.

Continue reading →

She Said Yes!

I just returned from Nice with Melanie, and we have big news! We’re engaged!!! I asked her to marry me and she said yes. Well, actually she said “Of course.” But I didn’t hear it so she had to yes again. More details to come very soon.

Continue reading →

New Website Coming Soon

I’m in the process of setting up a new wedsite for all the latest news about our wedding. We will start publishing wedding details in a few weeks. Meanwhile, you can see photos of Melanie’s ring and pictures from our engagement night in Nice in thecave’s gallery.

Continue reading →

From the Slopes to the Sea

Melanie and I just returned from a great weekend in Killington. The snow was perfect, soft and fun. Spring time conditions. I had some of my best runs of the season over the weekend.

We’re back in NYC for only a short time. Melanie flies out to Nice today and I have decided to join her. I need to see how she works on these international flights. I can’t wait to start pushing the call button just to get her attention. We’re back in NYC on Thursday.

Continue reading →

The possible answer to my Xbox problems.

The possible answer to my Xbox problems. I found a How-To that explains step by step how to adjust the laser with a Thompson DVD drive, which is the drive I have in my XBox. Interesting note, there are three different DVD drives that can come with an Xbox, Phillips, Thompson, and Samsung. From what I have read, Thompson is the worse drive to have and the Samsung drive is the best. If tweaking the laser does not work then I will look at replacing the DVD drive itself.

Continue reading →

Flying Home

After 5 days in 5 cities, I am finally flying home. The week has been fun albeit tiring with days running 14 to 16 hours. Admittedly, even with the long days this was one of those weeks that left me thinking “I like my job.” Granted, I would not want to do this every week.

Speaking at the councils definitely improved my public speaking skills and gave me increased confidence along with an ego boost. If giving the opportunity, I would definitely do it again.

There were many highlights from the week. One of which was Vito’s Chop House in Orlando. The steaks were amazing and mine was perfectly cooked to my preference, which is hard given that I prefer blue or black blue as they call it at Vito’s. The Hard Rock Hotel in Orlando was also a highlight and is a very cool hotel. Sadly we did not get to stay the night though. Guess Melanie and I will have to make a weekend trip to Orlando soon. I know where we will be eating and staying. And the Renaissance Hotel in Boca was great and offered excellent wireless access to the Internet for free. However, I do not recommend the restaurant Porter’s, which is attached to the hotel.

My favorite comment from the week happened when Tom asked the group “What is a ‘dirty read’?” I whispered Hustler and Sluts with Big Thingies. When asked “And what is bad about dirty reads?” Ian whispered “Sticky pages.” LOL. Oh too funny. Guess you have to be a geek to get it.

Continue reading →

Microsoft Architect Council 5 City Tour

I’ve said it before and I will say it again, I enjoy working with the folks from Microsoft. I am one of three speakers at the Microsoft Architect Council in the Gulf States. My talk is on Interop with Web Services, and I’m having a good time interacting with the audience.

Continue reading →

On the Road Again

On the road again tomorrow visiting my two least favorite States, Alabama and Florida. The 5 day, 5 city tour begins in Birmingham, followed by Jacksonhell. I don’t know why this city rubs me wrong. It just does. Wednesday I will be in Fort Lauderdale, Tampa on Thursday, Orlando on Friday, returning to the city Friday night. Should be a fun week.

Continue reading →

Webservile.com: SOAP Spec Authored During Beer Bust

Webservile.com: SOAP Spec Authored During Beer Bust: “Don Box revealed today that the so called Simple Object Access Protocol (SOAP) was the outcome of a drinking session that got out of control. SOAP is now supported by vendors such as IBM, Microsoft and Sun and is seen as one of the technological lynch pin of the Web Services industry.”

Continue reading →

Starting over from scratch

Okay, I’m depressed. Next week I am joining Microsoft for a 5 day/5 city tour to talk about interop with Web services. I have spent the last couple of days writing sample code for my demos and was nearing completion when I lost everything.

How did I lost it all? Simple. I re-ran the wstkconfig.bat from the IBM Web Services Toolkit to deploy the last Web service I planned to show. The other code was manually deployed but this time I decided to use the configuration tool just for fun. Little did I know it would delete the entire webapps/wstk directory, which contained the majority of my code that I manually deployed. All that work gone. Guess it’s time to start over.

Be warned: If using the IBM Web Services Toolkit, keep your original source in a safe place on the hard drive. That is, keep it in a place not under the live webapps.

Continue reading →

.NET to Java and Back

Whew! What a day. I lost all my demo code for next week but I finally got it all re-created. Definitely some cool things happening in Java with regard to Web services. My favorite tool is Wsdl2Java. This generates a set of proxy classes for consuming a Web service and is a great time saver. Java2Wsdl on the other hand is a pain in the ass. I never got it working, but luckily Axis will auto-generate a WSDL for your service using a ?WSDL parameter on a HTTP GET request.

I finally have a demo environment setup that illustrates inteorp between .NET and Java 2 Platforms, and I have WS-Security working between Microsoft’s WSE and IBM’s WSTK. I must say that WSKT is poorly documented at the moment, which was a pain. Oh, and it seems that WSTK does not like the MustUnderstand attribute. Be sure to set that puppy to false if you are digitally signing a service request where the producer is using WSTK.

Overall, cool stuff. And I am glad I finally have a decent work environment for showing off the various technologies.

Continue reading →

Killington Spring Break Pics Online

Pictures from Killington Spring Break are finally online in the Gallery. Enjoy.

Continue reading →

Where's the Snow?

Day 4 on Killington was very nice. The snow had soften up a bit. Runs of the day: Rim in the morning and the Chute in the afternoon. Also Great Bear was a blast and was the only trail I know of that still have evidence on Sunday’s snow storm. It’s un-groomed and has soft powder bumps.

Melanie and I leave Killington today. She flies out to Brussels tonight and I have to finish work on my demos for next week’s 5 day/5 city tour with Microsoft. I had planned to hit the slopes this morning for a few quick runs before leaving because the weather forecast was calling for a wintery mix, but it’s looks like that will not happen. And if I am going out for only an hour then I want to see new snow or at least a change in the conditions. Oh well. We will be back very soon.

Continue reading →

Killington Family Weekend

Melanie and I joined the rest of the Davis family for fun in the snow at Killington, VT, for an extended weekend. Saturday was spent at Pico and was the return to the slopes for Brenna. She was taking it easy on her first day out, but by the next day she was skiing down Outer Limits.

Continue reading →

All East Spring Pass

Killington is offering an All East Spring Pass for only $199. This pass is for unlimited riding/skiing at various ASC resorts in the Northeast. And best of all, your meTicket balance can be used towards your purchase of the pass. Now that I have my pass, looks like Melanie and I will be spending much more time in Vermont over the next couple of months.

Continue reading →

Development Bug

Lately I have started feeling the byte of the development bug. It’s been a while since I wrote any real code and the update to this site has got me wanting to do more. So to help get started and to fix the work into my job, I decided to write some true interop examples between J2EE and .NET. Today was all about installing the environment.

I created a new Windows 2000 Advance Server VM under VMWare, installed J2SE, Apache, TomCat, Axis, Xerces, and IBM’s Web Services ToolKit (WSTK). The combination took longer than installing Visual Studio.NET. Still, I was happy with the amount of online documentation and the ease of use of the various installation programs. I now have a clean environment ready for me to destroy. Only regret was that I did not use Windows .NET Server 2003. Including UDDI Services in my demo code would have been great.

Continue reading →

Talk About Cold

I checked weather.com this morning to see the weekend forecast in the Killington area. The report is based on Rutland, VT, which had a chilly, current temp of -8 and windchill of -26. Burrrrrr…

Continue reading →

Technology of the Day: VMWare

I re-discovered VMWare today and I have to say the latest version totally kicks butt! I’m finally sportin’ a new laptop with lots of RAM and tons of hard drive space so I thought it was time to look at VMWare again. The latest workstation release, version 3.2, was very easy to install. And setting up a new virtual machine has never been easier. I had Windows 2000 Advance Server up and running in a VM session in under 45 minutes. No re-partitioning of the hard drive is required. All VM sessions are stored in a collection of files. Best of all, I can archive a clean install and restore it later after I have totally screwed up the environment. My next step is to setup an environment running Java, Apache, etc so I can demo .NET/J2EE interop. All developers should have the freedom of VMWare on their workstation.

Continue reading →

How to be a Programmer

How to be a Programmer…I’ve not read the article but it sounds interesting.

Continue reading →

Repair or Replace?

My Xbox died a couple of weeks ago on my trip to Whistler. Melanie is working this weekend and I have to say I am missing the game play. So I finally called the Xbox support number to find out my opinions. The console I have needs repair work which costs $100, shipping included. A new Xbox will cost $200. The difference is I can pick up a new Xbox today but it will be a few weeks before my get back my repaired Xbox.

A part of me wants to repair the box I have mainly because I am close to finishing Transworld Snowboarding. It’s the only game I have that does not let me copy my saved games to a memory card. So if I want to continue the game, I have to repair the box. But I am jonzen to play. And starting over is not really a big deal either.

So what should I do? Should I repair or replace my Xbox? What would you do?

Continue reading →

Bear Mountain closed today

Killington Snow Report: Bear Mountain, also known as Beer Mountain, is closed today due to ice. Fear not. Forecasters are calling for more snow this afternoon and tomorrow, and a chance for another snow storm later in the week!

Continue reading →

An Xbox Support Scam?

Earlier today I called the Xbox support number and talked with a woman about my options for repair of my Xbox. The cost was $99, which included shipping. As a matter of fact, she told me they would send me a box to ship my Xbox back to the service center. Not sure if I wanted to repair or replace, she said I could call back and give my ticket number to complete the repair request.

So I thought about it a bit and even talked to Melanie to get her opinion. I decided that spending $100 dollars was better than $200, so I call the support number back. This time though I was told a different story. First, it is going to cost $99 plus tax plus shipping bringing my total to $145. Then to top that, the guy said for another $50 I could buy an extended warranty for my already defective Xbox. And I have to wait to get my Xbox back should I go with a repair.

EBGames sells factory reconditioned Xbox for $150. So now the question is do I pay $145 to have my Xbox repaired or $150 to get a reconditioned one, which mine will be after the repair. If I buy the reconditioned one, I can have it by Tuesday. If I repair my Xbox, I have to wait at least two weeks. And let’s not forget I can pay $200 to repair my console and get an extended warranty, or I can pay $200 for a new Xbox with two Sega games.

I’m starting to think repairing my Xbox is a scam, especially now that I am being told that I have to pay for shipping. Guess if I had told the first person that I wanted to repair the unit I would not have to pay for shipping, but since I waited 2 hours, now I have to pay. I don’t get it. Maybe I will go back to playing my Playstation/2.

Continue reading →

A surreal life

12:27 am Sunday morning waiting for the number 6 downtown. The uptown 4 speeds by on the express line and I realize I am living a surreal moment in New York. The greatest city in the world, Saturday night, and my evening includes tea and a poetry reading on Bowery, Xbox and Budweiser, caso dip and conversations about how hard it is dating in New York. This is my night. Uptown number 6 stops and people get off. Couples holding hands. Guys with their umbrellas. It must still be raining outside.

Finally the downtown number 6 arrives. I board the train and find a seat. She’s cute but not my Melanie. A legless man is making his way down the car on his fist with a coffee can of coins. Hand outs please. I wonder how he got down into the subway, and I wonder how he will leave.

My stop…Lafayette and Bleecker St. It’s raining. Crack! Thunder and lightening in February…how weird. Great the rain is coming down harder. Just my luck. “There goes my hair,” says a bridge and tunnel ho. Many more looking for shelter from the rain. What losers! Just walk in it; you won’t melt. And if you do, who cares.

A surreal night in New York City. The words sounded better in my head 30 minutes ago. Unfortunately for you, this is what you get.

Continue reading →

Site software update

I did a much needed update to the site software today, and the gallery is back online with pictures from the blizzard that hit New York earlier in the week. Enjoy.

Continue reading →

A day in the life of a consultant

As I am sitting on the plane heading to Dallas, I thought it would be fun to share my day with others. Consider it as a day in the life of a consultant.

4:15 am: Wake up, shower, and pack a change of clothes and my laptop.
5:15 am: Kiss Melanie goodbye, head out the door and hail a cab.
5:45 am: Pickup the car from Avis.
6:00 am: Leaving the Holland Tunnel and looking for the New Jersey Turnpike.
8:00 am: Arrive in Malvern PA right outside of Philly.
8:15 am: Driving around looking for food. I’m straving.
8:20 am: Stop at a Circle K for breakfast…mmmm, powder doughnuts.
8:30 am: Arrive at Microsoft’s Philly office.
9:00 am: Meet with customer. Discuss fun, geeky stuff.
11:50 am: Call Melanie to say hi.
3:30 pm: Leave meeting. Was told it will take 1.5 hours to get to the airport.
3:40 pm: Call Melanie again.
4:30 pm: Return car to Avis.
4:45 pm: Arrive at the airport with time to spare.
5:50 pm: Call Melanie one last time. She is flying out to Paris tonight.
6:00 pm: Take off to Dallas.
10:00 pm: Arrive in Dallas and take taxi to the hotel.
10:25 pm: Call the hotel. The cabbie is lost.
10:40 pm: Check into the hotel.
10:50 pm: Order pizza and make a few phone calls.
11:00 pm: Check e-mail.
12:00 am: Finally, the pizza is here.
12:20 am: Tummy is full. Time for bed.
12:30 am: Fall asleep.

That was my day. And it all starts all over again at 6:00 am.

Continue reading →

Snow walk in Central Park

Melanie and I decided to enjoy the snow from today’s blizzard with a walk through Central Park. The park was full of people enjoying the weather; from snowboarders riding the short hills to cross country skiers out for a bit of exercise to kids riding sleds, we saw it all. Hopefully I will get some pictures posted very soon.

Continue reading →

Finally new snow, but in the wrong city

After two weeks of no new snow in Whistler, I return home just in time for a big dump in New York City. Looks like over a foot of snow so far and it’s still coming down. I love it but I wish this had happened in Whistler. And I wish I had a car because I would definitely be heading up to Catkills to snowboard.

Continue reading →

We now return to your regular scheduled program

Over the last two weeks, I have been replicating my blog posting to thecave.com and wastedboarding.com. WASTED II is now over so I will return to only posting to appropriate site, which will be primarily this site cocked full with my rumblings. And I will start the rumble with a comment about my iPod.

The iPod kicks! I love this puppy. All day travel yesterday was made much more enjoyable with my iPod in pocket. Random play on 10 gigs of music for over 10 hours and still plenty of battery life left. It’s the only way to travel.

Continue reading →

WASTED II I'm So Glad We Had This Time Together

I’m So Glad We Had This Time Together:

WASTED II is over and the snow has finally returned to Whistler. 10 inches of the new stuff in the last 24 hours. Just our luck. Hopefully those who decided to stay over the weekend got to ride some of the new snow. As for me, I am ready to ride the Northeast again, which is having a great season albeit a very cold one.

Continue reading →

WASTED II Final Days: No Snow but Still a Great Time

Final Days: No Snow but Still a Great Time:

Continue reading →

Craig Kelly is My Copilot

A couple of guys decided to create Craig Kelly is My Copilot bumper stickers for the X-Games. Even Shawn White was sporting one during the game, and now you too can own on for only a dollar. Visit www.craigkellyismycopilot.com to learn more and give respect to this legendary shedder.

Continue reading →

WASTED II Day 9, 10, 11 and 12: Catch Up

Day 9, 10, 11 and 12: Catch Up:

Continue reading →

WASTED II Day 8: Beer, Xbox, and More Beer

Day 8: Beer, Xbox, and More Beer:

Continue reading →

WASTED II Day 7: The Brotherhood

Day 7: The Brotherhood:

Continue reading →

WASTED II Day 6: Return to Blackcomb

Day 6: Return to Blackcomb:

Continue reading →

WASTED II Day 5: Park Fun

Day 5: Park Fun:

Continue reading →

WASTED II Day 4: Bowl of Sweetness

Day 4: Bowl of Sweetness:

Still no new snow but we had new arrivals today. Karen, Charlie, Therese, and Justin joined us on the slopes of Whistler. Today was about the bowls as we spent most of our time in them. The drop in to Low Roll was definitely the most challenge. And I will be the first to admit I slid in over the lip on my butt. Camelback and Bagel Bowl were the runs of the day where the snow was soft and bumpy.

Continue reading →

Day 3: Birthday Fondue

Day 3: Birthday Fondue:

Continue reading →

Day 2: A hundred and ten percent

Day 2: A hundred and ten percent:

Continue reading →

Day 1: The Arrival

Day 1: The Arrival:

Continue reading →

WASTED Journal

As you may already know, I am heading out to Whistler for a two week vacation. I will be making daily or almost daily posting about the trip to WASTEDBoarding.com site as well as this site. Hopefully it will not be too confusing posting the same message at two sites. We’ll see how it goes.

Continue reading →

Laptop verses Xbox

I have developed a ritual for getting through airport security that includes pulling out my laptop before I get in line. But today was a little different because I am also traveling with my Xbox. Naturally I expected that I would need to pull out the Xbox from its case but no! It’s not a laptop, it’s a game console.

Okay, so I don’t get this. Why is the Xbox treated differently at airport security than a laptop. In my opinion, the two are basically the same with regard to hardware. Both have a hard drive. Both have a CD/DVD reader. Both have an ethernet card. Both have a motherboard, built-in fan…you get the point. What is so special about a laptop that requires one to remove it from the case while an Xbox can remain in the case.

The funny part of my experience, though, was the guy reading the Xray monitor. He could not figure out what it was; the Xbox that is. I mentioned to him that it was an Xbox. He joked that they were going to confiscate it, and I joked back that I would give up the laptop before I gave up the Xbox. Now I have to tell Avanade I need a new laptop.

Continue reading →

Day 0: The Commute Begins

Day 0: The Commute Begins:

Continue reading →

Searching New York for an iPod

Yesterday I decided I wanted an iPod, and those who know me well know that once I get something set in my mind there is no changing it. So throughout yesterday I searched all over Manhattan for a 10gig iPod for Windows. I hit the mega stores like CompUSA but had no luck getting my hands on an iPod. [Side note: Don’t trust retail store web sites that claim something is in stock and available for in-store pick-up. On more than one occasion I have stopped by the store to pick up a gadget after checking availability from the web site only to be told by the clerk at the store that the item is not in stock. At least this has been a common occurrence for me in Manhattan.]

Continue reading →

Rockin' the iPod

So I am finally rockin’ it with my new iPod, but I have quickly learned that I wish I had gotten the 20 gig model. 10 gigs is just not enough space for me. Guess I will have to deal with it. Besides, the case for the 10 gig model is smaller than the 20 gig model, which is the reason I wanted the 10 gig model in the first place.

Oh, I will say one other thing…the firewire connection is super fast. I can copy gigs of MP3 to my iPod in a matter of minutes. Now that really rocks.

Continue reading →

Packed and ready

Hot damn! I’m packed and ready to go. I can’t wait to be in Whistler for the start of WASTED II, a guaranteed good time.

Continue reading →

A Frozen Hudson River

I decided to walk by the Hudson River this afternoon on the way to work to see the ice. Looks like something you would see in Alaska. Click on the images to see the bigger picture.

Continue reading →

Ski TV

I have discovered one of the best hours on TV…1 to 2 pm weekdays on the OLN Channel. 30 minutes of Skier’s World followed by 30 minutes of Warren Miller TV. I’m hooked.

Continue reading →

Photo gallery is offline

Just a reminder, the photo gallery and WCAV Radio are both offline until I get DSL setup in the apartment. And since I am leaving for Whistler next week, it will probably be around the end of February before the server is back online. Sorry for the delay but that’s life.

Continue reading →

Free Wireless Internet Access

Melanie and I moved to a new apartment this week and as a result we have temporarily lost our Internet connection. No DSL and the phone has not been installed so dial out is not possible. For fun I decided to see if there was an available wireless network somewhere in our new building. To my surprise there is! And now Melanie and I have free Internet access until I get the DSL connection installed. Wireless LANs are the best!

Continue reading →


Melanie and I are starting to get settled into the new apartment. It’s been a mad rush to get everything unpacked. At the rate we are going, we will be unpacked by this weekend. A new all time record for me. I was in my last place for over two years before I finally emptied the last box.

Continue reading →

WASTED II Blog is online

Loyal readers of my weblog site, I wanted to let you know that I have setup a new blog for the upcoming WASTED II trip. Once I get to Whistler…Melanie and I are leaving on Friday, January 31, I will be making regular posting about the trip. I will make the same posting on this site but you will have to go to WASTEDBoarding.com to see the online gallery of daily pictures.

I can’t wait for this trip. It’s going to be so much fun. I wish everyone could join us.

Continue reading →

Vermont Winters

Snowboarding out west is great, but there is something special about the New England area that seems to bring out the truly passionate…the freakin’ cold temperatures. Stowe’s snow report for today says the high temps for the base is -10 degrees and the summit is an warmer -6 degrees! Now that’s really, freakin’ cold.

Continue reading →

New apartment

Melanie and I have a new apartment!!! We plan to move in this weekend. Change of address e-mail will go out in the next few days. Meanwhile, here’s a photo of our new building. Our unit is circled in red.

Continue reading →

Another Killington weekend

Spent the weekend with Melanie and most of her family in Killington. The snow was great. Saturday we rode Killington. It was very chilly with temps in the single digits and wind chill well below zero. The close to 50 mph wind gusts were a lot of fun and almost pushed me over a few times.

We went to Pico on Sunday. Less wind and it felt a bit warmer. But best of all was the snow conditions, which were beyond great! I felt like I was riding out west at times. The ungroomed blacks and glades were the places to be. It was the perfect primer to my upcoming Whistler trip.

Continue reading →

New photos posted

Finally, new photos in the gallery. Enjoy.

Continue reading →

New Year's at Sunday River

We’re back from Sunday River, Maine where the snow was better than expected two out of the three days we were there. Sunday River is a nice place to visit and we will definitely go back some day. The trails are a lot of fun with lots of rolling slopes. The black diamond runs are not too steep and the double blacks, while steeper, are typically short. They make a lot of snow there when needed and do an excellent job grooming the trails. There’s lots to explore and a few different terrain parks, although more park than I can handle. All and all, Sunday River was a great place for Melanie and I to bring in the new year.

Continue reading →

White Christmas almost

I was lucky enough to return to New York City at the tail end of the latest Noreastern to hit the Northeast part of the country. Many flights were cancelled in and out of NYC airports but the plane I was on was one of the lucky ones allowed to land on the snow plowed runway. Yeah! I am finally home for a few days.

But the funny thing is that I was hoping to ride my freebord, which has still not seen the concret. Guess I will have to wait a few more days freebording the streets of New York. And I tell you I am jonesin’ to stand sideways and ride something. So much so I was seen riding a lawn buddy cart on the hill behind my aunt’s house in Mississippi on Christmas afternoon. What fun!

Continue reading →

Counting down the minutes

I am counting down the minutes to my departure from Jacksonhell, FL, and my return north to spend time with my squeeze and to once again ride the slopes of Killington. Pico opened last weekend so we might hit it on Sunday. I wonder what Beer Mountain is like this weekend. Yes, I said it again…Beer Mountain.

I wish there were a way to control time. I would speed it up to the point where Melanie and I arrive in Killington then slow it down over the weekend so the time together seems to last forever.

Continue reading →

Weekend of friends

Met up with Melanie in DC for the Murphy’s holiday party. Good times and good friends. My friend Tom from Memphis joined us for the party, and long time friends from St. Louis now DC area residents Linda and Jeff stopped by for a while. Always great seeing them.

The traveling thing has Melanie and I really busy lately. A typical 7 to 10 days will have both of us in up to 5 different cities. For example, my schedule has me back in Jacksonville, FL on Monday, Killington, Vermont for the weekend, followed by Memphis, then NYC, and finally Sunday River, Maine. Melanie will be home in PA, back to Killington, NYC, Paris, and Sunday River as well but I am not sure of the order of her schedule. And next month is shaping up to be more of the same but with different destination cities.

So see ya at the airport terminals…

Continue reading →

Sick time

It’s time to call in sick. Killington got 8 to 10 inches of fresh pow over night and it is still falling. Stowe got 4 inches over night. And the trees are starting to change colors here in Florida. Something is not right.

Continue reading →

DGB Weekend

I have return to rainy Florida after attending the first ever DGB Killington Weekend. What a great weekend! Skiing and riding, beer and pizza. What more can a group of guys ask for?

We shredded slopes of Killington from peak to peak Saturday including Beer Mountain, and threw back a few cold ones at the Outback for apre’ ski. We ended the night with a few rounds of Beirut where Team Andy and Josh took the first game only to be stomped by Team Fernado and Kirby, who were calling their shots and landin’ em in game two. But the match would be won by Team Andy and Josh who were landing double sinkers and clearing the other end of the team in a matter of minutes.

Sunday was a return to the Killington slopes with a smaller crowd and better snow conditions. The snow was falling and there were wind gusts so strong that I almost fell over a couple of times. Andy was slammed to the ground by an out of control snowboarder. Fernado was working on technique. And Josh and I were making plans to take out the other two on the lifts.

Overall it was a great time with great guys.

Continue reading →

Travel Adventure

Today was fun travel day for me. My day began at 5:30 am packing. A quick breakfast at the hotel and a call from Melanie. I love it when she calls even if I don’t always sound like I do when I answer the phone. She called to say that her flight from Paris to New York was delayed by at least an hour. This should have given me a clue to my own flight situation but it didn’t.

7:40 am, I am at the customer site. I wrap up for the day, make a few phone calls, and head off for the airport around 10:15 am. Going through Jacksonville’s airport was a breeze. I decided not to check my bag because I knew I would be rushed at LGA transferring to the Delta Shuttle to Boston. Little did I know at the time, this would be my smartest move of the day.

From JAX to ATL (Atlanta for those who don’t know the airport codes). I land in terminal B and I must rush to terminal T for my connecting flight. The plane is scheduled to leave in 30 minutes so I am rushed. I just missed the first train to so I continue walking. Ah, another train stop for terminal T. I jump on but the train does not move. I wait. I continue waiting. I wait even more. I get off the train and start walking again. No time to waste on a downed train.

I finally make it to terminal T and my gate only to find out that my plane to New York has been delay by more than an hour. Ground delays at all NYC airports I am told. A carry over from yesterday’s snow and ice storms. And I bet the same reason that Melanie was delayed.

Great. I am ultimately going to Boston today, not New York. I am joining the others from the Davis Boys Crew. The plan is for me to meet up with Josh in Boston then connect with Fernado in New Hampshire.

Okay, so I get the wacked idea to talk to the Delta agent at the gate to see if I can make it to NYC any other way. No luck. But than I mention, “Well, I am flying back to NYC on business but non-reving from LGA to Boston. Any chance of getting me to Boston.” “Do you have any checked bags?” she asks. Nope, and lucky for me, my flight to New York was over booked. So getting me on another plane was a win-win situation for all. The wonderful Delta agent started pounding the keyboard and hooked me up.

Instead of flying to NYC, I took my final leg on the business trip to DC Reagan. Then I non-reved to Boston on Delta’s new DC/Boston shuttle. And she didn’t even bother to adjust the cost. How cool is that!?!

So thanks to Delta airlines and to my most excellent girlfriend Melanie, for whom I owe thanks for the companion pass which allows me to do last minute non-rev travel, I am not only going to make it to Boston but I will be getting there much earlier than expected.

Oh, I just realized I never mentioned why I am heading to Boston. To join da boys for a DGB weekend riding Killington. Bye, bye sunny, warm Florida. Hello cold temps and white, fluffy pow. Ookay, it’s the Ice Coast. How about white, packed pow? Either way, it’s snow and I am on the way.

Continue reading →

Snow covered DC

By the way, snow covered DC looks really cool…especially the mall.

Continue reading →

At long last...

A lot has happened since my last posting. My freebord came in but it has yet to touch cement. I have been away since its arrival and now I’m afraid Melanie will be riding it before me. Of course, maybe I can bring it with me on my trips to Florida.

Florida? Why am I in Florida when the snow is in Vermont? First, let me take a step back and recap the events since my last posting.

I was in Charlotte, NC a week and a half ago to visit my friend Dave. He is on the road to recovery but still has a ways to go. Please keep him in your thoughts. I left Charlotte to meet my mom at the Cincinnati, OH airport. This was a surprise meeting for my mom who was not expecting me to join her on her last leg to New York. We flew back to NYC together with plans to drive up to Killington, VT the next day.

Well, wouldn’t ya know. Melanie got stuck in Paris because of the air traffic controller strike. This delayed our drive up to Vermont for a day. But she finally returned to New York, and mom and I picked her up at JFK. We headed straight to Killington to meet up with the rest of the Davis family.

Killington was great. Spending time with my mom, Melanie, and her family was very nice. And not only was the turkey delicious but it snowed. Boy did it snow. I hit the slopes twice during the visit but missed the big dump on Sunday. That’s okay because I am returning to Killington Friday night.

“You still haven’t answered the question, what are you doing in Florida?” Sorry about that. So you see, during all this fun I was asked to call a potential customer to gain a better understanding of the technical skills needs. Before making the call, I was told to sale myself to the customer, which I did. And so now I am staffed in Jacksonville, FL for the next few weeks. I went for 20 degree temps and a couple of feet of new snow to short sleeve weather with lots of sun. Who knows? I may visit the beach later this week before returning to Vermont this weekend.

Continue reading →

Rockin' the Freebord

Got my freebord in today! But unfortunately it is raining so it may be a few days before I can try it out.

Continue reading →

Snowboard On Asphalt With Freebord

Popular Mechanics has a good article on the Freebord.

Continue reading →


Okay, so I am reading every piece of information I can find on the Freebord thinking to myself I gotta get me one of these things. (Freebord is a snowboard for the streets.) Then I start thinking Manhattan is too flat. I need some hills and less traffic before I will ride the slopes of Manhattan. Beside a skateboard is more idea for urban riding. But than I found this web called LongBoardMaps.com. Go figure. The Internet has everything. And sure enough, there is a list of runs in Manhattan. And I know there is little downtown traffic late at night. Now I just need a crew to ride with ‘cause riding alone is just not as much fun.

Continue reading →

Review of .NET Beta Exam 71-300

I took the latest Microsoft .NET Framework Beta exam 71-300 Analyzing Requirements and Defining Microsoft .NET Solution Architectures. (A month full title, ain’t it.) I finished the exam in 3 hours of the 5 hours allowed. There was something like 97 questions for 5 case studies. Some of the questions had obvious answers while others were very subjective. People taking the test should be familiar with use cases, data modeling, functional specs, logic verses physical design considerations, and how to use selected Microsoft technologies including BizTalk, queued components, and ASP.NET session configurations. I do not feel like the test racked my brain but at the same time I am not sure I passed given that a number of the questions has subjective answers. I will know my test results in 8 weeks.

Continue reading →

Another fine Killington Day

All this snow…so close yet so far. I think I am entering a snow-challenged depression. And with my luck my next project will be in the deep south.

Continue reading →

Foot of fresh powder at Killington

Killington got a foot of new snow over night! I think it is time to call in sick and head up to the Vermont.

Continue reading →


Invites for WASTED II went out last night. Send me an e-mail if I left you off the list and you want to go.

Continue reading →

NYC Visit

Melanie and I decided to do something different this weekend. We decided to stay in New York City. Yep, instead of waits in airports, short jogs to transfer planes, and being violated by airport security personnel we decided to “visit” New York City.

The weekend included such fun as CD shopping, buying new clothes, walking around the Village and Chelsea, and drinks with friends. We went to a friend’s birthday party, and Melanie and I finally made it back to Kush, our favorite Lower East Side Moroccan lounge. But the highlight of the weekend was watching the St Louis Blues whoop up the NY Rangers at the Garden for a 3-2 victory. And even in hockey New York fans still boo their own team. We ended the evening with dinner, wine, and jazz at a West Village restaurant appropriately called NYC.

Continue reading →

Killington's early season

Continue reading →

Let the craziness begin

I have been away for the last few days visiting my very good friend Dave who is in the hospital right now. I wanted to stay longer but I had to return to NYC, and on Halloween of all days. I can tell you this Halloween seems to be craziness since I moved to this small town. The neighborhood is jammed pack with people in costumes partying in the streets and waiting for the parade. I can tell I will not get any sleep tonight. The yelling and screaming has already started and it’s only 8:30 pm. Oh well…part of the joy of living in the West Village. Too bad I am not into the festivities this year.

Continue reading →

Transworld Snowboarding for the XBox

I got the new Transworld Snowboarding game for the XBox last night and it’s pretty dang cool. I still have not decided which I like better, Amped or Transworld SB, but both are a must have for any rider who own an XBox.

I found Transworld SB to be easier than Amped on learning tricks, and jibs and landings are definitely easier. Transworld SB’s uses a combination of the left and right sticks to control the rider, which work better for me. The graphics are definitely better than Amped and I perfer the freedom to roam throughout the slopes without being told I am out of bounds or that I must go down hill. Probably the biggest difference in the two is that Transworld SB seems to focus more on perfecting specific tricks whereas Amped is about tricking it out with whatever to get the highest possible score.

Example, one objective in Transworld SB is to pull a perfect Indy. Originally I was doing the indy along with other tricks but this did not meet the objective. As it turns out, to meet the objective I had to pull the perfect indy and that it is. I didn’t need to do other tricks while in the air. Another example is the objective of a front-side 720. I had to learn not to over spin the trick. In Amped I always try to get the most spin each and every time.

Transworld SB is definitely cool, but I find Amped more challenging (so far). Making it through a career in Amped to be number one is dang hard, imo. Still, if you love to ride and you have an XBox get both games.

Continue reading →

Visual Studio Magazine - Why We Don't Build Software for Users

Alan Cooper has this to say about architects: “Architects synthesize people, purpose, and technology. If you just take people and technology, you have art-entertainment. If you just take technology and purpose, it’s engineering. And people and purpose without technology is psychology. Architects have to synthesize all this, to create a vision of a solution. People must get something practical achieved.”

Read more from his recent chat withVisual Studio Magazine.

Continue reading →

Killington Planning to Open This Friday

Today Killington posted that it plans to open its slopes to the public this Friday at 9:00 am! Start waxin’ the boards because the season is about to begin.

Continue reading →

Visual Studio.NET problem: EnvDTE missing or not found

I un-installed Visual XSLT the other day and it broke my Visual Studio.NET install. When I created a new Windows Application, VS.NET would fail to display Form1 in the Form Designer with the exception “File or assembly name EnvDTE, or one of its dependencies, was not found.” I believe the problem was caused by un-installing Visual XSLT. Luckily the fix was simple.

Under the .NET Framework directory C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\ you will find the envdte.dll assembly. Copy this file to C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\ and you should be good to go. Of course you will need to adjust the drive letters based on your configuration.

This fix worked for me. Hopefully it will work for you if you are experiencing the same problem.

Continue reading →

Somewhere Saturday Night Live is on the air

Melanie recently had cable TV setup in the apartment. Yep, she is trying to bring me into the ’90s. Next thing you know, we’ll have a microwave. Anyway…I spent the day veggin’ out on our new comfy couch watching cable TV and concluded that Saturday Night Live must be one of the most aired cable TV shows in America today. It seems to be on all the time. From the original Not Ready for Prime Time Players to those bad 80s and 90s seasons, you are only a few clicks of the remote away from another broadcast of SNL. Now back to Sponge Bob Square Pants, Nickelodeon’s top rated kid’s cartoon show where 40% of the viewers are adults.

Continue reading →

Melanie in Nice

I love this photo of Melanie.

Continue reading →

France pictures now online

New photos from recent trips including France are finally online. As per Renay’s request a gallery link has been added to the links section on the right side. Enjoy.

Continue reading →

PhotoRoom Version 1.2 released

I just put the finishing touches on PhotoRoom version 1.2, which is now available for download. Enjoy.

Continue reading →

Barney Not Found

Barney not found? Microsoft might have your answer in this KB: Q172668 - Barney Fun on Imagination Island Error Message: Barney Not Found.

Continue reading →

Integration News: Hands-On: 7 Keys To Building a Better Web Service

I have finally been published…online that is. Integration News has published an article I wrote months ago on Building a Web Service. Looks like some nice edits were added too because I almost didn’t recognize the article.

Continue reading →

Back from the South

We have returned from our Charlotte visit. It was a great time and really nice to see Dave and meet the little woman (no pun intended) Meg. We ate at some very good restaurants…Dave and Meg knows how to pick ‘em. And Saturday night’s live sketch comedy at The Perch left all of us with our sides hurting. “Talkin’ Baby. That’s crazy.” Thanks Dave and Meg for the invite!

Continue reading →

On the road again

Melanie and I are heading down to Charlotte NC for the weekend to visit my most excellent friend Dave. And to meet his main squeeze Meg. Although I have been to NC before, this will be my first real visit to the state.

Continue reading →

Passed Microsoft Certification Beta Exam 71-315

The results are in. I passed the Microsoft C# Beta exam 71-315: Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET.

Continue reading →

Back in rainy New York

Melanie and I have returned from France. What a great trip! I learned much more about Melanie and her life. The trip highlight was having dinner the family she lived with for a year while studying in Aix en Provence.

The trip started off rough. The plane leaving JKF was packed and with 45+ stand-by passengers waiting, we were wondering on the way to the airport if we would make the flight. But this would be the less of our worries. We made the flight to from New York to Paris and that’s when fun really began. All flights from Paris’s Charles de Gaulle airport to Nice were full.

Melanie was confused by this knowing that this time of the year is an ideal time to travel stand-by to France. I noticed two people checking in heading to Nice with bicycles. We were sitting with one of Melanie’s co-worker’s boyfriend who mention that Nice was hosting a triathlon. We later learned how big this event is when Melanie was asked by another American if we were there to career Team USA. Turns out this event is part of the 2002 ITU World Cup Series. We were not going to Nice from Charles de Gaulle.

Based on a suggestion we decided to take a bus ride to the other side of Paris and try one of the Air France shuttle flights from Orly. We knew Melanie would have no problems flying out of Orly but we were not sure if I could on a companion pass. However, we had hope after learning that the French do not necessarily follow all the rules. And we learned this to be true.

We got to Orly in time to catch the next flight to Nice. Racing through the airport we make it to the gate. We got checked in. Yes! Air France honored my companion pass and put both of us on the stand-by list. Minutes later our names are called and we are going on the next flight to Nice. But Melanie’s boarding pass says she is sitting in JPS. In other words, the jump seat. The of course is not common. Nor was it common for the pilot to ask us if we were flying to together and if so to wait at the front of the plane.

We boarded the flight without a problem. Not knowing if we heard the pilot correctly, I kissed Melanie bye and headed for my seat in the back of the plane. Happy that we would be in Nice soon, I settled in for what would be the second worse flight in my life. I will spare you the details. Of course throughout the flight I was wondering how Melanie was doing. Little did I know she was having a unique experience of riding in the cockpit. Yes, that’s right. She was chillin’ in the cockpit.

I am having the second worse flight in my life and Melanie is living it up in the cockpit. This would not happen in the U.S. these days. Melanie was one of three riding in the cockpit. And the funny part was one person was just sitting on a box; no seat belt, just a box. I think next time I will wait at the front of the plane.

After the interesting flight experiences, we were finally able to begin enjoying our vacation. Nice is a beautiful city and the water is blue. We walked all over the center village, Old Town, and along the pebble beach shore. We climbed to the top of a hill where a park oversees both sides of Nice, Old Town and the harbor. And we enjoyed good food, which got better and better as the week went on. Believe it or not, the region is known for its pizza.

We ended our visit of Nice by watching the triathlon. This was cool to watch and was an added bonus even with the travel problems to Nice. After watching the cycling and running for a few hours, we boarded a train and headed to Aix en Provence via a very scenic route. The rock mountains were glorious and the coastal cities were beautiful.

Melanie lived in Aix en Provence for a year while studying French so I was very excited to see this cozy town rich with history. Melanie took me to school she attended and to various cafe she frequently visited. The family she lived with invited us over for dinner, which was an awesome experience for me. We walked all over town and we visited Cezanne’s studio. Of course we did more but as this posting is getting long…

We left Aix for a day to visit Arles. Another scenic train ride delivered us to this quaint French villa with ancient Roman ruins. We walked through a Roman colosseum that is still in use today for bull fights and saw an outdoor theater. We also saw the cafe painted by Van Gogh who lived in Arles for a year.

We return to Aix for a short visit and back to Nice for one last night. We boarded a direct flight from Nice to JFK. Eight hours later we were back in a very rainy New York City already missing the streets of south France.

Continue reading →

South France for the week

It’s been two weeks since Melanie and my last getaway so it is definitely time for another one. Our last getaway was a weekend at Camp Murphy in Lake George. What a blast that was!

For this getaway, Melanie and I are heading to the southern part of France. We are starting and ending the trip in Nice but we also plan to visit the town where she studied for a year. The town is pronounced “X” but I am sure there are more letters in the town’s name. If we come back it will be the end of next week. And that is if we come back.

I will not be reachable during this getaway. My mobile will not work in France and I have no plans to check e-mail. So no emergencies over the next week. Everyone say safe and enjoy life. And dream about the upcoming winter and SNOWBOARDING!

Continue reading →

What does it take to be considered advanced in OOP techniques?

Within Avanade we are asked to maintain skills self-assessments. This allows Avanade to identify appropriate individuals for a particular job. One area we are asked to evaluate is OOP techniques. This led a co-worker to ask me “What does it take to be considered advanced in OOP techniques?” Here was my initial reply:

Continue reading →

Recommended management books for techno-geeks

Recently I was asked to recommend some books for computer geeks, software developer and engineers, etc moving into management. Here is the list I came up with. The books on this list have definitely helped my career over time.

Continue reading →

Kirby comes to TV

It was only a matter of time before the stories of my adventures made their way to the TV screen. Look for the tough cream puff on Fox beginning September 14 (9 a.m. and 11 a.m. EDT).

Continue reading →


Karsten Januszewski recently published a white paper on Registering and Discovering RSS Feed in UDDI. I personally think this is a great idea. My only problem with the idea is that registering services in UDDI can be a bit cumbersome for some folks. But Karsten solves this problem by providing a sample Windows application that makes registering RSS v.9x feeds as simple as specifying the URL to the feed and clicking a button.

So why do I like the idea of registering and discovering RSS feeds in UDDI? It exploits the power of UDDI. Many people assume UDDI is only about Web services but that is not true. Any services can be registered in UDDI and discovered by the masses. For example, if you were to search one of the UBR for the provider “Kirby” you will find that I offer two services.

One service is a Web service for reporting statistics for WCAV Radio. But the other is the RSS feed for this weblog. And by leveraging UDDI, people can discovery all the services I offer whether the service is a Web service or not.

Those using Visual Studio.NET’s Add Web Reference will notice a search on the provider “Kirby” will return only Web service I offer. The reason is that Add Web Reference was implemented to search for Web services only. The same idea can be applied to weblog tools that wish to discover RSS feeds. Those tools only need to search for services in UDDI based on the practices outlined in Karsten’s white paper.

Continue reading →

The Company - Burton.com 2003

From Burton’s 2003 web site:

We stand sideways.
We sleep on floors in cramped resort hotel rooms.
We get up early and go to sleep late.
We’ve been mocked.
We’ve been turned away from resorts that won’t have us.
We are relentless.
We dream it, we make it, we break it, we fix it.
We create.
We destroy.
We wreck ourselves day in and day out and yet we stomp that one trick or find that one line that keeps us coming back.
We progress.

Continue reading →

Open VS.NET Command Window Here

I used Windows Explorer all the time to navigate my hard drive. Many times throughout the day I need to drop to MS-DOS within a specific directory. I’m too lazy to drop to DOS and navigate using the command line so I created a registry entry that will launch a CMD window from Windows Explorer and place me in the selected directory. You can run the following VBScript to do the same for yourself.

Continue reading →

Could have used a .reg registry import file

After posting the VBScript below I realized I could have simply created .reg file that has the registry entries to import. Oh well. The VBScript approach gave me a reason to play with VBScript.

Continue reading →

They will fire me if I pee one more time today.

Get this crap…Daily news from Louisville, Kentucky and Southern Indiana from courier-journal.com The Jim Beam bourbon-making plant in Bullitt County is disputing a Kentucky Labor Cabinet citation involving toilet breaks for the plant’s bottlingline workers.

Under a policy implemented in October, line workers at the Jim Beam Brands Co. plant may use the restroom only during lunch and two other scheduled daily breaks, one before lunch and one after. They also are allowed one unscheduled toilet break per day, and can be disciplined for taking more, starting with a warning and escalating to dismissal after six incidents.

Continue reading →

New pictures posted at Kirbyland.net

New pictures of Melanie and I are online. Most of the pictures are from our trip to Vermont last month.

Continue reading →

CVS at kirbyland.net

I finally got around to setting up CVS at home with secured access using OpenSSH. The magic formula was Cygwin, my favorite open source product of the moment. And best of all I have ViewCVS running for browser based, read-only access to my CVS repository. WASTEDBoarding.com and Alt.System projects are already in the repository and are available for your viewing pleasure.

Continue reading →

Favorite feature of the day: Installer class

I know I have been weak on the tech note postings but my geek life has been very busy this month. But for those interested, my favorite .NET feature of the day is Visual Studio.NET’s Installer class. This puppy rocks! With it you can create custom actions in the setup wizard. I have created two .MSI files today that update the application config files with database connection settings provided by the user running the setup wizard. Very nice, I must say…

Continue reading →

Back from The Cape

Melanie and I just returned from our first trip to Cape Cod. Rachel and Dana, our wonderful host for the weekend, invited us up for the weekend. We stayed in a cute cottage owned by Dana’s parents. This private community was neat. All the cottages look like miniature houses. We spent Saturday and Sunday out on the beach…Melanie getting more tan and me, well, I stayed white with my SPF 50. The highlight of the weekend was me finally beating Melanie at miniature golf. Yep, it’s true. She was not playing at her typical level and I was in the zone, if you can believe that.

I must say visiting the Cape was very relaxing. And I hope Rachel and Dana invite us up again.

Continue reading →

thecave at home is down

Bummer. My machine at home went down unexpectedly. This means WCAV Radio is off the air for the moment, and WASTEDBoarding.com is not accessible. This sucks too because I was testing my new WSDL Validator against WSDLs stored on that machine.

Continue reading →

thecave at home is back up

My DSL provider must have had a hiccup because my machine at home is back online. The music is streaming and the WASTED Crew is hardly working, I mean working hardly, I mean working hard on the next update to the site.

Continue reading →

Congratulation to me.

I passed the Microsoft C# beta exam 71-320 Developing XML Web Services and Server Components with C#.

Continue reading →

WASTEDBoarding.com is all new

A new version of WASTEDBoarding.com was posted last night. It is a preview of things to come.

Continue reading →

Favorite feature: XML Serialization

I have said it before and I will say it again. XML Serialization ROCKS! I am working on a new version for WASTEDBoarding.com this weekend and I am taking a totally new approach to the architecture of the software. One approach includes using XML Serialization to save object hierarchies to a SQL Server database.

Here’s how it works. All my core classes are serializable. ToString() has been overridden to return the object hierarchy in an XML string. I pass the XML string to a stored procedure in SQL Server, which in turns saves out the information to the appropriate tables. All of this totally rocks!

Continue reading →

Favorite feature: Visual Studio.NET Database Project

My favorite feature of the day: Visual Studio.NET Database Project create command file.

Continue reading →

Back from Baltimore

We made it back from Baltimore. This weekend was a total blast. Bo Dollis & The Wild Magnolias were joined by a couple of Mardi Gras indians from Bo’s tribe. And as always Buckwheat Zydeco got the crowd moving and left them wanting more. Rachel and Fernando were excellent hosts, and it was really nice to catch up with Linda and Jeff. All and all, it was a great weekend. Too bad we couldn’t stay longer.

Continue reading →

Here I come Baltimore

Melanie and I are flying down to Baltimore today. I’m so psyched for a number of reasons. First, I have always wanted to visit Baltimore, the hometown of such greats as John Waters and Divine. Secondly, we are going to visit with Rachel and Fernado another of Melanie’s sisters and her sister’s boyfriend respectively.

Another reason for being excited is Artscape, which is going on this weekend in Baltimore. And the best part of Artscape is Buckwheat Zydeco who will be performing on the Sun Stage at 8:45 pm on Saturday. This guy really gets my butt ah-movin’.

And finally, I am psyched about the trip to Baltimore because my friends Linda and Jeff, originally from St. Louis now living in the DC area, are driving up for the weekend. It’s been two years since I have seen either of them, and I am so excited that we will be meeting up at Artscape. It’s going to be a great weekend!

Continue reading →

Fetish night in Chicago

Last night Melanie and I saw Chicago. Entertaining but the crowd was not into it as much as the crowd at Hairspray. My favorite part of Chicago? The outfits. Totally reminded me of the preferred style for many at Monday night Fetish night in St. Louis. I miss those Monday nights at time.

Continue reading →

A year ago today

A year ago today, Melanie and I were part of a group going to a Yankee’s game. Melanie and I separated from the group to find a shorter line for beer and hot dogs. We got to our seats before the rest of the group and started talking. We talked to each other for the rest of the game (and I was gracefully trying to stare at her long, tan, smooth, sexy legs). I wonder if she ever caught me looking.

Continue reading →

UDDI as a directory of RSS feeds

Recently my friend Karsten Januszewski posted a message to the RSS-DEV group suggesting that UDDI could be used as a directory of RSS feeds. I for one really like the idea. UDDI provides not only a public directory that is easily searchable but an API that would allow me to automate the search rather the discovery of new RSS feeds that I might be interested in.

Ironically a couple of days prior to first learning of Karsten’s idea, I spent an hour looking for RSS feeds covering a particular topic for a customer. Sure I found various sites listing some feeds and such but no definitive directory. Should Karsten’s idea take off then the time it took me to find feed in the past will be greatly reduced. And as I said I can automate the discovery of new RSS feeds. I for one fully support Karsten’s idea.

Continue reading →

xsd.exe does not support import

xsd.exe from the .NET SDK has been a favorite tool of mine in recent months, but it let me down tonight. It seems that xsd.exe does not support schema files that import other schemas. I’m bummed.

Continue reading →

Who turned off the lights

The brief power outage in the lower Manhattan was an interesting experience. With no power in the West Village, shops and restaurants were forced to close. This sent a large number of people out onto the streets. And traffic was a total mess with no traffic signals working. Subways were not working and buses were overflowing with people.

I was planning to meet Melanie and Brenna for lunch in Central Park just as the power went out. So I started walking. And I walked, and I walked. I can now say I have walked from my apartment to Melanie’s Upper Eastside pad with only one brief stop in Central Park. Although an enjoyable walk, it’s not something I care to do on a regular basis.

Continue reading →

Quote of the day

“It’s not my fault. It’s the bartender’s fault.” - MD

Continue reading →

John Waters on Broadway

Last night Melanie, her sister Brenna, and I saw the new Broadway musical Hairspray based on the John Waters’ movie of the same name. The show set in Baltimore, 1962, was not only hilarious but energetic, up-beat, and quite entertaining. The story is about a plump teenage girl who fights for racial equality and integration by appearing as a regular on a local TV dance show. What’s more funny than that? Well, a lot of things I guess but this show is still very funny. And Harvery Fierstein is simply divine as Edna Turnblad.

Continue reading →

Software development is about making the end user's life easier.

I am starting to realize there are different types of software developers. I guess I have always known this but it was not clear to me how the differences affect delivery of software solutions. This probably explains why I am happy on some gigs and frustrated on others. And why I can easily become frustrated on projects where I start out happy.

As Joel Spolsky says, there are five worlds of software development: shrinkwrap, internal, embedded, games, and throwaway. I come from the shrinkwrap world where programs should have easy to use interfaces, be easy to install and deploy, and resilient to variations between computers. After all, shrinkwrap applications are expected to be used “in the wild” by a large number of people. Developing shrinkwrap applications requires a mindset not commonly found in the corporate and consulting worlds. And with this different mindset comes a different way to work towards achieving the goals.

I’ll pick on my buddies at Antenna Software for a moment. Now in their defense, I will say I left Antenna over a year ago and a lot has changed in that time. My comments here are based on my time at Antenna as an employee.

Antenna had the dream to be an ISV focused on mobile and ASP-based solutions for the field force automation. In my mind to be successful we had to think like those companies producing shrinkwrap and embedded applications. However the software engineering team was staffed with primarily people either recently out of college or from a corporate IT background. The college guys are okay because you can shape and mold them but the corporate folks are a different story. And I believe this contributed to the lack of a solid product after my one year at Antenna.

A lot of assumptions can be made when you are developing applications that only run within a single company. It is easier to demand certain restrictions or hardware configurations. And deployment can be more involved. It can be tough for most ex-corporate developers to make the switch from controlled environment programming to programming for the wild, which leads me to my current thought and reason for this post.

I work in the consulting world of software development. I like the freedom it provides and will probably remain a consultant for the rest of my career. But most of the projects that consultants work on are custom software development for a single corporation. There are exceptions from time to time like the work I did last year at i-Deal, which was an internal software development effort turned commercial Web-based software. But for the most part consulting gigs are on internal software development efforts.

In my career I have observed an interesting fact. When I apply shrinkwrap techniques and approaches for delivering an internal software solution the customer tends to be happier and the solution is perceived as having a higher level of quality. Working in this manner will not make the software developer’s life easier. In fact, it is harder for the developer and requires more work. But software development is not about making the developer’s life easier. It’s about making the end user’s life easier.

Continue reading →

Goodbye to Dot-Dot

As some already know, my grandmother Dot passed away last week. I left for Memphis as soon as I heard the news to be with the family. Although it is sad that Dot is no longer with us, she is in a much better place now.

Dot was an amazing woman and a wonderful grandmother. I still have fond memories of summer times at her place with a frig packed with Jell-O, Easter Saturday dying eggs, and nights playing Aggravation and watching Carson. I can’t think of a better person to have as a grandmother. I love you, Dot.

Continue reading →

Another C# beta completed

I just finished the latest in Microsoft C# beta exams, 71-315 Develop and Implementing Web Applications with Microsoft Visual C#.NET and Microsoft Visual Studio.NET. The test was easier than the last one but still had challenging questions. Those planning to take this exam should have a working knowledge of Web app setup projects, security settings via the web.config, working with DataList, Repeater, and DataGrid server controls, how to write custom user controls, and once again ADO.NET, some XML, and how to consume Web services.

And yes, for those wondering…I rescheduled the exam so I could take it this morning in Memphis.

Continue reading →

Death in the family - flying to Memphis today

Death in the family - will be in Memphis for the next few days.

Continue reading →

Snowboarding to Nirvana

“I was in one of the most beautiful places in all the world, the Himalayan mountains. Several months before, in my endless quest for the perfect snow, I had left my home in America and traveled by plane to Nepal with my two snowboards, to have the ultimate experience in snowboarding.”

This is the first paragraph of Frederick Lenz’s book Snowboarding to Nirvana. I read this paragraph and had to buy the book. I can’t wait to start reading the book.

Continue reading →

Back from Vermont

Melanie and I have returned to the Big Apple after a 4 day trip through the green mountain state of Vermont. We started the road trip with a drive up the west side of the state ending at Stowe. On the way we took a sneak peek at the Mad River Glen ski slopes. The scenery was wonderful with views of lakes and green mountains all around. We ended the night with a 4th of July firework show in Stowe. Don’t be fooled by this small town. The firework show could easily rival big city firework shows. For those wondering, we spent our nights at Three Bears at the Fountain, a truly wonderful Vermont B&B.;

The next day we drove out to Burlington to see Lake Champlain. Burlington is a cool college town. Interesting people walking the streets and again nice scenic views. We left Burlington to return to Stowe via Smuggler’s Knot. What a cool drive! Large rocks, big trees, and some very tight turns that made driving a bit scary at times.

We explored more of Stowe the next day. We checked out the ski slopes and hiked down a blue run on Mt Mansfield. Riding the slopes is still a better way for getting down though. We did a little shopping and got some great deals on some ski/boarding wear. And we ended our visit of Stowe with Melanie kicking my butt at miniature golf.

From Stowe, we headed down to Killington where we stayed at the Birch Ridge Inn. Our dinner at the Inn was excellent. We highly recommend it to all Killington visitors. After picking up Melanie’s skis, checking out the Killington slopes [yes, we are obsessed], and a drive through Killington to see homes, we headed back to NYC.

Our scenic drive home took us through the southwest corner of Vermont. Unfortunately we could not see much because of the smoky haze. We later learned the hazy was caused by forest fires in Canada. This was followed by a lengthy drive in traffic between Albany, NY and NYC. This 2 hour drive took us only 4 hours. East Coast holiday travel by car can suck at times, especially returning home.

Overall the road trip was great. Vermont is great. And Melanie is great. I can’t wait until we return.

Continue reading →

Heading to the Green Mountain state

After a full day of research, learning the ins and outs of writing Windows Services using .NET, and using more about WSDL, it is time for me to sign-off for a few days. Melanie and I are driving up to Stowe, VT for the holiday weekend. And no we are not leaving the city because of the various terrorist threats. We are leaving town because we have a 4 day holiday and I have wanted to see Vermont in the summer time for a very long time.

If we have time and are able, I will post entries about our trip but don’t count on it. I am hoping for a geek-free weekend.

Continue reading →

35 hour work week is possible

I am jealous of my friend Darren who signed off of IM with the comment “My work week is only 35 hours.” How did he get so lucky? Cool new place in Sarasota, FL. Cool new job. And Jeff is cool too.

Continue reading →

thecave.com is running ASP.NET

thecave.com is now running ASP.NET. This enables me to enhancement this weblog site beginning with the blog comment feature. You can now post your own comments for the world to see to any weblog entries on this site. Simply click the word “comments” below the entry to view and post comments.

Let me know what you think of this new feature. If it well received I will add more features to it such as e-mail notifications and such.

Continue reading →

Kirbyland.net is back online

Kirbyland.net, WASTEDBoarding.com, and WCAV Radio are back online. The DSL work required a reset of my modem, but since I have been away for a couple of days I could not reset it sooner. Still not bad. This was the first major outage in over a year.

Continue reading →

Datalust rules St. Louis

What can I say…Datalust knows how to throw a party.

Continue reading →

My latest injury

Melanie and I just returned from the hospital. It appears I have torn some muscle in my leg. The doctor was nice enough to give me a cane to use around the apartment and strict orders to say off my leg for at least two days. Hmmmm I’ll still need to go out to eat.

Continue reading →

Kirbyland.net is down

It appears kirbyland.net, WASTEDBoarding.com, and WCAV Radio are down at the moment. My DSL provider is doing emergency repair work this week, which is probably the cause of the outage. I’ll post another announcement once everything is up and running again.

Continue reading →

Finished my first 5K run through Central Park

Believe it or not I finished the 5K run [officially 3.5 miles] through Central Park. I am excited that I did it. And I finished in 35 minutes!

Continue reading →


Warchalking is “collaboratively creating a hobo-language for free wireless networking.” Makes me want to walk about the city to see if this London craze has caught on in New York.

Continue reading →

Thoughts before my first 5K run through Central Park

Tonight I run my first 5K run through Central Park. I am running in the JPMorgan Chase Corporate Challenge New York Race #3. I was really looking forward to tonight’s run but after hurting my leg a week ago I don’t know if I am as excited. With my luck I will finish the run with a good time but end up in the doctor’s office tomorrow morning for yet more X-rays. It figures it is the same leg I hurt earlier in the year snowboarding. Maybe I am getting too old for this sort of stuff. Nah…

Continue reading →

PVCS Version Manager - Version Control Software

I had a brief chance to check out Merant’s PVCS Version Manager - the web version of their Version Control Software. I was impressed by the offering but I still prefer CVS with TortoiseCVS.

Continue reading →

Manhattan fire

I may have helped in keeping this fire going but I don’t really remember.

Continue reading →

Overworked and tired of it!

It pretty much common knowledge that Americans are overworked. And this is specially true in the IT community. This has been bothering me a lot lately as things other than work are becoming top priorities in my life. (Sidenote: For those wondering, those other things include Melanie and snowboarding.)

Continue reading →

More on C# Exam 71-320

I forgot to mention, those taking the test will also need to know how to work with a thread’s principal object. In a nutshell, this exam asks a number of low level questions not typically found on many other Microsoft exams.

Continue reading →

Microsoft C# Beta Exam 71-320

I just completed the latest Microsoft C# Beta Exam: 71-320 Developing XML Web Services and Server Components with C#. This exam is much harder than the previous one I took, which I did pass. Unlike the previous exam, this one focuses on server-side work with Web services, server components, and Windows services.

Those planning to take this test should know about Web setup projects, strongly typed dataset, implementing and debugging Windows services, COM+, transactional Web services, .NET remoting, remote component deployment, publisher policies, and lots of ADO.NET with SQL Server. The questions that surprised me the most were ones related to strongly typed dataset. These questions asked specific questions about the XML Schema for the dataset and how to manipulate the schema, apply constraints, and setting relationships.

Overall, I am sure I failed this test. And it has made me realize how little I know about the .NET Framework specifically in the area of remoting. Time for me to crack open more books and write more advanced applications and services with .NET and C#.

Continue reading →

Melanie is the best!

I know many have been wondering who is the best girlfriend in the world. Well I am here to tell you that the best girlfriend in the world is Melanie Anne Davis. There is no other that is as great as she is. Of course this is my opinion and you are welcome to disagree. But you will be wrong if you disagree because Melanie is the best hands down!

Continue reading →

RSS feed

I am testing a new feature of Blogger.com, RSS feeds. Now others can retrieve headlines from my latest postings. Look for the XML icon on this page to access the RSS feed.

Continue reading →

NYC Bloggers

Take the F train to West 4th and you will be moments away from my blogger. I have joined a group of other blogging New Yorkers.

Continue reading →

Here I go again

I am once again trying Pro Blogger’s e-mail feature. Blogger.com is a nice service but I am starting to question the quality of selected Pro features.

Continue reading →

Sometimes I think I live on one of the coolest streets in Manhattan. It is definitely one of the more unique Manhattan streets in that the street is only a block long and it is hidden away between Bleecker and West 4th, 6th and 7th Avenues. But one of the things that make it a cool street is all the recent filming activity.

Again this morning there was a film crew on-site a couple of doors over from my apartment preparing for a morning of shooting. Last week a film instructor brought a group of students to Jones Street to talk about on-site filming. And over the last few months there have been other film crews taking over the street.

So even with all the recent drug activity at one end of my street, I still sometimes think I live on one of the coolest streets in Manhattan.

Continue reading →

“That’s a wrap!” Today’s film shoot was the most exciting I have seen on my lovely little street. It was an all day shoot and there were a handful of stars walking around. The only one I know by name is Denis Leary who always seemed to have a cigarette in his hand. Now that the street fun is over, I think I will spend a little time snowboarding time on the XBox.

Continue reading →

Web server controls technology in ASP.NET is a great advancement for web application developers. However, it is not the only way and NOT always the right way to implement web page features. There is still a need for client-side scripting and HTML controls. Not every page needs to perform a post back and a form that runs at server is not always needed.

It seems that some ASP.NET developers have forgotten some of the lessons learned with ASP and how to implement user friendly web pages. It seems some of these developers have forgotten that your can embedded script within the HTML inside the ASPX file. Or that client-side scripting can enhance the user experience.

Web server controls are great, useful, and simplify web application development. But it is not the only set of tools available to the developer. ASP.NET developers need to remember this.

Continue reading →

Found interesting community web site called Advogato, the free software developer’s advocate. The goal of the site is to serve as a community resource for free software developers around the world, as well as a research testbed for work on group trust metrics. The site provides weblogs for site members, which I found most interesting and has introduced me to more like minded individuals.

Continue reading →

It’s funny how easy it is to forget things you have worked on in the past. A few months ago I started work on an idea for a presentation framework for ASP.NET. I had forgotten about it until a friend reminded me of it earlier today.

I only spent a few hours on it but I remember the work being fun. It uses an Http module to simulate web page inheritance for the purpose of controlling a site’s look and feel from a centralize location. Take a look, download the source, and let me know what you think.

Continue reading →

Woo-hoo! I passed the Microsoft Beta Exam 71-316: Developing and Implementing Windows-based Applications with Microsoft Visual C# .NET and the Microsoft .NET Framework. Say that three times fast.

Continue reading →

I don’t know about you but this site is hours of fun for me. Be sure to turn up the volume.

Continue reading →

Pessimistic locking approach for version control is an efficiency killer. And yet all customer facing projects I have worked on in the past few years using Visual Source Safe in this manner.

Concurrent Versions System (CVS) approach of concurrent development in sandboxes is the way to go in my opinion. Developers never have to wait for someone else to “check in” a file. Developers work on the needed files. If two developers work on the same file, the code changes are merged by the last developer who wishes to commit the changes to the repository. An optimistic locking approach to version control. Imagine that.

Most if not all web-based applications developed today use optimistic locking. It’s funny how developers continue use tools configured to not use optimistic locking. Sort of hypocritical in a way.

Continue reading →

How stupid is this? PwC Consulting to be “Monday”.

Continue reading →

More photo albums posted…

Continue reading →

I just posted many more pictures in my Photo Room.

Continue reading →

The home page for Photo Room is now available. Photo Room is my latest open source project. This one is a web site application that makes it easy to publish on-line photo albums.

Continue reading →

I got so busted today by my sister. I did not make a weblog entry about her wedding in May. And yet I congratulated Melanie’s sister Brooke in a recent posting. Sorry Renay. I didn’t mean to forget you. It’s just that there was a lot going on that weekend.

So to make it up to Renay, I have added a weblog entry on May 11 in honor of her wedding. Sorry to leave you out little sis.

Continue reading →

My friend Dave sent me this…

Are you a prostitute or a consultant?

1. You work very odd hours.
2. You are paid a lot of money to keep your client happy.
3. You are paid well but your pimp gets most of the money.
4. You spend a majority of your time in a hotel room.
5. You charge by the hour but your time can be extended for the right price.
6. You are not proud of what you do.
7. Creating fantasies for your clients is rewarded.
8. It’s difficult to have a family.
9. You have no job satisfaction.
10. If a client beats you up, the pimp just sends you to another client.
11. You are embarrassed to tell people what you do for a living.
12. People ask you, “What do you do?” and you can’t explain it.
13. Your family hardly recognizes you at reunions (at least the reunions you attend.)
14. Your friends have distanced themselves from you and you’re left hanging with only other “professionals.”
15. Your client pays for your hotel room plus your hourly rate.
16. Your client always wants to know how much you charge and what they get for the money.
17. Your pimp drives nice cars like Mercedes or BMWs.
18. Your pimp encourages drinking and you become addicted to drugs to ease the pain of it all.
19. You know the pimp is charging more than you are worth but if the client is foolish enough to pay it’s not your problem.
20. When you leave to go see a client, you look great,but return looking like hell (compare your appearance on Monday AM to Friday PM).
21. You are rated on your “performance” in an excruciating ordeal.
22. Even though you get paid the big bucks, it’s the client who walks away smiling.
23. The client always thinks your “cut” of your billing rate is higher than it actually is, and in turn, expects miracles from you.
24. When you deduct your “take” from your billing rate, you constantly wonder if you could get a better deal with another pimp.
25. Everyday you wake up and tell yourself, “I’m not going to be doing this stuff the rest of my life.”

Continue reading →

Congratulations to Brooke Davis for winning the 2002 “WISE on the Rise” Award. Brooke is one of Melanie’s younger sisters. Way to go Brooke!

Continue reading →

Last week while playing with Microsoft UDDI Services Version 1 released on 16 Nov 2001, I discovered an interesting fact about Windows .NET Server Enterprise Edition Build 3621. The Windows API call GetVersionEx() is returning a MinorVersion value of 2 when called on Windows .NET Server Build 3621. It does not surprise me that the value 2 is not documented for the OSVERSIONINFOEX structure since Windows .NET Server is still in beta.

So what does this have to do with UDDI Services Version 1? As it turns out, there is a little snippet of code in UDDI Services that checks the version number of the OS. This is used to limited the operating systems that can run UDDI Services. In this code snippet, a conditional is checked that expects the MinorVersion value to be 1, which is documented as Windows XP/Windows .NET Server. But Windows .NET Server Enterprise Edition Build 3621 returns the value 2 for MinorVersion. See the problem? UDDI Services Version 1 will not run on Windows .NET Server Enterprise Edition Build 3621.

Continue reading →

I now have an open source project area on SourceForge.net for my Photo Room software. Let me know if you care to contribute to the effort. You can see Photo Room in action at WASTEDBoarding.com.

Continue reading →

Interesting article on eWeek…Web Services Security: A Political Battlefield. Sometimes this stuff just hurts my head.

Continue reading →

“On the road again. I can’t wait to be on the road again.” Blah, blah.

Melanie and I are heading to her home town this afternoon to attend a wedding. We plan on spending the rest of the weekend there so she can visit with her sisters and I can write an article on the ten top things to consider when building a web service. I’m not exactly sure how I got sucker into writing this article, but once it is done I will be excited about it.

Continue reading →

I have to admit .NET makes coding easier. I wrote this simple web-based photo album application in a couple of hours. Now it will be much easier for me to post images on the web.

Continue reading →

Melanie and I just returned from East Durham in the Catkills of New York state. We were there to enjoy beers and music at the 25th Annual East Durham Irish Festival. Headlining the festival was the Saw Doctors. Other bands appearing included The Prodigals, The Glengarry Bhoys, Andy Cooney Band, and more. My favorite by far was Ontario Canada’s Glengarry Bhoys. These cats really got the crowd shaking, moving, and jumping.

Continue reading →

Haha! Finally I am on the top of Google Search: kirby turner.

Continue reading →

How many works can a person work before spontaneous combustion occurs?

Continue reading →

More news about Accenture’s new Web Service and Application Development Platform for Microsoft .NET. This time from InfoWorld.

Accenture to roll out Web services development tools

Continue reading →

The correct answer to any architectural question is always “it depends.” – Advanced DOTNET E-mail List

Continue reading →

Cool! This eWeek article 2002 A Model Year for App Dev talks about my latest project. A quote from the article: “Accenture in July will launch Accenture Web Service and Application Development Platform, which will be available as a hosted service, said Michael Condon, director of the company’s Web services consulting group.”

Continue reading →

Ever feel stupid? Well I do right now. Last week I turned on my TV and poof…no picture. So I pressed the power button on the remote a few more times. Still no picture. Next I tried the power button on the TV unit and still no picture. The TV is toasted I thought

Not wanting to spend the money on a new TV, I decided to call for home service. 75 bucks for a home visit! But that is cheaper than a new TV. So after going almost a week without a TV or Amped! for Xbox for that matter, I scheduled an appointment for a service visit between 1 and 5 pm. Don’t you just love those service windows. 5:15 and no technician. Figures! So I call. He is running late and will be here within an hour. No problem. I am working anyway.

Finally the tech arrives. I buzz him into the building. We get ready to move the TV to the floor so he can take off the back of the set. I unplug the TV before the move and hear what sounds like the TV turning off! “No!” I think, “Don’t tell me all I needed to do was unplug the TV!” We move the TV to the floor but before the tech removes the back off the set I plug it back in. And guess what. The damn thing turned on!

75 bucks to have a tech watch me unplug and plug in the TV. Now talk about feeling stupid.

Continue reading →

I have been slacking on the weblog lately. What can I say? I have had too many things going on at the same time. Hopefully I will find the time to start making new posts.

Continue reading →

This weekend’s geek out weekend involved setting up a new remote development environment for myself. My plan was to roll out a hosted version of CVS (Concurrent Versions System) with secure access via SSH. I used OpenSSH on Windows from Network Simplicity, which was easy to install and configure. OpenSSH also includes SCP, a secure copy program, which I am now using to make backups of important information from my laptop to my file server. Totally sweet, I must say.

CVSNT was a bit of a challenge compared to OpenSSH but I did get it installed and running. The final step was to provide remote access to my CVS repository through a secure tunnel using SSH. This has proven to be very challenge and I have yet to finish this goal. I have search the Net over and have learned many others have had the same problems. This is preventing me from building the desired remote development environment, which means I must continue using VPN access to my Visual Source Safe repository.

Not all is lost though. I learned a lot about security, secure access, PKI, OpenSSH and such. And I have a easy to use, fast, secure process for backing up files from my laptop. I am not giving up on the challenge either. I will try again in a couple of weeks when I have more time.

Continue reading →

After spending the last few hours trying to access CVS repository stored on Windows 2000 through SSH, I finally give up. My final conclusion is the CVSNT does not work SSH when CVSNT is on the server-side. From all I have read and seen, CVSNT with SSH works fine with the CVS server is some flavor of Unix. This bums me out because I really don’t care to install Linux at home and I would like to use TortoiseCVS as my WinCVS GUI client.

All is not lost though. I think I can use another WinCVS to access my CVS repository. I was able to successfully access it with the CVS command line using SSPI for Windows authentication. And by using the -x, you can ensure that the network traffic is encrypted. Still, I would rather use SSH.

Continue reading →

I’m back from Jamaica and Memphis and back into .NET. This morning I learned how easy it is to internationalization your ASP.NET applications. The .NET SDK has a simple to follow walk through explaining how to create and use string resource files and satellite assemblies. Having built web-based applications that support multiple languages before, I really appreciate how simple it is to internationalize ASP.NET applications.

Continue reading →

I am once again trying to e-mail post feature of blogger.com. I really like the idea of this feature but I have been experiencing problems with it in the past. I just noticed a series of tests were finally posted to my weblog weeks after the messages were originally sent. Hopefully that problem has been fix.

Continue reading →

Congratulations to my sister Renay and her new husband Tommy, who were married earlier today. It is really hard to believe my little sister has become a beautiful young lady. I wish the two of them total happiness in their new life as husband and wife. And a special “good luck” to Tommy who is going to need it. Just joking, Renay. I love you both.

Continue reading →

Not like anyone really cares, but I am heading out of town again. KC last weekend. NYC this week. And early tomorrow Melanie and I will be heading off to Jamaica for some fun in the sun. We will be stopping over in Memphis mid-week to visit with friends and family, and to watch my sister get married. It’s hard to believe she is not a kid any more.

Continue reading →

After being grounded in New York for the last few weeks, I am finally taking a trip. Melanie and I are heading to Kansas City to visit my friends Darren and Jeff. Should be a great weekend.

Continue reading →

For those wondering, there was an explosion on West 19th Street between 6 and 7 Avenues. I work a few blocks away. I am fine and unaffected by the incident. Thanks to those like Renay who checked on me via e-mail and phone.

Continue reading →

After a few days off working on a top secret project, I am back to post another weblog. Okay, so the project is not top secret, and I didn’t really have a few days off. I was working for my employer Avanade. I’m really just looking for another excuse to test blogger new e-mail feature.

Continue reading →

It is always nice to test betaware. I submitted the posting below on April 20. Talk about net lag in e-mail.

Continue reading →

System.Xml.Serialization namespace in .NET totally kicks ass. It makes consuming and producing XML almost as easy as writing a class definition. Let me explain.

Continue reading →

Nice and quiet in New York City today. Rain and cooler temps…yey! I’m happy. The rain earlier canceled my roller blading plans but chillin’ in the apartment turned out to be a good thing.

Continue reading →

Bahahahaha…being new to CVS, I really enjoyed this quote, “TortoiseCVS was orginally based on the source code for WinCVS, a more comprehensive but complex to use client. Many thanks to them!”

Continue reading →

Over the years, I have read a lot about the Open Source “movement” and I have been a fan even though I never really participated in an open source effort. I have written a number of freeware applications in my time and now I wish those efforts had been open source.

A lot of cool things have come out of the Open Source community. The one area that has me totally jazzed is the development tools such as CVS, TortoiseCVS, and SourceForge.net. These products are amazing and have me wondering why these great development aids are not used in larger corporations.

I understand not relying on open source for mission critical applications that businesses depend on to survive and gain their competitive advantage. And for years I have worked with companies where the IT staff consistently complain about working with inefficient development tools such as Visual SourceSafe. But tools like these do make sense in the corporate environment. Speaking for one developer, myself, I would be happy if these tools were part of my daily development environment.

Continue reading →

Just when you thought swing technology could not be any better, some guy is issued a patent on side to side swinging. Yes, swinging! The activity most of us enjoyed as a kid. Hopefully the guy will not expect retroactive royalty payments.

Speaking of patents, I have invented a new way to scratch an itch. When I haven’t shaved in a day or so, I will scratch my arm with my chin. I hope to have the patent papers submitted later today.

Continue reading →

ZDNet: Tech Update: Enterprise Applications / IBM drops Internet patent bombshell: A recent IBM patent claim could threaten royalty-free access to a key Internet standard protocol backed by the United Nations. The standard–called ebXML–is an XML-based set of definitions for electronic transactions and business collaboration.

Continue reading →

What UDDI is not? It is not an execution environment for web services.

Recently I have had a number of conversations regarding UDDI and the implementation of private UDDI nodes within the enterprise. During these talks, I’ve noticed a common misunderstanding with regard to UDDI at runtime. It seems that many think of UDDI at runtime as a means to execute a web service. However, UDDI is not an execution environment but one of a number of ways to discovery services.

There are some interesting uses of UDDI at runtime though. One use is to determine the end point to a web service at runtime. This eliminates the need to hard code the end point address in the application. This type of abstraction layer could be used to provide greater reliability within the application in much the same way DNS provides greater reliability verses direct use of an IP address.

Continue reading →

Security in a Web Services World: A Proposed Architecture and Roadmap

Continue reading →

I really hate doing taxes.

Continue reading →

I just discovered an interesting web site, The End of Free. This site lists latest news articles related to “free” Internet services such as free web e-mail.

Continue reading →

As some of you have already heard, I have become a hugh fan of weblogs and specifically BLogger.com. After playing with BLogger for a day, I upgrade to BLogger Pro. It is amazing how much easier it is for me to update and maintain my web sites using BLogger. I only wish I could use it within my corporate firewall for private team web sites on our intranet.

So why am I sharing this with you? Simple. Pro Blogger has a new feature that allows me to publish new content through e-mail. Yep, that’s right. I am composing this entry from Outlook. Within seconds of sending out this e-mail, thecave.com will be updated. Talk about a great service! Now if I could publish my thoughts as I am riding the slopes…

Continue reading →

So the new e-mail feature of BLogger is cool, but it has some problems with Microsoft Outlook. I don’t blame BLogger but Outlook. Why does Outlook try to out smart me by changing formats, etc? Even if Outlook is configured to send e-mail as plain text, it still does weird things from time to time. Guess that’s why I have been a long time user of Eudora Pro.

Continue reading →

I had a nice surprise today. My girlfriend Melanie called me from Brussels. She’s the greatest!

Continue reading →

Microsoft has released a sample of Direct Internet Message Encapsulation using .NET. KeithBa showed off the code sample at the recent Web Service DevCon. The code seems nicely done. I am hoping to play with it later this week.

Continue reading →

The hard drive of my daily used laptop kicked the bucket last Friday. I finally got a replacement drive and now I am going through the painful process of re-installing software. But one piece of software is making this more painful than usual, Visual Studio.NET.

I for one am a fan of VS.NET. It seems Microsoft has finally gotten it right. But this lovely piece of software is just too damn big. The install takes too long and the slightest problem can cause the installation process to take longer. I have been working to install VS.NET since 3 pm yesterday with numerous failed attempts. Funny how Borland’s Delphi ever did this to me.

Continue reading →

I just completed the latest Microsoft Beta exam 71-316 and I now know I should have looked at the title of the exam, Development and Implementation of Windows-base Applications with C# and .NET Framework. This exam is jam packed with WinForm based questions, something I know little about. The exam I took covered areas such as security, configuration (gotta love those wonderful .config files), application packaging and deployment, Windows Form application development, debugging, setting up application menu and help systems, implementing custom controls, ADO.NET (both SqlClient and OleDb manager providers, connection and command objects, DataSet, DataView, data binding, and data editing), and finally XML (through various XML Readers and ADO.NET DataSet).

Continue reading →

Slashdot | Do Programming Languages Affect Your Sexual Performance?

Continue reading →

Another Snowboarding Season Comes to an End

It’s a sad day. I finally stored my snowboard gear away. At least I had an incredible season with 35 days riding the slopes. WASTED was great and hopefully I will get around to posting all the photos online. I have collected some 270 photos from the various people who attended WASTED. The rest of the season included trips with Melanie to Killington, Vermont. And we ended the season together with one last wonderful weekend in Whistler. It was very hard to leave. But I guess there is always next year.

Continue reading →

UDDI Services

Lately I have been looking at all things web services and UDDI. I attended the Web Service DevCon in Portland, OR, which totally rocked! Chris Sells and Tim Ewald did an outstanding job bringing together some of the best minds in the industry for this 2-day conference. And today I looked at Microsoft UDDI Services.

Microsoft UDDI Services appears to be nothing more than an ASP.NET application built on top of a SQL Server database, so I am at a loss as to why Microsoft requires Windows .Net Server to run UDDI Services. I suspect it has something to do with a marketing decision.

Negativity aside, Microsoft has done a nice implementation with UDDI Services. The web interface is nice, maybe even a bit better than Microsoft own public UDDI node web site. And the SOAP interface to the UDDI registry worked in all my test. I have a console app written in C# that uses Microsoft UDDI SDK for .NET. I have been using the console app to test the UDDI SDK against Microsoft and IBM’s public test UDDI nodes. Today I ran the app against a locally installed instance of UDDI Services and the program ran without a problem. This is what I expected to see, but rarely do with other software packages. Nice job Microsoft.

Continue reading →

First Blog Post

Finally! My blog is working.

Following the lead of great minds such as John Lam, Simon Fell, and Mike “call me Mick” Jones, I have decided to change thecave.com to my own personal web log. Years ago I had high hopes of thecave.com becoming an online community for Windows developers but it never happened. And as a result, it has been years since thecave.com was updated.

So if you are interested in what I have to say, stories of my travels, and more, stay tuned to the all new thecave.com. PS: the old programmer’s hideout is still available from the links section on the right.

Continue reading →