Ask HN: Your Hacker Workspace

61 points by dryicerx ↗ HN
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 ] thread
I will start.

My 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

This is modest if not simple by hacker standards

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

Don't forget to tell everyone about the half-dead plant! ;-)
Do you actually work from that couch all day? I can't imagine that being comfortable for more than a few hours.
I have the smaller version of that couch (Ikea) and I can attest to the fact that it is a uncomfortable piece of shit. But it was cheap.
- Gnome -> 8 workspaces on two monitors 8 workspaces? I can't even manage to fill 6 workspaces; anyways I thought I'd share my 8 most abused keybinding combinations for multiple [3x3] workspaces. Switch to workspace <Ctrl><Alt>[Up, Down, Left, Right] and move active window to workspace <Shift><Alt>[Up, Down, Left, Right].
I actually binded it to Ctrl-Alt-(Left/Right) instead of the default, I think comes from the days I was a Enlightenment E16 user.

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.

Just a request to all those who'll be responding: Please add screenshots!

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.

macbook air, a mouse and a rtw ticket.
Seconded. I buy a new loaded Apple notebook every 3-4 years, and each cycle I debate on getting a Mac Pro that will wipe the floor with the notebook for even money. I never do, because I can't stand to be chained to a desk.
A MBA for working in the sofa and in the garden. A Mac Pro for when you are chained to the desk. Happiness.
I can't disagree. I just haven't had the budget :)
Nope, I hack most of the time with a macbook on my dining room table. Sometimes on the coffee table.

At work I have a 30-inch screen for Vim next to the macbook, but it's optional.

Upvoted since I just got done with six hours of tweaking my iPhone app on my macbook on my dining room table. :) More often, I'm reclined on the couch, though.

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.

Same. Macbook (nothing fancy, just an entry level 13" one) on the kitchen table, plus a sketchbook and a sharp pencil
It's dirty, crappy, no dual-screens, no mac prettiness, no butcher-block table, no glass, no stainless steel, but it's awesome and it's very productive. :)

http://www.flickr.com/photos/scumola/3508980363/

I like the phone :D
I don't understand why you wouldn't switch to a place with sunlight eventually (after 9 startups)?
You must not be very superstitious.
I had that case on the first computer I built
Here's a picture: http://is.gd/AU6T

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.

To facilitate traveling to client sites for my day job: MacBook Pro, vim, firefox and a (paper) notebook. When I work out of town, the one thing I miss the most about my home workspace is my 3x4 foot whiteboard.
Ubuntu + VIM + Acer AspireOne + 3 USB drives + external monitor, mouse and keyboard :)
2 desktops connected with synergy..a laptop..huge speakers..bottle of scotch..and a coffee pot.
the only "tweaking" I did to my workspace, was build a cover for the desk's surge protector Power button. I always kept hitting it and its pretty inconvenient having your computer die in the middle of working on things.
Physical whiteboard in the same room.

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.)

Physical whiteboard is a very good idea. I think I'll be taking that from you.
I've been able to make do without a whiteboard at my current job by keeping tons of scratch paper around. I'm given lots of 1-sided printouts I never need, so I just throw them in a drawer for when I need to sketch something.
(comment deleted)
currently have 3 screens, and i thought about adding a 30" (for the continous document, then vertical stack two of the 22" screens next to it), but at the moment i have to turn my head to see the left monitor. i mostly work on the two right monitors, and use the left for ongoing IM conversations/etc. Beyond this, minimizing windows and just having many open seems just as productive as having to look around physically (instead of using switcher). anything im missing?
(Fairly) soundproof room; lots of lamps, none too bright; Aeron chair; new desk designed by Kate Courteau (the architect who designed the YC offices), with a steel frame and butcher-block top; Macbook Air; bluetooth mouse; 23" Apple monitor; a bunch of terminal windows running either vi or the Arc toplevel or tail -f of some server log; Firefox windows with Gmail, HN, and localhost; cup of tea; UHU tac earplugs (disengaged); postcard of smiling Wodehouse, age 92, with dachshund.

http://wodehouse.ru/photo/phdach.jpg

Pictures or it didn't happen.
Kate Courteau lacks a clear online profile. She seems to be difficult lookupable.
I'd love to see a picture of the desk, as I'm about to build my own.
http://njoubert.com/images/workspace1.jpg

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.

I've struggled with hackintosh for freakin' ages. Please share info.

Big problemo was usually the 9800GT 512mb.

Funny, I'm running a 9800 GTS 512mb, with no issues.

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

Mac Air with Philadelphia Brewing Co. sticker over the Apple logo for iPhone dev; cheap Toshiba laptop for web hacking; Chromium for browsing; Firefox/Firebug for dev; Gimp; Postgres; whatever aesthetically pleasing environment the coffee shops around me offer; sometimes getting pumped up listening to good musak on the iPhone; from time to time use one of the many white boards at Wean Hall at Carnegie Mellon.

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...

I have a PC with 17" screen, also a HP laptop, Microsoft Mouse and Genuis Keyboard, Wifi Router, External Disks, lot of CDs and MP3 Player.
I've got a Hackintosh tower - the first PC I've ever built (and I learned a LOT doing it!). I threw a Core 2 Quad, a Velociraptor drive, and 4GB memory in there. This is attached to a 30-inch monitor and a split, ergonomic keyboard, upon which I type in Dvorak.

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.

I travel a lot so I keep everyhthing I need for hackery on my Dell XPS m1530 with a lot of VMWare images.

Currently this gets synchronised with a Debian server, due to be replaced with a Mac Mini in a week or two.

I have a MacBookPro running Ubuntu 9.04. It boots to Gnome with StumpWM which has three groups (virtual desktops):

- 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.

Two thinkpads, one running XP and the other running slackware. LispWorks and emacs/slime/sbcl on the win32 box, tested there first, and when I need to implement Unix FFIs I have two putty terminals to the linux box. I have been using linux since 1996, and I don't think I ever ran a full Unix desktop for more than a year (FreeBSD and xfce then)

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.]

Thinkpad, T4x or what? Most slackers seem to prefer it
The office: White enamel, 92" Oval Ikea table 24" Dell monitor on articulating arm Macbook Pro Speakers on Airport express

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)

I hope you don't buy cable :)