Getting Tagged by the Software Developer Meme

There’s a “meme” going around the net. A meme, for those unfamiliar, is defined as a unit of cultural information, such as a practice or idea, that gets transmitted verbally or by repeated action from one person to another. On the web, a meme is a theme, usually a series of questions that get passed from one person to another. After one person answers, he tags one or more other folks. Well, I got tagged!

StatisticsIO, better known as Jason Massie, got me. To keep his link chain alive, this has now gone from: Denis Gobo > Andy Leonard > Frank La Vigne > Peter Brown > Chad Campbell > Dan Rigsby > Michael Eaton > Sarah Dutkiewicz > Jeff Blankenburg > Josh Holmes > Larry Clarkin > Jason Massie > Me! So without further ado…

How old were you when you first started programming?

12 or 13, it was on a TRS-80 Model 1.

How did you get started in programming?

My dad had written a Star Wars game programming in Basic on the TRS-80. I hacked it so I could beat my sister most of the time, and the rest was history.

What was your first language?

BASIC, of course.

What was the first real program you wrote?

As I recall, it was a character generator for Dungeons and Dragons back on the TRS-80. Involved a lot of random number generation and printing.

What languages have you used since you started programming?

In no particular order: BASIC, Pascal, Quick Basic, Visual Basic, COBOL, C, C++, C#, Delphi, Fortran, dBase, FoxPro, RPG III, a little assembler, probably some more I can’t recall. Working on learning Powershell and F# now.

What was your first professional programming gig?

I guess it depends. A friend of mine and I co-wrote an inventory system for someone who wanted to start a company. It was written using compiled BASIC 1.0, and the software and DOS had to fit on one floppy disk, then the inventory for the store had to fit on a second floppy. Unfortunately they went under before we could get paid. I then went on to write a dBase II system for a lawyer to organize some charity or other, that was the first system I actually got paid for.

If you knew then what you knew now, would you have started programming / DBAing?

Oh yes, love it! There’s something rather intoxicating about making the computer sing and dance to your whim.

If there one thing you learned along the way that you would tell new developers, what would it be?

Can’t decide on one, so there are two things I’d share. First, as much fun as coding is, never forget you are there to solve a problem. Ultimately it’s not about you but about the user experience. Don’t be afraid to subjugate your ego to the success of the project, ultimately it’ll pay.

Second, take time for the peripheral skills. Communications, business, etc. These will make you far more valuable as a professional developer than technical skills alone.

What’s the most fun you’ve ever had … programming?

Hmm, tough call. Believe it or not I used to work for a prophylactic factory. It was a lot of fun coding the interfaces between the machine that printed the serial number on each one, and the production database.

Either that or right after we got married I spent close to two years working from home. My wife would sometimes sit in my lap and snuggle up while I was able to reach around her and keep coding. Distracting perhaps, but the question was about fun not productivity!

Who are you calling out?

Hmm, let’s see, that’s a tough one since this meme’s been around a while. Let’s annoy…

MaggiePlusPlus

Rachel Appel

Amanda Launcher (AKA Pandamonial)

Jeff Barnes

Keith Elder

Chris Woodruff

Glen Gordon

Shawn Wildermuth

Michael Neel (ViNull)

Dougal Campbell

Paul Waters

Wow, looks like there are still some victims developers left after all…

Advertisement

Happy Towel Day!

Wanted to wish everyone a Happy Towel Day!

If you are not familiar with the concept, it’s a tribute to the late Douglas Adams, who passed away May 11th, 2001. In addition to being a prolific author and creator of the Hitch Hiker’s Guide to the Galaxy, Adams was a big technology enthusiast. He helped create several video games, and was a big promoter of hypertext.

To Quote the Hitchhiker’s Guide…

A towel, it says, is about the most massively useful thing an interstellar hitch hiker can have. Partly it has great practical value – you can wrap it around you for warmth as you bound across the cold moons of Jaglan Beta; you can lie on it on the brilliant marble-sanded beaches of Santraginus V, inhaling the heady sea vapours; you can sleep under it beneath the stars which shine so redly on the desert world of Kakrafoon; use it to sail a mini raft down the slow heavy river Moth; wet it for use in hand-to-hand-combat; wrap it round your head to ward off noxious fumes or to avoid the gaze of the Ravenous Bugblatter Beast of Traal (a mindboggingly stupid animal, it assumes that if you can’t see it, it can’t see you – daft as a bush, but very, very ravenous); you can wave your towel in emergencies as a distress signal, and of course dry yourself off with it if it still seems to be clean enough.

More importantly, a towel has immense psychological value. For some reason, if a strag (strag: non-hitch hiker) discovers that a hitch hiker has his towel with him, he will automatically assume that he is also in possession of a toothbrush, face flannel, soap, tin of biscuits, flask, compass, map, ball of string, gnat spray, wet weather gear, space suit etc., etc. Furthermore, the strag will then happily lend the hitch hiker any of these or a dozen other items that the hitch hiker might accidentally have “lost”. What the strag will think is that any man who can hitch the length and breadth of the galaxy, rough it, slum it, struggle against terrible odds, win through, and still knows where his towel is is clearly a man to be reckoned with.

I’ve got my towel, how about you?

A Tale of Excellent Customer Service

In this day and age, we hear a lot about bad customer service. Complaints, bad reviews, negative publicity abound on the internet. So for a change, I thought I’d share a tale of excellent customer service.

Last night I tried to install UltraEdit. In my last post I mentioned having bought a new hard disk, and am still getting everything set back up. As part of UltraEdit’s setup, I had to enter my authorization key. For some reason, I couldn’t get the software to accept my key, event though I knew it was valid.

So this morning I e-mailed their customer support address. Less than 15 minutes later I get a response. I figure it’s one of those automated “we got your message, will reply in 24-48 hours” like most companies send. But no! This was an e-mail from a real live person named Renѐe.

The problem was a conflict with Vista SP1’s security, under non-admin mode it wouldn’t let UltraEdit write whatever it needed to, to save my registration info. All I had to do was right click on the uedit32.exe and Run As Admin. That time it took my authorization and saved it correctly.

After getting it fixed I let Renѐe know it had fixed the problem, and even got a “Thank You” e-mail for letting them know. Wow! Within 20 minutes of sending in my support request my problem was fixed and I was a happy camper.

Kudos to IDM Computer Solutions for a great product and even better customer support, and thanks to Renѐe for such a quick and courteous experience.

Life Without the Internet

I got home last night to discover my internet connection was down. I immediately went into withdrawals. No e-mail, no vpn, no podcast updates for my Zune, no Twitter, no IPTV. Last weekend I bought a new bigger / badder /better hard drive for my laptop in preparation for TechEd. I tried to install some software, but almost everything required an internet connection to validate, verify, and register.

I was amazed when I realized how much of my life had become dependant on the internet. I do a lot of social things, via the web. User group communications, announcements on http://altechevents.com, e-mail with other developers, and more.

Fortunately for me, my cherished bride suffered through 85 minutes of tech support calls this morning and worked to get the internet back up and running. Way to go baby! (In the interest of full disclosure, her motives were not entirely altruistic. She’s as big an internet junkie as I am. Nonetheless I do appreciate the pain and suffering she endured, having to call a tech support line. )

Life without the internet… it’s a scary place!

A Change of Pace

I got to do something today I rarely get to enjoy, telecommute. It was sort of forced on me, I pulled / tore a muscle in my back, and when exercise didn’t work the doctor gave me some meds. So until I was sure what the meds would do, I needed to avoid driving, and thus got to telecommute today.

The weather was so nice, I decided to sit out here on my screened in back porch all day. I used my main laptop to remote in to the office and take care of work. Most of it was downloading, testing, and fxiing my Virtual PCs all day. Necessary but time consuming tasks that don’t require a lot of brain power. So on a second laptop I tuned in to http://twitlive.tv . It was pretty cool to watch Leo live as recorded Security Now, Net@Nite, and a whole weeks worth of The Giz Wiz.

During lunch my family (we home school) joined me on the deck for some lunch. Now, as darkness has fallen my wife has brought me some home made sugar cookies, fresh and hot from the oven. Just perfect, with the stiff outer part but the gooey hot centers. Mmmm.

There’s nothing like a little change of pace to make your work day enjoyable. What kinds of things do you do for a change of pace?

Microhoo not to be

Seems like Steve Ballmer doesn’t mind working weekends. Microsoft has withdrawn it’s offer to buy Yahoo. Check out the Marketwatch column:

http://www.marketwatch.com/news/story/microsoft-withdraws-proposal-acquire-yahoo/story.aspx?guid={3A657B77-2EDE-4B6A-96E9-DD197C07850C}

If you want to pass it along, I’ve also shrinksterized it in what coincidentally is one of the coolest Shrinkster links I’ve seen:

http://shrinkster.com/xml

Ultimately I think this is probably good for Microsoft. It would have been a huge uphill struggle getting this deal approved, especially in the European Union. For Yahoo it would have been a mixed bag, I think it would have been good for the shareholders, but I don’t think their IT arm would have been overly happy about it.

In other interesting news that I think is uber cool but has nothing to do with Microhoo, Gizmodo is reporting a MacGyver movie is in the works.

http://gizmodo.com/386877/holy-crap-macgyver-blockbuster-film-coming

Thanks to the Twitterverse for the news, @dewaldp and @sweekly.

See, I TOLD you Apple is the Evil Empire

Some time back, I wrote a blog post describing Apple as “The Evil Empire”. Now a nationally known figure is adding her voice to the chorus. In this CNet Buzz Report, Molly Wood describes Apple as her “bad boyfriend”. They The guy who forces her to look good, tell her what cell phone carrier to use, etc without caring about her.

I thought that was a pretty apt description, and it really helps delineate the differences between the Apple philosophy and everyone else. Apple keeps tight control over their domain. Who cares if the new Air only has 1 USB, no firewire, no internet, no optical drive, no media card reader, and no expansion slots? Hey it LOOKS good. And those pretty new i-Phones? Oh, you can only use the carrier THEY pick out for you. Third party apps? Only if they give their blessing, which they still haven’t done. But hey, it LOOKS good.

Contrast that with both Windows and Linux. You can run the OS on any machine you wish. Windows Mobile? sure, any company who wants to license it for their device or carrier great with them. Heck Microsoft was even so open they let the i-Phone work with Exchange. But people complain that Microsoft isn’t open enough? And after Apple’s latest stunt of trying to force Safari down everyone’s throats via the iTunes update, I’d better not hear any Mac-Head deride the Windows Update process as “sneaky”.

It’s no wonder people are resorting to installing Windows on their MacBooks, it’s the only way they can get the freedom to get any work done!

Arthur C. Clarke Died Tomorrow

I was sitting in front of my computer the other night, it was about 11 p.m. local time on March 18th, 2008 when I saw a Twitter message that the great Arthur C. Clarke had passed away. Included was a link to his Wikipedia article which detailed his life and his passing away at age 90, on March 19th, 2008.

Yes, you read that correctly, from my perspective Arthur C. Clarke died tomorrow.

Of course I did a double take, shook the sleep out of my eyes and quickly realized it was all due to time zones and that pesky international date line. Like a lot of young geeks I grew up on a steady diet of science fiction from Sir Arthur C. Clarke, along with others like Issac Asimov and Robert Heinlein. Their visions of the future helped in large part to inspire the creativity of a technological generation and contributed to many of the things we enjoy today, including these really cool gizmos we call computers.

I must admit though, when I first read the news I was a bit rattled. From my perspective, I was reading about someone who had already died, in the future. Somehow I think Sir Clarke would have found that fitting.

The Developer Experience

In case you’re wondering why the slowdown in the blog this week, I’ve been spending all my free time getting ready for Alabama Code Camp 6. My first presentation of the day is “The Developer Experience”. It’s chock full of practical, low cost (or even free!) ways to make your life as a programmer more productive.

As promised in the session, here’s the complete PDF of my slides:  The Developer Experience

Alabama Code Camp

The sixth Alabama Code Camp is coming up February 23rd, 2008. Registration is now open, as is the call for speakers. Many, including myself have submitted, you can see them by going to the Alabama Code Camp site and clicking on the speakers link. The list of speakers is very impressive, no less than eight MVPs, and at least two authors. I’m humbled to be amongst such distinguished company!

Here’s the synopsis for my two sessions, in case you are curious:

Introduction to SQL Server Integration Services

Whether you are creating a full blown data warehouse, doing a data conversion from an old system to a new one, or integrating applications together SQL Server Integration Services can help. Get an overview of this powerful tool built into SQL Server.

The Developer Experience

Learn about tips and tricks to enhance your experience as a developer both in the physical world and the virtual world. See hardware that can make your life easier, software additions for Windows and Visual Studio, even how just a few tweaks in the Visual Studio options can make your experience as a developer more pleasant and productive.

This is shaping up to be an impressive code camp, so don’t hesitate and get registered today!

Feng Shui and the Art of Development

I’m not a big proponent of Feng Shui. For those unfamiliar with it, Feng Shui is a Chinese philosophy that essentially says that the placement of your furniture can have a big affect on your health and prosperity. Like a lot of things, something that starts off as a good idea seems to me to be carried too far. I do however firmly believe that your physical environment can have a dramatic effect on your mental environment. I saw a blog posting by Scott Hanselman describing his new home office layout. It was then that I realized something important: my own home office no longer worked for me.

I’ve been in my house eight years now. Like a lot of folks, I accumulate a lot of things related to my work / hobby. Books, computers, CDs/DVDs, and gadgets galore. It probably doesn’t help that my home office is also my ham radio “shack”, the place that contains all my radios, books and associated gear. For some time now I’ve been pretty unhappy with my basement office, having problems concentrating, etc. It had even gotten to the point where I had no place to even lay a book and reference it while working. After reading Scott’s post I immediately realized what my problem was: my environment.

Unfortunately December and early January were a bit hectic, what with my wife’s health problems and work, I haven’t had much spare time. Well, this weekend good luck finally arrived. My wife is healing very nicely and is much more self sufficient. We had snow, which made going out impractical, so it was the perfect opportunity. I pulled nearly everything out of my office, placed a lot of my “junk” into storage and relaid out the tables I use for working.

I’m typing now from my reconstructed office. A lot of the spare parts I had accumulated are gone, boxed up and placed in the storage area under the stairs. A lot of old catalogs and magazines hit the trash, many of the books I seldom reference were moved to another area of the house that had space. I now have plenty of space for my computer and can finally have all three monitors laid out side by side. I have a workspace now, somewhere to put the book I’m using for learning or reference. In addition, the moving of old books gave me space to put away my new books. I was able to do a little shuffling so the books I currently reference the most were on the lower shelf within arm’s reach, instead of piled on the floor.

Once again my office feels like a safe place to learn. When it comes to your office, whether it be your desk at your employer or your desk at home, don’t overlook your environment. Everyone has their own style. Look around your office right now. Is it comfortable? Quiet? Can you think effectively? Are the tools you need close at hand? If you answered any of these “no”, then start thinking about what you can do to make your home office a refuge, a safe place to work and learn. Then go do it.

Life in Tinkie Land

My wife wrote a rather long post over on her blog, southerntinkerbelle.com. She detailed her hospital stay from her point of view. I thought the whole thing was rather surreal, although I did think it extremely cool the hospital had free wi-fi. Let me keep myself occupied with my laptop while she slept.

I know I sound like one of those typical husbands when I say this, but I never quite realized how much she dealt with on a daily basis until I tried to do it for her, and hold down my regular job, not to mention taking care of a wife recovering from surgery. Fortunately my work was very nice and let me telecommute last week which made life a bit easier for all of us.

I should probably try and draw some sort of metaphysical parallel between  the whole event and software development, but frankly I’m just glad she’s on the mend and doing much better.

Where’s Waldo?

I have been a bit absent of late with the blogging. I just thought I’d take a second to explain. Last week my beloved wife had some pretty serious abdominal surgery. She’s going to be fine, but for a bit I’ll be playing both Mommy and Daddy, taking care of the kids, doing housework, etc. Thus my spare time for blogging, learning new technology and other geeky pursuits is quite limited.

I did have one pleasant surprise, during the three day hospital stay (yes I stayed with her) I found the hospital had free public wi-fi. When she was napping I was able to get out my laptop and handle a few work items, and communicate to the extended family about her condition. It was a nice “extra” that made the stay that much better.

It got me to thinking, there are a lot of places I go that it would be nice to have that free wi-fi access. Anywhere that you spend a lot of time, or need to do some sort of research. Around here I know several restaurants and coffee shops with it, as well as all the public libraries. There should be more though. One bookstore chain has wi-fi, but charges for it, another doesn’t have it at all. I mean, come on wi-fi doesn’t cost that much, and I would certainly be paying for it through my store purchases.

Doctors offices are another place I wish I had it, often you can spend hours waiting on a doctor. Sure would be nice to be able to check e-mail and let the office know “I’ll be here a little longer…”

What other public locations can you think of that you’d love to have some wi-fi in?

Does MacGyver Dream of Mark Miller?

For Christmas this year my family gave me a copy of MacGyver, Season 1 and 2 on DVD. My wife’s side of the family gave me a gift card which I used to get seasons 3 & 4. I’m a long time MacGyver fan, but my wife had only seen one or two episodes and my kids had never seen it at all, so we’ve been having a lot of fun watching. My favorite part of the series was the voice-overs, where you’d hear MacGyver’s voice as he explained what he was doing. It always started with some odd thought or story that led you through the thought process of how he came to the conclusion to build whatever wacky life saving device he was constructing.

I’ve come to realize in some ways these blog entries are sort of like the MacGyver voice-overs, my inner thoughts being created for you on the web. So I hope you’ll bear with me a few minutes while I relate a rather bizarre dream I had last night.

In my dream I’m standing on stage, in front of a fully loaded computer. It has all the bells and whistles, VS2008, SQL Server, and so on. On the other side of the stage, Mark Miller is there, in front of a similar computer. For those unfamiliar with Miller, he’s the genius behind CodeRush and RefactorPro, tools to help you write code faster. Some time back, when the product was first released Miller used to challenge the audience to beat him in a code writing contest. His machine had CodeRush, and he would use chopsticks to write code, his competitor could use their fingers but did not have CodeRush on their machine. Of course Mark always won.

So sure enough, in my dream there’s Miller, chopsticks in hand ready to go, and I’m the guy going up against him. Our task is to take data from table A1, create a mirror table and name it table A2, and then move all million rows from A1 into A2. As you might guess, in my dream, I win. How?

Well I didn’t write a program. Instead I first jumped into SQL Server Management Studio (SSMS) and used its script generating capability to produce a create table script. Make a quick search and replace and boom I’ve got table A2 created. I then jump over to the Business Intelligence Developer Studio (BIDS) to create a SQL Server Integration Services (SSIS) package to do the data move. (Yes, I probably could have used the script generation of SSMS again to generate an Insert script, but I was showing off.) In about three to four minutes I had accomplished the task and moved all the data while Miller was pecking away at computer with his chopsticks.

I didn’t win because I’m a hot shot coder who is smarter than my competitor. Miller is a (some say mad) genius who can run circles around me in the coding world. As I told the folks in my dream, and I’m telling you now sometimes the best solution to a programming challenge isn’t to program at all! If you read yesterday’s post, Straining at Gnats, you may recall I said “…take some time. Push back from your computer and think for a moment. Think what the true outcome of your application is supposed to be. Not “what will the program do” but “what will the program do for the user???” Think about how best to achieve the user’s goals.

When you are thinking about solutions, take a minute to look outside of your favorite programming language. Is it possible to achieve the goal without writing any code at all? What tool or tools do you have in your tool box that you can combine to get the job done? Here’s a great example that happened to me just before I took off on my holiday vacation.

As I’ve mentioned before at work we have a Business Intelligence (BI) app I work as the lead on, it imports data to a SQL Server 2005 warehouse via SSIS then uses SQL Server Reporting Services (SSRS) to generate reports. The data is imported from a work order management system we bought many years ago. We also have some engineers who have a tiny little Microsoft Access database. This database has a primary key column; we’ll call it a part number for purposes of this example. There are three more columns, some data they need to know for each part but are not found in our big system. They’d like to add this data to the reports our BI app generates. Two last pieces of information, they only update this data once per quarter. Maybe. The last few years they have only done 3 updates a year. Second, the big system I mentioned is due to be replaced sometime in the next two years with a new system that will have their three fields.

A lot of solutions presented themselves to me. Write an ASP.Net app, with a SQL Server back end then use SSIS to move the data. Elegant, but a lot of work, very time consuming for a developer, especially for something that can go away in the near future. Write an SSIS package to pull data from Access? Risky, since we had no control over the Access database. A user could rename columns or move the database all together, in either case trashing the SSIS. Several other automation solutions were considered and rejected, before the final solution presented itself: not to automate at all.

Once per quarter I’ll simply have the engineers send me their Access database. Microsoft Access has a nice upsizing wizard that will move the table to SQL Server, I’ll use that to push the data onto the SQL Server Express that runs on my workstation. I’ll then use the script generating capability of SSMS to make an Insert script for the data. Add a truncate statement to the top to remove the old data and send it to the DBA to run. When I ran through it the first time my total time invested was less than ten minutes. In a worst case scenario I spend 40 minutes a year updating the data so it’s available for reporting. That’s far, far less time that I would have spent on any other solution.

The next time you have a coding challenge, take a moment to “think like MacGyver”. Look at all the tools you have lying around your PC and see what sort of solutions you can come up with. Once you are willing to step outside the comfort zone of your favorite coding language, you may be able to come up with some creative, MacGyver like solutions to your user’s problems.

 

PS – If you missed the announcement while on vacation, DevExpress just released CodeRush / RefactorPro 3.0. More than 150 refactorings and lots of new CodeRush features! Update yours today.

Happy Anniversary

I typically don’t post much in the way of personal stuff here on my tech blog, but I had to take a moment to wish my beloved wife “Ammie” Happy Anniversary! Eleven years ago today my best friend and I walked down the aisle, which was an adventure in and of itself. Here’s a hint for all you guys out there: if you are going to get baptized together the day before the ceremony, make sure your bride to be’s ex-boyfriend isn’t in charge of filling up the baptistery!

My wife always wanted to have a baptism ceremony with her groom, so the day before they wedding we got baptized together. Let me set the scene for you. It’s December, and even though we live in the sunny south it was still COLD that day. As in 33 degrees Fahrenheit for the high. Oh, and winds from the north at 15 miles per hour, which made the wind chill factor “way on down there” as we say.

Seems my wife’s ex thought it might be a good idea not to fill the thing ahead of time and let it get to room temp. Oh no, he thought we needed the water good and fresh. Fresh from the icy cold well they used to fill it. And did I mention it seems that just coincidentally the heater for the water wasn’t working that day?

So when the pastor, my bride and I got into the water, little icebergs were floating all around us. And then just as the pastor is about start the dunking “Brother Bill” who was on stage, got a little befuddled about his part. He was supposed to give a little talk after our dunking, but got confused and started on his fifteen minute monologue while we were still standing in the frozen pond they called a baptistery.

Someone finally drug Brother Bill off stage and we got on with the dunking. More fun followed, it seems when you exited the pool, the door led outside. Yes, you read that right, outside. It seems the building designer didn’t want wet robes dripping on the carpet, and thus in bare feet and dripping wet robes we walked down the long side of the church, then back around the front and back in to the bathrooms.

The fun didn’t end there though, we still had the ceremony to get through. At the end of each pew were candles and garland. My wife had a long veil on her gown. Can you guess where this is going? About half way down I saw a little flare up as the thing began to smolder. Fortunately just as quickly I saw a pair of hands, I still have no idea who it was, reach out and snuff it out. Fortunately the happy bride was blissfully unaware as she continued her march.

Disaster was almost repeated during the candle ceremony on stage, you know the one where we take two candles and light one in the middle then blow ours out? This time I was on hand, she was so excited she brought her candle right to her face forgetting her veil, I had to stop her before the open flame reached it.

I had my brain dead moment of glory as well. We were rushed through our ceremony, photos, reception, and by the time we left we were both starving. We stopped at a drive through window, and my new wife asked me to get some cold meds out of the back. Yes, the cold dunking in the baptistery had left her sick! Well I was so excited I sat my 32 ounce cup of ice tea on the dash in front of her, then jumped out. I have a stick shift. Guess what I didn’t do?

Yup, take it out of gear. I stalled it out and large cup of tea went floop right in her lap. Icy cold again!

It all turned out well though. Eleven long years, two kids and a mortgage later we are still happily married and going strong. I have to give a lot of credit to my long suffering wife for putting up with me, listening to my ramblings about the .Net framework or some SQL function, and staring at the back of my head while I worked on blog posts or learned some new tech.

Happy Anniversary Ammie! Love ya babe!