I was reading the Internet Explorer 9 Platform Preview release notes, and was happy to see that SVG is listed among its supported features.  It's one of those features that have been dubiously missing from previous versions of the browser. This has forced many developers to opt for VML when rendering to Internet Explorer, which can be a pain as I recently found out while working on a project, because certain features always seem to be broken with each new release. While it will be years before we will only have to support SVG across all browsers, it's still great to see that this will eventually be possible. However, from my experience with Microsoft technologies, I say that with a great deal of caution.

Share this post: digg del.icio.us reddit google bookmark

I was recently asked by a colleague if it was possible to run a 64-bit guest operating system on a 32-bit host. The question was specifically geared towards running Windows 2008 R2, via VMware Player, on Windows XP.

Yes you should definitely be able to run a 64-bit virtual machine on a 32-bit host like Windows XP. There are a couple of caveats, which include:

  1. The virtual machine software must support 64-bit guests. That is, VMware Player must support 64-bit guests, which it does. You should use the latest version (3.0 as of this article) to be sure you get support for Windows 2008 R2. See the release notes for more information.
  2. The CPU on the machine must support 64-bit instructions. In the case of Intel based CPUs, EMT64.
  3. The CPU must support Virtualization Technology. Again, for Intel CPUs this is the VT extensions.
  4. VT must be enabled. This is often accomplished via the Bios.

Those are the perquisites for running 64-bit guests, like Windows 2008 R2, on a 32-bit host. You can check if your CPU supports 64-bit instructions and virtualization technology using CPU-Z, or the VMware shared utilities. VMware also provides additional information in this knowledge base article.

Share this post: digg del.icio.us reddit google bookmark

I've been reading the High Scalability blog quite a bit lately. After reading several articles over the past couple of weeks, I'm wondering where are all the web startups that are using the Microsoft stack? I believe .NET is a very productive platform on which a successful web-based product can be built, and I really like the C# programming language. I don't consider  myself a Microsoft fan boy, and in the past I've recommend and used open source technologies for a few startups that I've worked with. So, why aren't more startups using .NET? Maybe they are out there, but not heavily advertised. A few notable exceptions include:

One issue that seems to always be raised is the cost of Microsoft's SQL Server, especially as one begins to scale out. If your strategy is to scale up by purchasing bigger hardware, then the cost may be fine, but as you begin to scale out, the costs can go significantly higher. So, for a start-up, who more than likely has very little money, this is not going to be a viable option.

Microsoft has attempted to address this issue by creating the BizSpark program, where a startup can use their software virtually free of charge for up to three years. At the end of the program you would pay a small fee, and purchase the production licenses for software that you will continue to use. The assumption that seems to be made here is that after the three year period a company will be generating enough revenue to afford the licenses. This is a step in the right direction, but after the three year period you still have to potentially fork out a large sum of money. 

Given theses choices I can understand why most startups shy away from using the Microsoft stack. However, I've been looking at it more seriously, and I'm wondering if you could replace the more costly pieces of the stack with another suitable option, then would it become more attractive. Specifically, what if you could replaced SQL Server with another open source database, like MySQL or PostgreSQL? It seems that these products have mature .NET support, so I can't see why they wouldn't be great choices to replace SQL Server. ThePort indicates a similar strategy as they begin to look at scaling their application.

However robust the cluster is, we've concluded that we will eventually have to move to a sharded architecture with MySQL. MS SQL licensing fees makes both continuing to enhance the cluster and scaling out to multiple machines prohibitive.

Additionally, you have the express versions of Visual Studio, which are more than capable. When combined with other open source tools like NAnt, Subversion, NUnit, and CruiseControl.net, I think you a have viable development platform for almost any application.

Obviously, I'm coming from a position that lacks the experience implementing such a solution, but as I begin to review potential options for new projects, this is one that I would have to seriously consider.

Here are a few resources for further reading on the subject:

I would love to hear opinions on this.

Reblog this post [with Zemanta]
Share this post: digg del.icio.us reddit google bookmark

Although I had more than enough room remaining on the 250GB Serial ATA drive that came with my MacBook Pro, I decided to upgrade the hard drive to a 500GB 7200 RPM drive. My main reason for doing this is that I wanted a faster drive, since the previous drive ran at 5400 RPM. After some research, I decided to go with the Hitachi Travelstar 7K500. I purchased the drive and an Acomdata Tango USB & Firewire enclosure from my favorite place, Newegg.

This was my first time upgrading my MacBook Pro, which is a mid-2009 Unibody edition. The process was very easy, except for the fact that I didn't have a Torx screw driver, which is needed for the hard drive, but thank God for New York City, and the 24 hour Best Buy not too far from me. Where else can you go at 12 midnight to purchase a screw driver kit? Anyway, below are the steps I took to upgrade the hard drive. I've also included a few screen shots to serve as guidance.

In preparation you will need to do the following:

  • Download and install Carbon Copy Cloner. Also, please show your support by donating to this incredible useful tool.
  • Read ifixit for instructions on removing the hard drive for your particular model.
  • Before proceeding, it is wise to create a backup of your current drive. I didn't do this, but it's probably best to do, just in case something goes wrong.

 

To upgrade the hard drive I did the following:

1. Format the new disk drive

  • Connect the new drive, via enclosure, to the machine.
  • Open Disk Utility, which can be found under the Applications->Utilities folder.
  • Select the new drive, and click the Erase tab.
  • Select "Mac OS Extended (Journaled)" as the format, and give the drive a name.
  • Click "Erase".

Highslide JS

 

2. Repair permissions on the current drive

  • From Disk Utility, select your current hard drive.
  • Click "Repair Permissions".

Highslide JS

 

3. Clone the current hard drive to the new drive

  • Open Carbon Copy Cloner, which should have been installed to the Applications folder.
  • Select your current hard drive as the "Source Disk" and the new drive as the "Target Disk".
  • Select "Backup Everything" for "Cloning Options".
  • I left "Delete items that don't exist on the source" unchecked.
  • Verify that it says "This item will be bootable".
  • Click "Clone".
  • (Optional) After the drive has been cloned. I went back to Disc Utility, selected the new drive and click "Repair Permissions".

Highslide JS

 

4. Boot to the new drive to ensure that it works

  • Reboot the machine, immediately holding down the "Option" key.
  • The "Startup Manager" screen will appear.
  • Select the external drive as the boot drive.

Note: This may be a slow process. At least I found it a little painful.

 

5. Replace the old drive with the new one

After verifying that the clone copy works, remove the old hard drive and install the new drive.

 

I hope you find this helpful. Have fun!

Share this post: digg del.icio.us reddit google bookmark

Shawn Adrian has been kind enough to freely share a few images that he has created in Photoshop. Check them out.

Share this post: digg del.icio.us reddit google bookmark

Recently, I wrote a utility to extract dehydrated messages from a BizTalk 2006 environment. As part of the process, I needed to figure out what folder the BizTalk software was installed in. Below is a function I quickly wrote to retrieve the BizTalk installation path from the Windows registry. I thought it might be something useful to share.

public string GetBizTalkInstallationFolder()
{
    string biztalkFolder = String.Empty;

    using (RegistryKey biztalkKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\BizTalk Server\\3.0"))
    {
        biztalkFolder = biztalkKey.GetValue("InstallPath", String.Empty).ToString();
    }

    return biztalkFolder;
}
Share this post: digg del.icio.us reddit google bookmark

New Blog Home

| No Comments | No TrackBacks

So, for the 3 people who read my blog, if that many.You may have noticed that it was down for a couple of weeks. I've been in the process of moving away from hosting my blog at home to a more reliable host (anything is more reliable than that). I wanted to host from home, because I use Solaris, and I couldn't find a good Solaris 10 VPS. I know, I know, but there are so many good Linux hosting providers. You might also be wondering: why the heck did you choose Solaris in the first place? Well, because that's what I knew best, since I worked with it for several years. Well, that and the fact that I think it's an awesome operating system, despite it not being a popular hosting option. I hope OpenSolaris changes that, but it may just be wishful thinking on my part.

After spending sometime researching hosting providers, it came down to two: Slicehost and Linode. While it was pretty much a toss up, I ended up choosing Linode, because I thought their pricing/feature combination was slightly better. The setup process was fairly smooth . However, it took me longer to get my blog up and running, because I struggled to get MovabeType working with Nginx, and Plack. I would love to hear from folks who have gotten this working. I finally abandoned it and went with my previous setup using Apache. So, my blog is finally up, running on Ubuntu thanks to the great library of documentation that Linode provides to help in configuring various Linux packages.

Share this post: digg del.icio.us reddit google bookmark

Advice for a Career in Software

| No Comments | No TrackBacks

Over the years I have come across many articles, books, tips, and advice that have helped guide and enhance my career as a software professional. I thought it would be a good idea to start cataloging these nuggets of wisdom that I have benefited from, and share them with others. I will start with a page pointing to online articles and in coming weeks add another that catalogs books. For the most part, I've tried my best to avoid articles that cause great controversy or debates, but given the nature of our industry it is sometimes unavoidable. Please feel free to point out other articles that you have found beneficial to your career, and I will update the list. Happy Reading!

 

Eric Sink: Career Calculus

Joel Spolsky:  The Joel Test

Steve Yegge: Less Awful Resume

Guy Kawasaki: What Employers Want to See on Your Resume

Peter Norvig: Teach Yourself Programming in Ten Years

Frederick Brooks: No Silver Bullets

If You're Open To Growth, You Tend to Grow

Reblog this post [with Zemanta]
Share this post: digg del.icio.us reddit google bookmark

As of last week it's been one year since I decided to cancel my television service, and keep just the internet. This is not my first attempt at doing this. About three years ago I stopped watching television for a couple of months. I don't remember the exact number, but I believe it was more than two. I didn't completely remove television viewing from my life, but instead I would rent or purchase specific DVDs that I wanted to watch, thus eliminating the time spent viewing programs that were not beneficial to me. My decision to reduce how much television I watched was initially inspired by an article written by Steve Pavlina, who has a great blog on personal development. So, similar to Steve, I've decided to reflect on how much my life has changed since I made this decision. The following are a few things I observed during the past year:

I watched too much television

I definitely noticed that I watched too much television in the past. Actually, I started to become more sensitive to the amount of television being watched around me. Whenever I hung out with friends or family I would notice just how much television they watched. It seems like we are constantly inundated with so much mindless television, which tries to do most of the thinking for us, instead of allowing us to think things through. I have to agree with Steve's observation that:

One reason is that TV oversimplifies reality. You're presented with subjects in a matter of minutes where everything is nicely wrapped up at the end. Reality is reduced to labels like good or bad, funny or serious, smart or dumb. This harms clear thinking by conditioning you to expect that most problems have a simple, clear solution (and if not, then it will be an overly dramatic solution). But real people and events defy labels. Real life weaves a much richer tapestry than TV, and too much TV viewing can make it hard to see and appreciate that tapestry for what it is. TV skews your map of reality.

I spend too much time on the computer

Similar to Steve, I also noticed that I spend quite a bit of time on the computer. However, I don't think this is something that I would like to change; at least for the time being. Given my current situation in life, with the goals I am pursuing, I believe this is somewhat necessary. I do plan on revisiting this in the future, because I know that over the long term this will not be a good habit to keep.

I read more

I've always been an avid reader, but with the new found time I have been reading even more. In recent months I've been able to finish a couple of books that I purchased, but never had the time to read. In a previous article I mentioned that I wanted to actively engage in growing my technical knowledge over the next year, so I went through my Amazon wish list and purchased a slew of books that I wanted to read at some point, and I'm now going through the first batch. Next year I will create a similar reading plan for the rest of the books.

I get more done

Besides reading, I've also been able to accomplish or pursue other goals I've been wanting to for quite some time. For instance, I've been much more active. I started to exercise on a regular basis, which has had a huge impact on my overall health. I've also been able to complete a few classes that I wanted to take in the past. There are a couple of other activities that I will be starting in the coming months as well.

I spent more time with my friends

Of all the benefits that reducing the amount of television in my life have done, in my opinion this is by far the best. I've become much more social by spending extra time interacting with my friends and family. I believe the results are quite visible, because my relationships are much better. Now, when I'm not working, I actively seek to spend time with friends instead of just watching some television show to pass the time.

I don't plan on going back

Overall, this change had such a positive benefit on my life that I don't want to go back. I want this to be permanent. Whether that is the case in the long term, I'm not sure, but I know for certain that the amount of time I spend watching television has been permanently curtailed. There is just too much that could be done with the extra time than wasting it on an activity that often adds no value to my personal growth. I encourage you to take the challenge and see what it does for your life.

Reblog this post [with Zemanta]
Share this post: digg del.icio.us reddit google bookmark

This article is a few months old, but I was very surprised to read some of its findings. It offers a performance comparison of Windows XP versus Vista and Windows 7. I had no idea XP's performance lead was that large. As one commenter indicated, I wonder what does this say about Windows 2008. I suspect it's not the same case.

Reblog this post [with Zemanta]
Share this post: digg del.icio.us reddit google bookmark