Hackers' Screenshots

59 points by mqt ↗ HN
We had a good screenshot thread over 9 months ago. It's always interesting to see how wizards perfect their craft.

Show us how you hack!

101 comments

[ 2.7 ms ] story [ 152 ms ] thread
http://monaco.nirv.net/~tran/screenshots/20080807/montage.pn...

Those are my six workspaces merged into one image. I use Linux+ion3 and emacs.

Damn, that's a small terminal font.

Pretty common for old-school desktops back when X had bitmap fonts that looked poor at large sizes, but personally I'm glad we have the choice now.

First off....Jeopardy torrents! Where do you find daily Jeopardy releases? (Email has been sent, I must know this)
It's Bittorrent. Search Isohunt or TPB.
(comment deleted)
I've been trying to find the syntax for specifying the default mode in emacs for ages (;;; -*-), so go you for including a file using it
If you want more details, check the Emacs manual (in Info), search for "Specifying File Variables".
Girl Talk! Wow, I never thought I'd see him appear in the context of Hacker News...
Girl Talk is the best music to work to. Well, that and Ratatat.
You sirs have excellent taste.
Girl Talk is great... kind of funny to see him on the same playlist as Jason Mraz, though. ;)
http://i37.tinypic.com/2cgimuc.png

I usually have Terminal open as well.

That's a really cool desktop background image. Where did you get it? Know where I could download it? I like it. :)
Another Kohana user! Nice.
My usual desktop; a Cygwin development environment, Notepad++ for editing, PuTTY connected to a remote shell for my IRC, and Elecard Streameye for video stream analysis.

http://img381.imageshack.us/img381/5126/hackerdesktopyu3.png

gahhh comic sans comments!
OW MY BRAIN. He also line wraps source code.
I'm too lazy to change the defaults on the fonts. Blame the Notepad++ guys. And I rarely notice the comment issue that you pointed out... as sadly most of the code I work on is sorely lacking in comments.

The line wrapping isn't an issue because I usually make it much wider, and if when its wider there's still line wrapping, the person who wrote such code should probably be forced to endure great pain. Most programs I work on have a "please don't make 250-character-lines" policy, for good reason.

What do you like about Notepad++?
Split-screen editing (of the same file even; most editors don't let me split-screen edit the same file in two different windows), automatic syntax highlighting, bracket-matching (the standard stuff), tabbed editing, and the various built-in tools.

I do sometimes use vim, but I find that a simple tabbed GUI text editor gives me the most productivity. I've never liked IDEs, especially since I would rather just type "make" than try to use an internal build system. Add to this the fact that both my company and all my personal projects are based on the GNU toolset in some form or another.

Also Vim support tabs ':tabnew some_file'. 'gt' and 'gT' to switch between them. Even more, you can split several files in each tab.
Split screen with same file

:vsp

Syntax highlighting

:syntax on

Tabs

:tabnew

Bracket matching

:inoremap ( ()

:inoremap [ []

:inoremap { {}

And so many built-in tools...you really should take another look. I use TextMate on my Mac to churn out massive amounts of HTML, but any other editing happens in (G)Vim.

Before you go overwriting pretty useful default functionality, check Vim's manual for what those do to see if it isn't more useful (I prefer the defaults).
What part of the help docs is about brace/parentheses matching? Everything I've seen online uses a simple key mapping like the ones I posted.
use :set showmatch
Showmatch is there to highlight matching braces, not to insert them. The mappings actually match your braces by writing the close brace/parens/bracket. Here are the coding aids from my vimrc. They're pretty simple, as I don't like to change how Vim works too much:

  " Coding aids
  set undolevels=5000
  set backspace=indent,eol,start
  vnoremap < <gv
  vnoremap > >gv
  " Braces, etc.
  inoremap ( ()<LEFT>
  inoremap (<CR> (<CR>)<ESC>O
  inoremap () ()
  inoremap { {}<LEFT>
  inoremap {<CR> {<CR>}<Esc>O
  inoremap {{ {
  inoremap [ []<LEFT>
  inoremap [<CR> [<CR>]<Esc>O
  inoremap [] []
  " Wrap in braces, etc.
  vnoremap -( <ESC>`>a)<ESC>`<i(<ESC>
  vnoremap -[ <ESC>`>a]<ESC>`<i[<ESC>
  vnoremap -{ <ESC>`>a}<ESC>`<i{<ESC>
  vnoremap -" <ESC>`>a"<ESC>`<i"<ESC>
  vnoremap -' <ESC>`>a'<ESC>`<i'<ESC>
  " End the line, adding a semicolon
  inoremap <S-CR> <ESC>A;<ESC>o
  noremap <S-CR> A;<ESC>j

I also use NERDCommenter for quick commenting, an XML tag wrapper script, and a tag closer script. As you can see above, typing the open/close pair doesn't result in "())", and typing an open brace plus a carriage return automatically adds the close brace to the line below, in the format:

  function hello($name) {
      // Insertion point
  }
Edit: Of course, that isn't my entire .vimrc
No idea, but I don't find that useful. I use :set showmatch, and a plugin called UnMtchBracket.vim (IIRC) that highlights any currently unmatched brackets.

This is pretty personal, so I guess it's something you may want to at least give a try.

Why wouldn't you wrap source? OK, ideally it's better not to have overly long lines, but if you do, why bother horizontally scrolling?
>Why wouldn't you wrap source?

Line endings have significance in some languages. Even in languages where they don't, it can confuse you by looking like the end of an indentation level.

> it can confuse you by looking like the end of an indentation level.

It shouldn't - any competent editor should have no line number on the area it wraps round.

It means you can't scan down the left hand side of the editor looking at indentation, you've got to double check with the existence/non-existence of line numbers. For the same reason that it is easier to read left-aligned text than it is to read right-aligned text, though not quite as bad since not all lines are "wrong".
For Windows, try Poderosa rather than Putty - it's got tabs.
Hey, I've never done one of these before.

http://www.matasano.com/ba02a15a70759d0389a6fa3f4c1.png

Mac, Emacs, Ruby, Hex Fiend, Terminal. On a product day, instead of a research day, you'd sub CSSEdit in for Hex Fiend. On a blog day, maybe Illustrator too.

I was half way done with writing a data analyzer plugin for hex fiend once (with a bit of help from ridiculous_fish) but abandoned the project about half way (had a parser for a data description dialect, some code that interfaced with hex fiend and built a basic tree based on the description) and realized it wouldn't be useful, so abandoned it.
Hex Fiend is incredibly well done. And, although I've never met ridiculous_fish, and he writes way too infrequently, I think his blog is great.
I'll second that - definitely quality over quantity.
Why don't you use emacs for your terminal and hex editor?
Because I'm not a communist?

I don't even use Emacs as my REPL, even though it does a decent job for Python and Ruby. I want my up-arrow to work the way it does everywhere else, and I want to be able to cycle the interpreter process in less than a second. My .irbrc will load a per-directory .irbrc for me, so while I'm testing, CTR-D up-arrow enter will reset my test case for me.

Making Emacs does this was just too much of a pain.

As for hexl-mode --- have you ever used Hex Fiend? For that matter, have you ever used hexl-mode? I don't use hex editors only occasionally. I would pay money for a great hex editor. I would pay twice as much money never to have to use hexl-mode. Luckily, I don't have to do either; Hex Fiend is free. It is awesome. You can pull a 15 meg firmware image into it, and it won't even blink; you can search for a symbol table signature across that whole binary in sub-user time.

I'm not one of those people who wants their Emacs to do everything it can possibly do. I read my mail in Mail.app, and my news in NetNewsWire.

What do you get out of running your terminals in Emacs? I'm genuinely curious.

http://megadeth.myrok.com/screen.jpg

Obviously rearranged little. Firefox tends to be on the smaller screen opened up to whatever documentation I might need. Terminal lives over there, too. Textmate is fullscreen on the big screen most of the time with various other utilities (CocoaMySQL, Transmit, iTunes) living somewhere behind it.

http://img237.imageshack.us/img237/8366/desktopiu3.png

Dock (usually hidden): Minefield, Camino, Safari, Google Reader (fluid), Mail, TextMate, Terminal, Localhost (fluid), RailsDoc (fluid), Coda, Color Schemer Pro, CSSEdit, Transmit, OnTheJob, Photoshop, Yojimbo, iTunes, Fusion, System Preferences, Github (fluid)...

Menubar: Quicksilver, DropBox, Skitch, Mailplane, Monocle, Coversutra, TextExpander, SlimBatteryMonitor, Mozy, Little Snitch, Spaces, iStat Menu...

Wallpaper: http://interfacelift.com/wallpaper_beta/details/1596/big_cit...

Actual Physical Picture:

http://www.flickr.com/photos/berlinbrown/2423596879/

http://www.flickr.com/photos/berlinbrown/2360945449/

I use Eclipse for project management and Emacs for actual coding.

Standard Ubuntu interface.

I can't see the language there, but if it's Python, how's the Eclipse editor?
http://ii.gs/combss.jpg (4800x1200, large-ish jpg file)

FreeBSD + WindowMaker + Synergy Server on the left (IBM P3 from 2002 w/ 4g RAM and SCSI)

Windows XP on center and right screens (ThinkPad T60p), Synergy Client

I tend toward maximized windows in window managers that make it easy to do so (such as XP) but things get pretty messy when I can't.

Other aspects of this environment that you can't see from looking at it:

- Synergy is running on a crossover cable from the laptop docking station wired port to a dedicated ethernet port on the desktop. This makes synergy do the right thing whether the laptop is docked (do) or not (don't).

- I have focus follows mouse but no autoraise on both the XP and WMaker environments. Being able to have a PuTTY window on top of a browser window you're scrolling / typing on is nice.

- I tend toward smaller fonts whenever possible.

Check it: http://upload.wikimedia.org/wikipedia/en/0/0d/Stumpwm-5head....

And for an actual screenshot: http://en.wikipedia.org/wiki/Image:Stumpwm-2008-08.png

The first is a 5.2 megapixel quin-head, the second is a plain ol' 1024x768 mono-head.

5? How are your running 5 monitors off a laptop?

Wait, there's two laptops... How's that work?

X2X.

If you've never heard of it, you're missing out.

Two or more machines, each with their own desktops, but one keyboard and one mouse.

When you move the cursor out the right of your first desktop, it appears at the left hand side of your next desktop - and so on and so on.

It turns as many desktops as you want into one virtual one.

Did I mention it rocks?

If you've got a Windows machine, there's also X2VNC.

and if you're using unix+mac, there's also synergy.
If you're on Windows there's also MaxiVista
thats all three, but only for mouse/keyboard.
http://shenani.gen.nz/~scott/screenshot.png

Pretty basic. Emacs (in tuareg mode for OCaml), gnu screen with ncmpc & mpd (music), dwm window manager.

I merged workspaces 1 and 8 onto 4, otherwise it'd just be full-screen Emacs. (Which is how I hack, but makes for boring screenshots.)

Share emacs colortheme?
I'm still working on extracting it into a useful form at the moment, but it's pretty closely based on one of the themes from ColorTheme (http://www.emacswiki.org/cgi-bin/wiki/ColorTheme). I think it was either Charcoal Black or Linh Dang Dark, though if you took Lawrence and turned every green to blue you would probably be close.

There's a pretty good gallery here, incidentally: http://www.cs.cmu.edu/~maverick/GNUEmacsColorThemeTest/index... You can probably find at least a couple you like enough to start from.

http://www.unc.edu/~wschliep/screenshot.png

This is the only thing that's really unique about my desktop--it's the Factor IRC client, which I wrote(well, the UI part, at least, the IRC stuff is actually done by the person on the channel named "tizoc".)

(comment deleted)
My workstation. My wife calls it "the bridge".

http://www.jonandkarrie.com/images/P8087198.JPG

Holy guacomole. What is that desk, and where can I get one?
I made it from a sheet of 4x8 melamine and some cleverness with a jigsaw and router.
You should definitely try to mount the screens higher. Your line of vision should be horizontal. Otherwise, you may have back/neck problems.
The screen deal actually moves up and down. Its set for more or less horizontal view. It looks a little strange because when I originally made it, it held 3 huge 21" CRT monitors.
Same as last time. Open emacs buffers are Hecl and LangPop.com:

http://www.dedasys.com/Screenshot.png

I don't see how people can live without virtual desktops.

Have you tried a tiling window manager? Looks like you'd like it.
I use StumpWM, bash, vimperator, and vim. Vimperator is an extension to add vim-like keyboard shortcuts to Firefox, and StumpWM is a keyboard based tiling window manager for X that is extensible in Common Lisp (like screen for X).

While I'm at it, I'll also plug the Kinesis Advantage keyboard and Cirque *Cat trackpads.

http://jey.kottalam.net/tmp/screenshot.jpg

My screenshot looks like the default windows interface, but with eclipse, VS2005, VS6 and an ftp client. I don't customize it so that I see exactly the same stuff my users see.