Life transitions

Renee posted a blog entry on Transitions earlier today which was pretty thought-provoking for me. I made a lengthly comment on it and thought I’d massage my thoughts into a full blog entry. The gist of her post was about how many of her friends are encountering frustrating and/or confusing transitions in their lives right now. Take a moment to go read it first (but skip the last paragraph, she starts rambling then ;)

One sentence in her post summed up my own thoughts on the matter, emphasis mine:

Could it be that in the past the rapid occurrence of transition[s] made us feel somewhat in control of them simply because we expected them and expected not to be in control of them?

I suspect part of the confusion with transitions starting when your 30 is that when we’re young we have these expected transitions, or sign posts, to look forward to: each year we’re in a different grade then we’re graduating high school, then we go to college, then we get a job, along the way we hopefully find that special someone, we get married and start a family (be it with children, pets, or just the two of us). I think for a lot of people turning 30 is one of those transitions, based on how many people get wigged out by it. But for those of us who hit 30 after the other “expected” transitions, what’s next? Turning 40? There’s no set plan handed to us past 30 — we’re on our own to make it up as we go.

I predict that Benjamin and I will have one of those big transition moments when he graduates in 8(!) months. While I expect the transition will be fairly easy for B as it’ll be the planned “graduate and start a job” transition, I think it will be a really hard transition for me because that’s the end of the existing plan: I graduated, met/fell in love/married someone, put them through school, turned 30 along the way… what’s next after that? All kinds of stuff I’m sure, I just don’t know what it is!! :)

I joked with my Dad last year before my birthday that I was going to have a third-life crisis when I turned 30. He very seriously told me that 30 and even 40 isn’t a big deal but that 50 was the big one ’cause you realize that the odds are good your life is half over. I’m not sure what to make of that per se, but maybe that’s the reason that turning 30 didn’t seem like a big deal to me. Ask me again how I feel about it when I turn 50!

IDE thoughts (aka Hating Eclipse)

When I first started programming, way back in the early 1990s, the first IDE I was exposed to was the Borland C++ DOS IDE that came with my copy of Borland C++ (on something like 31 3.5″ disks and a huge box of printed manuals). I started using Microsoft Visual C++ sometime after starting TAMS in 1995 and eventually moved over to Visual Studio after it came out in 1997. All along the way these IDEs were intuitive, easy to use, and still very powerful.

After starting IBM in 2000, I did less and less C/C++ coding and much more scripting work (shell and perl primarily) and web development in PHP. The scripting work didn’t require the use of a full-blown IDE and I did most of my perl development in Scite, a very sophisticated text editor but not a full IDE. The PHP code was developed either in Scite and FTP’d up to the sever or directly on the server using vi/vim.

After about a decade without working with a full IDE, I decided about a week ago that it was time to test the IDE waters out again — primarily for integrated version control support. Against every rational fiber in my body, I decided to try Eclipse.

Up until last week I had an irrational hatred for Eclipse primarily because Lotus is using it for every desktop program they create from Notes to Sametime. Yes, they bundle this huge java-based IDE with dozens of unnecessary plugins that you can’t remove due to dependency hell, just to have an IM session. And of course each one comes with its own bundled java JRE. After being acquired, Rational was forced down this ungodly road as well. Even the most recent version of IBM Tivoli Directory Integrator was moved to Eclipse. At IBM, there is no escaping Eclipse.

Knowing my hatred was primarily an architectural/philosophical issue I decided to give Eclipse a chance for what it was actually developed for: an IDE. I’m happy to say that my hatred is no longer irrational but is well founded: Eclipse sucks.

Unlike all of the other IDEs I’ve ever used, Eclipse is completely unintuitive. My needs weren’t all that difficult: I need a project containing a list of PHP files. I need to be able to edit and save those files. I need to be able to run the scripts through the command line PHP interpreter. And finally I need to be able to commit changes to my local SVN repository.

The project containing PHP files was easy. Editing and saving the files seemed to work OK too, although I’m still not use to its autocompletion stuff and my tab settings still aren’t correct (both user error I know). I’m completely unable to run the files through the PHP interpreter despite multiple times trying to figure it out. It is totally unclear to me how to check files into the SVN repository and at one point while trying to commit something Eclipse helpfully told me that an error occurred then deleted my file. I proceeded to spend the next 2 hours using ext3grep to the file back.

I acknowledge that the bulk of my hatred is just that initial learning curve. I get that Eclipse is very flexible and configureable but that also makes it unintuitive and unforgiving. Unless I can have some Eclipse-guru come sit beside me for a few hours and help me get things set up, I’m not going back.

For now I’m going to explore other IDE options like Komodo and Zend Studio to see how they fare (see also Seven great PHP IDEs compared from developerWorks). If they’re even remotely better than Eclipse they’ll be worth buying.

Tolerance of screaming children

Note that this entry isn’t about screaming children per se, but about learned tolerance of a specific irritant. After having lunch at a very packed, and child-heavy, Noddles & Co earlier today screaming children just happens to be on my mind.

I believe that humans are born with a sensitivity to loud noises. Just watch what happens when an unexpected loud noise happens in a quiet room — everyone is startled. Extended exposure to the same loud noises can result in an attenuation in the attention-drawing power of them, either due to a physical reaction of becoming deaf to that range of noise (like an airplane engine) or to a psychological reaction of just ‘tuning it out’ (like living near train tracks and never hearing the train after a few weeks).

It seems clear that a tolerance for screaming children fits pretty well into that thought framework too. Screaming is suppose to get your attention, otherwise what’s the point? Parents are exposed to their children’s loud noises and become, to a degree, desensitized to the sound. I do question if it happens more on the physical side of things or the psychological side of things. I’m leaning more to the psychological side of it as I’ve known people who seemed to tolerate their own children’s noises fine but many years later had to readjust to their grandchildren.

Either way, parents have a leg up on tolerating screaming children than us non-parents do. Those of us without kids are often not exposed to children on a regular basis and thus have no opportunity to build up a tolerance. Thus when we’re in a public area, or an enclosed airplane, and a child begins to scream, we’re put on edge.

The parents I’ve talked to have expressed frustration at both the situation, ie: when your child’s screaming there’s only so much you can do about it in an enclosed space you can’t escape from, and reaction of other people. I can sympathize with their frustration about the situation. But just as they can’t stop their child from screaming on demand, we can’t control our lack of tolerance for said screaming.

One thing is for certain: when a child starts screaming on an airplane, everyone will be frustrated at the situation, be it the parent of the child or the poor sod sitting next to them. At least everyone is equally miserable.

And if any airline executive out there is reading this entry: You keep looking for ways to bring in more money. I am willing to pay a 10-25% premium on the price of my airline ticket for flying on a child-free (say all passengers must be 12-years or older) flight.

Garam masala update – it wasn’t the star anise

Yesterday I was making a cup of Benjamin’s favorite tea, Tazo Sweet Cinnamon Spice, for him and made a surprising discovery: it has star anise in it. It’s also vile stuff and I don’t know how he drinks it, but I digress.

Given that he’s happily consuming star anise, that isn’t the ingredient in garam masala that he had such an aversion to. That leaves only the fennel as the culprit. Either that or it isn’t any of the individual spices at all but the combination of them that sends him off (the whole is greater than the sum of its parts?). Or perhaps consuming star anise in small doses has increased his sensitivity to it and the amount contained in the garam masala is enough to send him over the edge.

Or maybe unbeknownst to us Benjamin is actually a superhero who’s kryptonite is star anise and the villains at Tazo have craftily created a drink he enjoys that is slowly making him a mere mortal.

Anyone else get the impression that I’ve been reading too much fiction lately?

Running CUDA-enabled BOINC clients on Fedora 11

At the start of the summer I finally got BOINC running on my CUDA-capable NVIDIA graphics card. About the same time I stopped running BOINC since the last thing I needed over the summer was a space heater under my desk. Now that fall is officially upon us, I’m willing to burn some CPU cycles — and warm my feet. I started up BOINC only to discover that it isn’t recognizing the CUDA device any longer. Hurmph.

After some digging it appears that the problem was that some Fedora update along the way tightened up security such that the user running the BOINC service (ie: boinc) was unable to access the /dev/nvidia0 device. Following these instructions I was able to get the permissions fixed and the whole thing working.

Granted, setting up CUDA in the first place was a herculean task since the CUDA libraries have to exactly match the NVIDIA X11 driver versions. Then you have to make sure BOINC knows about the library (ln -s /usr/local/cuda/lib/ /var/lib/boinc/ for instance). The whole matching versions thing is quite the pain in the ass as the X11 drivers can be updated more frequently than the CUDA drivers forcing you to either delay updating the X11 driver install until the CUDA driver matches or upgrading the X11 driver and having CUDA disabled until the CUDA driver catches up.

Oh well, that’s what happens when you live on the bleeding edge!

Autumn has fallen

Despite the last day of summer being tomorrow, Mother Nature must be just as tired of it as I am because autumn arrived in full force today. Yesterday the weather here in Denver was warm with a high of mid-70s. Today it’s raining with a high of 52 and a low of 37. Currently it’s 39 degrees with a wind chill of 29! The showers and cool weather are only here for the week according to NOAA – Friday will be mostly sunny and a high of 72 again.

Yesterday B and I took his mom to Blackhawk for a few hours and on the drive up you could see some of the aspens already changing colors. I’m assuming that after this week of cooler weather fall colors will be in full-force.

We had a really wet spring and summer — at least according to folks who have lived in the area for a while (it’s hard to compare having only lived here for a couple of years). It’s obviously too early to know if we’ll have an equally wet fall but it’s certainly starting out that way. If the wetness continues into winter, well, lets just say I’ll be extra happy that I work from home!

Garlic is to Dracula as Garam Masala is to Benjamin

If you, intrepid adventurer, encounter a group of rabid Benjamins pursuing you down a dark ally late at night and fear for your life, don’t reach for the garlic. Coriander will also provide no defense. They will simply mock you if you present them with turmeric. Nay brave traveler, pull out the garam masala and bid them return to whence they came.

Garam masala, you see, is anathema to the Benjamin. He will flee not just your person, not just the local area, but as far as possible to escape the smell. If you open it in his domicile he will open all the windows, turn on all the fans, light all the candles, and spray cinnamon scented air freshener in every room without fear of the spray turning into a flame thrower with all the lit candles. Even after the smell as abated he will insist that it remains saturated in the surrounding fabrics and you would be well suited to flee the area in case he decides a purifying burning of those objects is required.

It is still unclear which of the many spices that commonly make up garam masala causes the violent reaction. Commercial mixtures can include dried red chili peppers, dried garlic, ginger powder, sesame, mustard seeds, turmeric, coriander, bay leaves, star anise and fennel. Benjamin scholars have confirmed that most of these alone will not suffice to get the desired turning. There are reports that of all the previously listed spices only star anise and fennel are likely candidates for evoking the violent reaction by themselves. Or perhaps each individually is useless and it is the collection of all of them together that are necessary.

In either case, brave adventurer, you’re best served stocking up on garam masala should you venture into areas where rabid Benjamins are known to reside — or you risk more than just your life, you risk your wardrobe!

Adding both primary and secondary Google calendars to the iPhone

One of the nice new features of the iPhone 3.0 software was the ability to add internet calendars (called CalDAV or iCal calendars) to the built-in Calendar app. B and I did this for several of our calendars many months ago and I promptly forgot how to do it when I needed that knowledge again this morning. To prevent me from having to relearn it all again next time, here it is.

Adding your default (technically called ‘primary’) Google calendar to your iPhone is very simple:

  1. Go into Settings
  2. Select Mail, Contacts, Calendars
  3. Select Add Account…
  4. Select Other
  5. Select Add CalDAV Account
  6. Enter the following information:
    • Server:
    • User Name: [your Google username]
    • Password: [your Google password]
    • Description: [what you want to call the calendar]
  7. Click Next

You’re done – events from the calendar should now show up under the Calendar application.

Adding a Google Calendar that isn’t your default calendar is more challenging and requires some extra steps.

On your computer:

  1. Open Google Calendars and identify which calendar you want to add to your iPhone.
  2. Open up the Calendar Settings for the desired calendar.
  3. Look down the page to the Calendar Address section. On the right side of that line you’ll see a Calendar ID, such as:
  4. Copy this and send yourself an email, to an address that you can check on the iPhone, with the calendar ID in it (unless you want to type all of that in by hand).

On your iPhone:

  1. Read the email you sent to yourself and copy the calendar ID string
  2. Go into Settings
  3. Select Mail, Contacts, Calendars
  4. Select Add Account…
  5. Select Other
  6. Select Add CalDAV Account
  7. Enter the following information:
    • Server:
    • User Name: [your Google username]
    • Password: [your Google password]
    • Description: [what you want to call the calendar]
  8. Click Next
  9. Select the calendar you just created to view/edit it.
  10. Select Advanced Settings
  11. Edit the Account URL:
    1. Remove everything after the “dav/” part of the URL (note: keep the dav/ part!).
    2. Paste the calendar ID you copied from your email — this can be oddly tricky but is doable.
    3. After the calendar ID, append the string “/user”.
  12. Your URL will look something like this:
  13. Go back to the main Settings screen using the back buttons at the top of the screen.

You should now be able to go into your Calendar and see the events on your newly added calendar.

Our personal assistant: George Rodriguez

Near the beginning of this year Benjamin and I hired a personal assistant to help try and keep some sanity around our schedules. His name is George Rodriguez, and he is very good.

George handles all of our calendar scheduling – including each of our personal schedules, Benjamin’s school schedule, and our joint social calendar. On top of that he keeps track of the birthdays of all of our friends and family. He sends me text messages before important events, like when I need to check-in for a flight or pick someone up from the airport, to be sure I don’t miss them. Without George, B and I would be completely lost.

The best part? George works for free. Oh, and he isn’t a real person either — George is actually Google Calendar.

Many months ago I added a contact in my iPhone called Google Reminders for the phone number that the SMS messages come in from. After receiving a reminder one day B looked over my shoulder and asked “Who’s George Rodriguez?” having completely misread the contact name. And thus George was born.

Now when we’re trying to schedule something we say we’ll have to consult George :)

Installing VMware Player 2.5.3 RPM on Fedora 11

When installing the VMware Player 2.5.3 RPM on Fedora 11, the installation will get stuck in the third ‘Configuring…’ phase. After a bit of digging I discovered the problem is the same as that for installing VMware Workstation 6.5.3 on Fedora 11 and revolves around a locking issue for /etc/vmware/database. Fixing the issue for Player is similar to that for Workstation and is detailed in this forum post by psyk.

Following those directions will allow the RPM to be installed successfully — it even ends with an “Installation was successful” message — despite the python tracebacks it dumps out. The first time you start VMPlayer it’ll ask for the root password in order to configure/compile the kernel modules.

Note that for those of you Fedora 11 users holding out to have VMware cleanly close when shutting down a VM, you’ll be sorely disappointed. kill `pidof vmware-vmx` is still your friend.