kdmurray.blog

The crossroads of life and tech

Three-week Ubuntu Experiment – Migrating to Open-Source

This past spring I made an attempt to move myself out of the shackles of the commercial software world and truly embrace open-source. I tried to move my primary machine off Windows 7, and onto Ubuntu Linux. I knew the transition wouldn’t be seamless but I’d heard so many good things about living in a Linux universe that I decided it was time.

The experiment did not go as well as I might have hoped, and despite my efforts to stick with it for some time, I eventually had to cut the experiment short. As I was preparing to re-image my system I started a blog post which I decided not to post at the time. I’ve included a short excerpt which shows my state of mind back in May, just after the experiment concluded.

I told myself I was going to stick it out for at least 3 months. But here I sit, not 3 weeks after making the decision to migrate my primary machine to Ubuntu, with the Windows 7 installation disk in hand. What could possibly have brought me to this point? Primarily, time. It’s going to take me about 8 hours of work to prep all the data on my system for the transition, wipe the linux partition, re-install windows, re-install the applications, re-install VMWare, re-install my Linux VMs (I do still have a use for them!). The problem is, things on linux generally have taken longer than they should. Some of this is due to the fact that I’m learning, and I’ve tried to ignore those. Others are generally due to the fit and finish of Ubuntu.

So what went wrong?

Problem #1 – 10.10 or 11.04?

I generally resist the temptation to move to the latest OS release, but when I tried setting up a Windows VM under VirtualBox in Ubuntu 10.10 the audio was mucked up. It seemed a bit slow too, but that may have been my imagination. So I tried installing the newly minted 11.04. The VM now worked like a charm, but that was a long multi-step process.

Problem #2 – Virtualization

Trying to set up a virtual machine that would start up at boot time (like a Windows service or any number of linux daemons) proved a nearly impossible task. After several hours of searching, tweaking, testing, and ultimately failing, I decided to abandon the effort and live with manually starting my VMs.

Problem #3 – File Sharing

Setting up network shares was probably one of the better experiences I had. I was able to set up a “public” share on the linux machine and access it from anywhere on the network… as long as I didn’t want to protect it with a username and password. That was going to require more voodoo and black magic than I was prepared to endure for such a simple task. Overall, not a bad experience.

Problem #4 – Flash in Browsers

Like it or not Flash is still an integral part of the web, and Flash in the browser was just one of those things that never quite worked right. When I talk about fit and finish of a product, this is what I mean. Blocky artifacts showing up on video players was the most common issue, though there were other things like playback and audio problems as well.

Problem #5 – Lack of Air Support

The fact that I felt compelled to write a blog post calling attention to a tutorial for getting Adobe Air installed under Ubuntu 11.04 speaks to just how difficult this didn’t need to be. On any other major platform, you can go to a website and simply click the install button. The rest is automatic. Not here though.

Problem #6 – Button Clicks

I constantly had problems just clicking on buttons. Sometimes in an application (Chromium comes to mind) but sometimes just within the Ubuntu environment itself. This kind of thing makes you start to question the faith you have in your OS.

Problem #7 – Learning Curve

I suppose it’s a bit unfair to put this here as it’s undoubtedly the same issue that would come up moving between any two major operating systems. The bottom line is that I have a young family with whom I like to spend the majority of my day. That means that when I decide to sit down at the computer to do something, I don’t really have the time to spend learning how to do things all over again.

There were a few things that were also pleasant surprises during this whole thing. Mostly to do with 3rd party applications.

CrashPlan support

CrashPlan was able to seamlessly match up my Windows backup to the Linux file system. This made it very easy to move everything over. I just hope it works as well in reverse.

AcidRip

Digitizing DVDs has never been easier. It took a couple of tries to get the quality settings just where I wanted them, but the process worked out really well.

Shell

I love the *nix shell, Bash in particular. This is the one thing I will truly miss when I move back to Windows. Having commands like rsync at my disposal, and built in SSH support are also fantastic. While this is something that has to be hacked into a Windows installation, it is available by default on OS X.

In summary…

The availability of good software to do most tasks is one of the key benefits of moving to an open source experience, but the truth is that the experience really didn’t live up to my hopes or my expectations. I’m getting to the point where I want my computing time to be spent creating, not just experimenting with different ways that I could set up my tool sets. And as time moves on, the number of free or open-source applications available on the major commercial platforms like Windows and OS X is growing. Once either of those operating systems is installed I can do everything I want to do without having to pay a license for another piece of software — and in many cases the applications are as good or better than the open-source tools available for the Linux platforms. Add to that the growing number of applications which reside in the cloud and are completely browser and platform agnostic and it starts to become a simple equation for me.

Is it worth the $150 or so that it costs to get my new computer preloaded with a commercial OS? Yes.

AnkhSVN and Visual Studio 2008

ankhsvnSource control is one of those things that developers get really polarized about.  Most agree that having source control on projects is a necessity, but that’s typically were the similarities end.  Some folks are of the mind that every line of code, however insignificant, should be under source control.  This provides records of what was written, and a reference for things that were done in the past.  Others believe that source control should be reserved for “real” projects, things that are deliverables for customers, or products to be released to real-world environments.  I really don’t want to get into this debate tonight, so I’m going to stick to the technology.

I was wanting to get some source control in place for a few of my personal projects.  I chose to go with Subversion for my source control server for a few reasons, not the least of which was that my hosting company supports auto-configuration of SVN repositories, so I was able to get that set up in just a couple of minutes.  That left me some time to contemplate how I would access the repository from the client.

newproject_svnI’m running Visual Studio 2008 on my development machine and this gives me the ability to use plugins for the IDE, a feature that is sadly missing from the express editions.  There were a couple of good options available for SVN plugins, VisualSVN which is the 800lb gorilla in this space, and the open-source option CollabNet’s AnkhSVN.  Given the fact that this was for personal exploration of the toolset, the open source (free) option was the obvious choice.

The setup for AnkhSVN was quick and painless, and when the IDE opened up it put options for source control right in the menus where they were nice and easy to find.  I created a project, and selected the “add to Subversion” checkbox, entered the necessary credentials and created the project in my SVN repository.

anhksvnWhen in Visual Studio, the AnkhSVN controls are located on a tab at the bottom of the IDE, alongside other solution-wide functionality like the To-do list, output window etc.  This pane tracks all of the changes (adds, deletes and updates) that you’ve made to the solution files.  This is extra handy as a review when you’re ready to make your commits back to the repository.  By quickly scanning the list of changes you’re able to write solid commit comments to provide some decent documentation for you, or those who come after you.

I’m still relatively new to Subversion and AnkhSVN, but I’m looking forward to exploring them in more detail — maybe I’ll even do a podcast episode about it!

Five Step Guide to Restoring Your Computer

broken_computerThere are lots of reasons that we fall out of love with our computers.  Slow performance, viruses. spyware and just plain too-much-crap-all-over-the-place syndrome.  The only way you can be sure to solve these issues is to wipe and re-load your system.  If you have all the install disks for Windows (or your OS of choice) and your software, the process is fairly straightforward.  Mac/Linux fanboy warning: I’m going to use Windows examples and software in most cases… deal with it.

After the tutorial, I’ve included a list of applications that you can use to make your computing life better.  The list contains free and open-source software from the original developers that you can trust on your newly cleaned system.  I highly recommend reading over the list, and even trying a few of them out on your current system before installing any of your old apps and tools.

Things you’ll need

  • Infected (or otherwise underperforming computer)
  • OS re-install disks (and product keys!!)
  • External hard drive (strongly recommended) -or-
  • Backup media (CDs, DVDs)

Step 1: Backup your data

backupYou should already have a backup process in place to keep all of your data secure.  If you do, good for you but that doesn’t mean you can skip this step.  If you have, or have been able to purchase an external hard drive use that to backup the data. It’s much faster, and far more convenient than trying to backup to external media like CDs and DVDs.  Make sure that you take everything you want to have on your new system. Often overlooked folders include your bookmarks (favourites) and desktop.  These won’t be captured in your Documents folder by default.

Step 2: Reinstall your system

This is the part that makes everyone queasy. The “delete everything and re-install” part.  But fear not, it isn’t as daunting as it sounds.  Once all the data has been backed up, put the Windows (or other OS) disk in the drive and reboot the computer.  Once the system comes back up, follow the prompts.

Select the partition to install Windows on.  In most cases, if you want to restore the system the way that it was, you can select the C: drive where the old Windows  install was located.  If you want to get into partitioning strategies that’s for another post.

If you’re in doubt format the drive using the NTFS system. It’s the default for most contemporary Windows systems and will work for 99% of people.  Yes, Mac/Linux fanboys, I realize that it’s a Windows specific file format.  You guys can use HFS+ (Mac) or ext3 (Linux).

Believe it or not that’s the “tricky” part.  Follow the remaining prompts through the text portion, and GUI portion of the setup to choose your username, password, time-zone settings, network settings etc.  These are pretty well all common sense.

Step 3: Patching and Packing

Unless you’ve learned the secrets to Slipstreaming prior to this re-install (in which case you probably don’t need this tutorial) you’ll need to install all the latest updates, patches and service packs for your system.

The majority of these can be installed through the Microsoft Update (Windows Update) site.  The updater can be run from your Start menu, or by pointing a browser at http://update.microsoft.com/.

It’s really important to get these updates in as quickly as possible because typically the CD you’re using to install the system is a couple of years old (particularly with Windows XP disks) and will be missing a ton of important security updates.  You may need to run this process a number of times before it catches everything.  Just continue the process until the update program tells you that there are no further updates available for your system.

Step 4: Re-install your applications

Here we go. Putting back all that was lost.  The first step is to install your heavy hitters installed.  Office, Visual Studio, Adobe Creative Suite — the things that take up Gigabytes of space on the disk.  After that, the smaller things, utilities, tools, games.  Check out the software list at the bottom of this post.

Once everything else is done, install your anti-virus or security software. This may be a controversial decision for most but I base the logic on the following: AV programs make software installation painfully slow.  The chances you’ll be infected while you’re doing the updates are minimal, so save yourself a bunch of time and do this last.

Step 5: Restore your data

Copy back all of the data you backed up in step 1.  This includes your bookmarks (you did back those up, right?), and anything you wanted to keep on your desktop.  Putting these pieces back is the last step to making the system your own again.

Realistically you’re looking at killing a full day with the whole process, depending how much data you have the backup/restore can take a few hours, but the process is pretty straightforward if you stay organized.  :)

Free software to help you out

Once you’re in the application re-install stage, there are lots of free tools that you can use to get your system working the same, or better than it was before.  The other reason is that these applications are great alternatives to trying to find pirated applications off the Internet.  Here they are, in no particular order:

  • 7Zip – an archiving / compression utility supporting a wide range of formats
  • ISO Recorder – Write ISO images directly from Windows explorer
  • Avast – Free anti-virus application with regular updates
  • Paint.NET – Photoshop-like image & graphic editing program
  • Firefox – Alternative (?) web browser
  • Thuderbird – Email client
  • Feed Demon – Powerful full-featured RSS reader & aggregator
  • FileZilla – FTP/SFTP/SCP client
  • Open Office – Alternative word processor, spreadsheet, presentation & database
  • VLC – Media player that supports nearly every format known to mankind
  • Evernote – Note taking/keeping application that sync’s with the web
  • Notepad++ – Tabbed notepad application
  • Visual Studio Express – Free versions of the Microsoft development tools

I hope this guide has proven informative, and will help you to move forward with your computing life.  Bring back that computer that has lost its lustre and make it uber-useful again.

Photo credits: wysz, S Baker on Flickr.

WordCamp Whistler 2009 Details Released

WordCamp Whistler is a go for 2009!

January 24th and 25th in Whistler a meeting of WordPress minds will meet up in Whistler, BC. The keynote speaker for the event will be Blogging Evangelist Lorelle VanFossen.

If you’re in the Vancouver-Whistler area, or can plan to be here the $35 entry fee is a great price for such a high-quality event. If you’re already registered, grab a badge and pimp the event on your site, your twitter or anywhere else!

One Year Anniversary: Random Image Selector 1.2.0

I can’t believe it’s been one year since the last major release of the random image selector.  Since the plugin’s initial inception last summer it has received a fair amount of attention garnering nearly 11,000 downloads.

Random Image Selector - Downloads Per Day

Random Image Selector - Downloads Per Day

I’m glad that it’s proven useful for people and there will be a major update coming out over the Christmas break to coincide with the WordPress 2.7 release.  This update will include a few bug fixes, a couple of minor feature changes and one significant addition.

Thanks to everyone who has downloaded the plugin, and to those who have left feedback on the blog!

WordPress 2.7 Release Candidate 1

After what has seemed a rather lengthy wait, WordPress 2.7 has graduated from the Beta phase to RC1. The new release of WordPress has a completely redesigned admin section bringing back some features that went away in 2.5, and adding to the party a brand new dashboard which makes the platform that much more useful.

I’ve just run the 2.7 update myself tonight (I swore I’d wait until the full release before putting it on the main blog… but I couldn’t wait anymore) and I’m really liking the changes so far. The fact that I can quickly look at the dashboard and see comment stats, recent everything and pen a draft all at the same time is great.

So far everything looks good, though I did have to deactivate a couple of plugins to make things work as expected.  TinyMCE Advanced was causing some CSS issues (I could fix it I’m sure but… meh).  In addition I had a plugin to replace the category box in the sidebar when posting which isn’t required anymore with 2.7.

Stay tuned here for more of the pros, cons and otherwise of the newest member of the WordPress family.

Waxing Poetic on the DNS Incident

For those of you who haven’t been following recent security news, there’s been a major defect found in the DNS protocol which has led to a series of patches for all forms of DNS servers.  Though the issue doesn’t affect most peoples’ home computers, it does affect pretty much every ISP on the planet as it makes older versions of DNS vulnerable to a DNS Cache Poisoning attack.

With a vulnerability so wide-reaching, security researchers decided it would be wise to keep the exact nature of the vulnerability something of a secret until the patches were ready.  They did however announce that a vulnerability had been found.

This announcement was all it took for security-savvy netizens (the ones who know just enough to be dangerous) to start speculating and researching the nature of the DNS defect.  The good thing?  They figured it out.  The bad thing?  They publicized it.

As a keen observer of the whole mess, security expert and blogger Chris Hoff decided to dedicate a poem to the DNS Debacle.  I’ve included a short excerpt:

A bunch of big egos called Dan on a bluff said his vuln was a copy of 10 year old stuff So Dan swore them on handshakes and details were provided and those same cocky claims soon all but subsided

Go and check the poem out.  It’s extremely creative, and as far as I can tell factually accurate to the events that took place.  My hat’s off to Chris Hoff for providing the prose, now we’ll all cross our fingers and see how it goes…  ;)

WordPress 2.6 – Restore the “Add Image” button

During the recent upgrade to WP 2.6 I noticed that the old “Add Image” button was missing.  This is something I use quite a bit because it’s quick and simple.  Call me old fashioned, but I don’t particularly care for the new Media-bar uploader.

After some searching on Google and the WordPress.org forums, I came across a relatively easy fix.  To restore this button, and add a few others, you can install the TinyMCE Advanced plugin.  TinyMCE is the editor that’s built in to WordPress’ visual editor.

Once the plugin is added, all the functionality you had before will be restored, along with a ton of cool new neato features!

Investigating the ASP.NET MVC Framework

Over the past few months I’ve been hearing more and more about a new framework being developed by Microsoft and the ASP.NET community.  It’s something that will bring a very common coding practice from the Java world and that’s the pattern of the model view controller (MVC) framework.

Due to the covoluted nature of my own school experience, I haven’t had much in the way of formal exposure to MVC concepts.  In fact it wasn’t until about 18 months ago that I first heard the term when we were rolling out a new Java framework at work.  This was a pretty major shift in direction for my team as we’d been using ASP.NET and webforms to do web application development for the past few years.

The transition hasn’t been an easy one.  Most of the folks involved in the project are new to the company, new to the working world in general and the training on MVC was at a minimum.  (I’m leading a team to replace that framework now, but I’ll talk more about this in some future posts.)

So over the past few months I’ve been reading posts by Scott Guthrie and listening to every episode of the Polymorphic Podcast that I can get my hands on.  The PMP in particular has proven to be an excellent resource for information relating to the ASP.NET MVC framework.  Craig Shoemaker regularly brings on guests who are experts in the field of .NET development and key players in development of the framework.

Over the next few months (in amongst my myriad other projects) I want to take a closer look at the MVC framework and see what all the hype is about.  I need to figure out how to get a decent windows development environment up and running.  For that I’m thinking about returning to a Boot Camp setup to give me a bigger boost when running my Windows environment locally on the Macbook.

Since my new role doesn’t involve a lot of development work, I’m really looking forward to getting my hands dirty again, and diving under the hood once again.

WordPress 2.6 Launches new Security Feature

WordPress 2.6 launched earlier this week and among the new features in this seemingly solid build is a significant security enhancement for how WP handles cookies.

Essentially what it boils down to is WP has separated cookies used for accessing the admin interface through HTTPS (SSL) and regular unsecured HTTP.  This allows for login information and the login cookie to be secured through the encrypted stream on every access.

The details are in Ryan Boren’s blog and get into a fair bit of detail.