Thursday, April 29, 2010

On Managing Windows

So I've had my neutrino up and running for a few days now. It's been quite fine. Other than one or two random hiccups in the netbook remix of Ubuntu 9.10, it's been smooth sailing. Startup is easily three times as fast as my HP Mini was (due in no small part to the components the Neutrino can take). I'm still gobsmacked by how much actual difference the matte screen makes, by the way. My HP mini travelled with me quite a bit, and it tended to get a lot of gunk on its screen (judging by the pattern, it was being picked up off the keyboard when I closed it, despite the fact that I kept a cleaning cloth between the board and screen), it also reflected in all sorts of lighting conditions, to the point that I couldn't actually use it on the bus or streetcar a large part of the time. The Neutrino doesn't have either problem. The matte screen takes care of most reflections, and it's slightly inset, which means the surface never makes contact with the keyboard.

Sound and webcam are both much better on the new thing, though I don't have much occasion to use either in my daily activities. I also haven't gotten to testing out how it works with a second screen. Again, really no call for it. When I'm out and about, carrying a second monitor is impractical, and as comfortable as the neutrino is, when I'm at home I still prefer my desktop colossus.

What I have found is that Xmonad helps. I'm still not a haskeller, though it's quite tempting to drop everything and learn it given what I keep reading about its performance, and Xmonad may finally push me to pick it up. I doubt I'll ever use it on a desktop machine (or for that matter, on my netbook if I have it hooked up to multiple monitors). It's set up to be minimalistic. Which means that a whole bunch of things you take for granted in GNOME need to be done manually (like connecting to your local wireless network, or setting up keyboard shortcuts/switching out caps-lock, or setting up a way to launch programs other than the command line). It's really all stuff I should know anyway, but I don't need to with my usual routine.

Just to remind everyone, I live in exactly three applications (with two more coming out very rarely for specific purposes). The three are Emacs, GIMP and a browser (which one varies depending on what exactly I'm doing at the time). On some rare occasions, I bust out Inkscape (to edit vector images) and DrScheme (for the fantastic macro-stepper). Ok, yes, fair, I also use Klavaro for keyboard training and Rhythmbox for tunes. The first one gets run once per day, and the second is a fire-and-forget program.

You'll notice that Terminal is no longer in that list. That's because these days when I need to do something terminal related, I either whip up a quick Emacs function and bind it to an appropriate key-combination (if it's a command I find myself using a lot), or I use M-x term rather than hopping out of Emacs, possibly hitting C-x 3 first to get another vertical window fir my terminal session. In other words, the way I use my computer, Emacs is my window manager. GNOME is just there to take care of the background bullshit like connecting to wireless on my behalf, keeping the system clock ticking, and letting me know when there are updates to be had. Other than my Emacs monitor, all screens are taken up by exactly one window, and I tend to organize several workspaces (each oriented for a specific task) so that I can switch as seamlessly as possible.

So I don't see Xmonad usurping my window-manager of choice.

That said, it has one very real advantage to GNOME, and that's a lack of status and toolbars. That's two additional vertical lines of text. It doesn't sound like much, but it's worth quite a bit on a 10" screen. Since I never really connect to wireless nets while I'm on a bus/streetcar/subway, the advantages of GNOME make no difference there. So, while I'm on the go, Xmonad is a superior window manager for my netbook. Granted, all I do is run the one instance of Emacs, but that's all that's on my screen. No toolbars, no status bars, just one giant Emacs window with minibuffer. You'd be surprised how cool that feels if you're a big enough nerd.

Friday, April 23, 2010

On Neutrinos

I'm typing this on my badass new netbook, and ironically, hating every second of it. Not that it's a bad notebook, it's just that I haven't had the time to bend it to my will yet, so this is coming to you live from Windows 7's Notepad instead of my usual Ubuntu/Emacs combo.

So a comparison to my previous netbook of choice is in order (for those of you just tuning in, I used to tote an HP Mini 1035nr which my GF is now probably going to inherit).

In descending order of importance (to me anyway)

OCZ Neutrino:

  • Has a matte screen (so it's better than the HP right there as far as I'm concerned)
  • Takes standard 2.5 inch HDDs (not that it mattered, since the Ebay unit I got came with its own 64gb SSD)
  • Has standard VGA out
  • Easier to open up and tinker with
  • Has a better placed power button (where you'd expect, just above and to the left of the keyboard instead of on the front of the unit)

HP Mini 1035nr:

  • Has a bigger keyboard (not much bigger, but it still took me about an hour to get used to the switch)
  • Has evenly sized keys (the Neutrino does too, for the most part, but the punctuation keys in the lower right are all narrower than the rest. Again, nothing huge, but there is a noticeable difference to get used to, and it's a lot easier to accidentally type "./" instead of ".")
  • Lighter and smaller (the Neutrino has about a third of a pound on the HM Mini, and it's about a half-inch taller, presumably to keep such a roomy interior for mods)

The biggest loss I'll be taking is actually the keyboard. Not quite a huge deal, but enough for me to try checking out how easy it would be to do a keyboard transplant here. The gains are monstrous. More RAM, bigger (and much, MUCH faster) HDD, and a matte screen (didn't think it would make as much of a difference as it is, frankly). The only other difference is the track-pad, which I didn't put as an advantage or disadvantage for either. The Neutrino has the classic laptop-style pad with buttons directly blow it, while the HP mini has a button to either side of the trackpad. That lets them save some space, but it's also easier to use once you get used to it.

5 Keyboard Commandments

I've been kind of obsessed with keyboarding lately, and I've come up with a list of things that I've seen make up a good keyboard. I doubt I'll ever be in a position to design my own for mass-manufacture, so here's what I found out. Hopefully, people in a position to do something about it read this before it's too late.

1. Thou shalt not fuck with key sizes.

Except for the arrows/Tab/CTRL/Shift/Caps/Return (and F-keys if present), all keys should be the same size.

2. Thou shalt not squander the home row.

No one, including every office-drone I've ever observed (and I've had occasion to observe a LOT, across many demographics) ever EVER uses Caps Lock. I've seen it exactly once, and it was by accident. You'd think that those all-caps posts you see around the net owe their existence to the CapsLock. If you wanted to preserve that particular segment of our culture, rest assured that CapsLock has nothing to do with it; from observation, people tend to use their off hand to hold down shift and type with only their main hand. Seriously. There is no reason to crowd the home row with something no one uses. By all means, put your precious CapsLock somewhere, but make sure it's out of the way.

3. Thou shalt consider the wrists.

My one complaint about the Happy Hacking line of keyboards is that they necessitate the purchase of squishy wrist-pads. This is a big reason that I still have my MS Behemoth with me; it's built for all-round typing comfort. So I prefer that comfort when I know I'm typing for hours at a time, but I like the Happy Hacking for bursts of intense typing (because I can get a higher speed with the smaller keyboard area). Interestingly, laptops and netbooks solve this problem by default because the body of the unit tends to be much deeper than the keyboard, so you can comfortably rest your wrists on the remaining body. Apple keyboards try to solve the same problem by keeping the lowest possible profile, so that you can effectively rest your wrists on the surrounding desk space. It work or not depending on who you talk to.

4. Thou shalt not take up an acre.

Make the keyboard as small as possible (not smaller). Don't mess with key-sizes, and by all means make larger-keyed keyboards for people with giant hands, but as a rule, the keyboard should take up as little space as possible. This means no extraneous "Mail" or "Calculator" key, no number pad/arrow cluster where you can get away with it, and no extraneous space between keys. This works to make typing faster (because your fingers don't have as far to travel to the next keystroke), and it also takes away some of the pain of mouse/trackball use (because you can keep your pointing device closer to your keyboard, thus reducing the time it takes to switch). This also means avoiding the break where possible; that's a comfort optimization that costs speed.

5. Thou shalt assign Home, PgUp, PgDown, and End to the Fn-Arrows

This is simple. It makes sense. Fn+Left takes you to the beginning of a line, Fn+Right to the end, Fn+Up/Down move you up or down a page respectively. DO NOT BIND Fn+Arrows TO SOMETHING STUPID LIKE VOLUME CONTROL OR BRIGHTNESS. It's not clever, it sucks. And if you do it, YOU suck.

I'm tempted to say "6. Thou shalt not endorse the elephant-style return key", but that may actually be personal preference. I prefer the single-line-height key on the home row, but that's just because I'm used to it.

Saturday, April 17, 2010

What happened to the Neutrino?

I have absolutely no fucking idea.

There are reviews abound around the net of this cool little beast. There are at least two unboxing videos and various specs and product shots, and various onine stores list it (granted, as "out of stock", but still, it's not a ghost). No stores carry them. No online stores have them in stock. There were a grand total of two listed globally on Ebay (one of those is now sitting in the Canadian customs office in Toronto, waiting to get shipped to me next week).

OCZ's product page is, shall we say, unhelpful. The interesting bit is that they still have a press release circa 2009 that lists OCZ as a "DIY netbook solution", and contains a link to that product page I mentioned. Their DIY notebook section lists nothing, and their End Of Life products make no mention of the pint-sized hulk. There's plenty of noise on the OCZ Forum (including a guide for getting OS X running on the Neutrino, which doesn't surprise me because with the right extra gear, that netbook could actually be more powerful spec-wise than my iMac desktop).

That's it though. Had I not lucked out on Ebay, I wouldn't be able to get one of these, and I'm not sure why given that it doesn't seem to be discontinued.

Why the questions? I'm glad you asked. It's because this seems like such a badass idea that I have to support it. They made a netbook you could feed commodity parts. No special ram, none of this HP Mini expansion port bullshit where they try to sell you a $70 cable so that you can connect it to an external monitor, no 1.8 inch hard drives. It's all standard laptop gear, so if you're a computer nerd like me, you already have the components lying around to make it cool. The units come without RAM or HHD, but because it uses standard 2.5 inch SATA drives, you can use some standard laptop RAM and SSD and get the thing up to standard laptop performance level. It could democratize netbooks in a pretty fundamental way, and remove much of the need for traditional laptops, if people could get it.

So yeah. Here's hoping this isn't some sort of widely-spread but poorly-executed conspiracy to keep the Neutrino out of users' hands.

Thursday, April 15, 2010


I haven't really had time to work on personal projects the past while. Other personal projects and various contract projects keep on getting in the way, which is sad, but necessary.

The reason for the title here isn't that I'm quitting any of them. Far from it. As of next week, my current employer will be my former employer. It was fun stuff for a little while, and it taught me a lot about development practices, about building systems, about maintaining systems, and about development methodologies. Mostly, it taught me what not to do, which is valuable in a sense. I'm off to another company that needs a hacker/UI guy, where if all goes well, I'll get to put together a few products and a team for them. I'll do my best not to repeat history in any of the fundamentally broken ways I've observed. It was a good job for a while though, I don't want to take that away from them. I enjoyed myself. The context switches were enough to keep me focused and engaged for a time. Problem is, really, there was a hard cap on how much I could grow for a bunch of woefully common reasons, most of which I've already blogged about here. Training was non-existent. So was downtime, but it never really got pitched that way so it was hard to admit from inside the vortex. At the cycle post-mortem, we had this ceremony of listing all the things that were good and all the things that were bad. There was always a note to the effect of "Good: team really stepped up and pulled together" (read: "the team worked truly excessive overtime to hit the obviously over-inflated goals which got handed down from on high"). After the third time, I stopped bothering to point out that this was a ridiculous assertion. That there was nothing Good about voluntary slavery, or massive overtime. That really, by planning only slightly more effectively, we could reduce the amount of work necessary while increasing the quality of output and completely obviate the need for "really stepping up". It's a hard position to take when your teammates are all utterly convinced that overtime is as inevitable as object-orientation and IDE addiction. Which says a thing or two about a thing or two.

I kept getting misty-eyed this week. They're my friends, of course, and that won't change just because I'm taking my skill to another employer. Why would I ever leave? Ohmygod, what have I done?! I loved it here! It's a land of gumdrops and rainbows and unicorns where nothing can possibly go wrong!! It was more or less at that point that I stumbled into our sprint-planning meeting about 15 minutes late. I took my seat quietly, and checked out the room. Yup, they were performing The Ritual, and they were onto "What went badly". Sure enough "Really stepped up/pulled together" was over on the "Good" side, and "Too many last-minute objective changes, not enough testing" was already listed under the bad pile. I watched a lot of the old problems get paraded out and discussed. Then we got to the what's up next slide. And I'll be goddamned if I didn't suddenly feel a rush of relief that it was my last week as I was staring at the four months worth of work (and counting) that we were expected to finish in the next month.

Someone once told me that I wouldn't make a good leader because I'm too negative. I always have the "Well, we're gonna take that hill, but die doin' it" attitude. I'm not sure anyone could blame me, because I've seen the death-march-inducing, motivation-sapping effects of over-optimism, and I'll stick to my way thanks. Pessimism keeps your team from getting killed.

Anyway, it's not my problem anymore. Perspective is kind of nice that way.

Hopefully next week, I get to get back to hacking. I'll need to update my resume and portfolio, and maybe re-jig my website now that I know more or less what the fuck I'm doing. I don't really feel like a Graphic Designer anymore. Not sure if I ever did, but it's even more obvious after that stint in IT. I need to make a shirt that reads

"Human, Chaotic Good
Illustrator 5/Programmer 4/Fighter 2"