Virtualization

One of the tools I have been using a lot of lately is Virtual PC. It’s come in very handy, so over the next few entries I’ll be discussing this and other handy virtualization tools.

Before we get into virtualizing an entire computer, let’s start with just the CD/DVD. There’s a great tool you can get from Microsoft that will allow you to take an ISO image and fool your computer into thinking it’s a CD or DVD mounted in a drive.

The name of the tool is Virtual CD-ROM Control Panel for Windows XP, you can get it by clicking the link, or if you are the distrustful type (and you should be) instead follow these short steps:

First, go to:

http://msdn.microsoft.com/subscriptions/faq/

Scroll down to MSDN Subscriber Downloads, and click on “What are ISO image files and how do I use them?”

When it expands, toward the bottom you’ll see a section “Mounting ISO files virtually”. Click on the link to download “Virtual CD-ROM Control Panel for Windows XP”

Once you download, the file will expand to 3 files, readme.txt, VCdControlTool.exe, and VCdRom.sys. The readme.txt file has the directions, but the short version is:

1) Copy VCdRom.sys to your %systemroot%\system32\drivers folder

2) Put the exe somewhere and launch it.

OK, your install is done. When you launch it you’ll see this screen that’s not overly intuitive.

OK, this is the tricky part that’s not quite clear in the directions: The very first time you run the program you should click on Driver Control. In the dialog that appears, click on Install Driver, then navigate to the location you put the VCdRom.sys file. Once you click on the sys file click Start to start the driver, then OK to close the dialog. OK, that’s done, you never have to do this again.

From here it’s pretty simple. Click on Add Drive to grab an unused drive letter. The app gets the highest available unused drive letter, typically Z.

Now you have an available drive, click on Mount. When the dialog opens, find an ISO image you’ve downloaded or created (most likely from MSDN, but any ISO works). Once you click Open, a dialog will appear to confirm, normally I just take the defaults and click OK.

Ta da! Your ISO now appears to the operating system as if it was a CD (or DVD) mounted in a drive. When you are done, just click Eject back on the VCDRom panel. That will leave the drive letter available but the ISO will no longer be accessible.

Need more ISO’s mounted at once? No problem, just click Add Drive again, to get another drive and mount it. Done with the drive letter? Just click on it, then click Remove Drive. Finally, if you eject an ISO then decide you want to remount, just click on the drive letter and click Remount.

There you go, a free way to use those ISO images without having to burn them to a CD or DVD first!

Advertisements

Multiple Monitors Made Even Easier

So, you have multiple monitors. Whether you have several real monitors, or they are through the MaxiVista tool mentioned in the previous post, you’d like to get the most out of them. One thing that drove me nuts was having my apps on a second window but having a toolbar on the main window. Also, what’s with the desktop? Why do I have to have the same image on every monitor?

Well I have another cool tool that fixes these problems and more: UltraMon. UltraMon (http://www.realtimesoft.com/ultramon/) puts a taskbar on every monitor you have. It then puts the apps you have running on that monitor in it’s toolbar, and removes them from the main monitor’s bar which really helps with clutter.

You can also customize the desktops, having a different picture for each monitor. This means I can put my adorable kids in one monitor and my long suffering wife in my second display. Or, if you have a really wide photo you can have it stretch over all of your monitors.

It also adds some cool icons up beside your min / max / cancel buttons on a window, one button will stretch the current window over both monitors. The second button is much more useful, it will move the current window to another window and automatically rescale it for that window.

It works really well with MaxiVista, or with multiple real monitors. And (as of the date I post this) it’s only 39.95 (US). Plus they have a trial version, but be careful, once you try it you’ll get hooked (I did!).

Standard disclaimer, I don’t work for them, make no money off sales, or receive any compensation, I just think it’s a cool developer tool!

Multiple Monitors Made Easy

A lot of us have a spare computer lying around. Maybe an old laptop, that still works but isn’t really suitable for most modern apps. Or, maybe you have both a desktop and laptop that you use at the same time. It’d be sweet to remote control your laptop from the desktop, but still use the laptops internal monitor. MaxiVista (http://www.maxivista.com/) makes this trivial. When you buy the software, you first install the server piece on what is referred to as the “Primary” computer. It then creates a small exe that you run on the slave computer, known as the “Secondary” computer.

When running, it takes over the secondary computer, letting you drag your applications onto it, just as if you had a true second monitor hooked up. I find this very useful when I work out on my back porch. I take my main laptop, along with an older laptop. I can then use the older laptop, which normally just sits gathering dust, as extra workspace to drag my e-mail onto. Also handy with Visual Studio, you can drag help or some of the tool windows onto it.

If you spend a few extra dollars for the Professional version (right now on sale for $27.96 US) you also get remote control. I find this VERY useful. I use it in my home office, and run the secondary program on an older desktop. I then remote control the desktop from my powerful laptop, and can offload tasks to the desktop like downloading updates or files from MSDN. All controlled from my laptop’s keyboard and mouse.

Again, if you step up to a ‘whopping’ 35 bucks (US) you can get the Mirror Pro version. This allows you mirror your machine to another computer. Think eXtreme Programming here, or maybe just code reviews. I’ve used this to mirror my desktop to a coworkers machine so we could do some code reviews. Much nicer than both of us hunched over trying to view the same monitor!

Some miscellaneous things: The Pro and Mirror Pro versions will let you control up to three secondary computers, which I have done. MaxiVista runs over a network, it is not a replacement for remote desktop control software. It’s intended for situations where all of the computers are together in the same room.

Some standard disclaimers, I do not work for MaxiVista or have any financial affiliation, I just think it’s a cool tool and endorse it with no compensation of any kind. All prices I quoted were on their website as of August 23, 2006. Prices will vary over time.

And finally, if I haven’t convinced you yet, you can download a free trial from their website. So what are you waiting for?

We interrupt this blog…

Just a quick interruption in the chain on developer tools. I purchase a lot of books every year. A significant amount come from Apress. I tend to like these because they are advanced books, for the most part target to the professional developer. You don’t waste money getting six chapters on how to write “hello world” in every book.

I like buying the print version of books, but doesn’t it always seem like when you need it you’ve left it at home? Recently Apress started doing something really nice. If you owned the print book, you could buy the PDF for 10 dollars (US). This seems like a reasonable price, so I have the convienience of always having the book with me on my laptop.

Unfortunately Apress is only doing the 10 dollar deal for a select few books. The rest they expect you to pay full price for, despite the fact you’ve already bought the print version. So I’m going to do something I’ve never done before: start a crusade.

I recently found out Apress’s head of marketing is a fellow named Paul Carlstroem. What I’d like to get everyone to do is e-mail Paul, and let him know you’d like the 10 dollar deal extended to ALL of their books. If we can get enough people requesting this, I think we could sway him to make a decision that would benefit both Apress and us, the consumers.

Please be polite, I’m sure Paul is a very nice guy, and we want to sway him with logic and reason. More flies with honey and all that.

So please, take a quick moment and e-mail him, paul.carlstroem <at> apress.com (note I’ve tried to mask the e-mail a little, I don’t want the poor guy to get spammed to death). He will return to the office September 1 2006, so if you can get your e-mail done before then we can really make an impact when he returns.

We now return you to your regularly scheduled blog…

More Free Education

In my last post I mentioned getting a free education, with no extra time. If you are willing to invest just a little time, there are even more educational opportunities out there in the form of user groups and code camps.

A user group is a gathering of geeks, typically focused on a particular aspect of development. These are clubs that meet on a regular basis, usually one evening a month. Each meeting someone presents a technical subject of some sort that is of interest to the group. These are great places to network, find out what other developers in your area are doing, and get feedback or help on things you are working on. Most user groups are free, or at most charge a very small fee to join the club.

Code Camps are a little different. They are larger gatherings that are held on a weekend, usually all day Saturday. Local experts deliver sessions on a variety of topics. Most are free, a few may charge a small fee to help defray costs but it’s still a bargain for the education you get.

So how do you find user groups or code camps in your area? Google! Or whatever your favorite search engine is. Just enter the name of your town followed by user group and if you live in even a moderately sized community you’ll find a wide array of groups to join.

If you are lucky enough to be in the Birmingham, Alabama area here is a list of code camps / user groups in my area that I am personally affiliated with.

BarCamp – http://barcamp.org/BarCampBirmingham – Coming up August 25th and 26th, this is a code camp where the attendees have a lot of say over the presentations. (If you’re not in Birmingham be sure to check the main barcamp.org site as there are BarCamps across the country).

Birmingham Software Developers Association – http://www.bsda.info/ – A group of developers that meet to focus on primarily Microsoft .Net but do cover other topics. I’ll be presenting at the November meeting on Developer Tools.

Birmingham .Net User Group (BUG.NET) – http://www.bugdotnet.com/ – This is a large group that focuses exclusively on .Net related topics.

Internet Professional Society of Alabama (IPSA) – http://ipsaonline.org/ – User group that discusses all aspects of internet development. Does cover .Net, but not exclusively.

Magic City Technology Council – http://www.bhm-tc.org/ – This group is a nice departure from most in that it focuses on methodologies more than nitty gritty code techniques. Recent sessions have covered Extreme Programming and Project Management, to name a few topics.

Note the list above is far from comprehensive. Birmingham had over 30 user groups in the area last I checked, the groups I listed above are the ones I am a member of. A quick Google will find many more.

Getting involved in a user group is the quickest, most inexpensive way to get a good technical education, and at the same time keep the magic of coding alive!

Free Education with No Extra Time

Every developer has the need to constantly improve his or her skills. But where do you find the time? I have a wife and kids, am a member of seven different organizations, and have a demanding job. But I have found a method that’s both free and costs me no extra time: Podcasts. Let’s talk about the who, what, when where, and why of podcasts (although not necessarily in that order).

For those of you who don’t know what a podcast is, it’s similar to a talk radio show only placed on the internet. Some shows stream their feeds live, but virtually all place their files on a webpage so that you can download it later. Most are MP3, but there are a few other formats as well, such as WAV.

These shows are target to a specific audience, and there is a nice selection out there for the developer. So how do you listen to a podcast? Well, you can download and listen on your computer. As you might expect, the term “Podcast” takes it’s name from the Apple iPod, and you can listen on an iPod or any MP3 player. I personally have an HP iPaq, a PDA (Personal Digital Assistant). In addition to keeping up with my appointments, it will also play MP3’s. I like it because I don’t have to carry an extra device around, and because it has a tiny speaker built in, so I don’t have to use earphones if it’s not convenient.

That covers the what and how, now the when. I listen when I am doing manual tasks. Driving back and forth to work I use a car charger and stereo adapter to hook my iPaq to my car stereo. When I cut the grass I use ear buds under a set of hearing protectors. I also use my ear buds when doing chores around the house, even when shopping! Nothing helps take the drudgery out of picking up milk after work like listening to some new ASP.Net techniques while you do it.

Now we come to the who. Who to listen to? A simple search will turn up hundreds, if not thousands of podcasts. Where do you go for the best? Well, here are my top pics:

DotNetRocks – http://www.dotnetrocks.com/ – Carl Franklin and Richard Campbell put on a weekly show, interviewing a big name in the Microsoft Development world. With an archive of over 180 shows, there’s plenty of good material to keep you busy for quite some time. The earliest shows run about 2 hours, and cover a bit of news in addition to the interview, the more recent episodes run approximately an hour, and concentrate mostly on the interview.

Hanselminutes – http://www.hanselminutes.com/ – Hosts Scott Hanselman and Carl Franklin spend half an hour each week discussing technology related topics. The majority of the shows focus on ASP.Net development, but on occasion Scott will divert into other topics like cool development tools, or nifty gadgets.

TWiT (This Week in Tech) – http://www.twit.tv/ – Many of us remember TechTV. Leo Laporte went on to found the TWiT.TV group. Leo’s weekly show, TWiT discusses the latest in the tech world in general. The latest trends in hardware, software, plus corporate news are discussed. Leo has a weekly rotating roundtable, with names like John C Dvorak and Patrick Norton dropping in.

Security Now – http://www.twit.tv/SN – From the TWiT family of shows, Leo teams up with long time guru Steve Gibson to discuss security on the world wide web. You can also download the show from Gibson’s site, http://www.grc.com/securitynow.htm.

Well there you go, there’s a few shows I listen to on a regular basis. Should be enough to get you started. Oh, almost forgot the why. Well, you’ll have to answer that for yourself, but if you’re like me, you want to be the best developer you can be.

Free Education? With no extra investment in time? Sounds like a winner to me!

Developer Tools

This is going to begin a series of blog entries on “developer tools”. I’m going to expand though on the traditional definition of developer tool, and go beyond just software, although I’ll discuss some of those as well. I’m also going to mention things like physical tools, sources of free training, and organizations you can become a member of. All of which will help you become a better developer.

Speaking of organizations, it’s an organization that I’ve picked out for the first tool: Toastmasters. Yes, I can hear your puzzlement now, Toastmasters? OK, so perhaps you don’t regularly give speeches. But very few of us work in a vacuum, having specs e-mailed to us and sending them back out without speaking to anyone.

If you’re like me, you speak with people every day. You meet with users or customers to discuss their requirements. You speak with other developers to go over specifications. Your boss, project manager, or employer drag you into endless meetings. Often in those meetings you are tasked with presenting, be it a proposed solution or the final results of months of coding. In all of these instances you are “publicly speaking”.

Toastmasters provides you with the tools to polish your speaking habits. Through practice and friendly, supportive suggestions your speaking skills will quickly improve. They also have a variety of books and manuals targeted to different needs, including developers. The two I’m working through right now are called “Management Presentations” and “Technical Presentations”.

Toastmasters has many clubs, and likely has a club in your area. Head on over to http://www.Toastmasters.org and do a search for a club near you. Attend a meeting, it won’t cost you anything to attend one meeting and see what it’s all about. If you are someone like me, who just happens to really enjoy public speaking, or you just want to improve your ability to communicate with your coworkers, Toastmasters will give you the tools to fulfill your vision.