Category Archives: Thoughts

We interrupt this blog to get Ramped Up!

I promise to wrap up the FILESTREAM series shortly, I just want to ensure all of the code samples are complete and properly documented. Meanwhile I have a cool website I want to pass along.

Last week my friend Doug Turnure of Microsoft was on Dot Net Rocks! He and his co-worker Johanna White were talking about a new training site, Ramp Up! Available at http://myrampup.com this is a very full featured training site. There are a series of topics to train on, and each topic is actually a complete training course. Each course is a series of lessons in a variety of formats.

Doug and Johannna have taken a unique approach to this site. For example, there are three different courses available to learn ASP.NET. One is for people coming from an ASP background, another for experienced JAVA developers, and a third for people with no web experience. What a great idea!

In addition they have retained or recycled material for developers who may not be working on the cutting edge. There is a course for people coming from VS2002/2003 to VS2005, for example. This is great, I meet a lot of developers who are just now shifting to the .Net 2.0 platform and are looking for good training material.

Congrats to Doug, Johanna and everyone involved in creating this site. It’s  a great idea, totally free, and make sure to visit it frequently as they will be adding more material as time goes by.

The Arcane Code Dungeon

I’ve been playing around with my new Flip camera, and and created a video that I uploaded to YouTube. A while back I saw someone from Microsoft show off his office environment so I thought you might enjoy seeing where the Arcane Coder spends a lot of his time.

Enjoy!

Inspiration in New Places

Michael Arrington did an interesting post on TechCrunch Saturday. Essentially he recommends putting down the business books and reading Sci-Fi as inspiration for new technologies. Seeing what others have dreamed of as a way to come up with new and innovative solutions.

It’s an interesting concept, looking to new places for inspiration to solve problems. I’m wondering what new ideas can be derived by rereading some of these classics with an eye not just for entertainment, but inspiration. I think it’s time to dig out my copy of The Foundation Trilogy and The Caves of Steel.

Why Celebrities on Twitter is a Good Thing

Recently there has been a flood of celebrities on Twitter. Many in the tech industry have begun the “end of Twitter” cry already. True, the influx of some air headed bleach blond celebrities that use Twitter to advertise their shallow lives to an equally air headed fan base adds little to the universal intelligence quotient. Remember though that the population of Celebs reflects the population in general. Many are very bright, creative, and intelligent.

Over the weekend I was watching an episode of Tekzilla where Veronica was interviewing Levar Burton. (@levarburton on Twitter). Levar showed himself to be very intelligent, and open to new ideas. He is exploring various internet tools, such as Twitter, as a medium to connect with others and, more importantly expand his art. As he connects with people in the technology area he is going to start asking questions. “How do I…”, “I want to…”, “What can I use to…”

It is this questioning, this exploration that I believe will setup a new synergy between people in the creative arts and the developers of technology. As creative folks like Levar seek new tools, it will spur developers to make them. The geek community will then find new ways to use these tools for other things, such as business, social websites, etc and everyone benefits. This is why rather than join the chorus of doomsayers, I instead welcome them to the “interwebs” as together we seek new opportunities in the technology world.

The Diplomacy of Social Networking

I’m going a bit off my normal track of technical blogging to get involved in the world of international politics. One of my Twitter friends, @C_Collins, pointed me to a posting on the American Foreign Policy Council’s website where someone was taking a state department employee, specifically the Deputy Assistant Secretary for Public Diplomacy one Colleen Graffy, to task for her use of Twitter. The original poster was apparently worried that somehow someone might mistake her posting as @Colleen_Graffy and confuse that for official state department communications, and was taking her to task for it.

I posted a reply, which for some reason has not yet made it to the site. I will assume with this being the holiday season no one is checking in to moderate posts. My own blog however is under no such restrictions, so rather than delaying any further I will first direct you to the original site here, http://zi.ma/diplomacy. Go ahead, go read it and the comments so far, I’ll wait.

Back now? Great, here’s my reply to Ilan, the blogger:

Ilan,

I can appreciate your concern over the lack of clarity in message from the state department. To add to the confusion when there is a change in administrations there is a shift in message. In addition, I’ve always thought the state department was doing it wrong. Their communications always seemed targeted towards either the heads of state, or toward a mass audience.

Perhaps then, having personal communications eclipse official ones is exactly what SHOULD be happening. True ideals, such as democracy and personal freedom spread best one person at a time. The internet, for all it’s warts, has done one miraculous thing, it gives all of us an equal voice through which we can connect with others.

Through my blog I reach thousands of people on a daily basis (I average about 2,500 hits a day). Through my twitter account (@arcanecode) I converse with people all over the globe each day. Many of these people I consider good friends, even though some I may never meet in person (but hope to). Quite an accomplishment from my old laptop, sitting here on my back deck in sunny Alabama.

I firmly believe it is the fear of these personal communications that causes other countries to try and block the internet. It’s easy to spread a message of hate when that hate is directed against an amorphous blob like ‘those dirty Americans’ or ‘those evil westerners’. It’s extremely hard though, when there are personal relationships built between individuals.

I am not so much of an idealist not to realize there are some people in this world who are haters, and would love to eradicate others. They need dealing with in strong terms. But there are an awful lot of “average joes” in those same areas who hate because they are taught to believe in hate, and have no information to disbelieve what they are taught. Thats where the internet comes in, as a tool to bring information to everyone.

Perhaps I am just a hopeless romantic geek, but if the world is going to become a better place in the long run it’s not going to be through state diplomacy but through personal diplomacy, one person at a time.

Robert (Arcane Code)

There you go, feel free to leave your own thoughts below.

Step 5 – Guard your credibility

Around 100 BC the Latin author Publilius Syrus wrote “A good reputation is more valuable than money.” 2,900 years later those words are still just as true. Your reputation, including your online reputation is the most important asset you have and you should guard it jealously. An article at onrec.com states that 25% of HR managers reject applicants due to what they find on their on-line profiles. Sure, it’s OK to have the occasional fun post, or have some humor in your blog, but make sure it’s in good taste. Avoid posting those pictures of you and your friends drinking straight from the keg.

Just as bad as reckless fun can be the rant. Remember not every thought needs to be uttered, or even worse put to the web. One bad outburst, one blog post made in anger can give you the reputation for being a hard to work with hot head. Don’t be “that guy”.

Finally, no matter what remember the web is NOT Las Vegas. What happens on the web does NOT stay on the web. I’ll bet this guy wishes he’d have remembered that.

What was he thinking?

Step 4 – Show up in the community

Community involvement is one of the most, if not the most important thing you can do to increase your marketability. In yesterday’s post I stressed the importance of public speaking. Whether we realize it or not, we are constantly speaking in public, even if the public is a small crowd. A meeting with your boss, the project team, staff meetings, even simple group lunches are all places where we speak before small crowds. User groups, code camps, and conferences are places where you can practice the kind of public, technical speaking that will make you valuable. Nervous? Do it as a group. Partner up with one or two friends so none of you has to speak more than fifteen or twenty minutes. Or participate in something like the recent IPSA Idea Spark, where each presentation is limited to no more than five minutes. Don’t worry about whether a user group will want you. As a leader in several user groups I can assure you we are constantly in need of speakers, and will gladly welcome first timers to our meetings.

But community extends beyond the borders of a user group. Blogging can be a very effective way of communicating your ideas and participating in the community. Even better you can do so freely or inexpensively via sites like WordPress.com, who offer free hosting to blogs. You can also participate in forums. In addition to those on MSDN and TechNet, sites like SQL Server Central offer forums focused on a particular discipline.

You can also participate with your coding skills. Sites like MSDN Code Gallery allow you to post samples for your particular expertise. I have two sites there myself. Or you can participate in one of the many open source projects on such sites as Code Plex or Source Forge.

Finally, consider joining an on-line community at someplace like Twitter. I have met many, many good people through Twitter, and using it can communicate with them on a regular basis.

The critical point here is that community builds relationships, and these relationships are vital to your career. Sometimes these will help you find good people to work with. Sometimes they can help you find answers to difficult questions. Sometimes it’s just about good friendships. And yes, sometimes they can even help you find that next job. It is these relationships that will form the cornerstone to your success.

Step 3 – Understand the business

By far, the people I see who make the most money in the marketplace are those that have a good understanding of both technology and business. I’ll never forget an important business lesson I learned many years ago, from a former boss. Businesses are there for one reason: to make money. It may sound a bit harsh, but let’s face why else would you go into business. Hopefully the business is the type that wants to do so in a moral, ethical way, and in a fashion that makes both the business and the customer feel good.

If you’re like me, you got into technology because it’s “cool”. We love making the electrons sing and dance within the computer at are whim. However, our bosses, or customers, our internal business partners don’t necessarily share our love of tech. In order to get the approval to implement our new whiz-bang project, we need to be able to do two things. First we need to determine the benefit to the business. How much money will the company ultimately save by implementing your project? What will the increase in productivity be? Being able to identify the benefit to the company is crucial.

Once you have identified the benefit, you need to be able to communicate it. Avoid techno-jargon, all it will do is make your listeners eyes glaze over and cause them great confusion. Learn how to speak in terms the business understands. In order to learn the language of business, once per quarter read a book on business strategy. If you don’t have time for reading, consider an audio book. Unlike programming books, business books work well in audio format. Listen in on your Zune as you work out, drive to work, or do those household chores.

In order to communicate clearly, I would highly suggest the Toastmasters organization. Just think of them as a user group for speakers. Going through the program will help you learn to organize your thoughts in a clear and coherent manner.

Having a good understanding of business, in addition to technology, will help you succeed in the highly competitive marketplace of today.

Step 2 – Learn iteratively

There are many ways to learn. Attending a presentation or live webcast is great because you get what I call “condensed knowledge”. You get the results of someone else spending thirty to forty hours of learning and working to condense it into a one to two hour presentation. You also get immediate feedback, you can interact with the presenter and ask questions. On the downside, if you missed something, you missed it (unless the presentation is recorded). These are great for getting an overview, however you won’t really get deep technical understanding out of a presentation like this.

The next step beyond a live presentation is a recorded webcast or video, such as those produced by DNRTV. These are great because you can pause them, rewind, and listen multiple times. However, you lose the ability to get immediate feedback from the presenter, and like live presentations it’s condensed knowledge.

Online reading is the next area available to us for learning. Blogs, MSDN, TechNet, etc. These have a much deeper level of information than previously mentioned formats. Plus they tend to be updated as changes are made. However, there do tend to be some limitations. Content is not quite as polished as a book as often it does not go through professional editors. Also, while the content will be more in depth than a presentation, it will still be limited in scope. It will be rare to find the equivalent of a book given out for free in a blog. Most of the time it will be equivalent to a really long magazine article.

This then, brings us to good old fashioned books. For true topical mastery, there’s nothing like a good thick book filled with code examples for learning. Some pundits are already predicting the death of the print book. However, in my opinion print is simply a medium. Books could be read online, or downloaded to something like a Kindle. Whatever the form, it’s still an in depth presentation of content.

So does this mean you should favor books over other forms of learning? Absolutely not. If you recall yesterday’s post, I mentioned being able to keep up your base. Podcasts, webcasts, user groups, and blogs can be great ways of doing just that, while using books for honing your expert skills in some topic.

Deciding on a delivery mechanism for your learning is the first step. Now you need to decide the process. Learning is a gradual process. It takes learning a little something every day for it to take hold. Even as little as 20 minutes a day can rapidly bring your understanding up to new levels. Avoid cramming, cramming works for short term but studies show long term retention is not good. For ultimate learning, start with a goal. Decide what you want to know. Then gather the materials you’ll need: books, articles, manuals, blogs, etc. Next, schedule the time. As I mentioned you want at least 20 minutes a day devoted to learning. Turn off your e-mail, close your twitter, turn off the radio, close the home office door, and focus on the material.

Practice what you read as well. Type in the code samples, run them, debug them, step through the code line by line. Make changes and see how it affects the flow of the code. Find the patterns and practices for your environment and try them out.

Using an iterative process you will soon be on your way to expert level knowledge.

Step 1 – Become an expert

Last week I did a presentation on “How to become a more marketable software developer”. I thought I would spend this week going over each of the five steps. Today we’ll discuss the first step toward becoming more marketable, “Become an expert”.

image While “Become an expert” sounds obvious, there are several things to consider. First, you need to pick an area that is viable. I don’t see much call these days for Microsoft BOB experts. For me, it is a mix of SQL Server Full Text Searching and SQL Server Compact Edition. For a friend of mine, Shawn Wildermuth it is Silverlight and his Silverlight Tour that is his current expertise. But Shawn’s story is one that beautifully exemplifies my next point: don’t be afraid to change your expertise!

While Shawn is known today for Silverlight, it wasn’t that long ago he was known as “The ADO.NET Guy”. Before that he was known as a co-author to many of the .Net MCTS/MCPD study guides. You need to constantly be flexible and react to the needs of the market. Don’t be afraid to retool your skill sets as new technologies emerge on the marketplace.

While you focus on an area of expertise, don’t forget your base skills. I recently heard someone describe your skills as a pyramid. Your expertise is right at the top, but it’s built upon a broad, wide foundation. Don’t forget to take some time on a regular basis to work with the basics, write some code, listen to some podcasts, read a “general programming” book so you keep in touch with the core development skills in your area.

How to be a more marketable software developer

On Thursday I am presenting a quick talk at the Internet Professional Society of Alabama. This is part of an event called Idea Spark, where multiple individuals give five minute talks. I thought it’d be fun to steer away from the normal tech talks and talk about something near and dear to all of our hearts: money!

My talk will give a few quick points on some basic, inexpensive things you can do to make yourself more valuable, and thus command a larger salary in the marketplace. I can testify these things work, having done them myself. However it’s not with out a lot of sweat equity. You’ll need to invest a fair amount of time to achieve success, but everything worth doing is worth taking the time to do right.

Here’s the slide deck in PDF format: how-to-be-a-more-marketable-software-developer

I have to give thanks and much credit to Doug Turnure, a content architect for Microsoft. He first gave a very similar presentation some time back and was gracious enough to share the slides. I took them, did some rearranging, trimming, and additions to achieve this current version which is a blend of his thoughts and mine.

I hope you find the talk and the slides valuable as you give yourself the edge in this competitive marketplace.

Phoenix: Veni, Vidi, Fodi

On Monday November 10th, 2008 NASA lost contact with the Mars Phoenix Lander. As Mars enters it’s winter, sunlight faded to the point where the Phoenix lander was no longer able to recharge it’s batteries. The lander made many important discoveries, but frankly one of the things it did the most was to put a human face on space exploration via it’s frequent updates on Twitter.

Of course, intellectually we know the real lander wasn’t doing the actual tweets. That credit goes to the amazing Veronica McGregor at JPL. But the twitter feed was managed in such a way that we could really feel like the real Phoenix lander itself was sending these messages. Over 38,000 people followed the lander, putting it among the true Twitter elite. Do you recall when we all first found out about ice on Mars? It wasn’t through a NASA press release, newspaper, or the evening news. No, the folks who first found out were the ones who followed the lander on a social networking site. How geekily cool is that?

Wired magazine held a contest of sorts for appropriate epitaphs, and posted them on their site. The winner was veni, vidi, fodi (I came, I saw, I dug) but there were many many more well worth reading. Some were funny, some inspiring, and many emotionally touching. Gizmodo is carrying the final message from the Pheonix lander on it’s site. Very good, includes much information, including that while the lander could wake up when the winter season is over, that won’t be until our spring of 2010. After being encased in darkness and ice for that long, starting back up is highly unlikely. Still, the @MarsRovers were only supposed to last a few months, and they are still going after 5 years so anything is possible. Hope springs eternal.

The level of communication brought about through sites, such as Twitter, means that anyone, from you or I to a probe on another planet can make their voice heard around the world. No, scratch that. Around the universe. 

My favorite epitaph was the following quote from James T. Kirk.

“…of all the souls I have known, his was the most… human.”

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!