My Computing Philosophy
Larry Wall, the original author of the Perl programming language, stated in Programming Perl that there are three great virtues of a programmer; Laziness, Impatience, and Hubris.
- Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don’t have to answer so many questions about it.
- Impatience: The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to.
- Hubris: The quality that makes you write (and maintain) programs that other people won’t want to say bad things about.
I think that I have these three all locked up. If I need to do a task more than twice, I’m going to make my computer do it for me. This strategy has led me to standardize and automate most of the menial tasks associated with teaching my courses. As a consequence, I have more time to be innovative and interact with my students more.
I am not a program language snob; I’m not going to get into a range war over which language is the best. Computer languages are just tools - pick the one that works best to solve the problem at hand. I am proficient scripting with a few interpreted languages including AppleScript, bash, Perl, Python, and R. I am also fairly competent using SQL and know a bit of C++. Given a choice, I will usually use the command line rather than a GUI. This is probably a result of learning using DOS 3.1 and VAX on a VT100 terminal (anyone remember playing Colossal Cave?).
For fun and as a hobby, I got myself a little Raspberry Pi 2. It is amazing how much you can actually do with a $35 computer! I figure that I can probably eke by doing about 90% of my normal work with nothing more than the Pi, a bluetooth keyboard, my television, and my decent home wifi internet access. Coupled with a VPS (like my droplet described briefly below), I can do about 95% of all my work. Sure, the processor is a bit slow. But hey, this is just for fun anyhow. Playing with this reminds me of first playing around with my brother’s first Tandy computer. I’m hoping to use this Pi to send a camera into space on a weather balloon (If I can get Jennifer Johnson - one of our Geography professors - interested).
This year I also finally broke down and bought an ASUS 302C chromebook. Now that chromebooks can also run android apps, they are really becoming viable platforms. I have been pleasantly surprised by the experience. I can do everything that I need to do on this device. This is a 2-in-1 setup, so it can basically replace both my MacBook Pro and my iPad. I now use this to travel and leave my more expensive (and heavier) devices at home. Coupled with the VPS, I can even do all the data crunching that I need from anywhere in the world. It seems that the computer pendulum is swinging back toward the days of the old VT100 terminals…
Virtual Private Servers (VPS)
This website is actually part of an ongoing exploration of the whole VPS phenomenon for me. I have set up a Ubuntu 16.04 instance on a DigitalOcean droplet. This site and several data science applications are running on it for just $5.00 per month.
I will be the first to admit that I am a bit of an Apple fanboy. If it runs and 1’s and 0’s, I can get my work done. I’ve worked at one time or another on VAX, Unix, Linux, DOS, and CP/M machines. It is just that I find the Macintosh operating systems to be quick, clean, and intuitive. That, and I really like having the bash command line for getting things done. I’ve owned over a dozen different Macs (starting with an old SE 30 and ending up with my current MacBook Pro. This entire website is created on that machine using Jekyll and is then pushed to DigitalOcean for building using git.