I keep thinking about buying a faster laptop, or I'm complaining that getting fiber is way to expensive where I live, and then I read about someone on an ancient tiny netbook on dialup who is probably way more productive than I am.
And you're not him. It doesn't matter how productive he is on "an ancient tiny netbook on dialup", it matters how productive you would be on it.
Getting a faster laptop or fiber is a simple matter of weighing the costs against the benefits for you. If it increases your productivity enough to outweigh the costs, then you should get it.
How often would this actually help me?
I guess in the end we have vastly different use cases, which is perfectly fine. I found it a quite interesting, if a little obscure, article to read.
I don't necessarily agree with the parent post's sentiments, but I also disagree with this very broad blanket statement of yours. I am reasonably happy most of the time on my Macbook Air screen, but I definitely prefer to be coding on a larger screen when I can. I knew Joey back in college and he is a sharp guy with a LOT of working memory. My memory has gotten worse over time, and I tend to work with heterogenous codebases, so I can't fit everything in my head and need the screen real estate.
I know many excellent, productive devs who love having large screens to code on.
I find that functional programming really cuts down on the amount of mental state I need to maintain. So while I'll have some API docs and another module or two open for reference, I don't need to worry about what that variable gets set to two pages above.
Maybe avoiding that kind of unnecessary detail makes one's unconscious better able to work on the program too. Still learning about this: http://joeyh.name/blog/entry/on_not_coding_late/
As I recall, you were the secretary of CSLUG.. Indeed, querying my external memory for your posts, I find meeting minutes you posted that bring back memories. Nice :)
Nice to hear from you!
For those of us who use virtual desktops, the physical resolution of the screen is just a small fraction of the total. I code in a 12" laptop with just 1280x800 pixels, but my effective resolution is 20 times that.
I try to limit myself to 3 but you have me wondering what else I could separate out.
I've got 24 desktops set up, but mostly use just 12. F1-F3 are generally code or whatever main technical task I am doing. F4 is compile+run, reload configuration and test, etc. F5 is Chromium for html documentation of whatever I'm working on (currently the Honda Civic service manual, sigh). F6 is evince with pdf documentation, and/or a second firefox window when I want some tabs that won't end up getting lost amongst others. F7 is Firefox for general web browsing, plus any pdfs opened directly from the web. F8 is generally email. F9 is music. F10/F11 is a wasteland of quasi-temporary shells. F12 is IM. Alt+F1-F4 generally get used when I'm in the middle of programming and want a clean slate to do some multiple machine sysadmin task. The rest only get used when I have a very seldom need for more desktops, but why wouldn't I fill out the hotkeys?
Shift+key changes to the associated desktop, bringing the active window along for the ride. Changing tasks (how I think people normally view virtual desktops) happens by letting the old task's windows fall by the wayside on their respective desktops. And yes, clearly this setup predates tiling window managers by quite some time.
That's HUGE, at least for me. I'm constantly alt-tabing or changing workspaces on my Mac and every second I have to wait for that animation, or look at that variable name, or remember why it return an (int, error) not just (int), I was losing my momentum.
Honestly, I'm excited to start my full time job to buy another of these bad boys to use at work.
Solid ad hominem.
On a related note, Hess has also taken himself almost totally out of society. Even UPS can't find his place. While it has a very Walden Pond quality to it, I personally include my social life in my "what have you done" list. Modern day Thoreau he might be, but remember that a lengthy git history doesn't make any person objectively "better" or more "successful" than other people. We're all just folk.
Which is why I prefaced as saying I didn't like to pull that card. I think the OP I was replying to just rubbed me the wrong way with his attitude of "so says the guy using a back-worldly shit 1024x600 laptop with dial-up", like joeyh was some sort of luddite who would be more productive with newer "better" hardware. It stank to me of being someone who didn't even know what joeyh was producing with his setup, and just brushed him off as "not productive", when I really feel that joeyh's example is something to, at a bare minimum, study as an example of what's possible when you slow down and focus on the code and design instead of dual 30in monitors and teh shinee.
Furthermore, GP, yes, worth is a totally artificial human construct; while you may value social interaction more than others, I tend to see developing open source software as being an almost infinite good, as it can improve innumerable peoples' lives, albeit only a little bit at a time. That's the power of software.
A legitimate question. However, I've known incredibly smart developers who get shit done, and often they like to hobble themselves. They tend to hobble themselves out of a somewhat irrational love of hardship. But often they'll justify it with some other very elaborate explanation that sounds very smart but is pure b.s.
I lived near the top of a mountain in the same area, and was finally able to get cable after pestering Comcast for a few years.
The guy that bought the land at the very top of the hill was unable to get Comcast to run cable even with his offer to pay for the run himself. We cut down some trees for line of sight and re-purposed some satellite equipment and got him online via a second cable run to my house.
That anybody can get anything done with such constraints is amazing to me, but he's obviously quite good at it.
Cut to a few years later and now I have 3 high resolution screens in front of me, pretty much all the time. I still tend to use just my laptop screen with tmux though, with the rare exception (during deployments, mostly).
I won't say that a single small screen is better, but I do think from personal experience that, after some time and initial effort, it really is not the handicap people think it would be. It certainly won't slow you down like a thumb keyboard will.
Being broke, I ended up with a Toshiba netbook that couldn't handle more than a few browser tabs at once. Installed Debian to squeeze out some performance over Windows XP (first foray into Linux). Best thing that ever happened to me.
Soon I learned vim, tmux, and had my entire dev environment in a Guake terminal overlay that I could quickly toggle in and out of view. It was like having two full screens in one.
My work just bought us monitors and everyone is dual/tri-screening it. I just dock my laptop and use the single monitor, still using the same guake/tmux/vim setup.
I don't think screen resolution is the bottleneck in information transfer here.
My overall setup is quite similar. Xmonad & redshift are great tools for minimizing distraction over long periods of time. You can really get in the 'zone' in a way I find impossible without them.
I could have sworn this was a submission at some point, but I can't find it.
The combination of forward-thinking hi-tech and rustic low-tech makes this feel like something out of science fiction. I picture him as a character in a Stephenson novel: a hermit hacker, off the grid, queuing up data and pulsing it out only when the cells are charged and the skies are clear.
Pretty awesome :)
I am definitely looking forward to an e-ink laptop. As I get older my eyes grow more weary, but the e-ink display on my kindle is a joy to look at.
As an aside, I was very impressed how well Unity runs on relatively anaemic hardware. for running a terminal and a web browser it runs great.
An alternative that I've been wondering about is key sequences (M x) for WM actions and key chords (M-x) for all other things. This seems possible to do in xmonad (last point in this blog post )
This is such a liberating setup. I'm rethinking my need for a home office now.
It was a total failure for me because I found I needed the psychological aspect of going to an office and sitting at a desk to shift into "work mode." (The anecdotal 'proof' being a 2x jump in income between these two settings.) But we're all different.. luckily :-)
Yeah, it's "liberating" until you develop chronic back and shoulder pain later in life.
I now rotate between a standing desk, a normal desk, a couch (only when reading/exploring - typing here is tougher), and the floor, and all of my back problems have disappeared.
I started getting neck pains after 11 years into my programming career. I attribute it mostly to programming on a sofa with a laptop -- in this position you constantly look a bit down (if a laptop is on your lap) and your neck will not like it.
This is very interesting, especially his Kickstarter project. I've always wondered how distributed revision control systems could be used in other domains.
 - http://www.kickstarter.com/projects/joeyh/git-annex-assistan...
I was just going to try that in my xfce, what a coincidence. In case anyone is interested, here's the instruction http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_XF...
On the down side, it probably only appeals to a select number of geeks, and probably not enough to make a kickstarter viable.
I wonder how it would be on a newer eink screen.
Although I don't know how well contemporary eInk displays would handle partial updates. If it e.g. doesn't save much energy compared to a full-screen refresh, there might be huge difference in battery usage, as even slower typists would cause more redraw than the page flips caused by your average reader.
Everything else maybe... but I could never go back to dialup!
I think Joey Hess is a major exception here because he has a very individual and interesting setup. Stallman, Russ Cox and _why are a few other interesting setups iirc.
But I'm always a bit surprised by small-screen laptop-only users, whether it's this rather charming off-the-grid kind or your average Macbook Air coffee shop inhabitant.
I like my mechanical keyboards, large displays (area, not dpi) and desk-bound isolation. Never mind that laptops introduce quite a few technical problems (heat, upgrades, computing power) that are easily avoided by your cheap mini tower.
And I guess that's at least one minor way in which I've succeeded over distraction without even trying: I don't have a big need to mix my programming/writing/browsing with outdoorsy and/or (real-life) social elements.
I wonder whether the rather common preference of landscape background pictures (e.g. Napa valley) is part of that desire.
This meant going from a dual quad core 3.33 extreme desktop machine with 3 displays (2 x 24 and 1 21) to an 11" Macbook Air with a 1.7 dual i5.
I'm much faster on the air. I have a tiling setup that I can quickly switch/move windows around, it keeps my vision and neck focused and reduces strain to both. It allows me to better mentally focus on what I'm currently working on, instead of having my IDE, source control, collab tool, bug tracker, etc, always visible at the same time. I'd rather do a couple quick chord commands than snap my neck 30 degrees one way for 15 seconds seconds then snap it back in the other direction.
As to heat/power? Spectacular with my MBA, this thing is as fast as last year's Macbook Pro and the iMac the year before. I've been writing software professionally since '96 and at least in the windows world, the tools have not changed a whole lot in that time period. The only advantage of a faster machine is faster compiles and db rebuilds/queries. And I'm not doing that enterprise level work of 300k+ code bases and 5 gig databases anywhere. But I did 15 years ago, and yeah, now something that would used to take over an hour might take 2 minutes. On my MBA is might take 5 minutes. For something I'd do a handful of times a day, not a big deal, but again, I don't do those types of things anymore.
Don't get me wrong. I'd appreciate more resolution. But probably more inclined to use that for extra clarity rather than increase my desktop space by a significant degree. There's a sweet spot where bad habits begin to creep back in, where just too much info is presented at one time that cognitive overload begins to set in. Just my personal experience, but I've had both setups and the latter works much better for me.
All my tools respond instantly (with a big enough project eclipse stutters on every interaction, even with an i7 + 16G of ram). And I can code happily on my monster quad core or my hacked up chromebook. This is flexibility.
Like brandall10 I found that the difference in focus is enormous. I haven't connected with my code like this for years. In a modern IDE everything moves, every twitch of the mouse brings up some overstuffed menu or brings up some javadoc summary of somesuch. It is an environment of constant distraction.
My terminal is like a warm summer's morning. Clear skies and not a soul to disturb you.
And I'm loving it. I never had this much visibility into my code or anything close to the refactoring power (especially in Java). Maybe things go south with 1mm LOC projects but those are no picnic in Emacs either. I've gotten so addicted to the benefits of a good IDE that I think I'll take a serious look at Rubymine if I ever go back to doing Rails again.
For a while I even switched regularly between a 23 Inch Sony monitor and my 17" MacBook, both with the same resolution. The MBP even had the better CPU/RAM compared with the Office PC I abused for admin/dev purposes.
I still noticed that I prefered my desktop setup by a large margin. Mostly because those same pixels spread out over a larger area, encompassing a larger FOV for me (without me crouching like Rodin's thinker). Also, a much better keyboard. I can't really understand all the hype about Apple's scissor action chiclet keyboards. Last decent one they made was the Extended II.
And all this in a package that costs much, much less. For my purposes, all those hyper-engineered ultrabooks (and their Mac inspiration) are overkill. Lots of really clever solutions and manufacturing advantages that I simply solve by putting all that in a large enough box. I simply don't gain a lot from all that cleverness.
‡) Well, apart from when I have to do lot with a browser, either for development or reference. A ridiculous number of sites break when the browser window is too narrow, and switching back and forth between only two applications is a bit of a waste of time. I remember this not being a problem when I was using half my 1600x1200 CRT back in the days…
If Joey is reading this... It sounds like you are living in a remote place. It'd be cool to see a more detailed blog post with pictures. Also as someone who has lived with a flaky dialup connection for a long time recently, I can highly recommend mosh. Setup irssi+bitlbee on a server running under tmux. Then connect with mosh and attach to tmux. This way you get reliable chat and irssi should set the important flag for the window, giving you notifications of new messages too. You can also configure irssi to mark you as away when you disconnect.
"I mean the guy no harm, but so much of what he says strikes me as incredibly back-worldly."
No. He approach is incredible modern.
There's some Jobs-ian about it. Steve Jobs ultimately hated devices, because a device embodies the barrier between you and the effect you need. That is why Jobs strove to make devices as small, unobtrusive, and natural as possible.
(I just started purchasing Apple, and have thus only recently began mulling about Steve Jobs's vision.)
You're probably (and the OP, Joey Hess is definitely) talking about Debian unstable, though, which does not have a security repo. (I was on testing IIRC.)
It was not hard to upgrade to a new version of Debian, either, because the tool I was using to download the necessary files, apt-get, would reliably restart the download where it left off, so I downloaded the files over about 7 consecutive nights.
It was pretty sweet, actually. In contrast, I wouldn't have a clue how to keep OS X updated with security patches using a dial-up connection.
But let me ask why you jumped into this conversation: do you or someone you know of have experience keeping OS X patched over a dial-up connection? Do you have reasons to believe it is possible?
country: United States of America
Wow, that's impressive but I'm not sure I'd be proud of not "using" any other Operating System than my favourite for 16 years.
Some people seem to like shaking things up every few years, but I'm not one of them - it just takes time away from doing what I consider more interesting stuff.
These things tend to stay very consistent over time, if I was using Windows I would have had to learn powershell over the last few years. My BASH knowledge is still as applicable as it was 10 years ago.