Ask HN: What does your development environment look like?

50 points by rbranson ↗ HN
I'm curious as to what others' development environments look like. Screenshots are best. I'll kick it off.

86 comments

[ 3.0 ms ] story [ 147 ms ] thread
http://imgur.com/LYjiE.jpg

It's a pretty standard Rails hipster setup on a Mac using TextMate as the editor.

I'm using a 27" Dell U2711 display.

The left hand Terminal is used for monitoring autotest (an automatic test suite runner for Ruby/Rails) and messing around with the interactive Ruby shell (IRB), git, etc.

The right hand Terminal is used for monitoring requests as they come into the development environment's web server.

The Windows XP Professional is running on VMware Fusion and used for IE testing. I use Visual Web Developer 2008 for debugging in IE.

I've got two Chrome windows, one for API documentation and one for testing, with a permanent Developer Tools window at the bottom right hand corner of the screen.

I'm curious - why XP with VS for IE debugging? IE6?

I've been using Win7 and IE developer tools, switching between 7 & 8 for testing and it's been working out pretty good lately.

IE6 yes. I use VS because IE Developer Tools doesn't offer sophisticated enough JavaScript debugging. I work with large JS-heavy projects, like entire clients built in JS that talk JSON/REST to a backend server.
Terminal and Emacs on OS X. I have VMWare Fusion running XP with cygwin and rxvt, Emacs, and Visual Studio 2008. I write C# code in Visual Studio and Ruby code in Emacs on Windows for our main project, and I do most everything else (mostly Clojure, some Ruby) in Emacs and Terminal on OS X. Org-mode is a crucial part of my daily routine.

On the physical side, I use whatever 17" NEC LCD this is here, plugged into a 13" MBP. I occasionally go into the office and use another monitor, so I also use an Apple Wireless Keyboard (the aluminum one) and a Logitech laser laptop mouse.

Super+e:

http://i.imgur.com/UgrxJ.png

The normal workspaces on my laptop, running Ubuntu 10.04 64-bit. From left to right:

vim, Gmail/Chrome, Songbird, spare/documentation/second terminal

It's quite cramped with just one screen. I really need to get some good monitors and a solid desk.

Oh, and perhaps most importantly a pad of paper when away from home, and a glass whiteboard when at home.

http://aphyr.com/media/desktop.jpg

Vim, vim, vim, vim, vim, vim, vim, vim, vim, logging, bacon, irb. I try to keep large methods I'm actively editing on the big windows and reference material on the smaller ones. I also arrange them physically to match the control flow--the deepest methods in the stack live to the left, and successively higher ones live to the right, up to the controller and view for MVC. I usually have an IRB session open to test new ideas, one window for running the test suite, and one to watch the logfile or run the server.

On the other monitor, usually docs, whatever I'm building, and more docs. On a single 24" display (at work), I usually fold the docs over my bacon/irb terminals. I run 6 workspaces in Openbox. Almost everything has a hotkey.

[edit]

Folks at my office know me as "that guy with all the terminals". I think part of it is that my working memory is not fantastic, and that I'm a really visual thinker. Having everything laid out in space really helps me keep track of a complex, modular system.

Seems like vim could really use tabbed navigation!
I spy Summer Glau on your wall :)
She needs to learn some trigger discipline.
Wow, that's a lot of screen. And here I am doing most of my coding with a 9" netbook.

(Edit: Actually, I think it's the same as cool-RR's post elsewhere on this thread: http://news.ycombinator.com/item?id=1649828, just without the external monitor.)

I'm currently up to 3 x 24" monitors, and am doing my level best to talk myself out of a fourth. The luxury is nice, when you can waste screen real estate without a care, but it's as addictive as heroin.

I'm not advocating you stick with a 9" screen, but be careful with the lure of adding monitors!

Is that keyboard drawer comfortable to use? (it doesn't look so)
The desk sucked, but it was college furniture. My new desk is a little better. :)
You manage to type on that massive keyboard in a drawer? Surely not.
The keyboard isn't actually all that large. Those are 30 inch monitors. Total horizontal screen space is 4.25 feet.

The drawer was surprisingly comfortable as a wrist rest, too--but I tended to alternate between in the drawer and on the desk, depending on how much paper I was working with.

Got a link for bacon? I haven't come across that in the context of programming tools (except insofar as tasty fried pig products are generally beneficial to programmer productivity).
It looks like you're checking out the Vim Color Scheme preview page. :)

http://code.google.com/p/vimcolorschemetest/

When I find myself with many vim instances running I tend to start giving them different color schemes to make them easier to differentiate. More often, though, I have things split across 8 virtual desktops.

(Same for shell windows. Too often I've forgotten where I was. Having, say, the shell to a remote server use a yellow background alerts me that this is not my local box.)

Also: Bacon rules.

Haha, no, that's the default scheme with slightly tweaked console colors. The difference is in content--some of them are mostly comments, others are HTML, CSS, Javascript, and Ruby.

Good find on the color scheme page though; I'm gonna have to play around a little with those!

At work: 27" iMac + Textmate + Virtualbox + Transmit + ExpanDrive + Shimo + Navicat

At home: Custom PC w/ 24" Samsung monitor + e Text Editor + Virtualbox + PuTTY + Filezilla + ExpanDrive + Navicat

Hmmmm - harder to do a viewable screenshot of a dual monitor setup...

http://imgur.com/9JDT3.jpg

Left monitor = coding, research notes Right monitor = testing, virtual machines All running Windows 2008 R2 Firefox with Firebug, Web Developer Toolbar, Greasemonkey, Gears, Page Saver Visual Studio 2010

My main workspace has several terminals, each with multiple tabs open, mostly with copies of vim running.
On windows, gvim.

On mac (we primarily do iPhone apps), Xcode, with MacVim as the external editor with keybindings setup to build/build-run, etc.

All this spanned over 2 windows monitors, 1 mac laptop and an external mac monitor, with an iPad sometimes becoming a 3rd mac monitor.

http://imgur.com/37L7Z.png

Django site. WingIDE, two terminals for runserver and test django commands respectively, and the browser (currently showing my tool for viewing and debugging data in the app).

There's a space in the top left corner because I have the left monitor in a vertical setup and the right in a horizontal.

EDIT - View from my office:

http://twitpic.com/23rg8a

(comment deleted)
I posted this screenshot the last time similar question was asked:

http://alteredqualia.com/tmp/img/dev.png

It's more or less the same now, just the code is different.

Usually I have open at any time: SciTE, Notepad++, many browsers, Python shell, XAMPP/nginx, Gimp, Cygwin shell.

Most of times, just one window is fullscreen and I switch when needed (or just use magic hover feature from Windows 7).

I'm curious - why both SciTE and Notepad++?
Mostly for grouping. In general I use SciTE for code, Notepad++ for everything else (I use zillions of text files).

Two separate applications give two distinct icons in taskbar, allowing me to switch fast between two groups (as opposed to figuring out which content tab in one editor has the right file).

Also, I like them both, and don't have a heart to drop using one of them :). BTW I do the same with browsers (and OSes, I keep "affair" with Ubuntu in VirtualBox).

12 work spaces (I prefer not having more than 2 or 3 windows in a work space). Contents depend on what I'm working on, but right now - 4 with emacs (3 different projects), 2 with browsers, 1 with IM. The rest contains terminal windows and one or 2 file browsers.
L shaped desk with 3 monitors on the long leg - 2 24" monitors hooked to a PC and 1 24" monitor hooked to a Mac Mini - sharing 1 wireless keyboard/mouse via Synergy. The short leg of the L has a Dell 10V with Ubuntu.
Copy and paste the following into the address bar to view images

    javascript:var tags=document.getElementsByTagName("a"); for (var i in tags) { if (tags[i].href.search(/jpeg|jpg|png/) !== -1) { var img = document.createElement("img"); img.src = tags[i].href;img.width = '400';tags[i].parentNode.appendChild(img); } }


EDIT: Eh... It could use some help ..
This works:

    javascript:(function(){function I(u){var t=u.split('.'),e=t[t.length-1].toLowerCase();return {gif:1,jpg:1,jpeg:1,png:1,mng:1}[e]}function hE(s){return s.replace(/&/g,'&amp;').replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/"/g,'&quot;');}var q,h,i,z=open().document;z.write('<p>Images linked to by '+hE(location.href)+':</p><hr>');for(i=0;q=document.links[i];++i){h=q.href;if(h&&I(h))z.write('<p>'+q.innerHTML+' ('+hE(h)+')<br><img src="'+hE(h)+'">');}z.close();})()
Boomerang-shaped desk with two monitors: one large, one small. The large monitor shares space with Windows apps and the VNC to my Linux session. On my Linux fvwm2 desktop I primarily use konsole to tab around different xterms, and gvim + NerdTree to edit my RTL source code.

Almost every hardware designer I know uses vim. I guess we're not very lispy.

Well, I'm using SciTE for VHDL coding (on Windows). Armed with a snippets plugin and connected to multiple Python scripts it's quite a beast.

  +===============================+
  | >                             |
  |                               |
  |                               |
  |                               |
  |                               |
  |                               |
  |                               |
  |                               |
  |                               |
  +===============================+

  +===============================+
  | #                             |
  |                               |
  |                               |
  |                               |
  |                               |
  |                               |
  |                               |
  |                               |
  |                               |
  +===============================+
It's been a very long time since I've seen DOS.
You can't join a Microsoft domain with anything else :(
I doubt you're seeing it here, either - I would peg this as some POSIX shell before I pegged it as a DOS shell.
http://technomancy.us/137

tl;dr - Basically just Emacs and Conkeror on Ubuntu. The combo of xbindkeys and devilspie help me not have to worry about the WM; apps for which it makes sense are full-screened for me. Emacs does pretty much everything for me including git, shells, IRC, and IM. The only thing I leave Emacs for is browsing via Conkeror (which feels a lot like Emacs) and the occasional photo edit in Gimp. For working on remote hosts and pairing with remote devs, tmux is a blessing.

All this on a 1.1kg Thinkpad X200s with a Kinesis Freestyle keyboard. Nexus One with Cyanogen is used as a 3G modem when I'm out and about.

Dual 22" widesceen monitors. left is mac mini, right is Fedora. I use synergy+ to share the mac keyboard and Logitech trackball between the systems. Workspaces separate out distractions - 1 is a pair of gnome-terminal sessions with screen running on each and lots of vim. 2 is firefox + vimperator, 3 thunderbird, 4 xchat, 5 for virt-manager and 6 for misc stuff.

I ran xmonad for a while and found I really liked the full-screen orientation, but missed being able to cut and paste from terminals easily, so now its GNOME with everything full-screen. I've re-mapped the keys in Fedora to take advantage of the command key on the mac keyboard, so I can work most of the day without touching the trackball.

I suppose it depends on what terminal you're using, but gnome-terminal at least copies and pastes fine in xmonad - use C-S-c and C-S-v.

If you mean without the pointer, please tell me if you have a way to manage that in normal gnome - it's almost the only time I have to use my ball.

vim for rails, javascript, html, php xcode for objective c google docs gmail
Desktop computer, running Windows XP (looking to upgrade computer, and then move to Windows 7).

2 Monitors, 26" Samsung and a 22" Asus.

Most of the time, I've got open Sublime Text for coding, Chrome for browsing, Firefox + Extensions for debugging sites, Photoshop, and a few command prompts for mercurial and django commands.

I recently became a nomad. Just a Macbook Air, no external monitor, I switch between windows using Spaces extensively.
emacs+firefox on Ubuntu
http://drp.ly/1DCKfG

MBP screen: Skype + email

Dell 24: Browsers (testing + docs)

Dell 22 (vertical): Code (Netbeans) + terminals

What are you using to get the second external monitor working on a MBP? I'm thinking of doing the same, but haven't researched the best way.
Currently: Opera + (Komodo Edit + CoffeeScript) + (Console2 + cygwin) + (VirtualBox + (CentOS + emacs)) + (VirtualBox + Ubuntu Server) + Outlook