How to install a Mac theme for Windows

I was just delivered a new laptop from my company. It is a smoking smoking Dell E6500 duo core processor with a sweet solid stated drive and…. Windows XP (booo!).

While it is a very stable system, I can’t help but have flashbacks to the early 2000′s when I look at the XP windows manager. It just looks so dated by today’s standards. After about 20 minutes I just couldn’t take it any more and had to modify the look. I came across a great looking Mac theme for XP and I have to say that overall I am pretty pleased with the look and feel now. Here is a screenshot of what it looks like now:

(click for full-size)

If you want your Windows XP machine to look like that, then do the following. First you will need to run a patch utility that allows you to install non-Microsoft approved themes such as this. Given the restrictive nature of Microsoft software, this is surprisingly easy to do. Download the UXtheme Multi-patcher for free from softpedia.com.  Inside the zip file you will find a single executable file.  Run it and follow the instructions.

When that step is complete, you have now freed yourself to be able to install any theme you like.  You can find lots of themes at places like deviantArt and  WinCustomize.com.  The former is where I found the Mac Panther theme that we will be using.  Download that theme and unzip the contained “Panther” folder to C:WINDOWSResourcesThemes.  Once you do this, go into that folder and double-click the file Panther.msstyles.  With this step, you have now installed the theme.  To finish the look though, I took a few other steps.

First, I moved my start bar to the top of the screen.  If you can’t drag yours, you may need to right-click on the task bar and un-check “Lock the Taskbar”.  After I moved it, I found that it left an undesirable border line on the bottom of the bar that I corrected by rechecking “Lock the Taskbar”.

So what about that background?  I found a pretty nice looking version of that Mac inspired wallpaper here.

And lastly, it is time to create that launcher that you see at the bottom of the screen.  RocketDock is an really clean (and free!) application launcher for windows.  Download RocketDock from here and install.  Customize the options as you see fit and you are done!

So here is the bottom line… Is this whole idea a little bit goofy?  Perhaps.  However, it is far less goofy than a default XP theme for damn sure.  It gives it a really clean feel and I am no longer quite as bitter about having XP. :)

Create SSL sites in Apache on Windows with OpenSSL

To get a secure SSL site up and running on Apache under Windows, there are a few hoops to jump through that are not very intuitive.  To that end, I am going to document my approach to setting up SSL using OpenSSL.  This approach assumes that you already have Apache up and running on your machine, so if you have not done that, head over to the HTTPD download page and set that up before continuing.

  • Setting up OpenSSL
    First we need to get OpenSSL setup on our system, which is not included with the Apache Windows binaries.  In fact the OpenSSL project doesn’t even provide the binaries themselves, but you can find them at Shining Light Productions.  For this example, I will be choosing the Win32 OpenSSL v0.9.8k Light version.  If you see a message like the one below, you will need to install the Microsoft Visual C++ 2008 Redistributable Package and then attempt the OpenSSL installation again.

    Once you have it installed, you can do a quick test to make sure that it is set up properly:

  • Creating Certificates
    Next, we will use the OpenSSL terminal interface to create our self-signed certificates.  To explain a bit about what is going on below, I have a site already existing on my system that can be reached at http://scribble.  What we are doing is creating a secure subdomain of https://secure.scribble.   Typically when I create certificates, I name the files with the host/domain obvious so that they can be easily identified later.  Obviously you will want to replace the domain name to match your setup, but type the following in the terminal in the OpenSSL/bin directory:

    openssl req -new -out secure.scribble.csr -keyout secure.scribble.pem

    That will generate what you see below.

    You may notice that I left a lot of the prompts blank.  Considering this is a dummy certificate in a development environment, that approach makes sense.  You may choose to be more explicit based on your needs.

    If we were to use this key as it is, we would be prompted for the password every time that Apache starts.  Since that is less than ideal, we will now generate a non-protected key from the one we created in the previous step by typing the following:

    openssl rsa -in secure.scribble.pem -out secure.scribble.key

    You can see that I was prompted for a pass phrase.  This is the same password that you created when we generated the certificate above.

    Now we need to need to build the certificate that we will actually import into Apache.  You can do so by typing:

    openssl x509 -in secure.scribble.csr -out secure.scribble.cert -req -signkey secure.scribble.key -days 1000

    This will result in the following output:

    You can see that we now have a .cert, .csr, .key, and .pem file for our domain.  We will use a combination of the .key and the .cert

  • Configuring Apache
    Now we need to make sure that your Apache server is ready to serve SSL requests.

    First, let’s put the .key and .cert files that we created above into a directory under Apache.  In your “conf” directory, create a subdirectory named “ssl” and move secure.scribble.key and secure.scribble.cert into that new directory.

    Next we need to make sure that the mod_ssl module is enabled.  Open up the httpd.conf file for your Apache webserver.  Search for “mod_ssl” and you should find a line that looks like this:

    Yours will likely be commented out with a ‘#’ sign in front of the line.  You will want to delete that ‘#’ so that it looks like the highlighted line above.

    Next you will need to make sure that you have uncommented the line that includes the httpd-ssl.conf file like you see below:

    The last thing we need to do is configure our site.  Open up the conf/extra/httpd-ssl.conf file in an editor.  You will see that there is an amazingly huge and complex site definition in there already that starts with and ends about 150 lines later with .  We need to disable this site.  If you are feeling bold, you can simply delete it.  However, I take the approach of commenting it out entirely so that I still have it as a reference, which is my recommendation as well.   Starting with the line , put a ‘#’ at the start of every line that doesn’t already have one and continue until you comment out the line.

    Now it is finally time for us to create the site definition for our https://secure.scribble site.  We will use some of the concepts in the example, but eliminate most of them.  Here is what mine looks like after paring down all the excess:

    <VirtualHost *:443>
    DocumentRoot "C:/www/scribble"
    ServerName secure.scribble:443
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile conf/ssl/secure.scribble.cert
    SSLCertificateKeyFile conf/ssl/secure.scribble.key
    </VirtualHost>

    In that code you can see where we are pointing to the .key and .cert files that we created above.

    Now, restart your Apache server and you are now serving up securely!

A linux guy’s experience with Windows 7

Anyone who knows me well knows that I am typically somewhat of an anti-Windows guy. I absolutely love linux, and get very frustrated by Windows in general. The only thing that I really dislike about linux is the lack of application support by a number of companies (ahem…. Adobe).  Before going to the Adobe MAX conference, I decided I should swap out OSes on my personal laptop so that I could run all the stuff I would need for labs without constantly cursing about being stuck in a VM, limited functionality, etc.  A friend had just bought a package of Windows 7 licenses and sold me one for 5 bucks, which I considered to be a pretty reasonable risk.  I opted for installing Windows 7 on my laptop.

Given that background and my previous feelings about Windows, I have to say that it is a pretty dang nice operating system.  It is by far the best offering to date by MS in my opinion.  There are a few things that they still haven’t managed to get right (native file copy still makes me want to stick forks in my eyes), but by and large they have done a great job with Windows 7.  Other than having to track down a few drivers for my laptop, the installation was painless – if not fast.  This is still an area that linux, and especially Ubuntu, wins hands down though.  Apps run extremely stable, and with the addition of a new concept of “Libraries”, directories that I need access to regularly are right at hand instead of having to tree down through big hierarchies.  I am also not finding what I expected would be an immediate degradation of performance after installing all the servers and development tools that I use on a daily basis.  Over all, so far so good.

A few things that I think are a *must* for the way that I use it.

  • I found a “sudo” program called Start++ that allows me to open applications from the terminal or start menu as Administrator by typing sudo notepad [or some other program].  It will prompt you for the UAC stuff and the program will open as administrator.  I use this regularly for editing system files like hosts, apache configs, and use it to open a terminal to fire off j2ee servers.
  • Install Teracopy which is a replacement for the Windows copy program.  While certainly not as fast/efficient as a linux terminal, it greatly increases file copy speed over the native windows GUI file copy.  No more “preparing to copy” waits while your system bogs down.

Things that annoy me

  • I still wish I could have a real terminal and be able to use VI in sudo, but that is just something I will have to get over I guess.
  • I hate that I now have to be so careful with regard to viruses and spyware.  I love the protection that linux offers in that area, and having to go out of my to stay protected seems a bit cumbersome.
  • I miss being able to easily try out software with the ease of the synaptic package manager.  It seems foreign now to have to download an exe run an installer and have settings being obscurely written all over a “black box” registry.
  • I miss built-in networking tools.  Even simply things like being able to run “whois” from the teminal.
  • My drive is getting fragmented far faster than with linux, and I find that I am running the defrag tool fairly often.  Linux just manages this under the covers and I never have to worry about it.

All said, after using it for about the past 4 weeks, I can honestly say that I am surprised (and perhaps even a bit disappointed) that I like it as much as I do.  I planned on just running it while I was at the Adobe MAX conference and going back to linux when I got home, but it looks like I will be keeping it for a while longer.