Archive for the 'Software Development & IT' Category

Switching from Windows to OS X

Back in mid-June of this year, I bought a MacBook Pro to use as my personal machine. Although I had owned a Mac G4 dual-proc tower earlier in the century, I didn’t put it to much use before selling it. So the MBP was and is effectively my first MacIntosh computer. After twenty-something years of using and programming on MS-DOS then Windows, using a MBP and OS X has involved some challenges and some moments of bliss. It’s December 12th, just about six months to the date when I purchased my new laptop. Here’s my brief six-month report.

Getting Around

For a few months, whenever I wanted to start a program I either clicked on its icon in the dock or found the program in Finder (and subsequently copied it to the dock). The result was that it became increasingly more difficult to find the app I wanted because my Dock became too crowded. Enter Quicksilver, the freely-downloadable launcher++. It was seeing Will Norris work with an uncluttered dock that got my interest. He uses QS to launch apps and shows just apps that are running in the dock. So that’s what I do now, and it’s a lot easier! QS comes up with a simple Ctrl-Space, and one, two or three letters is typically enough to bring up any application installed on the machine. I haven’t taken Quicksilver to the next phase, exploring its other functionality. Maybe I’ll do that and report back in another six months.

Besides finding apps, there’s the file/document search. I have to say that I was never a fan of having Windows or one of the Microsoft tools index my hard drive so that I could find stuff easily. When I had tried it, the indexing always seem to be inconvient, eating up precious cycles when I needed them for something else. To be fair, I didn’t keep up with the latest releases of, what was it, msn search or whatever, because my early experiences were not good. In OS X, I found Spotlight, accessible from the magnifying glass icon on the main toolbar, to be as easy as pie. Wow, Apple really slam-dunked that feature!

Programming

Since joining Vidoop I’ve been using a Mac at both work and home. At work I’ve been working on web services and some front-end web UI. We’re using Python as our primary programming language, and a number of Python libraries and tools such as Django for web UI framework and Werkzeug for web services framework. Since we’re deploying to Linux boxes, I’ve chosen to do all of my development in OS X. Some developers are using Windows because of their familiarity with the environment or for choice of development tools. I have a lot of comfort with the Windows development environment but wanted to master development from within OS X.

I’ve tried a few code editors, Coda, Eclipse, even Text Wrangler, a free, non-project-oriented version of TextMate. Ultimately, however, I chose vi, or vim, to be specific because of the ease of programming from the keyboard. vim allows me to easily create views on multiple source files, supports syntax color-coding very well, and has nice integration with the os for running command-line tools from within the editor (such as grep-ing a list of files). The one feature that is missing from vim is the visual list of source files that you get in an IDE like Visual Studio or Eclipse. MacVim is a vim-knockoff that supports the OS X windowing features, most importantly the ability to drag and drop a file from Finder (or wherever) onto the MacVim window. Doing so auto-creates a tab opened with the selected file. To do this from vi, I would have to first enter a command such as sp (for creating a split view of the file) and then drag/dropping the file. Not as nice as MacVim.

I’m still running servers manually from the command line (e.g., python manage.py runserver) and I miss some of the IDE integration with the debugger. The benefit of doing a lot of the steps from the command-line, however, is that Linux/Unix is essentially a command-line driven environment and the more comfortable you are with that, the easier it will be to tackle new tasks. Or so I’m starting to believe. The jury is still not out for me on using an all-purpose IDE vs. using various command-line techniques, and maybe I’ll report more on this in another six months.

Code Reviews

PowerShell 2.0 remoting, WS-Management and installation

Trying out technical books

WCF Impressions: Separation of Concerns