Monthly Archive for December, 2008

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.

Serendipity and education

Ethan Zuckerman’s posts (an example) on serendipity have got me thinking. He has been concerned with how the way people use the web has led to more and more like-minded people reading the same things, resulting in their wearing blinders of sorts to other points of view. My first thought was that we need to educate children to not only seek out and compare viewpoints but to instinctively do it. I think of the human brain being wired to take the well-worn path: if, e.g., you are inclined to figure out how things work, then when presented with a new device, you naturally want to take it apart and figure out how it works. Another example is if you are inclined to find fault with a new idea, then when presented with one, you naturally look for its failure cases. Einstein talked about the curvature of space as a way of describing gravity. I like to think of the human brain having proclivities that allow for thought patterns to follow easy paths that are like Einstein’s curved space. Just thought I’d throw that analogy in because it gives me a nice visual!

So how do we teach children to instinctively think in a way that craves multiple viewpoints and seeks out uncommon paths that might lead to better clarity? Answering a question like this is far more important than trying to figure out how to increase the number of computers per classroom, or how to get more students interesting in science and math. Those two goals, more computers/classroom and a greater interest in math and science, may fall out as two benefits of educating children to think more creatively and critically. In fact I have an intuitive feeling that they will. One thing I harp about when talking about education (ask my children) is that it is really important to ‘learn how to learn.’ Getting an education is not about picking the subjects that will make for a good career or a well-rounded education. It is all about how you improve your thinking and a lot of your thinking is about how well you learn.