Speaking on the SS Titanic

If you listened to the episode of Deep Fried Bytes that I was interviewed on you’ll recall I was interviewed along side fellow SQL Server MVP Denny Cherry (blog | twitter). He recently wrote a blog post called “When the demo’s don’t work the men and women are separated from the boys and girls.

I know from the perspective of the audience it looks like presenters are calm, rehearsed and have everything under control. Sadly, we are usually freaked out, winging it, and trying to herd a group of cats.

Well OK, it’s not quite that bad, but sometimes it does feel like it, especially when disaster hits in the form of our demos going bad. Denny and several others have been sharing stories about their demo disasters so I thought I’d give you a glimpse into the scary mind that is Arcane Code and share with you too.

Demoing Beta software is a lot like working with kids and animals

The old show business wisdom of “never work with kids or animals” could easily extend to beta software. I was demoing the early beta of PowerPivot. I’d rehearsed and work though my presentation several times all without a hitch. So naturally when I was doing it before the audience, nothing seemed to work right. The data imports crashed, none of the charts would display correctly, and it crashed Excel twice. What to do?

Well, I’m a big believer in Scott Berkun’s advice in “Confessions of a Public Speaker”. Let the audience in on it, don’t try to BS. Heck, a lot of the time there are people in the audience far smarter than I am. I’ve even had PHD’s attend my sessions. Even if an audience member is new at coding they’re still smart enough to smell someone trying to feed them a line.

So I simply admitted what was happening, explained what they should be seeing, and kept going. I skipped ahead to some things that were working, fortunately this group took an intermission about halfway through the meeting for a pizza break. While they chowed down I was able to reboot, and get the demos working again. I even had enough time for a few pieces of pepperoni myself!

When they returned, I brought them up to speed on what I’d done, showing them the now working pivot charts. I finished off the section I was on, then returned to my original flow.

A pretty shade of Blue

On two occasions I’ve been bitten by the “Blue Screen Of Death” The first was trivial, I was presenting at CodeStock last year. (By the way CodeStock is open for registration and speaker call, go check it out.) Just as I advanced to the very last slide in my deck, the “any questions here’s my e-mail/blog again” slide, the audience started laughing. I turned to see the “BSOD” screen on the big projector. Fortunately the session was over and I was able to field questions without needing the computer.

The other time though had a bit more of an impact. It was fairly early in my presentation and I had installed Windows 7 Beta 1 on my PC so I could learn it. A few slides in my laptop screen suddenly went black. I was puzzled then saw a BSOD quickly followed by a reboot. What to do?

Well, I just made a quip about using beta software, then proceeded to talk about what had been on the slide I’d been showing and the next one as well while my machine rebooted and I started launching PowerPoint and my demos. It’s a bit hard to talk and launch, but you can get the hang of it, and I think short pauses are OK, especially if the audience sees what’s up. Remember, they can feel your pain, everyone has experienced that lovely shade of blue at some time or another.

More power Scotty, I need more power!

My worst disaster wasn’t directly demo related, nor did the audience ever see it, but it was still a nightmare. I had traveled 3 hours to attend a SQL Saturday. I got to the hotel about 11 pm, to my horror I found I’d left my laptop power supply at home. To make it worse, I’d been using the laptop on the way over (don’t worry my lovely wife was driving) so there wasn’t a lot of battery power left.

Fortunately my wife had her laptop. I wound up staying up until 4 am downloading the various ISOs I needed to install the software I needed to do demos on her computer. Bleary eyed I showed up the next day and was able to do my presentations, using her laptop plus sucking up the remaining power on my laptop. It was a close call, on my laptop I had about 15 minutes of power left when my session was over.

Pain is funny

If you look at YouTube, you’ll find no shortage of people hurting themselves. Falling off things, getting whacked in inappropriate body parts, and we all laugh. So as you laugh at my pain, I hope you’ll take away some of the lessons I learned, should you speak, or even do a presentation at your office.

1. Never BS. Follow Burken’s advice, if something goes wrong simply acknowledge it and move on.

2. Know your stuff. When your computer crashes, and it will, be prepared to keep talking. Know your slides well enough so you can talk even without them. Be prepared to describe in vivid detail what the audience would see if Visual Studio / SQL Server / your tool of choice was running.

3. Create a list, and check it twice. After the forgotten power supply incident, I created a packing list. I have on it all the things I’ll need to do demos with. I check it, and double check it, before I zipper up my laptop bag and suitcase.

4. Have a backup box. I got home from a trip a few years ago, to find the internal screen on my laptop had quit working. I was lucky that it was when I got home, but it still taught me a lesson. Now when I head out, I have two laptops, my main demo box and my netbook.

As netbooks are relatively inexpensive, it wasn’t a big investment, plus with their long battery life they are great for pulling out and taking notes on all day. True, there are a few things I cannot do on my 2 gig netbook that I can do on my 8 gig laptop, but I can at least still run PowerPoint, show the code, etc, even if I can’t run the main demos.

I also keep an external portable hard drive handy. On it I have all the ISOs I might need to load up a computer with the software I need to do a demo. I also have all my demos backed up on it, along with a nifty piece of freeware called Virtual Clone Drive. It installs easily, and lets you mount an ISO as if it were another CD / DVD drive.

As you can see, public speaking is not all fun and games. But it’s intensely gratifying, and I encourage you to give it a try if you ever get the chance.

Handy Conference Tip

As you know if you follow me on Twitter, I’m attending DevLink. A thought just occurred to me, thought I’d pass it along as a handy conference tip.

If you plot out your schedule for the day, you can use Twitter to remind you where to go. Just sign up for a Tweet scheduling service (I’m using TweetLater but there are scads of them). Then schedule a tweet for the end of one session that says “Hey on my way to session X in room 999 to see so and so speak”. Now all you have to do is check your own Twitter feed to see where you need to be next!

TeraCopy

I’m busy getting ready for CodeStock this week, but wanted to pass a long a little tidbit. I’m a fan of a software program called TeraCopy. TeraCopy is a file copy manager that helps when you are copying mass amounts of files. It is far faster than XP, and while not significantly faster (depends on the files) in Vista SP1 or Win 7, it still offers some nice enhancements. For example when copying you can set it to only overwrite older files, great for taking a quick backup. If the copy fails in the middle no more “oops I failed” and everything just stops, rather it will skip the offending file and go on with the rest and give you a nice dialog at the end clearly letting you know which files were troublesome. For more details see their website.

I mention TeraCopy today for two reasons. First today they released version 2.0 of the product (congrats guys!). Second, for today, June 23rd only they are having a one day special, you can buy the Pro version for half price just ten dollars and fifty cents (US). For that price I was willing to pay just to be able to support the development. This is a very useful tool that I use daily, very handy in making fast backups or moving data between my computers.

While you are on the CodeSector website you also might want to check out their DirectFolders product, I only just downloaded it but it seems to be quite useful.

Standard Disclaimer: I have no financial affiliation with Code Sector, the creators of TeraCopy other than being a customer, nor do I get any compensation from Bits du Jour. I just think it’s a cool product.

BSDA Presentation on Visual Studio Database Edition

Last week I did a presentation at the Birmingham Software Developers Association on generating sample data using Visual Studio Database Edition, often called by it’s code name of “Data Dude” for short.  You can find my original posting, which has links to the code gallery site at http://arcanecode.com/2009/04/02/sql-server-sample-data-the-sql-name-game/ .

During my presentation I was using Visual Studio Team System 2008 Database Edition GDR R2, which you can find here: http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en 

This update assumes you have Visual Studio Database Edition installed. Most developers with an MSDN license have the Development Edition installed on their PC. When Microsoft announced the Database and Development products would merge in the Visual Studio 2010 product, they made the Development Editions of Visual Studio 2005 and 2008 available via MSDN. Go check your MSDN, and see if you have “Data Dude”. If so download and install it, then download and install the GDR R2 update from the link above. These will add new menus and tools to your Visual Studio environment.

Most notably you’ll look at the Data menu. there are menu options for Schema Compare and Data Compare. These will allow you to setup comparisons between a source and target for schemas or data.

Blog Action Day – Fighting Poverty with Tech

Today is Blog Action Day, a day for bloggers to rally to a cause. This year the cause is poverty. I firmly believe one of the best ways to fight poverty is via education. Since what I know is development technology, I’d like to offer some suggestions and advice for someone aspiring to get into a career as a developer. Assuming someone has access to even a moderately low end computer, there are some great ways to educate yourself about development technologies at no cost, even ways to get development software at no charge that you can put to use to begin making money.

First are the express editions of Microsoft Visual Studio and SQL Server. You can find these at http://www.microsoft.com/Express/.

If you are still in school, Microsoft gives you access to more full featured versions of their development tools through their DreamSpark program. The site has complete instructions on getting your school added if it’s not already.

There are many ways to learn how to use these products. One of the main ways is through podcasts and video training. There are many I listen to, but the ones I’d suggest starting with are DNRTV, DotNetRocks, Channel 9 and Security Now. Other shows are linked to on my links page.

If you want something to help you manage and find other podcasts, consider the Zune software. Even if you can’t afford to purchase a Zune, you can download the Zune software for free and use it to manage and listen to your podcasts. You can go to the marketplace to find and subscribe, for free, to many podcasts. Once subscribed the software will download them automatically for you.

Finally, check out the free educational opportunities available to you at local user groups. Again on my links page you’ll find a list of groups local to my area. At these user groups, most of which are free, you can learn, and more importantly make contact with people in the tech industry. These contacts will be valuable to you as you seek to begin your career. They can tip you off to better paying jobs, prep you on how to look / talk, and more.

Of course, most of the links I’ve provided here revolve around Microsoft technologies. There are also other technologies available, surrounding languages such as Java, Perl, PHP, Ruby and more that are also free to the aspiring developer. Since they are a bit out of my areas of expertise I’d suggest searching the web for what interests you. If you are not sure, check the want ads (both newspaper and on-line) for the skill sets that are in demand in your area.

Using your time to advance your education can give you knowledge with makes your more valuable in the workplace, a proven path to escaping poverty.

My Dev Kit

There’s a new meme of sorts on the web, folks talking about the tools they use to develop with. I first saw it on Shawn Wildermuth’s blog. Shawn’s a great guy, he co-wrote most of those .Net MCTS/MCPD study guides from MS Press, and does a lot of training on Silverlight. So I thought I would keep the meme alive and talk about my own tools.

Hardware

I do a lot on the road, so a laptop is essential. Mine’s getting up there in age, it’s an HP Pavillion dv8000. 2 gig ram, two internal 160 gig hard disks, 17 inch wide screen, single core 64 bit processor. It’s OK, but will hopefully get replaced next year with something with more cores and horsepower. I don’t care much for the keyboard, so I bought an external keyboard from Lenovo. It’s got a trackpoint so I don’t have to take my hands off the keyboard very often, and I use it with both my laptop and the Dell that work supplies me.

At home I use a larger wireless Microsoft mouse, on the road I use one of the smaller Microsoft travel mice. Also in my hardware list is an external Seagate 1TB drive. It hooks up via either firewire or USB, which is nice when my USB ports are all full.

Also in my list is my Zune. Yes my Zune. Cubical farms can get noisy at times, some good tunes on my Zune really help me to zone out and ignore my surroundings, focusing on my code. It’s also nice on my commute or daily walk, I listen to podcasts to keep up my technical knowledge. At night I hook it to my TV via my X-Box 360 to watch video podcasts, or sometimes I lay in bed before going to sleep and watch.

My final piece of hardware is my iPaq, it helps keep my appointments in line and my contacts, plus I have lots of e-books loaded on it for reading. I also used to use it for podcasts prior to getting my Zune.

Operating System and Dev Tools

My laptop currently runs 32 bit Vista Ultimate with Service Pack 1. Since it maxes out at 2 gig, and some 64 bit drivers were not available when Vista first arrived, I saw no benefit to 64 bit and took the path of least resistance. I have quite a few virtual machines in a variety of OS (Server 2008, 2003, XP, Vista, and Ubuntu) for testing, development, and running Beta versions of programs. For a web browser, I bounce back and forth between FireFox and IE7. For a while I was using FF most of the time, but IE7 was a big improvement over 6, and I’m now using them about 50/50. I suspect when IE8 comes out I may be using it more, but will have to see.

Like Shawn I also use Outlook 2007 for my e-mail client. It’s so much easier to organize my mail in Outlook than the g-mail host. But I also use the other features, such as the calendar and task list to help manage my life. I also use the rest of the Office suite for my daily tasks.

I use SnagIt for grabbing still screen captures, awesome tool, and Camtasia for video screen captures. I’m working on several video tutorials now, which is fun but time consuming (which also explains while my blog posts have been off of late). I use Paint.Net for basic photo / image editing. For creating my blog posts, I write them originally in Word 2007, then use Windows Live Writer to post them to my blog.

For quick access to my daily programs, I use one of two things. I really like Bayden Systems SlickRun. I also create a shortcut menu using a technique I blogged about in February.

Developer Tools

As you might expect I use both SQL Server Management Studio and Visual Studio 2008 Team System for day to day development. My top add-ins are Red-Gates SQL Prompt bundle for SSMS and CodeRush for Visual Studio. For a text editor, I absolutely love UltraEdit. Since I have blogged a lot about my dev tools in the past, I will keep this section short.

The Cloud

I’m on a couple of social networking sites, in addition to this blog:

· Twitter

· Posterous

· LinkedIn

· MSDN Code Gallery – One site for SQL Server Full Text Searching and one for SQL Server Compact Edition.

Passing the Baton

OK, your turn, let’s see your blog with your tools!

The Arcane Internet

I know, I promised to get you up to speed with SQL Server 2008 after my Virtual PC post yesterday. Sadly a nasty thing called work got in the way, and I’ve had  couple of late nighters. It’s coming, I promise. Meanwhile, a few tidbits from around the web.

If you’re a developer, you’re probably aware that MIX 08 has kicked off in Vegas. Sadly, I ain’t there, and am insanely jealous of everyone who is, but that’s life. That doesn’t mean we can’t join in virtually though. The keynote was broadcast live, it was really cool to be able to watch it as it happened (or as much as I could, as I did have to work and wound up listening more than watching). If you did miss it, you can still catch the recording at http://visitmix.com/blogs/Joshua/Day-1-Keynote/ . There were a lot of big announcements, including the release of Silverlight 2.0 Beta 1 and talk about Silverlight for Mobile apps. In addition all the sessions will be available as videos 24 hours after they are presented, so tomorrow (Thursday) we should start seeing some content.

But Microsoft isn’t the only ones producing Mix video on the web. The folks at CodeBetter.com are using Qik to stream live video to the web. I watched a good interview with Miguel de Icaza earlier, I see another one since I left work. Check them out on their Qik site at http://qik.com/codebetter .

The Mix conference isn’t the only place producing video. Earlier tonight the North Dallas .Net Users Group streamed their meeting over the web. I got to watch a few minutes of it but needed to get back to my late night work. But wow, what a concept, a local user group streaming their sessions live over the net. Kudos to them for doing something cool. If I can get all the bugs worked out, and of course get the presenters consent I may very well stream our next Birmingham Software Developers Association meeting live on the web. No promises yet though, lots to work out.

Finally, you may ask how did I learn of all this wonderful content? Twitter! Boy I have to thank Keith Elder, I’ve picked up a lot of good tips since I started. From now on I’m going to be like Jeff Barnes and do everything The Elder says!

Hey, I guess they’re wrong. With all this great Mix content flowing out on the web, what happens in Vegas DOESN’T stay in Vegas!

The Best Intentions

Well, I set out tonight to do some more studying of PowerShell, my new love in life. Then I intended to create a blog entry, but a Twitter post reminded me of something I’d seen on the Hanselman Forums, and next thing I know I’d sucked up my alloted time over there.

So if you want to see what I’ve been up to tonight, check out the Hanselman Forums at
http://www.hanselman.com/forum/default.aspx

Most of what I posted was in these threads: Productivity Tools, Hanselminute Shows, Off Topic and Philosophy of Software.

I can’t leave without passing along at least one PowerShell related tip: I’ve been listening to the PowerScripting Podcast all week. They’ve had 19 shows so far, I started at 0 and am up to number 8. Very good stuff, lots of links to PowerShell tools and tips. One reason it’s taking me so long is I keep stopping to make notes or check out some link they give.

Avoiding Burnout OR How I learned to stop worrying and love the PowerShell

Most geeks I know tend to be workaholics. We go and go and go on a subject, spending long hours in front of our PC’s until we’ve conquered whatever we’ve been working on. It’s important though to avoid getting burned out. When we’ve exceeded our capacities, we’re depressed, dread looking at things, our productivity goes to near zero and stress wreaks havoc on our health.

For the last two months I’ve been hammering away at SQL Server, getting ready for my presentations at the recent code camp. While I’m not quite at the burn out stage, I recognize it’s just around the corner and decided I needed a break. At the same time I came away from code camp energized and wanting to learn something “techy”. The answer then was obvious, to find some technology that was new to me, and that I could use in conjunction with my SQL Server work, but was not directly SQL Server.

I twittered about going to the bookstore on Sunday, what I was actually looking for was a book on F#. (Yes, I’m an old fogey and still like books as a good platform for learning.) F# seems to fit well with processing sets of data. Sadly the stores lacked any tomes on the subject.

powershellstepbystep I did find, however, a book called “Windows PowerShell Step By Step”. This looked like a great fit for my needs. It’s small, around 220 pages so it’s something I can easily read in a short amount of time. It’s on a subject I was interested in, PowerShell. I believe PowerShell will soon become an integral part of all Server based technologies, and we’ll be able to perform remarkable amounts of maintenance and more with PowerShell.

Over the next few days I’ll give some more resources for PowerShell that I’ve already found, but I can tell you I love PowerShell already. My post for today is not so much about PowerShell but about burnout. When you’ve spent a lot of time hammering away, don’t forget to come up for air every so often. Look around, see what other tools are available for you to learn. You’ll find yourself refreshed, and have new skills to boot!

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.

Arcane Fun Fridays – Broadcast your Podcast

A little fun tip for today’s post. As long time readers know I love podcasts. They are a great way to capitalize on time, learning while doing other activities. As I was puttering around the house, I wished I had an easy way to listen to my podcasts without having to use my headphones, and also be portable. Then it occurred to me, I did.

When I drive back and forth to work, I use a cassette adapter to plug into my cheapy mp3 player into the my old car’s stereo and listen to my podcasts. Sometimes I travel on business, and these days it’s seldom I get a rental car with a cassette, so I picked up an inexpensive radio transmitter, similar to this one but a heck of a lot cheaper. Well, being an amateur radio operator (often called “ham radio”) I have a wide variety of power supplies lying around. I dug into my box and found one kind of like this. I mated them up, found an unused frequency, and plugged the other end of the transmitter into the speaker jack of my computer and boom I was listening to my podcasts through my various radios. Very nice, and I can see a lot of use.

I was pleased too with the range, I can hear it all over my house and even into my yard a bit. I could probably get a bit more range moving it out of my office basement.

One last hint for today, next time you go to various stores keep an eye out for a “clearance” area. They are usually tucked away in the back corner of the store, often near the restrooms. I know I’ve seen them in Staples, Radio Shack, Office Max and Office Depot to name a few. You can get some really good deals, for example I picked up my transmitter for 10 dollars, marked down from the original 49 bucks. Also check out sites like woot for “deal of the day” specials.

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.

Arcane Lessons Updated

I just got done updating the Arcane Lessons page. I added the last couple of weeks of WPF lessons to the WPF area, added one new item to the SQL Server Full Text Search area, and created a new category: Arcane’s Toolbox. This first list is all of the Visual Studio add-ins I’ve blogged about. Later I plan to add some of my favorite Windows add-ins, but if you don’t want to wait you can click on the Windows Add-ins tag to see the posts.

Follow

Get every new post delivered to your Inbox.

Join 93 other followers