Monday, December 7, 2009

Device already mounted or mountpoint busy

First post in too long. The muse hasn't really grabbed me strongly enough to warrant additional entertainment for my tiny readership. Still, I won't give it up!

So here's a quickie technical post. I powered on my Ubuntu 9.10-powered computer the other day. When I logged in, I found that my home directory didn't exist, and was dropped into the root directory.

I mounted it manually, and everything looked okay. Assuming it was just some fluke, I rebooted the machine to make sure it would auto-mount correctly. It failed again. This time, manual mounting didn't work.

My home directory actually lives on /dev/md0, which is a Linux software RAID1 (mirror) device. I checked, and the device existed, and the array state was good:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sda1[1] sdb1[0]
976759936 blocks [2/2] [UU]

unused devices:

Still, the manual mount failed:

# mount /dev/md0 /mnt/share
mount: /dev/md0 already mounted or /mnt/share busy

Huh? I ran the mount command with no options: neither /dev/md0 nor /mnt/share was listed anywhere. I ran lsof: neither of those files were listed as open.

I even tried mounting in a new directory:

# mkdir /mnt/tmp
# mount /dev/md0 /mnt/tmp
mount: /dev/md0 already mounted or /mnt/tmp busy

Well, clearly /mnt/tmp isn't busy, as it was just created! So what was wrong with md0?

At this point, I started to get a little worried, so did the sanity test to make sure my data was still there:

# mount -t ext3 /dev/sda1 /mnt/share
mount: /dev/sda1 already mounted or /mnt/share busy

I tried the same thing with /dev/sdb1, the mirror of sda1 in the RAID1. Same result. At this point, I was more than worried, but not yet panicked.

I checked dmesg, to see if there were any obvious problems. Nope. So then I went into /var/log, and started looking at those files for clues. I finally found something:

EXT3-fs warning: mounting fs with errors, running e2fsck is recommended

Ah-hah! So I ran e2fsck on /dev/md0, and corrected the errors. I was then able to manually mount my home directory. I rebooted, again to make sure it came up, and it did.

I don't know if this is considered a mount bug or not, but the error message is extremely misleading.

Tuesday, October 13, 2009

DHS = Paranoia

Yesterday, I was trying to take some artsy photos of the rail road tracks near my home, as well as some general autumn/changing leaves/nature shots. A local cop pulled up next to me and asked me about the pictures I was taking, in particular: "What are you taking pictures of?"

I answered, plainly, "Nature photos, the changing leaves, the railroad."

He then told me I looked suspicious. He went on to say that, with the Department of Homeland Security, taking pictures of railroads looks suspicious. He repeatedly used the word "suspicious".

He then asked if he could see the pictures I took. As I started thinking of a polite way to say "not without a warrant", he got paged on his CB radio. He chatted on the CB for a minute or so, then turned to me and gave another quick "it looks suspicious" speech, then drove away.

Overall, it wasn't a big deal. It only took up a few minutes of my time. The cop wasn't a jerk, simply matter-of-fact. I didn't have to give him my information (likewise, he didn't identify himself).

I have nothing against the police officer; he was just doing his job. What bothers me is that, a guy walking around with a camera in broad daylight is now considered "suspicious". Have we become so paranoid that hobbyist photographers are now included in the group of potential enemies?

Friday, July 24, 2009

The Most Annoying Office Mate Ever

I have a close friend who described to me, at length, the annoying habits of the person who sits closest to him at work. He went on in such detail that I felt like I was there...

The first and most notable annoying habit is the "violent nasal exhalation". Basically, we all have an opening that connects our nasal cavity to our mouth. Apparently, the annoying guy closes that off, builds up pressure in his mouth, then opens the nasal passage. The result is similar to the sound he would make if he was blowing his nose, but immediately preceded by a kind of "thunk" from the explosive opening of the mouth-to-nose cavity.

I've never heard a whale expel air through its blowhole, but I can only imagine it's very similar to what this guy does.

Of course, such a habit could easily be ignored if it occurred infrequently. My friend---who is never prone to exaggeration---says the guy makes the noise at least once every minute. Every minute!

The guy's next habit is less frequent, but louder and much more prominent: the "mouth vacuum". This involves opening the corner of his mouth and forcefully sucking in air. I've heard people (and probably done it myself) do this when their mouth is full of saliva. Of course, the silent alternative is just to close your mouth and swallow.

That he does it out of the corner of his mouth is important: the side he does this with is the same side on which my friend sits. It's as though the sound is directed squarely at him. It's quite loud too: loud enough that it can be heard in the whole office. But of course, my friend is at ground zero, where it's loudest and impossible to ignore. Frequency is lower than the nose thing, but still at least every five minutes.

Hacking and spitting. One to four times an hour, he'll hack up what ever drainage or phlegm he has in his sinuses, and spit it into his garbage can. As an added bonus, sometimes he'll skip the garbage can and use the sink in the office's kitchenette. My friend said that the other day, he heard the annoying guy hack and spit into the sink. That in and of itself was unremarkable, nothing new. But then my friend went over to the sink to rinse out a mug... and there it was, in all its phlegmy glory: a giant, yellowish ball of mucous, sitting innocently in the sink, half-way between the drain and the edge. He hadn't even bothered to rinse it down the drain! A public office sink turned spittoon.

He occasionally gets into throat-clearing fits, which becomes the culmination of all his foul habits. He'll sit there and continuously clear his throat for a solid minute or two, punctuating his clearings with violent nasal exhalations. Often a mouth vacuum or two is thrown in for good measure, and the spectacle's grand finale is hacking a big loogie into his garbage can. Fortunately, this only happens, on average, a couple times per day.

On days when my friend is really lucky (sarcasm), the guy will accompany every violent nasal exhalation with a throat-clearing. Like a lone barking dog, the sounds are too frequent to ignore, but not frequent enough to fade into the background.

My friend's office is small and generally quiet---whisper quiet, in fact, with an open seating plan (i.e. no cubes or anything dividing up one person's workspace from the next). This means that even the slightest of sounds can be heard.

The annoying guy uses this library-like silence to achieve his full annoyance potential: lip-smacking. Generally, such behavior is reserved for animals and sloppy-eating cartoon characters. But during, and for several minutes following any eating, the annoying guy manages to continuously slurp and smack his lips. If he only ate once or twice a day, perhaps these noises could be ignored. But most days, he eats at least six times: breakfast, lunch, two to four yogurt snacks, two to four nut snacks. And then there's the cookies: between all the other meals and snacks, he'll toss a whole cookie in his mouth, and just suck on it, presumably until it disintegrates. The sucking is of course open-mouthed, and practically at broadcast volume for my friend.

Also rising above the silence are random whisperings are finger snaps. Throughout the day, the annoying guy randomly whispers and snickers to himself. My friend doesn't know what causes the guy to talk to himself; presumably, he's thinking through something. But the giggling comes about when he's reading online forums and/or email. Once, the guy was so moved to laughter, that in an attempt to muffle the outburst, he actually produced the most awkward, hyena-like noise my friend has ever heard a human make. And if the random whisperings weren't distracting enough, they are often peppered by finger snaps. Yes, the guy snaps his fingers off and on throughout the day. It's not a constant snapping, just two or three snaps---as though he is trying to get someone's attention.

The solution to my friend's problems? McMaster-Carr part number 6207T53: taper end foam earplugs with a noise reduction rating (NRR) of 33 dB.

Friday, July 10, 2009

Gentoo to Ubuntu Migration Part 3: Conclusion

And now for the long-overdue and gripping conclusion of my Linux distribution journey. Over the last few posts, you've witnessed my curious initial dabblings with Slackware, my coming of age with Debian, and finally being all grown-up with Gentoo. I suppose that makes the Gentoo-to-Ubuntu switch my midlife crisis.

Cheesy metaphors aside, I should probably start out with a disclaimer that this isn't an anti-Gentoo post in anyway. My position on Linux distributions has always been that the best one is the one that works for you. In other words, it's a matter of personal preference. So this series is really a journey of how my preferences have evolved over time.

In a word, the biggest motivator for me was time. Gentoo is great but time consuming, both in terms of man-hours required to manage it, and the CPU time required for constant compiling. That may be a bit misleading to those who don't know Gentoo: once you have a stable setup, you really don't need to compile any additional packages (except security updates). However, I'm an obsessive tinkerer and upgrader, so I can't help but do an "emerge -vuD world" (i.e. update all packages on the system) every week or so.

The upside to having all packages built on your local machine is immense flexibility. This is supported via Gentoo's portage system, in particular, "USE" flags. USE flags typically correspond to build options passed to a source package's configure script. For anyone who's ever done a "./configure --help", you've probably noticed that most non-trivial packages have compile-time options. Typical examples include whether or not to build support for such things as: graphics, sound, internationalization/multi-lingual, different video and sound codecs, ssl, etc. An obvious example: if you have a server that has no connected monitor ("headless"), it's reasonable to build all your packages without X11 (Linux's core graphics API) or sound support.

As with many things that offer such flexibility, "with great power comes great responsibility". For myself, I took advantage of Gentoo's system, and had very specific configurations for each of my multiple machines. Sometimes I'd even do things like globally removing support for a feature, except for one or two packages. What this ultimately led to was tricky system updates: since so much open source software is "in-flight" (i.e. undergoing continuous development), package upgrades often introduced incompatibilities.

So, at least in my experience, at best half the time, I could get by with "emerge -vuD world", wait a few hours for all the new packages to recompile, and come back to a functioning, upgraded system. Unfortunately, the other half the time, I was tracking down "blocking" packages, playing version-specific games, tweaking config files, changing USE flags, etc. Consider, when there are dozens, sometimes hundreds of packages to be updated, all compiled from source, any one could break the build process---you can't really "set it and forget it". It requires some baby-sitting, or at least periodical checkups to make sure the upgrade is still progressing.

When I had more free time, I enjoyed this process. But my commute and job are leading to attention-starvation of all my hobbies, one of which is maintaining my Linux systems. (Which means, hopefully, someday I'll have the time to switch back to Gentoo.)

In short, I don't have the time for source-based distributions. Well, that's easy enough, as most distributions are binary-based anyway. But which one? I basically defaulted to Ubuntu: it's one of the more popular distributions, which should count for something. It's also based on Debian, with which I had previous experience, so, hopefully, I would find it semi-familiar. It also has role-specific flavors, i.e. Ubuntu Server (for servers), and MythBuntu (for MythTV)---in theory, I could have one operating system for all my computers, and quickly and consistently manage them.

So, given all that backstory and rationale, here I am today, running Ubuntu on my main workstation. I run Ubuntu Server on my file server/NAS box, as well as my backup server. But I still haven't completely switched: my firewall/gateway/NAT box runs OpenBSD, although I don't intend to ever change that. My parents' and my MythTV still run Gentoo. Since these systems are used by other people (my parents and wife, respectively), I didn't want to disrupt anything until I was sure I had a viable solution (plus my parents are 150 miles away!).

Overall, I feel I'm generally saving time using Ubuntu over Gentoo. But I won't go so far as to say it's been perfect. Even though I had experience with Debian (Ubuntu's baseline), there's still a learning curve. And as I've learned more about Ubuntu, I've developed a little collection of gripes (those will be the topic of some future blog post).

Tuesday, July 7, 2009

The Irony of my Blog Name

It recently occurred to me that, recently, my blog's title is kind of ironic. I originally wrote it from my perspective, as a bit of cliche, self-deprecating humor: I'm the stand-up comedian getting no response from the crowd. And that's because I had low expectations for the size of this blog's audience.

So I went well over a month without any posts, the one or two readers I might have were asking the same thing: is this thing on?

Monday, July 6, 2009

Passion in Jobs

Roughly a year ago, I started an essay called Passion vs. Engagement. The piece is unfinished, but so are my thoughts on the matter; I'm still thinking about this stuff, and how I want to present it... at least, how to present it in a formal, professional tone. But this blog is neither formal nor professional; it is a playground for thinking out-loud.

Anyway.

As my line of work is software development (aka "programming" aka "coding"), I find myself reading Joel Spolsky's blog from time to time. Though I have no desire to move to New York, the work environment for his programmers is envious: individual offices, comfortable/ergonomic work spaces, modern tools and equipment, etc. He's also hinted to the fact that pay at his company is very competitive (although, personally, I'd take a cut in pay to actually have a quiet, distraction-free environment).

However, he eludes to passion for programming as effectively being a hiring criterion. I don't think Joel is any different from virtually every recruiter, HR staffer, or hiring manager (in any field) when he says he wants passionate employees. Who doesn't?

But my question is, what exactly is passion? Joel gives some hints to what he means by passion: evidence of programming-related pursuits outside of work. Although I genuinely love programming, I have to admit: after 11 hours of it, each and every day, I have no desire to write any code outside of work. I have too many other hobbies that are already on the brink of attention starvation. Does that mean I'm not passionate?

I can think of a few examples where I've witnessed true passion:
  1. My friend and boss where I'm currently employed. Relentless 11--12 hour days, with practically no break in focus. While I'm in the same boat, after three years, I already know this isn't something I can sustain for the long haul. But my boss has been working like this for well over a decade; my friend is approaching a decade of the same. It's neither an exaggeration nor an unfair statement to say that both would work even more hours if it weren't for the wife and kids.
  2. My wife used to work for a non-profit organization. Due to matters very close to her heart, this was a cause for which she was definitely passionate. When she worked for this company, she worked as many or more hours than I do; and they were erratic hours at that (nights, weekends, etc). Being a non-profit, her pay was substantially below her effort.
  3. There are at least a couple open-source developers whose lives I've researched a bit. These people develop software for their employer by day, and write just as much open-source code by night.
In all cases, the common trait is a singular pursuit in a given field.

But for me, I simply have too many interests to devote myself entirely to one.

I think (or at least I'd like to think) that most people are more like me---we willingly fall into the "work-to-live" camp (as opposed to the "live-to-work" one). That is, I'd wager that the majority of people, even the ones who love their jobs, want to have time to do other things besides work.

In other words, if my guess is correct, most people aren't passionate about their work.

And maybe that's just it: the majority of employers aren't looking for "most people"; they want the best (who are, by definition, a minority). But the main idea behind my essay (and this blog post) is that I believe there exists a happy medium between passionate and mediocre. I call it being engaged; it's Passionate, Jr., but still mutually beneficial to employer and employee. Engagement has most of the attributes of passion, but stops short of being a singular life focus.

Monday, May 18, 2009

Gentoo to Ubuntu Migration Part 2: The College Years

As I'm sure last week's month's installment left you desperate for more...

I started college in May, 1997, and graduated in December, 2001---only one semester beyond the typical four years! I learned a lot in college. Obviously, there was the required "book learning" for my degree (computer science). I mostly enjoyed my classes, but I find book learning less engaging than hands-on learning.

The self-taught/hands-on learning, particularly with regards to Linux, is the topic of this post. Initially, I dual-booted Linux and Windows 95. I tried to use Linux whenever possible, but if I couldn't figure out how to do something, I reverted to Windows.

Sadly, my memory fails me as to my progression using Linux. But here are some highlights, in no particular order:
  • My original distribution was Slackware. It's been far too long for me to make any kind of comment about its pros and cons. But I'm pretty sure that my installation was a mess before I ultimately switched to Debian. At the time, I didn't know anything about package management. Whenever I needed (or just wanted to play with) some piece of software, I would download it, and do the obligatory "./configure ; make ; make install".
  • I remember learning about Samba, which allows Linux to access shared folders in Windows (and vice-versa). At the time, there weren't (or at least I couldn't find) any mature graphical "network neighborhood" browsers for Linux. So any file sharing I did was through the command-line smbclient.
  • I learned about markup languages by writing papers in LaTeX. It took me a while to get past the non-WYSIWYG paradigm... but I eventually grew to love LaTeX, and markup languages in general, and still prefer them to WYSIWYG editors (however, the business world isn't so enlightened, and sadly I still have to interface with Microsoft Word in the "real world").
  • Printing used to be a major hurdle in Linux. I have vague recollections of hacking the cryptic /etc/printcap file (I think that was it). I never actually learned the details of the file (e.g. its grammar and meaning), but mostly just looked for working config files on the Internet.
  • Surfing the 'net: good old Netscape Navigator 4.x! This was about the time of the first "browser wars", i.e. crummy Netscape versus Microsoft's bundled-with-Windows Internet Explorer. I remember Netscape losing this battle, and Linux users were left with the increasingly obsolete and generally junky Navigator, waiting patiently (*really* patiently) for Mozilla to deliver a usable browser for Linux.
  • I used FVWM (or maybe FVWM2, possibly FVWM95) as my window manager for a long time. At one point, I downloaded all of Gnome's libraries and dependencies, painstakingly compiled and installed each (in the right order of course), and... stuck with FVWM! To this day, I don't use the full-featured "desktop environments" (i.e. GNOME/KDE), but tend to stick with the lighter-weight stand-alone window manager. I recall playing with Enlightenment DR15, which had truly mind-blowing eye candy. But still, for whatever reason, stayed with FVWM.
  • Editors. A classic Internet flame war. These days, and since senior year (maybe even junior year), I've been a die-hard vim user. But I did dabble with emacs for quite a while.
I wish I'd made a note of it (of course I never imagined myself blogging about it), but there came a point where I completely removed Windows from my PC. I think I did this around sophomore year, which would have been 1998 or 1999. I've literally been Microsoft-free ever since (at least on the computers I own). Basically, I reached a point where I was completely comfortable doing everything I needed or wanted to do under Linux. The Windows partition was increasingly becoming just wasted space, and I no longer felt I needed it as a safety net.

To this day, I wish I could remember exactly what prompted the complete changeover! I don't know if it was just a realization that I was spending over 99% of my time in Linux, or if there was some critical application for which I finally found an adequate substitution. Either way, the training wheels were formally off!

During these years, there were often "distribution wars". People vehemently supported their distribution; flame wars bashing each others' distributions were not uncommon. Being well-versed in Linux, but still not a true expert, I found myself consulting others as to which distribution I should choose. I went with Debian. Many others were supposedly easier to use, but most people said Debian made you do everything by hand, and was great if you wanted to learn about Linux system administration---which I did.

So Debian became my distribution of choice. This was before "apt-get"! I remember using the horrendous dselect program to manage packages. I haven't used that program in years, so perhaps it has improved, but at the time, I remember thinking it had about the worst user interface I'd ever encountered. (To be fair, perhaps it would make more sense to me now, given that I'm more familiar with the mindset of Linux developers, and common Unix idioms.)

I happily used Debian for many years. I let Debian's package manager (dpkg) manage all my programs. However, there were still many packages I needed (or just wanted to play with) for which a Debian package didn't exist, or existed but was too old. With some programs, I liked to be on the "bleeding edge". Debian's "stable" distribution is decidedly not bleeding edge---that is the price one pays for a stable and consistent system.

Vowing not to let my Debian installation degrade the way my Slackware distribution had, I vowed not to clutter my /usr/local area by blindly running through the "./configure ; make ; make install" routine. Enter what I still consider a really cool "secondary" package manager, epkg (the encap package manager). This program basically allowed you to self install your own programs into /usr/local/encap/packagename-version, and the program would manage symbolic links into the actual /usr/local/ directories.

As time went on, I grew tired of managing packages through epkg. The system worked, but it was somewhat tedious to self-manage an ever-increasing list of packages. Debian seemed "stuck", moving at a glacial pace. Some package versions were getting quite stale---epkg was needed not just for the bleeding edge, but even features that were added within the last year! Likewise, Debian packages were often compiled with features I didn't need, or compiled without features I wanted.

There had to be a better way... and that's when I found Gentoo. Again, I can't remember exactly when I discovered Gentoo. I believe it was after I had graduated college, probably around 2003 or 2004. Gentoo is unique in the Linux world, as it is one of the few source-based distributions. Instead of downloading and installing pre-built binaries, Gentoo's package manager downloads a program's source, builds it on the target machine, then installs the resulting program. The package management system, portage, is also a highly-configurable build system. Via the use of simple configuration files, it is quite easy to install and manage software packages that have been precisely tailored to your system.

Wednesday, April 22, 2009

Gentoo to Ubuntu Migration Part 1: Prologue

I've been using Linux for over a decade now, and loving almost every minute of it. Recently I changed the distribution I was using on my workstation from Gentoo to Ubuntu. Since one of the goals of this blog is to document my technology learning, I feel obliged to report on the transition experience. Also, at least one of my friends has an interest in this story.

In an attempt to make the story as dramatic as possible, I decided to break it into multiple sections. This, the first, is the back story: how I got into Linux.

I first got started with Linux around 1996, when I was still in high school. In BL Times (Before Linux), I ran a small bulletin board system (BBS) called raw sewage (a name which I cherished so much I use it for my website). The BBS is important because it gave me a requirement for my PC which was unusual at the time: multitasking, i.e. the ability to run multiple applications concurrently. These days, we take multitasking operating systems for granted, as virtually everybody has at least a couple programs running: a web browser, an email client, a spreadsheet or document, maybe a music player, and a game of solitaire when the boss isn't looking.

But my bulletin board days pre-dated Windows 95, which was Microsoft's first operating system that had semi-useful multitasking capabilities. (Yes, you could technically run multiple applications at once with Windows 3.x, but it was "fake" multitasking. I'm glossing over a lot of technical detail here: the techies should know what I mean and everyone else can take my word for it.)

Anyway, I was running MS-DOS, the old text-based operating system that required you to type in commands. DOS could only run one program at a time. I needed to have the bulletin board software running constantly, but I also wanted to be able to use my computer for other things. For a while, I used a program called DESQview, which effectively made DOS into a multitasking operating system. Eventually, for reasons I can't remember, DESQview fell out of favor with me.

I also dabbled in IBM's OS/2 Warp. I remember liking OS/2 for the most part. However, I ultimately gave it up as well, but, again, for reasons I can't remember. (My apologies: my memory is bad, and all this was over a decade ago---with college i.e. lots of beers---in between.)

At some point, I heard about this operating system called Linux that was a true multitasking system and free. Somehow, I happened across one of those multi-CD cases that contained at least three Linux distributions: RedHat, Debian and Slackware (there may have been more, but see my note about my memory). The case had a little insert that described how to install each operating system. I do remember that it suggested first-time users install Slackware: and so I did.

Of all the details I've forgotten, I do remember my initial reaction: underwhelmed. And I remember staying underwhelmed for quite a while, actually. Here I had read all these great things about Linux, how powerful it was, etc. And yet all I had was a foreign prompt staring at me. It resembled DOS, but it clearly wasn't DOS. It couldn't run my BBS software, or any other program with which I was familiar. And there was supposed to be a graphical interface, but I didn't know how to get to that... I remember I basically spent a lot of time just nosing around the file system, trying to make sense of things like "usr" and "var". But it was some time before I actually did anything useful with Linux.

Tuesday, April 21, 2009

The Great Metal T-Shirt Social Experiment

It's been too long since my last post. My apologies to my dedicated readers.

This past weekend I attended the 2009 International Beer Fest in my hometown of Peoria, Illinois. The weather cooperated for the most part: the start of the day was warm and sunny, but it turned a bit chilly and rainy towards the end. But it was never so bad as to force everyone inside, thus making the crowd manageable. As usual, the beer selection was huge (I believe there were over 300 different beers available) and delicious.

I can't remember exactly how many times I've gone, but several times prior to this year's, I wore my Iron Maiden t-shirt. It started as a friendly wager between my wife (then-girlfriend) and I: she wore a shirt that she was sure would attract compliments and attention---sadly, I can't remember what her shirt said. However, I was sure my Iron Maiden t-shirt would get far more compliments. Obviously I wouldn't be blogging about this if I wasn't right: if I remember correctly, the final score was Iron Maiden 8 to her shirt's paltry 2.

For the record, I'm a huge Iron Maiden fan. That I could advertise my fondness of one of the greatest metal bands of all time and conduct a social experiment was... as awesome as Iron Maiden themselves!

So the Iron Maiden t-shirt became a staple of the next few Beer Fests, consistently garnering numerous compliments. Peoria is an Iron Maiden town!

Back to 2009: the Iron Maiden t-shirt lives on, although it's taken a beating over the years (it's at the front of my t-shirt rotation). Also, my wife got me an awesome Megadeth t-shirt for Christmas that was begging to make an appearance at Beer Fest. Just like my computers with which I'm always tinkering, I must also tinker with my "apparel technology". Why fix something that ain't broke? The Iron Maiden t-shirt is a guaranteed hit! My curiosity overwhelmed my sense of sticking with what works.

So I wore the Megadeth t-shirt. The result: a measly two compliments! I truly expected more.

However, this is only a sample size of one. It's not statistically valid. The same thing could have happened with the Iron Maiden t-shirt (but I doubt it).

The question is: do I give the Megadeth t-shirt another try at next year's Beer Fest? Part of me says that I have to---otherwise I'm simply practicing bad science, reducing this to a trivial layperson experiment; it demands sophistication and statistical rigor.

On the other hand, I don't know if I can bear another miss... not to mention a Protest the Hero t-shirt that is patiently waiting for its turn at Beer Fest.

Monday, March 23, 2009

Shedd Aquarium

My wife, in-laws and I visited Shedd Aquarium on Saturday (March 21). It was a bit too crowded for my tastes, but we still had a great time. Armed with my new Nikon D90, this was my first opportunity to really exercise my budding photography skills. I just uploaded a number of pictures to my Flickr site, and created a Shedd Aquarium 2009 set to house them all. Enjoy!

Friday, March 20, 2009

MythTV Hardware Upgrade

When I started this blog, one of my goals was to consistently post any hardware or software problems I encountered while tinkering with my computers. This serves two purposes: if, in the future, I find myself having similar difficulties, I have a written record of what I did to refresh my memory (simply typing it all out will strengthen my memory). The other advantage is giving back to the community: so many times I've encountered a strange error or situation, only to find some obscure blog post that explains the exact same situation and solution. Perhaps some day a desperate computer enthusiast will use my blog to find and answer to their woes.

First, the short version: I need to pass the "pci=nomsi" parameter to the Linux kernel in order for my Asus M3N78-EM motherboard to recognize the hard drive.

Now the long version...

I'm a compulsive hardware tinkerer, always tweaking my computers, both software and hardware. I haven't bought a prebuilt computer for at least 15 years; all my computers were assembled piecewise by yours truly. Last week I was rebuilding my backup server (affectionately named "dumpster"), replacing the Intel CPU and motherboard with an AMD solution. My MythTV media PC ("cesspool") also used AMD. However, it had an older, slower CPU---a BE-2350---than the one I was about to put in the backup server, a 4850e. I thought to myself, why put the better processor in a machine that doesn't need it? Why not use the faster hardware for the machine that gets regular use?

There's one fact of which my wife loves to remind me; a fact I feel obligated to report in the interest of full-disclosure: there was absolutely nothing wrong with our MythTV prior to me attempting the CPU change; it didn't need a faster processor. But like I said, I have this compulsion: computers are toys to me, and I just want to play! Besides, what could go wrong with a simple, quick CPU swap?

I put the better CPU, the 4850e, in MythTV. I hit the power button and... nothing! The computer wouldn't POST (power on self-test). As I thought about what might be wrong, I wondered if the CPU was too new for the motherboard, a Biostar Tforce TF7025-M2. Some quick Google work confirmed my suspicions: Biostar's CPU support page doesn't list the 4850e as supported; likewise, Newegg's customer reviews say the same. D'oh!

Sad, but no problem: just put the old BE-2350 back, and finish the backup server... and it still won't POST! What happened? At this point, I assumed the motherboard was dead. (In hindsight, I don't know why I thought this.) I ordered a new board, an Asus M3N78-EM. This motherboard sports the nVidia GeForce 8300 video chip set.

When the new board arrived, I was excited: I get to use the 4850e (I checked teh M3N78's CPU compatibility before ordering), and would have all-around faster/newer hardware. So I dropped in the CPU, connected all the cables, hit the power button and... nothing. It wouldn't POST!

Now I was really broken. What was the problem? When a home built computer won't even POST, it could be one of any number of components: CPU, motherboard, memory, power supply. My first thought was that the case itself was causing a short. So I took the motherboard out of the case, set it on some cardboard (non-conductive), and tried again... No dice. Now I got to play the swap-one-component-at-a-time game to isolate the problem.

Foolish as I am, I tried everything in the wrong order: hardest-to-easiest. The simplest first check would be to swap RAM. But I went straight to disassembling the backup server to borrow its parts:
  1. Tried a different power supply
  2. Tried a different CPU (the old BE-2350, that I had to pull from the backup server)
  3. Tried the 4850e in the backup server to verify the CPU wasn't dead
None of those worked, meaning, either the brand-new motherboard itself was dead, or the RAM was bad. I tried some different memory... success! After kicking myself for not trying the simpler troubleshooting first, I then kicked myself some more: I probably didn't even need a new motherboard in the first place. If only I had tried different RAM before impetuously ordering a new motherboard, I might not have had to deal with any of this mess!

On the other hand, I do have newer hardware that supports VDPAU, which is supported by MythTV.

Elated, I re-assembled the computer, hit the power button, and... now Linux fails to boot! Worse, my grub configuration specified the use of a splashimage, which wasn't found, resulting in garbled, unreadable boot text. I could make out enough of the text to tell that in mid boot there was a kernel panic, but couldn't discern the actual error. I then grabbed an Ubuntu installation/live CD. When it booted, I discovered that the hard drive wasn't being recognized. I turned to Google for my answer.

The second search result turned up this Ubuntu bug report. It talked about totally different hardware, by the symptoms were the same, basically:
ata1: SATA link up 3.0 Gbps (SStatus 13 SControl 30)
ata1.0: qc timeout (cmd 0xec)
ata1.0: failed to identify (I/O error, errmask=0x4)
ata1: failed to recover some devies, retrying in 5secs
ata1: SATA link up 3.0 Gbps (SStatus 13 SControl 30)
ata1.0: qc timeout (cmd 0xec)
ata1.0: failed to identify (I/O error, errmask=0x4)
ata1: failed to recover some devies, retrying in 5secs
The suggested workaround was simple enough: configure the SATA interface as AHCI in the BIOS (which I had already done), and pass the "pci=nomsi" option to the kernel at boot.

(Side note: that error message says "devies", shouldn't that be "devices"? Must have been a typo in that kernel version.)

I did exactly this, and... success! The system is now up and running. It hasn't even been 24 hours yet, but so far the system is stable.

Wednesday, March 18, 2009

My New Toy

I've been wanting to get into digital photography for a while now. It's one of those things that has always been at the back of my mind, but I never acted on it... until now. I just bought a Nikon D90 digital SLR camera, with the 18--105mm kit lens!

Before I bought it, I mentioned to a friend that I was contemplating buying a new camera. He said, "Nice, woot.com has a 10 megapixel camera for $89." I'm sure that was an okay camera, but I was looking at digital SLR cameras, which have a number of advantages over the point-and-shoot variety that "normal" people buy. Do a web search for "slr vs point and shoot" to see the differences. Here are a few links that discuss the differences. The short version is that digital SLR cameras offer more control, potentially better image quality, more features, changeable lenses, and faster operation. All this comes at a price, as digital SLRs are typically bigger and heavier than the ultra-compact cameras that easily fit in your purse or pocket. Digital SLRs are overkill for folks who just want to capture memories of good times.

I believe my wife and I now have the perfect balance of photography equipment: she has a small "deck of cards" sized point and shoot that she takes virtually everywhere. And it takes pretty good pictures! But for those opportunities where we need more horsepower---and lugging around the bigger camera isn't a problem---we now have it in the form of my D90. Not to mention, I now have a new technical toy to play with, and an enormous subject matter (photography and digital imaging) about which there is no limit to how much can be learned.

I went ahead and started the obligatory Flikr stream. As of this writing, it only contains a handful of my "best" pictures from the first two days of using the camera around our apartment. I showed the pictures to a friend whose unflattering commentary was, "Those don't look any better than what can be taken with an ordinary camera." True, those aren't great works by any stretch of the imagination, and probably could be captured just as well (if not better) with, e.g., my wife's little point-and-shoot.

But! My response is this: imagine two musical instruments: one, a clunky old beater, that was crummy from the start; two, a new, top-of-the-line, professional grade instrument. The music created from a beginning musician won't sound radically different when played on either instrument. However, in the hands of a skilled virtuoso, the music coming from the better instrument will generally sound better. I am the beginner musician, playing my music on an instrument designed for someone who's been at the art a lot longer than me. But I intend to practice!

Anyway, my first "real" shooting with the camera will be this weekend, when we go to Shedd Aquarium with the in-laws.

Thursday, March 12, 2009

Job Performance

For at least a year now, the notion of job performance has been sloshing around in my head. My first exploration of this topic was my still unfinished essay on passion versus engagement. I just read "The Interview Question You Should Always Ask", which suggests that if someone's extracurricular interests are in the same domain as their work subject, they are likely to be a star performer on the job. And today I had a discussion with my friend and colleague about firing people for poor performance.

I often use writing as a way to explore ideas for myself; this blog is as much for personal therapeutic purposes as anything else. So now is as good a time as any to throw out some stuff on the topic of work aptitude.

One of the biggest questions I've been pondering for a while is, what is a reasonable amount of commitment to give your employer? The extremes are obvious: be the bum that gives up, quits, and/or allows himself to get fired at the first hint of difficulty; or, martyrs himself to unending, heart attack-inducing, sleepless dedication to solving any problems in his periphery.

I believe that where you land on that "dedication continuum" is related to, if not a predictor, of your job performance. It's just a fancy way of saying that your effort will generally be reflected in your review, assuming you're in a position that's reasonably well-suited to your skills. (In other words, if you're trying to be a doctor with no medical training, or working an assembly line with a PhD in astrophysics, this generalization doesn't apply to you.)

There's another continuum to be considered as well, and that is, how hard is it to actually put for the effort? When you see someone who is truly at the top of their game, you might think, "they make it look so easy!" But they really are putting forth a lot of effort, it just comes naturally to them. That's one side of the spectrum; the other is someone, generally not famous, but still successful, that is visibly working like mad to achieve and maintain the success. Think about someone putting their health at risk because they are working so hard to achieve whatever it is they want.

The point is this, there are two variables: (1) the amount of effort you're willing to put into the job, and (2) your will to put forth that effort. Obviously one affects the other: if you have no will, you are unlikely to put forth any effort.

I think what the "Interview Question You Should Always Ask" article linked above is getting at is this: people who truly love their work will naturally have the will to put forth the effort required to be profitable for a potential employer. This conclusion is fairly obvious, sure, but the article is just exploring one method of ascertaining a job candidate's interest level in the work's subject matter.

My "passion versus engagement" essay's take on this speaks to the establishment of the will that drives effort. Passion means that will comes naturally; people who are passionate about their work are the ones that make it look easy. People who are neither passionate nor engaged about their work make it look hard---they are the ones too stubborn to give up, but still put themselves through hell make the grade. Engaged people are somewhere in between: they'll occasionally go the extra mile, but don't expect them to do it every day; they make the routine stuff look not-too-hard; they are above average but below super-stars.

So my question is this: what if your passions don't pay? You're at a disadvantage no matter what job you apply for---if you're competing for a job with a passionate person, you're not going to get it. Until you figure out a way to profit from your passion(s), you have to resign yourself to being engaged. So the next question is, how do you find an environment that fosters engagement? How do you maintain integrity, and still land the job when you say, "This work isn't my passion, but I'm willing to put in a reasonable amount of effort?" Won't that flag you as a putz?

Friday, February 27, 2009

Is Now the Time to Buy?

I have an arguably over-simplified view of the housing market; I believe it looks like the graph on the left. This graph represents my "gut feel" approach to deciding whether or not to buy a house.

I believe that typically, housing prices follow a mostly linear upward path (indicated by the black line). However, the recent economic fiasco as caused the geometric deviation illustrated by the red curve.

If you already owned property, the best time to sell would have been point A. Clearly, we are already past that. If you plan on buying, any time after point B is the best time, with point C being the best. So the question is: where are we on the curve? Have we even passed point B yet?

I honestly don't know; in fact, nobody knows. Of course, a lot of people think they know, but only time will tell. My hunch, based solely on the "feel" of things, is that we are a bit past point B. I asked my dad about this, and he thinks we haven't even passed B yet. But both of us are basically just guessing.

Anyway, I'd like to hear the comments and ideas people have regarding our position on the curve. My wife and I are loosely thinking about buying... is now a good time?

Side note: I made that graph with a nifty little program called xfig.

Monday, February 23, 2009

Pullup Training: Become a Pullup Enthusiast

At dinner this weekend, a friend of mine mentioned that he's trying to increase his pullup count. I told him I'd email him information on a couple programs with which I am familiar. As I thought about what I'd include in my email, I realized I have enough knowledge about pullups to warrant a blog post.

First off, a disclaimer. A fair characterization of me is "pullup enthusiast" rather than "pullup professional". Ever since I had any interest in physical fitness, I've always wanted to do more pullups. But it wasn't until a year or so ago when I discovered CrossFit that I really got serious about training my pullups. Anyone who knows about CrossFit knows about its emphasis on bodyweight exercises, and pullups appear in a lot of workouts. So while my pullup numbers have improved in the last year or two, my numbers still won't impress too many people. Furthermore, there are myriad pullup resources on the Internet; the CrossFit site alone has just about all the information you need.

Nonetheless, I thought I'd add one more article on pullups to the Interweb, to share what I've learned over the last couple years, and hopefully provide a starting point for others.

The first thing to note is that the pullup has many variations:
  • Perhaps the most common form is the dead hang or static pullup. This is where you hang from a bar, feet not touching the ground, and using only the muscles in your arms and back to pull your body up to where your chin clears the bar. Some people call this a chinup; my understanding is that a pullup is when you perform this movement with your palms facing away from you; chinup is when your palms are oriented towards you. My informal conclusion is that people generally find the chinup slightly easier.
  • A "pullup" in the CrossFit context implies the kipping pullup. A lot of people call these "cheating" pullups. The goal is in fact to make the movement faster, and engage more muscles than just your arms and back; the goal is power generation. In short, the idea is to use your hips (not so much legs) to generate momentum, then quickly pull yourself towards the bar. It is a complicated movement that took me a long time to understand and execute correctly. Go here and search for "kipping" to see instructional videos on this fantastic exercise.
  • Jumping pullups are a great variation for beginners. Fortunately, they have a self-explanatory name: start with your feet on the ground, jump up, grab the bar, and pull until your chin is over the bar. The idea is that you will generate upward momentum from your legs, which are obviously stronger than your arms. Assuming your legs help you enough to clear the bar, you can then work the "negative" of the exercise (lowering yourself) using only your arms.
  • Weighted pullups. Also self-explanatory: add weight to your body when doing pullups. There exist belt-like chain devices that facilitate adding weight to your body; there are weighted vests; my low-tech solution is to just hold dumbbells between my ankles with my feet.
  • Assisted pullups: these are the opposite of weighted pullups: through some means, you effectively make your body weigh less, reducing the amount of effort required to pull yourself up. Many gyms have a machine specifically designed for this: you basically stand or rest your needs on a platform as you do pullups. The platform is reverse weighted---it pushes up on your body (just like a human spotter). You can also buy what are basically large rubber bands that have the same effect (i.e. the band supports some of your weight).
Of course that list is by no means complete! There are other variations, including flying, butterfly, one-armed, towel, ring, and so many more... but the above make up the the "pullup foundation", vital for beginners, but equally important for intermediate to advanced trainers.

There are two popular pullup programs that I've discovered on the Web: Recon Ron and Armstrong. The Armstrong Pullup Program has you doing a different pullup "workout" each day of the week. The emphasis is on daily variation. The Recon Ron Pullup Program is what is often referred to as a "grease the groove" program: constant repetition at about 70% of your maximum effort. It's easy enough to find these programs via web search, but for convenience, here are some redundant links:

Armstrong:

Recon Ron:

A lot of people will say, "I can't even do one pullup, how can I even start these programs?" Use the variations described above, particularly jumping and/or assisted pullups. Another starting point is to simply hang from the bar---yes, I mean hang, with your arms extended. If you cannot even perform one unassisted pullup, then hanging will in itself be a workout: it takes a lot of grip strength; it will also stretch and strengthen a lot of muscles you probably didn't even know existed. Hang from the bar as long as you can, until you basically fall off from muscle fatigue. Rest a couple minutes, then do it again. Do five sets of this every day for a week. Be sure to record your hang times.

Once you are comfortable with your hang (or get bored---simply hanging is extremely monotonous), try again with the jumping pullup. The jumping pullup is really a two-for-one exercise: not only will you build strength in your "pullup muscles" (primarily the back and arms), but you'll work your legs. As an added bonus, if you try to do as many jumping pullups as you can in a short amount of time, you'll also get in a cardiovascular workout (or what CrossFit calls metabolic conditioning).

Both the Armstrong and Recon Ron pullup programs are aimed at doing strict form/dead hang pullups. But there's no reason why you can't do the program(s) with jumping pullups or assisted pullups.

Ultimately, like everything in life, if you want to improve something you have to work at it. If you want to be stronger at pullups, train on pullups. For me, becoming a pullup enthusiast helped me improve the most. That is, learning more about pullups, variations and programs. It's boring to do the same number of sets/reps of dead hang pullups day in, day out. But it becomes less so if you vary the kind of pullups you do: jumping, assisted, kipping, dead-hang; throw in a weighted set when you're feeling particularly strong or have met some goal. Even if you can only do, for example, assisted or jumping pullups, the approach or workout can be varied sufficiently to fight monotony. The Armstrong program is especially helpful in this regard: each day is a different approach: max effort, ladder, working sets, etc. The simple pullup can become an almost entirely different exercise when you start playing with the time between sets, the number of reps per set, etc.

Hopefully this article will serve as a starting point for all the other budding pullup enthusiasts out there.

Thursday, February 19, 2009

Comcast Rant

Apparently, Comcast owns the equipment in the multi-unit building in which I live, meaning, they are my only option when it comes to cable TV. To be sure, I tried calling the other local providers, and they cannot provide service to my building. My wife and I both have cell phones, so we don't need a land line. But our building has one of those pager/buzzer units that allows visitors to call us from the front door, and allows us to unlock the door via the phone. My wife and I kept our cellphone numbers when we moved to Chicago, meaning that the pager/buzzer unit actually has to make a long distance call to reach our cell phones. And I found out the hard way that this pager/buzzer system has the most expensive long distance plan known to man. Because of this reason, we need some kind of local number.

Initially, we went with Comcast's "Triple Play" plan, which gives us high-speed Internet, cable TV, and phone service. The promotional rate is $99/month, which, sadly, is pretty reasonable for all those services in the Chicago area. However, the advertised price is a bit of a teaser, since it doesn't include equipment rental ($3/month for the modem) and all the various taxes.

After a while, we noticed something about their phone service: despite the fact that we rarely used it, it was often not working correctly: either there would be no dial tone, or we would be unable to receive calls. We don't have too many visitors, but we missed a lot of package deliveries (visitors are actually a simpler case---they know to call our cellphones if the buzzer isn't working; the delivery folks aren't that patient). A lot of the convenience of ordering food for home delivery was removed when we had to use our cellphones instead of Comcast's unreliable phone line: first by explaining our non-local area code (of which many restaurants are suspicious), then having to give special instructions regarding the effectively broken buzzer.

Feeling a general resentment towards Comcast, I embarked on a mission of reducing the amount of money I pay to them every month. My first step was to get rid of the $3/month modem rental fee. Since I had Internet and voice service through them, this required a special kind of modem---not just a "vanilla" cablemodem, but one that is also an EMTA (i.e. supports VOIP voice-over-IP). The Comcast-supplied modem was an Arris TM402P. After a bit of research, I came to believe that they would support the Motorola SBV5220, so I bought one on eBay.

When I received the modem, I spent about three hours on the phone with Comcast, trying to get it to work. At one point, the Internet was working; then the technician to whom I was speaking swapped two configuration parameters, and it stopped working. At this point, he decided he needed more information on the modem: where did I get it? He had to go to his supervisor who said that they needed to perform an "equipment research" on the modem. I had to fax them my proof of purchase (eBay invoice). A few days later, they got back to me and said that the modem isn't one of theirs, so I can't use it! To this day, I am convinced that if the person I was working with hadn't misconfigured their system, the modem would have worked fine. I have no way to prove this, but I truly believe they were simply refusing to let me use my own modem on a bogus reason. (Note: I abbreviated this story somewhat; see here for some forum posts where I go into more detail. What's also curious is that they'll let you use your own modem for Internet service, but not for voice.)

So I was stuck with Comcast's modem and its $3/month rental fee, and their under-performing voice service. Then I had an epiphany: VOIP, which allows one to have traditional phone service over the Internet. Skype and Vonage are two of the more popular VOIP providers; however, they are relatively expensive if you want to have an actual phone number that allows incoming calls from "normal" phones (i.e. non-VOIP phones, such as landlines and cellphones). This is our basic requirement: that pager/buzzer box in our building just dials a phone number whenever someone pages us.

After a bit more research, I found out that there are a lot of other VOIP providers; enough that it's easy to find one that has plans or a la carte services to meet specific needs. I went with CallWithUs. I basically pre-pay for outgoing minutes (I think the rate is 1.5 cents/minute), and pay $4/month for a local phone number with 3000 incoming minutes.

Back to Comcast: with them out of the equation for phone service, I can lower my bill in two ways: use my own modem, and drop Comcast's clearly over-priced, under-performing phone service. My wife called to have the phone service removed; I wasn't there for the call, but she said she was on the phone for over an hour! Actually, Comcast hung up on her on the first call; the second call required the hour of phone tree navigation, being transferred several times, asking to talk to the supervisor, etc... My wife was not working at the time, so she could afford to spend her time trying to get a better rate with Comcast. But what about people who have jobs and/or families?

Anyway, the phone service cancellation was approved. However, it takes 48 hours to process. I called within that 48 hour window, and tried to get my (Internet-only) cable modem (Motorola SURFboard SB5101) set up. We started down the process: I was gave the Comcast representative information about my modem, we did tests, but it wouldn't work. After discussing the issue with the supervisor, the problem was determined to be the outstanding work order on the voice shutoff. Okay, so I just have to wait out the full 48 hours, no problem...

On the second call (after the 48 hours), the representative I spoke to said he needed to talk to his supervisor before he could authorise use of my own modem. He came back and said that I had to return Comcast's modem before they could set up mine! I patiently argued with the guy for a while, then asked to speak to the supervisor directly. The supervisor repeated what the first guy said: they cannot set up my modem until I return the rented one. I couldn't believe it! I spent over 45 minutes arguing with him:
  • I said I've been through this process twice now, once with the VOIP+Internet modem, and again the previous night (when I was told I had to wait 48 hours). On neither occasion was I told that I had to first return the rented modem. I asked if this was a new policy, and he said no.
  • I also said, what if I return the modem, and come home and find out the new one does not work for some reason? Then I have to drive back to the office and re-claim it.
  • What if the office doesn't do the paperwork correctly, and says I didn't actually return it?
The supervisor basically stone-walled me. He kept saying, "I understand your concern, but I cannot do this until you return our modem."

I ended that conversation, then immediately called back. But this time I used different options on the phone tree. I got through to a girl who was very nice, and literally had me up and running on the new modem in less than 15 minutes! She didn't have to speak with her supervisor, she didn't mention anything about returning Comcast's modem... just asked for the information she needed, did whatever it is she does, had me do a few tests, and it was done. The call with her was the kind I expect when dealing with any company's customer service: polite, friendly, knowledgeable, competent, honest.

Based on my experience with Comcast, my theory is that a fairly large majority of their customer service employees are either grossly incompetent, or shady used car salesman types. My wife offered up an equally believable theory: that all their employees are instructed to flat out deny some high percentage of requests that would result in the customer paying less money to Comcast.

Sadly, my experience with Comcast is on par with the service and policies of the land-line provider I had back home (Ameritech, probably AT&T now). In my life, I have yet to have a positive experience with a big telecommunications company. Likewise, I've never heard anyone else relate a positive experience with big telcom. There are stories of above-mediocre service with smaller and/or independent providers. But these aren't available everywhere, and are facing increasingly monopoly-like pressure from the big players. My wife actually used to work for a small, family-owned telcom company: she said it is unlikely that they will be able to stay in business due to companies like AT&T overcharging for the leasing of their lines; companies like Verizon underselling them; and having no political clout with the FCC and local governments.

Wednesday, February 11, 2009

A Bucket of Value Balls for You and Me

Ever have a friend who seemed to change after he got married?

One of my personal philosophies is that people in general are defined by their values. I generally believe the cliche "actions speak louder than words"; that what somebody does is significantly more indicative of their character than what he says (even more telling is the consistency (or lack thereof) between what one says and does). What one does is generally dictated by his values (though perhaps not always consciously), i.e. what is important to him.

I made the observation that there is a limit to an individual's values. Think of values as different-sized balls in a bucket. Everyone's bucket has a fixed capacity. The size of the ball is proportional to the severity of the value: the bigger the ball, the more important the value. So the bucket can only hold so many balls. To change one's values means to shrink, grow, add or remove balls. The bucket of value balls might even be considered someone's soul or essence.

Naturally, most people have "big balls" in their buckets for basic human needs: food, shelter, rest. Those values that are necessary-for-survival aren't particularly interesting in this discussion.

However, the rest of the balls, and their infinitely different sizes, make up each person's identity. For example, we all know (or at least know of) somebody with passion: someone who relentlessly pursues some goal, with seemingly limitless energy. Famous examples include star athletes like Michael Jordan, and industry captains such as Warren Buffet. (However, passionate people are not always successful, but these folks rarely make the evening news.) The passionate types have a singular "value ball" that is huge relative to us "average" folks.

Some times people come across as hypocritical: they say one thing and do another. As I mentioned above, I believe their actions are truly representative of their values. So why say something different? Two theories: one is that that a person is just that, a hypocrite---think politicians and the stereotypical shady used car salesman. The other theory is that the person actually doesn't know himself well enough. A lot of people spend a lifetime trying to find their passion; and because the biggest value ball can be so hard to find, surely the other, lesser value balls can be equally well-hidden.

This is my explanation for why people sometimes appear to change when they get married. Perhaps you and a buddy played golf every Sunday until he got married. Now he spends Sundays with his wife's family. You could argue that your friend changed---he used to love golf, now he never wants to play! However, consider that, to your friend, golf is actually a smaller value ball than you once perceived. Or, maybe his new spouse made him realize that there is another, larger value ball that he has overlooked all his life. It's even possible that the golf value ball shrunk to make room for a new or increased value ball that is shared with the wife. Assuming that the collection of value balls creates one's personality, this suggest that your friend did in fact change. However, I don't think value balls are capable of rapid change. In this example, to your friend, golf was a sufficiently small value ball that removing it from the bucket (or shrinking it sufficiently) to make room for another value wasn't actually as big of a change as you perceived it to be. A final consideration: value balls may change dramatically in a short period of time, but the change is short-lived. In this case, your friend removes the golf value ball from his bucket. In time, though, he realizes he gave up something more important to him than he initially realized. Eventually he'll re-claim the golf value ball, and adjust all the other values accordingly to make room in the bucket. Thus, on the long-term horizon, the bucket's changes are minimal and gradual.

Consider your behaviors, and the behaviors of everyone you know. Of what values are these actions indicative? What values are expressed most consistently? Is what you say consistent with what you do? Think about the hardest decisions you've made in your life---why were they difficult? Was it because of conflicting values? Have your hard decisions taught you more about yourself?

Friday, February 6, 2009

What Really Motivates You To Work?

I was just thinking about the early days at my first job out of college. I worked for a huge, global manufacturing company. Naturally, they had enough new hires at any given time to have a whole orientation program for new employees. On day one or two, I was in a large conference room with 20 or 30 other greenhorns. We were doing the stereotypical "ice breaking" group exercises.

One question that came up was, "What motivates you to work?" We were actually seated in pairs, and the assignment was to "interview" your neighbor, and in turn be interviewed by him. After the interviews were done, we went around the room, presenting our neighbor's answer to the question.

Most people, as you might guess, gave fairly predictable responses, along the lines of "I enjoy being challenged, having the opportunity to do good work, making the company profitable, and learning new things." I'm sure a lot of people feel that way; if they truly do, I'm sure most would agree it's a healthy attitude, and certainly benefits the employer. But the cynical side of me says that at least some of those responses were canned, and just paying lip-service to the situation.

What really motivates the deviants would have been interesting. I was one of the deviants who wasn't afraid to tell the truth. My reason: fear. I even remember my neighbor presenting it to the class---he was visibly uncomfortable presenting such a non-conformist view.

But it was honest: I came to work every day because I didn't want to get fired, because I wanted a paycheck.

About a year or so into the job, I probably would have given the same answer, albeit with less cynicism. I truly enjoyed the job for the most part, and what was happening to me was more or less in line with everyone else's motivators: I was challenged, I was doing a lot of good work, I could see exactly how my work was saving the company money (implicitly making it more profitable), and I was learning a lot. Not to mention, I made a lot of good friends. Still, my initial motivator---not wanting to get fired---was valid. Even at the peak of that job experience, I can honestly say, I was still fundamentally doing it for the paycheck, not for the love of it. And looking back, I don't know how I really could have true, honest passion for the work, when it really all revolved around some soulless corporation that, at the end of the day, only saw me as a "resource", a cost.

It makes me wonder: what percentage of the world really, truly does their job for the love of it? What percentage of the working populace is honestly passionate about their work? I would wager that the figure is relatively low. My guess is that the overwhelming majority of the working populace falls into one of two broad categories: simply keeping a job because they have no other choice; or, having a job that they keep to pay the bills, but like it only just enough to not ruminate on the fact that it's not their true passion.

It also makes me wonder: imagine you had the god-like power of instantly putting every working person into a position exactly aligned with their passion(s) and pay them exactly what they want. Would the work that needs to get done---to keep society functioning and to retain some semblance of civility---actually get done? Or would we have too many people doing less important work, and too few people doing necessary jobs?

The question implies that we all know what is most important and what is not. Of course that's a philosophic question; certainly beyond the scope of this post. Still, I can't help but wonder what society would be like if everyone could do exactly what they wanted and live at whatever comfort level they deem necessary.

I'll sign off now, to let the reader reflect on some of the ideas: what really motivates you to work? Ignoring money issues, if you could do any job in the world, what would it be? And consider the thought experiment: what would society look like if everybody did exactly what they want?

Wednesday, February 4, 2009

Shopping for a Gym

So far, this blog has no central theme, and that's mostly by design. I'm hoping that eventually I'll have enough posts that readers will be able to discern a definite character of this blog. Right now, I haven't said enough to really show much character. But when I originally (well, the second time anyway) conceived of the blog idea, I figured it would mostly be populated with things I think about most often: computer stuff (software and hardware), music, exercise and fitness, jobs and careers, and perhaps politics on rare occasion.

Today's post is health and fitness related: what to look for in a gym. For me, the ideal is actually a home gym. But living in a smallish condo, I don't have enough room for all the equipment I need. So I'm stuck being a regular in the public gym scene.

Since moving to Chicago, I've belonged to the same gym. In my opinion, it's quality has steadily degraded. Often, I spend too much time grumbling to myself about the stuff I don't like, instead of focusing on my workout. So I decided that, if I do switch gyms, I want to have prepared a checklist of things that are important to me, so I don't overlook something. Hopefully others will find this information useful.

A lot of these things are probably obvious, but there are some "little things" that I think are easy to forget. How important each of these criteria are is a matter of personal preference. So, in no particular order:
  1. Location. Probably very important or most important for a lot of people. But, think about how the location will affect you on a day-to-day basis. What is the gym's proximity with relation to your home? to your work? How about weekends, and days off, how will the gym's location affect you? Also consider the neighborhood: are you likely to get mugged coming in or out of it?
  2. Parking. If you drive to the gym (to which you must admit there is at least some irony), then consider parking: is there plenty of it? Is it conveniently located? Is it free? Keep your safety in mind as well, particularly if the neighborhood leaves a little to be desired.
  3. Equipment. Make sure they have what you need. This is obvious, but, the deeper question is: even if they have what you need, will you be able to use it when you want it? Is there more than one piece of the equipment you need? For me, the power rack/squat stands and Olympic barbell set are absolutely crucial. If that equipment was regularly unavailable, my gym would be worthless to me. For my fellow CrossFitters, here are some things you should look for that are less common in "mainstream" gyms:
    • Kettlebells
    • Bumper plates instead of iron plates
    • Plenty of squat stands/power racks
    • Plenty of chinup bars (and a policy that allows kipping pullups)
    • Dip stations
    • Concept-2 rowing machines
    • A Roman chair for glute-ham situps and back extensions
    • Jump ropes
  4. Availability. What are the operational hours of the gym? Are they conducive to your schedule? There is a gym I go to on occasion: I am not a member, so I pay on a per-visit basis. They recently reduced their weekend hours. If I was a paying member, I would be irate, since they reduced weekend afternoon availability---the only time I'm likely to go to the gym on the weekend! The point is, be careful if your typical workout time is at one of the extremes of the gym's open hours. I doubt many gyms would do this, but it would be worthwhile to get an availability clause added to your contract: e.g., if the gym reduces it's availability, your cost goes down proportionally.
  5. Upkeep. This is huge, and I'd wager that it often goes unnoticed. But how well maintained is the facility? Some things to consider:
    • Are the weights put away? Take a stroll around the weight room. At my gym, practically no one re-racks their weights. Every time I go to the power rack, the previous user has left his weights behind. Same for the flat benches. Same for the curl bars. Heck, yesterday, I saw a huge pile of dumbbells strewn about the floor---literally right next to the rack!
    • How clean is the equipment? The maintenance staff at my gym keeps the towels clean and available, the floors and mirrors clean, but I've never seen the staff wipe down the equipment. Never. At my previous gym, the staff regularly walked through and wiped down all surfaces on every piece of equipment. Are you willing to count on the courtesy of every other member to wipe down the equipment when they're done?
    • Is electronic equipment maintained? Most gyms have a lot of treadmills. Take note of how many are "out of order" before you sign the contract. Make several visits, and see how long the equipment stays "out of order". My gym has two Concept-2 rowing machines; for the last week, the displays have been non-functional on both. This to me is indicative of "reactive" maintenance as opposed to "proactive" maintenance.
    • Are the barbells oiled regularly? This isn't a show-stopper, but before you sign a contract, load and unload a few plates onto a barbell---you'll know if it's been oiled recently or not. If not, it's another sign that the gym might be on the "reactive" maintenance system (i.e., gym maintenance is somewhat your responsibility).
  6. Member Demographics. Take this for what it's worth. Maybe you don't care. But my current gym increasingly has the kind of people who stand around and talk more than actually exercise. It's not that bad, but I've seen worse. One gym I used to visit occasionally was effectively a hangout for young adults: the overwhelming majority of the people there were screwing around, rather than getting in a good workout. Also, there seems to be a strong correlation between the types of people that screw around and the types of people that don't re-rack the weights. Also, lookout for people talking on their cellphones while in the exercise area. This should be strictly disallowed, in my opinion.
  7. Music. Ask what the music policy is, then, when you visit (preferably multiple times), check that the music is consistent with what you were told. My preference would be no music; for the people that must have music, they can wear headphones. Instead, most gyms seem to take the opposite approach: for the people that don't like our music, they can wear headphones. (This is more of a mini-rant, since I hate the music my gym plays.)
  8. Policies. This may not apply to a lot of people, but, for those of us who CrossFit, it's an enormous consideration: a lot of the things we do are considered "dangerous", or at least sufficiently non-mainstream enough to be discouraged. A few particulars:
    • Chalk. Surprisingly, a lot of places simply don't allow chalk. If I can't use chalk, it eliminates about half the exercises I can do. I don't want to wear gloves, and my hands sweat profusely. A lot of people are offended by chalk, saying that it effectively makes the gym dirty. I don't equate unclean with chalk.
    • Dropping weights. I'll be the first to admit that this is annoying. However, it's sometimes necessary. With apologies to Bill Clinton, weight dropping should be safe, legal, and rare.
    • Kipping pullups. I've never seen this explicitly forbidden, but I've had "trainers" discourage me from doing them.
    • Olympic lifts. Some places simply forbid them. Avoid these places.
    • Improvisation. CrossFit is all about improvisation: it's general encouraged, but specifically when equipment is lacking. When you are pre-viewing a potential gym, and something is missing, ask if you can improvise. As an example: when I was on my honeymoon, the resort's gym didn't have a pullup bar. But there was a structural support bar. I used that for pullups. The "trainer" there gave me a lecture on improvising (although in all fairness, he did let me keep doing it).
Before signing any contract, I strongly recommend making at least a couple visits to the gym at the time you plan on being there. There is no sense in screening a gym on the weekend, if you'll usually be there during the week. Be particularly careful about more popular times, such as early morning, the evening (i.e. before and after a lot of people's working hours), and noon/lunchtime. Note that in my experience, the time of year also makes a huge difference: January always seems to be the busiest (I call that the "New Year's Resolution" crowd).

The ideal, I believe, is to buy a week (or perhaps a month) membership, and use that time to prove out your prospective gym. If you decide to stay, pro-rate the amount to your full-term membership; if not, you lose the cost of the abbreviated membership. I've never actually done this, and if I had to guess, I'd say that most gyms won't allow such a policy. But, if you talk to a manager, and are polite yet persistent, you ought to be able to negotiate such a deal.

Tuesday, January 27, 2009

How I Make Coffee

This is my second go at a blog, and when I started it, I told myself, this time I'm actually going to post stuff. It's been a week since my last post, and every day since, I've increasingly felt like I'm already repeating my previous failed attempt. Eek! My excuse is lack of inspiration. However, I started this post with a "I'm not inspired but I'm going to write about something that's on my mind anyway" attitude---and already I'm getting inspired, and thinking of more topics to write about....

People that know me personally know that I have a fairly elaborate coffee-making process. That's a euphemistic way of saying I'm a coffee snob. However, I honestly believe that the coffee I make is some of the best I've ever had, and the handful of people who have had my coffee agree.

A quick general outline of what makes for good coffee:
  • Freshly roasted beans. Ideally they are less than a week old.
  • Freshly ground. Grind no more than an hour before brewing.
  • Ground with a burr grinder. Blade grinders are inconsistent and tend to burn the beans.
  • Water temperature. This may be more a matter of preference. If I remember correctly, the ideal brewing temperature is around 195 degrees Fahrenheit. However, I prefer a lower temperature, around 170 degrees Fahrenheit.
  • Fresh, pure water.
  • Clean equipment
To be honest, I don't follow these rules exactly. Given that, I think it's entirely possible for me to make an even better cup of coffee. But I'm happy with the quality as-is:
  • Compared to cheap coffee (gas stations, cafeteria) there is no contest (duh).
  • My coffee tastes better than any other home-brew I've ever had.
  • I think it's better than "premium" purchased coffees, such as Starbucks, and even my previous favorite, Dunkin Donuts.
Now that I'm done bragging, on to the details:
  1. Fresh roasted beans. This is where I slack a little bit. I usually buy freshly roasted beans from Intelligentsia, but to save on shipping costs, I buy two or three pounds at a time. So as I consume the first pound, I'm usually in the "one week" threshold for roasting, but after that, the roasts become increasingly aged. On the other hand, each pound is vacuum sealed. I'm sure the coffee purists would argue that vacuum sealing doesn't help, and that the beans will degrade after a week regardless of storage method. (Some day I'd like to learn to roast my own beans. Relative to pre-roasted beans, unroasted beans are much cheaper, and can be stored for a very long time.)
  2. Grinding. I always grind immediately before brewing; my grinds are always well under an hour old. I've found that it's pretty easy to judge the freshness of ground coffee by smell alone. Intuitively, I think a lot of people know this. Think about buying pre-ground coffee (e.g. Folger's, Maxwell House). When you first break the seal on the tin, the coffee smells remarkably good. But even after a week, those grinds have lost a lot of their charm. After a month, they almost smell rancid.
  3. Burr grinder. A lot of people (including myself before "coffee enlightenment") don't even realize that there are two main types of coffee grinders: burr and blade. It's easy to tell the difference once you know what to look for; search the web for pictures. But an imprecise rule of thumb is: if you paid less than $50 for your grinder, chances are, it's a blade-style. Half-way decent burr grinders usually start around $100. I have a Capresso Infinity Conical Burr Grinder. I've had this for about two years now, and I'm mostly satisfied with it. It does a great job of grinding the beans. My only complaint is that there is a lot of static in the grinding area, and after every grind, I have to take this little brush and clean out grinds that didn't make it into the hopper. It's not hard, just a nuisance. To be fair, though, this is the only burr style grinder I've actually used. And from the reviews I've read, virtually all grinders (regardless of style) have this problem to some extent.
  4. Boiling hot water. Actually, I don't use boiling water. I put water in a tea kettle, and bring it to a boil. Before I actually use it, I pour more water in to cool it down. I gauge the water temperature entirely by rough feel; this is admittedly imprecise. However, I have used a thermometer on a couple occasions, and, remarkably, the water temperature is around 170 degrees Fahrenheit. I've found that water temperature makes an enormous difference in the taste of the brew. Coffee is not supposed to be bitter. The overwhelming majority of coffees available today are bitter, and most people probably think "coffee" is a synonym for "bitter". Bitterness comes from brewing at too high a temperature. Coffee is supposed to be smooth and buttery, reminiscent of chocolate. When I was initially experimenting with my brewing methodology, one of the most significant improvements was when I lowered the brewing temperature. I can honestly say that the coffee I brew is noticeably less bitter than almost anything you've ever had, and in fact will surprise you with just how smooth it is.
  5. Fresh, pure water. This is a huge deviation for me---I use tap water. I've read that some people actually buy distilled water. Some day I'll try it.
  6. Clean equipment. This is mostly self-explanatory. However, see my note about cleaning the "static cling" coffee out of my grinder---coffee actually goes rancid after too much exposure to oxygen. Failure to remove the stray grinds from my grinder means that every time I made coffee, some of my grinds would be from the previous day---and probably rancid. That's a chance I'm simply not willing to take. The rest of my equipment is actually remarkably easy to clean...
  7. Brewing. I don't use the conventional drip-style coffee maker. I use an Aerobie Aeropress (yes, this is the same company that makes frisbees and other toys).
    • I first heard about the Aeropress on this relevant Slashdot discussion. It's actually marketed as an espresso maker; in fact, I use it to make "espresso", then simply dilute it with hot water. Technically, this results in an Americano. (I don't use that term because, well, it sounds snobby. I have to retain some semblance of coffee humility.)
    • The Aeropress is often compared to the French press, but there are differences. A primary difference is that the Aeropress has a filter. As in the more familiar drip-brewing, the coffee/espresso passes through a paper filter before it is consumed. A French press has no filter. I've never tasted coffee made with a French press, so I can't say whether or not the filter makes a difference in flavor. One thing I've read, though, is that there are substances in brewed coffee that may increase a person's cholesterol level. These substances are actually removed in filtered coffee.
    • There is a massive thread on coffeegeek.com talking about the use of the Aeropress. But the gist of it is this: grinds are placed in a tube; one end of the tube has the filter, the other is open. Hot water is poured into the tube with the grinds. The mixture is stirred for about ten seconds. A plunger is then inserted into the tube, and used to force the espresso through the filter into the mug. Dilute the espresso with hot water to complete the Americano, err, coffee.
So there you have it, a process for creating remarkably good coffee. Granted, this process is significantly more complex than simply dumping pre-ground coffee into a drip-style coffee maker and flipping the "brew" switch. But the result tastes significantly better. In other words, the increase in coffee quality in flavor is greater than (or at least equal to) the increase in effort required to make it.

A lot of people think I'm crazy for the amount of effort I put into making coffee. But there are two things to consider: (1) a lot of people have never had really good coffee---if Starbucks is the best you've ever had, then you haven't had really good coffee; (2) there are people who take coffee-making more seriously than I do---waaaay more seriously (just check out the CoffeeGeek Forums).

Tuesday, January 20, 2009

Another case for self-employement.

Even though it's at least a year away, I'm already thinking about my next job. I actually ran across a job posting for a telecommute position from a software company headquartered fairly close to my hometown. I thought I'd take the opportunity to send them my resume and an introductory email explaining my situation: that it's too soon for me to formally apply to any position, but I'd like to at least establish a rapport.

Surprisingly, the HR lady I talked to on the phone actually had me complete a web-based technical questionnaire, a sort of interview pre-screening. I submitted my responses to their questions, and a few days later received the "we've decided to pursue other candidates at this time" form letter... Update: I was a bit premature in my complaining about the form-letter. Shortly after I posted this entry, I received a personal reply from the HR rep; she said that we should keep in touch, and that my answers to the questionnaire were very good. So while my argument is now slightly weakened, I think the general idea is still valid.

This whole string of events is to me another case for self-employment. (In the context of a software developer, I use the term self-employed rather loosely, to encompass freelancing, starting a small consulting business, independant contracting and similar means of putting food on the table. Basically anything but the typical cog-in-a-machine corporate employee.) Having never actually been self-employed, I can only speculate what it's really like. But I would like to think that it gets you past the nonsense of Human Resources departments, and gets you talking to the actual decision-makers. Getting past HR means there is really only one question: can you do this job? And by "this job", I mean, more specifically, can you fix these bugs, can you deliver this enhancement, can you deploy this system... can you perform whatever task our internal people cannot?

A contrived but realistic example: a company wants a system developed using the some new technology, "UberScript". None of the internal staff has experience with UberScript, so the company has two choices: hire someone with experience in said technology, or hire a consultant/freelancer on a one-time basis to do the intial work. If the company chooses to hire somebody, they might say something like "minimum 5 years experience with UberScript" required, and then it becomes HR's job to filter out everyone who has four years or less experience.

Now say I have some experience with UberScript, but am not a five year veteran. Perhaps (and this is likely in my personal case), I have worked on a personal pet project using UberScript, and that my hobby project is reasonably similar to what the company needs. I would say I have an excellent chance of getting this company as a client, particularly if I can talk directly to the decision-maker, and explain how my experience is short-but-relevant to the job he needs done.

The point is this: my hunch is that being self-employed might allow me to avoid HR filters built on arbitrary criteria.