Developer Productivity - The Red Pill
bestinclass.dk
bestinclass.dk
"But in the time he has booted to his Desktop I've already answered 3 emails [..] Vanity slows you down, whether its your choice of VM, OS (read: OSX or Windows) or anything else".
– is hardly an argument when choosing desktop OS.. just put your PC to sleep and next day it will "boot up" instantly, especially OS X.
To put another way, there was nothing in the article that didn't fall into one of three categories: 1) Are obvious to most developers. 2) His/her opinion, but not substantiated by any evidence, and probably disputed by as many as would support. 3) Look like possible outright lies.
Not a blog entry I'd consider writing, much less on my company's website.
Leechblock is incredible for this reason, its saved me so many times. Great read although I disagree with cutting out tea, forcing myself to take tea breaks every few hours of the day has lead to some great discoveries.
Other than that I totally agree that sleep exercise and food make a great difference. Eating fat with carbs for 3 meals a day will not help you get the mental focus either.
I find that very often, 'optional' means 'will eventually cross off because it doesn't get done'. I hate having a to-do list that just piles up. Be honest about whether you're going to get something done or not.
The only thing I miss is the smell of coffee and having something warm to drink on cool mornings.
My energy was much more balanced - could wake up fully alert. However, I felt depressed the entire two weeks. Generally just very SAD.
So I got back on the drug after two weeks and with the first cup of coffee I just burst out into laughter. I literally could not stop laughing for about a minture (huge smile on the face).
Now that I'm back on the drug my energy levels are up and down but I'm not in my depression hole.
Anyone else experience depression when going off coffee?
Now, its slightly more balanced. I try to only have sugar or caffeine when I'm not at home.
1. A glass when I came home from school (around 1:30-2pm), a glass when having a snack (around 4:30pm), and a glass at dinner (around 7pm)
2. My college has a deal with Pepsi -- none of the dining halls have Coca Cola and there is only one or two vending machines that have it on campus.
The body quickly becomes use to caffeine so there's really no sense in ingesting it day after day. But if we could restrict it's usage to a couple of cups every three to four days, we could get the benefits of it maybe while not having to incur the cost of withdrawal symptoms.
Can someone explain what the author is talking about? I'm not up to date in the latest Linux WM fads. (honestly, I thought the problem was finally solved years ago)
When I'm working, 95% of the time I launch apps and select windows with the keyboard, on both OS X and Windows.
If you ever used ratpoison, it's a better design in the same general space.
I'd personally recommend xmonad if you use Haskell, dwm otherwise.
Over the last year-and-a-half, I've averaged 7.5 hours of sleep although I do best with 8. On weeks where I average 7 hours of sleep per night, I notice a decrease in thinking speed.
"Obligatory 'Have you tried tmux?!?!'"
I deleted it because I thought HN might think I was trolling or something.
If you already use screen and are happy with it, it's probably not worth switching, but if you're starting new, I'd suggest learning tmux first. You might want to get a fairly recent version of the source, though - it's in the main OpenBSD tree now, and it has been improving pretty quickly.
If you use Unix & ssh at all, definitely learn one of them. Yesterday, if possible.
One of these days I really need to write about getting started with tmux...
I switched from screen a few months ago and have been much happier, but I literally spend 80% of my day on multiuser terminal sessions. tmux is much nicer than screen for sharing a session.
I think you just need to remember to define your breaks properly.
[1]: http://bepo.fr
Ah, and most short-cuts are independent from the layout. But if you set up you software such that short-cuts are optimized as well (Alt + home-row-key for instance), then they'll become easier and faster too. That's probably what the guy did (he uses Emacs almost exclusively). A good place to start would be http://xahlee.org/emacs/ergonomic_emacs_keybinding.html
>7. Use a tiling WM
I recall reading a Plan 9 pdf on the Acme editor (sorry cant find it right now). A unique feature to that text editor is that it is heavily mouse-based. This is contrary to many peoples (myself, at the time, included) belief that both hands on the keyboard equals increased productivity.
I used to be 100% dwm. The euphoria of navigating around with your home row was great (vim + vimperator + dwm). When I purchased a MB, I left my tiled-wm ways and have not really missed it. Switching my hand from keyboard to mouse feels more natural than a lot of awkward <Ctrl+__> or <Alt+__> commands. Plus, most TWMs I have used require a decent amount of time upfront to become accustomed to all the keybindings. The time difference in switching between mouse and keyboard vs just using the keyboard is so trivial that it really isnt worth the plunge in my opinion, though if you think you might like it better, by all means try it.
Something such as a unified desktop (OS X, Haiku, Gnome, KDE) will make you more productive rather than a window manager that optimizes for pixel real estate.
The main benefit I get from Awesome is having 9 workspaces ("desktops"). I use my mod key (in my case CAPS but it can be Alt or anything) plus # to get to any workspace. I have web browser on one desktop, email on another, IM on another, terminals on another, programming on another, and it's really, really easy to switch around. This was a HUGE improvement for me over Windows (and even Gnome), just in terms of managing multiple windows/applications running at once.
Also nice to be able to get two windows to share the screen with a keystroke, if I need to look at two things at once. And in the same vein, tiling is really nice for IMs, because on the workspace for IMs, I can see all my chats at once. Normally for other tasks, like web browsing, I just switch into the tiling "mode" that doesn't tile (i.e. application is "maximixed").
I only ask because my set up was exactly like what you just described. Once I buckled down and started using one, it negated the need for a lot of the tags I had with dwm.
I know screen has some nifty features, but for the things I do, a tiling WM is a superset of the functionality screen would provide.
"We’ve done a cool $50 million of R & D on the Apple Human Interface. We discovered, among other things, two pertinent facts:
* Test subjects consistently report that keyboarding is faster than mousing.
* The stopwatch consistently proves mousing is faster than keyboarding."
There are probably all sorts of caveats to this (and the research may have changed since then) but I'm reminded of it whenever I see people extolling the virtues of their ascetic, keyboard-centric dev environment. I'm not saying they're wrong, just that in lieu of benchmarks and studies, I'm skeptical.
Now the reason why the keyboard is slower than the mouse may be sub-optimal short-cuts. For example, when editing, one very often needs to change lines, or otherwise navigate the text. A sensible short-cut to support that could be alt + jkli (assuming a Qwerty layout). Then you don't have to leave the home row at all. But if you have to use the actual arrows, it's slower, and that may make the mouse the better choice.
A keyboard is faster if you want to, say, "jump to the head of the definition of the function body you're currently in and send it to be evaluated", because a mouse just doesn't have enough buttons. With a keyboard, you can name operations. And then name new operations, grouping those names... (Why yes, I do use Emacs.) If I was using a mouse-and-menus for that stuff, the menus would stretch to the moon.
The next time somebody argues that a mouse is faster than a keyboard for programming, I'm going suggest they make their case solely by pointing at things and clicking their tongue.
Also, when it comes to programming, the biggest bottleneck for most people isn't typing -- it's thinking.
P.S., there do exist mouse-heavy programming environments: http://en.wikipedia.org/wiki/Visual_programming_language
I'm not a neurologist, but I wonder how differently the brain's spatial centers and language centers interact with the part(s) that perceive the passage of time.
That's so true for me. I'm not pumping out code nonstop where the efficiency of keyboard vs mouse comes into play. Being more efficient with moving around a source file only matters if I actually knew what to do once I get to a particular spot of code and many times I don't. I struggle more often with the high-level design of a program than the details. And when the design is sorted out then everything else falls in place. That's when more efficient navigation may be more important to me.
The same thing for those mouse-centric applications. Linux window managers have a "shortcut" of holding a modifier combination and dragging anywhere within a window to move it, or dragging the nearest corner to resize it. This makes arranging floating windows fast and fun compared to Apple's more intuitive requirement of having to drag the titlebar, or that tiny little handle at the bottom right of the window.
Some of the mouse-centric visual programming environments you mention, particularly the ones that have many years of use behind them, also contain shortcuts. Autodesk's Flame compositing environment for instance, traditionally driven via a pen and tablet, has a whole bunch of shortcuts to drive the interface without touching the keyboard. You can connect dataflow nodes by "kissing" for instance - dragging them close to each other, allowing you to connect many nodes with a single movement.
For many people, it's the mastery of these shortcuts - keyboard, mouse, pen or touch - that gives them a sense of pleasure and power when they use that piece of software.
When are people going to get it through their heads that using the mouse is faster than the keyboard? This has been determined by Apple's UI research and known for some decades now.
"We’ve done a cool $50 million of R & D on the Apple Human Interface. We discovered, among other things, two pertinent facts:
* Test subjects consistently report that keyboarding is faster than mousing.
* The stopwatch consistently proves mousing is faster than keyboarding."
This is the reason that the Plan 9 folks gave for making their UI mouse rather than keyboard based.Why would you link to something so foolish?
The main thing I use my WM for is switching applications. Any application I want to switch to is modkey+number, and I know the numbers.
Let me state my point more bluntly. I've tried switching applications with mouse and with keyboard, and it's faster with the keyboard.
I use a mouse when I have to, but I'd probably use it more if I could get one of those nubbin-mice in my desktop keyboard. 99% of my job is typing. Switching between mouse and keyboard is annoying.
At home, I tend to do the same kinds of things I do at work. However, I picked up a Logitech bt media keyboard with a touchpad off to the side--and that works fine. I wish I could find a wired version. Cherry builds keyboards that look worthwhile, but they don't sell them piecemeal to little guys like me.
Things like browsers are a separate issue, but if I'm switching to a browser I'm already distracted. :)
Also, I use dwm, and got a netbook recently (dual-booting Windows 7 and Debian). On a screen that smal, tiled wms really shine, and Windows 7's interface feels like a joke in comparison. The low-hanging fruit on a tiling window manager makes the biggest difference, though - having N different workspaces, automatically arranging windows, and being able to hit alt-3 to switch to the third workspace / alt-enter to open a shell is most of what you need to know.
I was skeptical about netbooks, but saw a great deal on craigslist and decided to try one. With dwm, Emacs, and terminus, I have two 80x45 buffers, which is quite adequate. (I also bike nearly everywhere, and it weighs so little that I don't hesitate to carry it with me all the time.)
Its not an either-or thing. XMonad works perfectly well Gnome, panels and all. It only replaces metacity/compiz, not the whole environment.
I am not so sure that makes it a good idea though. Why undermine something so deliberate?
UNIX is my unified desktop. I only use the window manager to manage windows.