The $80 web development workstation
The de facto standard platform for web development is the Macbook, especially among Ruby on Rails developers. Macs are convenient machines that combine the power of UNIX with world-class interface design. However, they cost over $1000 and come with a proprietary system that was designed for the casual computer user, with little thought given to power users. Is the Macbook the ideal computer for the contemporary web hacker?
I bought an IBM Thinkpad T42 off eBay for $70 + $10 shipping. It is not powerful by today’s standards, but Thinkpads were known for their reliability when IBM made them and this one has a generous 1400x1050 screen resolution, which is perfect for displaying the modern web. Using it makes me miss the Macbook’s wonderful touchpad. The T42’s touchpad is hardly usable for productivity. Disappointingly, so is the iconic red nub. A keyboard-centric system is the only way to go if productivity is a priority. But overall, the laptop is a well-designed machine compared to even today’s laptops.
I installed Arch Linux, a minimalist and pragmatic distribution with an active, intelligent community, a wonderful wiki and a sleek package manager. Becoming familiar with the shell and Vim makes life with Arch drastically easier. I recommend The Linux Command Line and “Learn Vim Progressively” to learn these. I installed dwm, a tiling window manager with the smallest footprint in town, as well as the best usability (dmenu rocks!). Graphical software tends to be slow and a pain to use on this machine. I avoid it and use command line software whenever I can (the Arch wiki provides a very helpful list of these). This does not bother me. The command line becomes less daunting over time, and eventually one learns to appreciate its elegance and the level of control it affords. I enjoy the feeling of turning on my laptop and seeing a big IBM logo flash on the screen, followed by a refreshing display of monospace minimalism: Syslinux, a quick stream of white and green text indicating a successful boot, the standard pitch black login prompt. I enter my credentials, my personalized dwm desktop pops up, and I do a quick <ctrl-p>st<enter> to pop up an empty black terminal. At that point, I wield the power to destroy the world at my fingertips.
Of course, I cannot avoid using a non-graphical web browser. Lynx generally works nice only for sites that consciously cater to Lynx, like DuckDuckGo and the Arch Linux website, not to mention I make a living developing websites for people who typically expect CSS in their experience. My current browser of choice is Chromium with Vimium. It takes some time for it to start up and it is not the smoothest experience, but it is quite usable. suckless surf looks interesting, but its easylinks script for Vimium-esque browsing is not quite up to par. I’ll write a superior solution in the future.
The process of coding on this laptop is even more pleasant than on a Macbook. I use one workspace for Vim, one for automated test and server log streams, and another for Chromium. Switching between workspaces and moving windows between them is very easy and seamless. I use dunst for red-green-refactor cycle notifications – it is not ideal, as I’d prefer nonintrusive dmenu notifications, but it’s much better than nothing.
Is my frugal setup more worthwhile than a modern Macbook with OS X for web development? I believe it is. I feel more comfortable with the Thinkpad because of the full control I have over the system. It takes a lot more time and energy to set up Arch Linux versus OS X, but the complete control is worth it to me, plus one has to go through the process only once while learning useful stuff in the process. For non-minimalist desktops and front-heavy web development, it might be a good idea to invest in a somewhat more powerful machine.