Ask HN: Your Hacker Workspace
Every hacker has a workspace and coding/working environment that has been personalized, optimized, improved, tweaked and hacked for countless hours and days. This is one of the, if not the most, sacred things each hacker posses.
Share it with the community so we can learn from each other while improving our own.
Share yours.
88 comments
[ 3.5 ms ] story [ 111 ms ] threadMy two primary work horses include a desktop computer and Thinkpad with Fedora core 10.
Desktop server:
- Gnome -> 8 workspaces on two monitors { Web (regular), Web (work), Emacs, Emacs, Emacs/Compile, Emacs/Debug (GDB/DDD), 4 shells, Thunderbird/IM/IRC/Music }
- Fluxbox on VNC with 4 virtual { 4 Shells, ServerStats, Void, Void }
- Screen session just in case I want to drop in
Laptop:
- Gnome -> 5 Virtual { Web, Emacs, Emacs/Compile/Debug, Void, Thunderbird/IM/Music }
Both:
- Emacs (all instances are new-frame so shared buffers, heavily use gdb-mode, and for compiling)
- Synergy desktop sharing Keyboard/Mouse with Laptop
- Zsh + scripts for common tasks (backups, syncs)
- NFS shares mounted both ways
Other
- Pencil Sketch pad (no rules) as my idea pad, doodling, I keep several of these everywhere
- Post-it's for quick notes
- Emacs/C/C++/Python cheat/reference sheets printed and posted
This is modest if not simple by hacker standards, but it makes me feel comfortable for my usual tasks and most at home
I'm not so sure about that ;-) My setup is simpler than yours:
I do all my development on one machine - a macbook pro (Tiger, haven't got around to upgrading yet).
I run only three applications pretty much all the time, and they're all full-screen - Firefox, Emacs and iTunes, and alt-tab between them. Occasionally I also start a Terminal, if I want to ssh into a server somewhere.
Usually my Firefox tabs are gmail, yammer, ganglia, http://irc.justin.tv, and often some documentation to help with whatever I'm working on.
Typically I have a dozen or so Emacs buffers open - mostly python, javascript and haxe source code.
I never write notes by hand. I either write them in an Emacs buffer, or I send myself an email.
This is where I work (at justin.tv): http://abstractnonsense.com/workspace.jpg
Also binded the change desktop to the Mouse's (Previous/Forward page buttons that's usually reserved for browser access). This came to be because at one point several years ago, I couldn't get Firefox to accept those buttons... but now I cannot live without it.
I'll be setting up xmonad and working on my layout for the next few days, if this post is alive until then, I'll post my screenshot.
http://farm4.static.flickr.com/3130/3219406843_af228d3a04.jp...
(Not pictured: Airport Extreme with a USB drive for Time Machine--critical stuff I backup to Github if it's source code and Drop Box if it's not source code)
Software-wise I work with IntelliJ, TextMate, vi or Xcode depending on the task at hand.
At work I have a 30-inch screen for Vim next to the macbook, but it's optional.
I used to be a cave-type, but now I find that I'm more productive when I'm around people (as long as they aren't actively engaging me). So I'll work from home with the kids playing around me and get more done than I do in my isolated cube at the office.
http://www.flickr.com/photos/scumola/3508980363/
http://www.deskography.org/
There are some pretty crazy and inspiring setups on there, and you can share your own.
Typically I have Emacs, Safari, Terminal.app, and iTunes open all the time. Once in a while I open up MacVim and do some editing.
Big screen.
A command line (Terminal on mac, cmd.exe on windows).
A launcher app (Quicksilver on mac, Colibri on windows)
An editor (TextMate in mac os, NetBeans in windows).
A mindmap editor for planning, design and notes. (Freemind, cross platform)
(I purposefully stay cross-browser, cross-OS, going back and forth between my MacBook and my Wintel desktop pc. This forces me to keep using and testing both my product and dev environment in several different OS'es and browsers - plus it provides redundancy; if one env blows up in some way, I can just fall back on the other.)
http://www.deskography.org/people/yjg1097qMx/desks/786/photo...
http://www.deskography.org/people/oPi254rbd/desks/197/photos...
:)
http://www.flickr.com/photos/9864615@N06/756229467/
http://www.websmithing.com/my_workspace.jpg
Nick
http://wodehouse.ru/photo/phdach.jpg
http://www.imdb.com/title/tt0380136/
Dual 22" monitors hackintosh running OSX 10.5.6 6 spaces, normally 2 spaces per project and one for random stuff. (I like to arrange all my code in one space and all the docs and the like in another and switch between the two as necessary).
You'll notice the Macbook peeking out from underneath the desk on the left - if I need more screen space I pop that one open. Or if I'm not at home!
M-Audio speakers are crucial - good music is a help! And lots of paper / binders / books to refer to all the time.
At least 3 lights sdjustable to whatever conditions I prefer, and black shades in front of the blinds to block out sunlight and heat.
Big problemo was usually the 9800GT 512mb.
My secret was using the iDeneb 10.5.5 distro, that thing works wonders on my system. I'm running an Asus P5E-Delux motherboard, with is also a well-supported system. Everything I did is textbook from insanelymac.com
MacAir (lil guy next to it will soon drown): http://2.bp.blogspot.com/_QdVzmQAz0JQ/ShEHWvpIW1I/AAAAAAAAAE...
White boards (my friend is in the pic): http://2.bp.blogspot.com/_QdVzmQAz0JQ/ShEHIm3Q9vI/AAAAAAAAAE...
Considering how much time I spend in front of this machine (e. g., most of it), I don't mind investing a little more in my setup to make the experience as comfortable as possible.
I've got a refurbished Rev. A MacBook Air to carry around with me when I'm out and about. I'm thinking of buying a wireless card or a MiFi to have Internet access everywhere.
I synchronize all important files over Dropbox and use The Cloud for everything else. My brain goes into Evernote. Bookmarks are synchronized across my browsers with Xmarks.
I use Spaces heavily and Expose a little. I use Launchbar and mouse gestures through xGestures to get around the computer.
My code is synced up using git.
Currently this gets synchronised with a Debian server, due to be replaced with a Mac Mini in a week or two.
- emacs and terminal (fullscreen, I'll just swap between those two) - mail, irc, and cplay (screen split between alpine / ssh+irssi, with a horizontal pane for terminal running cplay) - browser (split vertically about 1:4, with nautilus on the left in the smaller pane and Shiretoko in the larger pane, usually in one window). I also watch movies, view pictures, PDFs etc. in this larger browsing pane.
I've settled for three virtual desktops that wrap around: this way I can always move to any of the desktops with just one move command, either left or right.
Stuff get passed around between the XP and the linux box until I am happy with them, then they're sent to 2 slackware VPSes and a Solaris box elsewhere.
More important than code is my Skype phone. Half my work is done walking around with a phone glued to my ear.
Essentials include, a yahoo currency converter bookmarklet, a timezone time calculator, various inhouse tools for lead management and tracking (I have a mailer I wrote in Lisp that I paste email text to and rewrites all URLs as mysite.com/redir?url=FOOBAR; I use this to track who read my emails, when and how. Couldn't live without it.)
OpenOffice and Unipad for funny Arabic text handling. Copernic Desktop Search for the massive library of documents that I have and need to share.
2-3 notepad windows open at all times. An emacs org-mode buffer that contains my life's work.
A separate Firefox installation that has the annoying but very essential SEO-Quake plugin for doing stuff.
GNU GPG integrated with Thunderbird. 20+ email accounts in thunderbird, Pidgin, Chatzilla and a twitter window open at all times.
Paint.NET for the necessary graphics editing. MS Paint for quickly resizing images. Mingw and MSYS to make Windows habitable.
Various Lisp implementations to check my sanity when something doesn't work with SBCL.
Opera, left running at all times with the home page set to the Common Lisp hyperspec, the hunchentoot manual in another tab.
Skype running at all times, but goes to my cellphone when I have a call.
Various powershell and bash scripts to make life easier.
Firefux plugin to remember passwords for 100+ social networking websites that I submit press releases and other stuff to.
Mozart/Oz, Ocateve and R for prototyping "stuff"
[Edit: I wouldn't use a laptop other than a Thinkpad if it was given to me for free. I am a proud owner of 4 Thinkpads at the moment, about 10 of them in the last 10 years.]
https://addons.mozilla.org/en-US/firefox/search?q=&cat=1...
The rest of the house: Old Macbook Pro connected to 42" LCD TV, mounted on the wall running Bittorrent with RSS subscriptions / iTunes Logitech 5500 connected to MBP + speakers built into the wall About 700GB NAS
http://www.flickr.com/photos/wehriam/369719626/in/set-181528... (Slightly old photo)