Switching from the Mac to the PC – Why and How

As I recently mentioned in another post, I’ve just switched back to Windows as my primary operating system after years of using Mac OSX. The reason for this wasn’t because I chose it, but because my wonderful Macbook died after years of hard use and poor care. I loved it dearly, and I must say that it was the best machine I ever bought. I often took it with me when I left the house and I used it pretty much as my primary machine for years. At the same time, I also had this PC (the one I’m writing from) running a dual boot Hackintosh/Vista configuration. I only used Vista for gaming and the occasional Windows program, so most of my time was spent on the Hackintosh setup running OSX. I managed to mess this up recently and ended up having to rebuild the system. Rather than set it back up the way it was, I decided to give Windows 7 a try.

At first, I found switching quite painful, but after having several days to get used to it, I have to acknowledge that Microsoft has finally produced a decent OS again. I find the taskbar a huge improvement and the new window docking system is fantastic, especially coupled with use of the hotkeys. It goes a long way in making up for historical lacks in productivity features on Windows, and it makes switching applications, bringing them up side by side, maximizing and minimizing them all very intuitive and effective.

Added to that is the fact that the new look of Windows 7 with aero is quite beautiful in its own way, though I wouldn’t say it goes so far as to come close to OSX. Nevertheless, the themes feature is nice, as is the ability to dock items to the taskbar and control the colors/tints of the translucent areas of the aero interface.

However, there are certain features and programs which I still find lacking. One of these is stacks in OSX. Fortunately, there is something which comes close to dealing with this. Alastria Software has produced something called 7stacks which operates in much the same way as stacks. You essentially just create a shortcut with the software on your desktop, and then pin that shortcut onto your taskbar. What you get as a result which operates and looks very similar to the stacks you would get as part of OSX. At the moment, the software is free. It is in beta, however, and most of the other software on their site seems to involve charges so I wouldn’t be surprised if they went to a commercial system in the future.

Another feature I really missed from OSX was the popular free app, Quicksilver. While it was possible to get by without it by using Spotlight, it never worked as well and as intuitively as Quicksilver did, and didn’t have all of the extra plugins. The closest thing I’ve found to Quicksilver for Windows is an app called Launchy. It works in basically the same way as Quicksilver, and you can customize your hotkeys. Launchy also supports plugins and different skins, making it both a useful and beautiful app to use. It’s definitely a must have.

For the Spaces/Esposé experience, there are a few choices. Switcher and iEx are free apps which mimic these sorts of features, but there are also some commercial packages such as AnthaBounce (formerly Winplosion) which aren’t horribly expensive. Personally, I’d go with Switcher if you need this sort of functionality. You can change the behavior and style of windows, set different hotkeys or screen areas for activation, and it really does work very well.

For more must-have Windows apps to make your life more bearable, you should check out my post on My Top 25 Must-Have Free Windows Apps. I’ve written it from the standpoint of having just switched, so it should be useful for you. Other than that, stay tuned for more tips as they come to me.

My Top 10 Mac RSS reader picks

I recently decided to take a look at the RSS aggregator/reader market for the Mac and see if I could come up with a better reader than the one I’ve been using for the past couple of years. I started reading some things, downloaded a bunch of them, and started to sort through them one at a time. This post sort of details how I did that and what my results were.

First of all, I narrowed down my choices to a list of 10 RSS readers. I did this mainly be reading reviews and asking around about preferences people had. I tried to get a sense of them and what sort of experience they offered, so I wrote very abbreviated ‘strength blurb’ for each of them. This is what I came up with as a starting point, in no particular order:

vienna 1.Vienna
Very intuitive interface, functional and simple RSS viewing.
newsfire 2.NewsFire
Pretty interface, good search functions, great with just a keyboard.
shrook 3.Shrook
Intuitive customizable interface with a wide view, learning folders, synchronization.
netnewswire 4.NetNewsWire
Clippings, good search, good flags and folders, smart lists.
rssowl 5.RSSOwl
Open Source, cross platform, highly customizable.
attensa 6.Attensa
Convenient publishing, email and tag buttons, synchronization with del.icio.us tags.
pixelnews 7.PixelNews
Looks nice, creates a sort of continuous news stream.
times 8.Times
Newspaper design, multiple pages, easy on the eyes, shelf for storing articles.
cyndicate 9.Cyndicate
Great tagging, label and visual customization support.
newslife 10.NewsLife
News bin for saving articles for later, very simple and easy to understand.

Ok, so at this point I already had some idea of which RSS readers weren’t going to work for me, but I wanted to pin down features I wanted and didn’t really need. I should also mention at this point that my original reader of choice was Vienna and that at this point it was still in with a chance of winning, maybe because the interface was very familiar to me and works perfectly well. I made this list:

Things which are not important to me:

1. Growl notification – I don’t want growl notifications distracting me from something else I’m doing. If I want to read my news feeds, I’ll read my news feeds when I get to it, not when Growl annoys me enough. I’ve made the mistake in the past of enabling growl notifications for too many things and ended up really hating it and ignoring Growl altogether, which doesn’t really make it a useful tool.
2. Cross platform support – I usually read my RSS feeds on my Macbook. Since I take my Macbook with me when I go away, I don’t really need an RSS reader that works on other platforms at the moment. There may be a point in the future (if I get a netbook or something and run Linux) where I may want cross platform support but at the moment it really doesn’t matter to me.

Things which are important to me:

1. Cost – I don’t have a lot of money to spend on something like this, and I’d prefer a free product.
2. Blogging/social network support – I’d like to be able to easily blog on topics I find in my reader or post them to social bookmarking sites, social networks, or microblogging services.
3. Email forwarding support – I’d prefer to use an RSS reader which allows me to easily forward article contents or links to friends or family quickly so I can’t have to do it manually.
4. Synchronization – This isn’t a huge deal to me at the moment, but if I ever decide to get another home computer, chances are it will be an iMac and I’ll want to be able to sync my newsreader between my home machine and the Macbook I have with me when I’m out and about.
5. Keyboard Navigation – I hate clicking on things unless I have to, and I’d always rather have an RSS reader which I can navigate easily with the keyboard, whether this be through the arrow keys and spacebar or hotkeys.

At this point, I made a spreadsheet in Google Docs so that I could easily keep track of which reader had which features. I’ll stick it below here with Google Elements so you can see:


As you can see, PixelNews was really not what I was looking for here and the two which really seemed to shine were Shrook and NetNewsWire, followed by Vienna, NewsFire and Attensa which were only missing out on sufficient synchronization features which I wouldn’t be using right now anyway. I really enjoyed Shrook’s interface but I did see a potential problem in that it is obviously best viewed on a quite wide screen and may not be great when I don’t have another monitor and am just walking around with my little Macbook. I tested it out and I actually found my Macbook screen quite capable of pulling it off and I think I’ll be giving Shrook a chance. I’ll probably still use Vienna here and there, though – until I actually have something to sync.

Just a note before I go – in terms of the best keyboard navigation, I’d say that NewsFire was pretty great. On the other hand, in terms of the best overall design and idea, the best choice is Times. If I had money to blow and didn’t mind clicking occasionally, Times would be my choice hands down. It looks fantastic, is incredibly easy on the eyes, has good social network/bookmarking features and has a quite cool ‘shelf’ to store articles for later. Also according to the site, “Times shows you the entire story regardless of source” which “should work with most (but not all) major news sites.” Check out the demo if you get a chance.

A more productive Python learning experience

I’ve recently decided that I’ve wasted a large portion of my working life not teaching myself things and learning new skills. This is all too evident when faced with a difficult job market like we’re facing at the moment. As someone with primarily Microsoft experience and having worked mainly in that area and with the software and hardware systems which are common to the US military, I find that I’m often facing a skills gap when trying to apply for jobs in the open market. I left the US Air Force in December of 2007 and worked as a web developer and Linux/BSD server admin for a while and during that time I realized more than anything else that I didn’t know enough and needed to learn more. My goal overall is not to be a developer, though I am interested in doing work of that nature to some extent. Since I enjoy writing but can’t immediately make the jump from IT, my short term goal would be to understand current technology and development enough to be able to write about it with authority in something like technical writing, which is more my style. I’ve dealt with technical writing and documentation some in the past, and I enjoy it.

That being said, I’m not exactly sure how to go about this process. I suppose the best way to write about topics is to understand them and in order to understand them you have to gain some practical real world knowledge of their working. This is where I come up against some problems. I want to be able to understand some of what modern programming is about. I’ve got some experience with HTML/CSS/PHP but I want to delve into something like Python. I hear a lot of good things about it so I decided recently that I was going to take it up. My problem is that I often find it difficult to learn programming languages and have failed several times to learn one or another in the past, due to not sticking with it in the long run. This time, I’d like to avoid that. Here is how I intend to do it:

Initially, I started reading some guides and tutorials on the internet, which is a great way to start learning without having to spend a whole lot of money on a big book. The problem with tutorials is that in order to do the stuff written in them, you’ve got to change windows. This means that you end up switching back and forth between your browser, PDF or text file and your terminal window, IDE, etc. I hate this. Yeah, it’s easy enough to switch on a Mac and I can do it pretty quickly, but I don’t want to have to do it at all, and I don’t always have my other monitor available for the task. Enter Learn Python.

Learn Python is a program which was imagined and implemented by Daniel Jalkut of Red Sweater Software. Essentially it is a shell window and a browser window smashed together. You can have your shell and browser panes top to bottom or left to right according to your preference, and when you close the program, it saves the URL so that when you open the program again you can continue your tutorial where you left off. It brings a level of productivity to the learning process which I didn’t have before and I think it’s great. If you’re thinking of learning a programming language or just want to gain better understanding of the shell, etc. it is a great way to view tutorials on any subject and input commands to replicate the results. I personally wanted to use Python 3.0 instead of the default version which comes with OSX so I installed it and changed the Localizable.strings file (Show Package Contents > Contents > Resources > English.lproj) to read:

"/usr/bin/python" = "/Library/Frameworks/Python.framework/Versions/3.0/bin/python3.0";

Another great resource I’ve found for learning Python is the site ShowMeDo.com, which has learning paths and screencasts from very beginner levels to more intermediate and advances lessons later on. If you follow the learning paths, the lessons come with prerequisite lessons you should view before you do others and it really starts you off with a fresh (or refreshed) base of knowledge. This includes various linux command line knowledge and using tools such as subversion for source code version control. This method of learning is great for visual and auditory learners, and you can follow along or pause the video if you need a bit more time. It’s definitely worth checking out if you’re trying to learn. They also have paths for Java, Ruby, C and web frameworks like Django.

Lastly, I’ll just list some of the better beginner guides out there for Python. I’m by no means an expert on the subject and I do have a long IT background but I’ve approached this learning process as if I knew nothing at all, so if you follow what I’m following you should be able to pick it up in time, probably faster than I can. As I said, I don’t really aim to be a developer. I want to write about this stuff. I think I’m fairly good at explaining things in writing, but you tell me. If anyone out there has any advice on pursuing the noble path of technical writing, let me know. Anyway, here are the guides.

A Byte of Python
Dive Into Python
The Python Tutorial
Non-Programmer’s Tutorial for Python
Introduction to Programming using Python

Learning to Program
One Day of IDLE toying