Hacker Workspaces
coderwall.com
coderwall.com
Laptop screens, on desks, are at the wrong height for ergonomics - you shouldnt have to look down at the screen all day.
People should be using large dedicated monitors, which are at the right height, and dedicated input peripherals (e.g. keyboard+mouse). Ergonomic, and efficient.
A nice 27inch IPS display is now very cheap; I do not understand professional hackers working just off a laptop.
But yes, staring down at the thing would be awful.
Ability to take my work wherever I want with absolutely zero context switch.
State retention/replication is among the biggest hassles of my multiple computing environments.
OTOH, it's also a pretty persuasive argument to leave work at work at the end of the day.
tmux attach
workon project
Full desktop sessions and browser state are the big ones.
I might be able to look at NX or another remote desktop solution, but those would be at best poor substitutes.
I _really_ didn't want to build a computer, and the iMac is _substantially_ faster than the equivalent-costing MBP (and also frees me up to travel with an Air).
It's a useful tradeoff, I think.
Switching between screen sizes really made me realize the importance of making sure all my code breaks at column 80, which makes it easier to read in terminals, on other people's screens, etc. as well. Good practice, I think.
I am a big fan of being able to just work whenever I want on my computer... but I also am extremely big fan of plugging it to external displays and use ergonomic devices, and I try to use them as much as I can. At my office I use a Kinesis Freestyle and a trackball, and am very happy since I started using it. We spend so much time in these "positions" that we should minimize possibilities of having problems and be confortable... at the end we want to keep doing this for long time ;)
No pointing showing me a IKEA table, a fern and an MBA.
That being said, I still prefer working of single machine, with virtualization. A complete take-away. Dropbox still hasn't stopped public sharing, so http://bit.ly/NtMjGd.
Maybe not the "best" way, but perfect for my workflow (I deal with mobile web development so I need a bunch of small browser windows open simultaneously to test on the multitude of mobile user agents.) I usually have specs, chrome, campfire, email on the left, code in the center and my development browser windows on the right.
http://www.rockpapershotgun.com/2012/02/22/hard-choices-the-...
At a recent Slashdot discussion a lot of people mentioned Yamasaki Catleap, it could be shipped from Korea where it's supposedly produced from 27'' panels rejected by Apple, but still usable. And it costs 340-400 USD with shipping.
As for the topic, it's really puzzling how people can use just laptops as their main work machines for code development. Right now I have about 6Mpixels at 100dpi of screen estate and I guess I could make use of another 4Mpixels. Good keyboard is also a must.
I recall it getting good reviews on AnandTech although I can't seem to find the link now.
If you want really cheap, LG has some 23" (1920x1080) IPS panels for right around $200.
Have been using mine with a MBA at home, love it.
I does require some odd head movement once in a while though
I'm secretly just jealous, of course.
I am also jealous! :(
3M Ergo Mouse: http://solutions.3m.com/wps/portal/3M/en_US/ergonomics/home/...
Kinesis Keyboard: http://www.kinesis-ergo.com/
I have no relationship, commercial or otherwise, with either vendor. Just worked well for me, as a professional software engineer. I highly recommend them. Both are designed to shift common movements away from smaller muscles toward larger muscles. Where a regular mouse relies on the small muscles of your wrist, the 3M mouse shifts that movement to the larger muscles of your arm. Kinesis moves the most common keys (space, enter, delete, modifiers) to one's (stronger) thumbs, and places keys to avoid the "stretch" of one's hand common with key combinations like ctrl+shift+T.
I should also mention that I use a standing desk. I think that's an important benefit to non-harmful mouse & keyboard posture. My experience from working while sitting in chairs is that your body tends to lean from side to side, extend one's arms to a degree that will cause repetitive strain, or put weight on the wrong places (like armrests). I have had an easier time adopting correct (least harmful, according to modern ergonomics research) posture while standing.
That posture is: let your arms fall limp to your sides. Now, bending at the elbow (and without moving your elbow), raise your arms in front of you to be parallel with the ground. That's where your keyboard should be. Your mouse should be in reach by rotating your arm, again without moving the elbow. This is the best posture for both chairs and standing (according to the ergonomics expert paid by my company to examine my working space -- I find this to be true in practice). As you can see, it is difficult to achieve this posture in a chair. The height of your desk is probably wrong, and you probably need a keyboard tray. It's more easily achieved with a standing setup.
I have had virtually no RSI issues since switching to these two products and a standing desk about 1.5 years ago. Both devices are fairly different from a normal input, and took a long time to learn to use effectively. The 3M mouse trades away accuracy, but with experience you can get almost as good as a normal mouse for regular desktop applications. I still use a regular mouse and keyboard for PC gaming, however.
Hope this is helpful to other intensive computer-users out there! Give standing a try -- your health will probably benefit.
Perhaps it's something I do without intention - small breaks due to short attention span or somthing...... but not everyone gets injuries.
That said - your advice is all perfectly sound.
I've previously used the 3M mouse you refer to as well as all manner of trackballs, larger mice, etc and nothing has done more to alleviate my mouse hand issues than the Magic Trackpad.
I think this is mostly because it removes the need to clench your hand around anything and it can be much more relaxed, yet you still have very fine control (I regularly use it with Photoshop).
Real coding - it's mostly planning and then writing code. A small workspace can help one focus, and if you are really into whatever environment you are using and it supports term/tmux and the usual unix stuff, you don't need a bunch of monitors at all - you can context switch just fine.... but that's hightly individual.
OTOH - when it comes to debugging and troubleshooting, give me tons of monitors so I can have proxies and remote debuggers and packet sniffers and who knows what else insturmented all over the place to find out what's wrong - but that's a different task.
And I will admit - lots of monitors can be a distraction, which is the killer of many a good programmer.
>> OTOH - when it comes to debugging and troubleshooting [...] but that's a different task.
I code and debug at the same time. Real coding for me is making sure it does what it's supposed to at the start so I'm always in a code/debug configuration and frame of mind.
>> And I will admit - lots of monitors can be a distraction, which is the killer of many a good programmer.
They are also the facilitator of many a good programmer.
I think my ideal setup would be to have a very high-resolution display like an Apple Cinema display.
Which monitor do you put it on?
And don't you mind always keeping your neck turned at a slight angle?
I had 27 inch, and I would mind the angle of just looking at the side of it. I hated, that I had to turn my neck in order to see something.
Also I wouldn't have to buy the monitors at the same time. (Should they be side by side I would want the exactly same monitor.)
Around a month ago, I started using an 11" Macbook air as I was travelling a lot, and I must say, I'm absolutely blown away at how productive I have been for development work.
With a tabbed text editor (ST2), browser, and terminal combined with Lion full screen & OSX spaces, everything is so nice and compact and you can switch around in less time than it takes to turn your head across to the other side of a monitor. I seem to be hitting flow very easily and have been doing some great work since I started using this laptop.
Of course, being able to take my primary machine with me everywhere I go is also a real bonus. I'm getting some great work done on my side projects on my commute or on flights, and am quickly able to dial in to customer sites etc without being compromised in any way.
I'd recommend that anyone give this a go. I'm definitely going to keep trying to minimise and simplify my tools after this experience.
I gradually drifted away from the monitor, and now just sit in front of the laptop. I think I just got sick of wasting time every morning plugging 4 cables into my mac (power, monitor, usb, headphones). I also like the mbp keyboard better (a LOT better) than Apple's quiet low-profile key usb keyboard. Yeah, I could have just gone with a different keyboard, but I _really_ like the keyboard on my macbook. Not using a mouse, I move my hands less. The gestures make me more efficient (and I use BetterTouchTool, as well). I also _really_ like the trackpad on my macbook.
I think there are several benefits to using just the laptop:
1. The browser is usually hidden behind the code I'm working on, instead of staring me down. I'm distracted less, and with the keyboard I can quickly switch to the browser just as quickly as I could turn my head.
2. Whether I'm at my desk in the office, the table at home, or lounging in bed, I'm always using the same setup. I typically do most of my work ssh'd into the cloud, so I don't really care about transporting my .vimrc all over with Dropbox, but if that weren't the case, my dot files always with me.
3. I'm more comfortable since I don't have to keep turning my head back-and-forth between the two screens, and I don't have to keep swapping my hand between the keyboard and mouse.
My 24" monitor mostly just sits and collects dust, but I do sometimes plug it in. The 13" mbp screen isn't really big enough to do side-by-side comparisons, so if I ever have the need for that, I'm glad I still have the monitor around. I'll also use it if I ever have to fire up the javascript debugger, which I find easier to use expanded to the full screen.A virtual desktop for each of the following: browsing, comms, notetaking. And the rest of my desktops (usually 9 total) partitioned per-project. When doing web dev stuff, i tend to put a browser in one desktop for that project, and dev stuff in the desktop immediately to the right of it.
When I'm in an appropriate place, (home, work, the occasional hotel room where heavy dev is going on between meetings et al), I'll arrange another computer or attached monitor/tv to do dashboarding (preferring the another computer approach). The dashboard has test pass/fail lists, tailing logs, other information as needed for the particular project. It makes it easier to ignore, but accessible when needed.
One thing the reduced screen space has done for me is help me identify opportunities for good dev practice. For example, if I find myself annoyed at the number of times I'm switching between vim and the terminal, it might be time to write a script that I can call (or even hotkey) from vim. It also helped me learn to use tabs/windows in vim and eclipse better and more productively, because I couldn't just put them next to each other anymore. Now when I do have the option for mutliple screens, one is usually blank anyway, because I find myself anoyed at switching windows, even if its a simple mouse move away.
Of course, this is just my experience, influenced by my preferences, but hopefully it can give you some insight into other modes of working :)
But, from my experience, mostly it isn't.
EdgeCase: http://itunes.apple.com/us/app/edgecase/id513826860?mt=12
The app inserts cursor-bounding hard edges between your shared screen edges. Cross only when you want to via several shortcuts.
I made it because multiple monitors make OS X hotcorners impossible for me to hit. (Fitts' Law, infinite width, etc.)
Workspace / multiple-monitor junkies in this topic: sound useful? Have any other multiple-monitor nits I could fix?
Edit: Ah yes, there are a few in there that I pulled from a .net Magazine article.
Why? Is it the weight? Do you find Pro too heavy to carry around? Have you tried a backpack?
It's so small and light and you kind of casually pick it up and take it with you even thinking about it.
They're also not badly priced if they are to be used as a primary machine.
And with the SSD and now 4-8gb as standard, you have a pretty good spec for most web development.
Anyway. Why not a Pro? Why would I want a heavier machine? I can easily SSH into a beefy dev box. And most of the code us startup types write for the web or mobile devices don't demand beefy CPUs. The trade off between performance and form factor only makes sense if I'm going to use my laptop for anything other than a dumb terminal. And I do put that 13" air in a backpack.
I love the 11" Air, but I couldn't imagine using it for anything other than a basic email machine.
As for screen real estate, well I have a 24" monitor at home but have gradually stopped using it. I can only really focus on one thing at a time, and the screen size is big enough to display that one thing comfortably. I have Quicksilver set up so F3 switches to web browser, F4 to sublime, F5 to my terminal, and it's muscle memory at this point. If I want to switch focus, rather than turn my head, I lift a finger and it replaces what I'm viewing.
I've lately started playing around in Pixelmator (an OSX-only pared-down version of Photoshop), and have started thinking about breaking out the monitor for that, admittedly. It would be nice to have all my tool palettes, list of layers, etc, not obscure the image I'm working on.
Where are the cups of coffee ? Where are all the cables ? The Model M keyboard ? I can't see any Donald Knuth books there. Not to mention no one is using Linux there.
I'm not "ragehating" because of Macs or so, I'm just saying that it's weird to see a Hacker with a workspace like that :P
A hacker is not a hacker because of the hardware he/she uses. It's not the books he/she reads. It's about being unconventional, using things you are productive with, finding out what would make things better and you name it. It's not about being not clean and reading Donald Knuth's books.
Please either stop writing such things or simply go away.
It should really be a name, a photo, a name of most notable/public piece of work and a link to a personal site/about page.
Is this usethis for the uninvited?
So maybe you should consider leaving Macs and Apple devices alone to have a happier life I guess.
Nothing against the actual content of the page, though. Nice to see both minimalist and elaborate styles represented.
My monitor is just a 37" 1080p LCD stacked on a table and empty crates to reach head height. I've got an ottoman to sit or lean on when I need a break from standing, and the music stand desk makes it really easy to quickly and firmly adjust the perfect typing attitude.
With a Macessity LapTuk stand: http://www.amazon.com/Macessity-LAPTUKPRO-LapTuk-with-USB2-0...
And 3 external monitors usings two Kensington's USB to VGA adaptors: http://www.amazon.com/Kensington-Universal-Multi-Display-Ada...
I can do a coderwall profile with photos if there is interest.
If people are also interested at more in depth setups of people from various fields, this site http://usesthis.com (which has been linked to from Hacker News I'm sure) is along the same lines, minus the photo of their actual setup. It's more descriptive.
- A magic trackpad is expensive. And when you have it, it's kind of awkward to place it. And then you have to deal with occasional Bluetooth hiccups and batteries and all that crap, when you basically have that same thing build into your laptop.
- Same for the keyboard, but cheaper.
- In 10.6, you could just close the laptop, wait for the screen to appear, and open it again. You would be able to use keyboard and trackpad but the screen would stay dark. Not so anymore.
- If you close the laptop because you have a mouse and keyboard, it will run insanely hot. I know it's officially supported, but I plan to use my laptop more than the "supported" three years. If you open it just a little, the screen turns back on in Lion, see previous item.
And if the screen is already there, then why not use it? It seems like the rational thing to do.