-
Notifications
You must be signed in to change notification settings - Fork 119
/
2012-01-06-matt.might.interview
118 lines (65 loc) · 11.4 KB
/
2012-01-06-matt.might.interview
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
---
layout: post
title: "An interview with Matt Might"
slug: "matt.might"
person: "Matt Might"
summary: "CS Professor (University of Utah)"
categories: ['mac', 'linux', 'professor']
credits:
name: "David Van Horn"
url: "http://www.flickr.com/photos/dvanhorn/6165121629/"
---
### Who are you, and what do you do?
I'm [Matt Might](http://matt.might.net/ "Matt's website.") ([@mattmight](http://twitter.com/mattmight "Matt on Twitter."), [matt.might.net](http://matt.might.net/articles/ "Articles and posts by Matt.")), a professor in the [School of Computing](http://www.cs.utah.edu/ "The school where Matt teaches.") at the [University of Utah](http://www.utah.edu/ "Matt's university."). My [research](http://matt.might.net/#papers "Research papers by Matt.") focuses on creating software that can think deeply about and predict the behavior of other software. (Usually, that's to improve performance and guarantee security.) But, when I'm recognized, it's usually as the author of [The Illustrated Guide to a Ph.D](http://matt.might.net/articles/phd-school-in-pictures/ "Matt's explanation of a PhD in pictures.").
In short, I research, I write, I teach, I lecture, I organize, I blog and I tweet.
The guiding philosophy behind my setup is to make it easy to do the things I should be doing, and hard to do the things I shouldn't.
### What hardware are you using?
I travel a lot, so size is the dominant factor for my primary computer--a maxed-out 2011-model 11" [MacBook Air][macbook-air]. It docks with a 27" [ThunderBolt display][thunderbolt-display] and a [Harmon Kardon Soundsticks][soundsticks] speaker/subwoofer system.
A 512 MB RAM, 36 GB [linode][] powers might.net and my personal cloud.
A 2010-model [Mac Mini][mac-mini] drives Netflix, iTunes, Hulu and Amazon Video to the TV. A bluetooth [Apple Magic TrackPad][magic-trackpad] and [Apple Keyboard][keyboard] pair serves as remote control from the couch, while VNC does the job from elsewhere.
I carry a 16 GB [iPhone 4][iphone-4] with me to kill dead time with email, take notes, play [Spotify][] over bluetooth in my car and not get lost. I use a 64 GB 3G [iPad 2][ipad-2] to peer review papers and edit my own while I work out. On my desk, it's a search and reference device. For travel where these may become my only net-connected devices, I bring a bluetooth Apple Keyboard.
Every computer has a large dedicated external hard drive for backups. Currently, I'm partial to the Western Digital Elements series.
I use a [Linksys E2500 Dual-Band][e2500] router, with SSH and VNC port-forwarded to allow remote access to the home network. After its predecessor--a 2 TB [Time Capsule][time-capsule]--died, I realized it's better to split the functions of household file server and router among two devices.
You can pry my [Kensington remote][wireless-presenter] from my cold, dead, ergonomic grip.
To teach my sister-in-law about computing, I had her assemble a 2.6 GHz, 2 GB RAM, 100 GB frankensystem from about $80 in parts bought at surplus. We installed [Ubuntu][] on it, she used it for a summer, and now it's slated to become the nerve center for the home security and automation system.
You will find 85 Watt [MagSafe][] laptop power adapters (sometime two) pre-installed everywhere we frequent in my house: the couch (x 2), the kitchen desk, the home office (x 2), the rocking chair and the bed. Another lives permanently in my travel bag.
When I travel, I always carry a portable power strip for airports and a HyperShop [HyperJuice][] external battery for long plane flights.
I can't afford time off work to exercise, so I attached a Table Mate II couch desk to a Marcy Recumbent Mag Cycle, and moved it next to the desk in my home office. Honestly, I'm more productive on the bike than off.
We don't have cable, and I keep news websites blocked, so I read dead-tree newspapers: the Wall Street Journal in the morning and the New York Times in the afternoon. No eReader matches the experience.
Atmosphere is critical to my creativity, so my home office has a view of the towering Wasatch mountains and the six pet chickens I raise for eggs wobbling innocently about my backyard. The juxtaposition of grandeur and responsibility keeps me grounded and focused.
### And what software?
To me, Unix is digital clay, [readily sculpted into any form or function](http://matt.might.net/articles/basic-unix/ "Matt's article on *nix.").
I ran [Red Hat Linux][red-hat-enterprise-desktop] for about seven years before switching to the Mac. I've been using [OS X][mac-os-x] for about six years now.
My only regret in switching from Linux to OS X is giving up the raw efficiency of tiling window managers like [ion][]. [ShiftIt][] makes up some of the difference. To make up some more, I pin applications to one of six desktops: (1) terminal and text-editing; (2) real-time communication; (3) browsing; (4) organization and planning; (5) reading; and (6) media and games. Each desktop captures one frame of mind.
The linode for might.net and my personal cloud runs Ubuntu. Its current uptime is 218 days, and its record uptime exceeds two years.
My iOS devices run many single-purpose, one-off [native-style apps that I roll from HTML, JavaScript and CSS](http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript/ "Matt's article on his native-style iOS apps."). My top three regular iOS apps are [Spotify][spotify-ios] for music, [Amazon][amazon-mobile-ios] for eliminating errands and [Skype][skype-ios] for calling. ([Skype *is* my home phone](http://matt.might.net/articles/switching-to-skype-to-save-money-on-cell-phone-bills/ "Matt's article on using Skype as his home phone.").)
Most software finds its way onto my systems through [MacPorts][] on OS X and the [apt package management system][apt] for Ubuntu.
When it's imperative that a page renders properly in Internet Explorer, Windows XP and Windows 8 running in [VMWare Fusion][vmware-fusion] get the job done.
I used emacs ([Aquamacs][]) for eleven years for editing text and code. To get a sense of what vim was like, I switched last year ([MacVim][]). I haven't switched back, but I've customized vim to accept all of the emacs keybindings in insertion mode.
I spend a lot of the time at the console, so I wrote scripts to [automatically adapt my shell to the tasks I execute most frequently](http://matt.might.net/articles/console-hacks-exploiting-frequency/ "Matt's post on console frequency hacks."). Since I also do a lot of writing and editing, I also wrote [shell scripts that catch bugs in my writing](http://matt.might.net/articles/shell-scripts-for-passive-voice-weasel-words-duplicates/ "Matt's article on shell scripts for improved writing").
My personal site and blog run off a homebrewed, slowly-evolved collection of shell scripts, Makefiles, HTML, CSS and JavaScript.
For creating technical and scientific documents, I use exclusively [LaTeX][], and manage all of my citations with [citeulike][] exporting to [BibTeX][].
For giving presentations, I use [Keynote][] 09 with [LaTeXiT][]. For talks based on a research paper, the ability to copy and paste vector-scalable graphics from PDFs in [Preview][] into Keynote is a killer feature. It is worth investing the time to master Keynote animations and transitions, so that style and substance in your talks reinforce one another.
I used to use LaTeX plus [beamer][], but this setup makes the right things hard (capturing and conveying the essence of an idea visually) and the wrong things easy (flagellating the audience with unparseable mathematics).
For charts (like [this one](http://matt.might.net/articles/cps-conversion/ "Matt's CPS chart.")), [OmniGraphSketcher][] for OS X is a joy to use. For rendering graphs based on data, [GraphViz][] creates beautiful images. For graphs constructed by hand, [OmniGraffle][] is perfect.
I've managed to [avoid using Microsoft Office](http://matt.might.net/articles/how-to-read-and-create-microsoft-word-documents-excel-spreadsheets-powerpoint-presentations-without-microsoft-office/ "Matt's post on avoiding Office.") when someone sends me a Word or Excel file all but once in the past decade through a combination of [Google docs][google-docs] and [OpenOffice][].
I use LeechBlock on Firefox and StayFocusd on Chrome to permanently block all timewasting sites. Analog newspapers are more efficient for news.
For debugging web sites, I love [firebug][]. I use [Greasemonkey][] to automate my web experience ([example 1](http://matt.might.net/articles/greasemonkey-scripts-for-nsf-fastlane/ "Matt's post on scripting Fastlane."), [example 2](http://matt.might.net/articles/apply-yourself-greasemonkey-scripts-to-fix-the-user-interface/ "Matt's post on scripts for Apply Yourself.")) in the same way that I use shell scripts to automate my console experience.
For task management, I use [OmniFocus][] on my MacBook Air, my iPhone and my iPad. The shared database lives on my linode and syncs over WebDAV.
My wife and I keep our phones, laptops and iPads synced with about six different [Google Calendars][google-calendar], so that we can play secretary for each other. I'm a fan of the appointment-scheduling feature of Google Calendar, which lets students sign up for my office hours without much hassle to me.
I use [DropBox][] to sync low-security files between devices, and I run a secure WebDAV server on my linode for syncing high-security files over [SVN][subversion].
My hand-rolled personal note-taking wiki on my linode has been replaced by [Evernote][] on my MacBook Air, iPhone and iPad.
For collaboration within my research group, my linode also hosts an SVN repository exported over WebDAV, but we are currently transitioning to [git][] over WebDAV.
I use [TweetDeck][] for my twitter client, and I use SMS instead of instant messaging. I take advantage of the scheduled tweet feature in TweetDeck to stay active, particularly while I travel.
For IRC, I'm nostalgic for the customizability of [mIRC][]. It's the only program I miss from Windows. My linode runs a [bip IRC proxy][bip] that I connect to via [Colloquy][]. Before bip, I used [irssi][] and a [screen session][screen] on my linode.
[Google Analytics][google-analytics] and [live searches on twitter](https://twitter.com/#!/search/might.net "A Twitter search for Matt's site.") are invaluable in figuring out how readers engage my blog, and how to tailor my content to their needs.
My favorite shell commands are [ssh][], screen, [grep][], [find][], [awk][], [sed][], [cut][], [sort][], and [pbcopy][], [pbpaste][].
In any given month, I'll write code in about a dozen different programming languages, but the languages I use the most are [Racket][], [JavaScript][], [bash][], LaTeX, [Scala][], [C][], [PHP][], [Perl][], [Python][], [C++][c-plusplus] and [Haskell][]. I write all my code in vim, with the exception of Racket, for which I use [DrRacket][].
One should always choose the programming language that reduces the impedance mismatch between a problem and its solution.
### What would be your dream setup?
When I was young, I dreamed about building a "nerd cave" full of fast hardware, big monitors, sleek software and cool gadgets.
I see now that technology can only nip at the margins of happiness, creativity and productivity relative to the effect of having sharp colleagues, good friends and close family nearby.
I have many sharp colleagues that double as good friends.
And, there's an outside chance that in the next two or three years both of my brothers and all three of my sisters-in-law (each of whom is like an actual sister to me) will have joined me and my wife in Utah.
I hope it happens.
That's my dream setup.