dropt 1.1.0

May 6, 2012 at 1:40 pm (PT) in Programming

I’m releasing dropt 1.1.0 today.

dropt is a C library for parsing command-line options. Yes, there are a lot of existing ones already, but I wasn’t satisfied with those that I had come across:

(more…)

8 years at VMware

April 26, 2012 at 11:21 pm (PT) in Personal, Programming

A few weeks ago, one of my coworkers complained about doing maintenance on a project that he had moved away from. I told him that authoring code is like having a child: you can’t say you’re tired of it and abandon it. If you brought it into this world, you should take some responsibility for it. If you’re not prepared to do that, don’t have that baby.

I was joking, of course, but perhaps it’s not a completely ridiculous comparison (although I suspect that my friends who are actual parents might disagree).

Today marks my eight year anniversary at VMware. For those past 8 years, I’ve spent 40 hours per week (well, probably more) developing VMware Workstation, watching it grow and trying to imbue it with whatever knowledge I have. A number of people tell me that I’ve been at VMware for too long and should move on, but I’m not ready to let go yet.

Goodbye, Taurus station wagon

December 20, 2011 at 2:04 pm (PT) in Personal, Rants/Raves

Last month the transmission failed in our 1994 Ford Taurus station wagon, and we finally got rid of it. This was my primary car for about 9 of the past 12 years. Everyone I knew—myself included—made fun of it. It was a refugee from the island of misfit cars.

Thumbnail of our Taurus exterior

By far the goofiest design decision was that it used a separate key for the tailgate. A separate trunk key for a station wagon! To avoid having to carry two keys around all the time, I usually left the trunk key in the coin compartment, but it was still weird and inconvenient.

Another oddity was that the locks for the front doors were different from the locks for the rear doors. The front door locks were pegs that were pushed in to become almost flush with the door panel. The rear door locks, however, were pegs that were pushed in to look almost like the unlocked state of the front door locks. Unsurprisingly, this inconsistency usually confused people who rode in this car, and they often couldn’t tell whether doors were locked or unlocked. Since we didn’t get power locks with this car, I consequently had to go around the car to lock all the doors.

Thumbnail of the Taurus lock

The cupholders were almost useless. They could hold cans okay, but large cups from fast food restaurants usually had trouble clearing the overhang above and required being tilted at an angle that often would spill their contents. (And the mostly(?) defunct supersized cups were completely out of the question.) Additionally, drinks in the cupholder obstructed the radio, and at some point soda probably spilled onto it, because some of the radio buttons sometimes would stick. Ford added limited radio controls to the dashboard in an apparent attempt to address the obstruction problem, but they didn’t work with the aftermarket car stereo that my dad installed (the original one had no CD player).

Thumbnail of the Taurus cupholder

This station wagon also had the feature of including two spare tires: a full-sized one under the cargo area and a compact one in a side compartment. In retrospect, I probably should have taken one (or both) of them out to try to reduce fuel consumption.

Thumbnail of the Taurus trunk

Goodbye, 1994 Ford Taurus station wagon. I’m glad to be finally rid of you.


Getting rid of this car was kind of painful too, but not in the emotional sense. In the days before its transmission failed, I had spent a few hundred dollars replacing its battery, a couple of tires, and getting its oil changed. Donating it was more trouble since the car was in my dad’s name and went into a trust when he passed. I had forgotten that I wasn’t a trustee when I contacted the donation service, which complicated the paperwork.

Government bureacracy in action

December 10, 2011 at 6:10 pm (PT) in Personal

In August, I received a letter from the IRS claiming that I owe them back taxes. I wrote them a letter contesting the claim but paying their claimed amount (plus penalties) in the meantime. A month afterward I received a response thanking me for my payment, and asking me to provide additional evidence in the dispute. I responded again, and now I receive another letter from the IRS, sent by certified mail and requiring me to drive halfway across Fremont to pick up, and it turns out to be a Notice of Deficiency for the amount I already paid months ago.

My VMware email hoax

September 8, 2011 at 7:29 pm (PT) in Personal

We’ve had a problem at work where people habitually reply-to-all to widely-distributed email with responses that shouldn’t involve everybody else. A common example is that someone sends out an email, “Welcome to Ben Bitdiddle who joined the Frobnication team!”, and then lots of people would reply-to-all with, “Welcome!” (And sometimes more people then would reply-to-all saying, “Please don’t reply-to-all!”)

As a little social experiment, I set up a dummy mailing list. Nobody was actually subscribed to it, but I sent out an email to it with the main engineering list (a significant portion of the company) BCC’d.

From: James Lin
To: email-test
BCC: [the main engineering mailing list]
Subject: Welcome to the “email-test” mailing list

Hello,

You have been subscribed to the email-test mailing list as one of many participants in an experiment that I will be performing. I will send out additional details later, but this test might involve a large volume of email being sent to you at various times of the day.

If you wish to participate, I first would like to know what email client you use. Please reply to me with one of “zimbra”, “outlook”, or “other” in the message body.

If you do not wish to participate, please reply to me with the word “unsubscribe” in the message body.

(I apologize for the wide distribution.)

Thanks,

– James

Everything in the email was a lie (except for the parts about performing an experiment and about apologizing for the wide distribution). Anyone who used reply-to-all received an automatic response from the email-test list:

You have failed the test.

You used reply-to-all instead of replying only to me. Had this been a real mailing list, you would have spammed a large portion of the company. Imagine if everyone else behaved that way.

Please be more conscientious in the future.

– James

About 1.6% of the respondents failed the test. (Since I sent it to an engineering list, I’m not surprised that the failure rate was so low.) Maybe it wasn’t worth it. (And I’m aware of the irony of spamming much of the company to address just a few people. Alas.)

Incidentally, about 35% of the respondents opted in, which was much, much higher than I had expected for an undisclosed experiment that supposedly would flood people’s mailboxes. That probably says something good about how helpful people are, or maybe it says something frightening about how much some people trust me (but maybe those people now will be more skeptical).

Despite the uninteresting results, almost all of the responses that I’ve received after revealing the true nature of the experiment have been very positive so far. At least one manager, however, was very unamused, complaining about my “misuse of company resources” and wanting to reprimand me for my “terribly poor judgment”.

There goes all of my Palm Pre data

July 7, 2011 at 4:08 am (PT) in Personal, Usability

Yesterday morning, I woke up to find my Palm Pre sitting at its initial setup screen. Sometime during the night, it performed a hard reset on itself, completely wiping out all of the data on my phone.

A few days earlier I noticed my phone acting strangely when it was sitting on its charger. It sometimes acted possessed, registering random taps and gestures that no one was making. It occurred to me that maybe my phone had been compromised, but the taps seemed too random, and I couldn’t imagine any sane attacker bothering to simulate UI interactions or revealing themselves so overtly. It turns out that other people have encountered similar behaviors, and I think that overheating is probably a factor.

I dismissed the weirdness at the time since I didn’t expect the phantom taps to get past the slide-to-unlock screen and to do anything of consequence, but I suspect they managed to do just that yesterday morning. Once at the secondary password screen, they entered an incorrect password enough times for my phone to wipe itself on the spot. Nice.

No big deal, since the Pre backs everything up to the cloud, right? Not quite. It backs up the data to the normal PIM applications (contacts, notes, calendar, tasks) but apparently not to a whole lot else. Photos that I took of visiting relatives that I never got around to copying? Notes that I took with a third-party application? Solutions and unlocked levels to various puzzle games? The 3-star high scores to all of the Angry Birds levels? All gone.

Personal lessons:

  • Be proactive in backing up data. Don’t blindly trust “the cloud”. Know what’s being backed up.
  • Find and install a patch to disable the wipe-on-failed-login function.

Design lessons:

  • Clearly explain to users what’s being backed up and what isn’t. This is particularly important on a platform where users can’t easily verify backups.
  • Wipe-on-failed-login is silly on a system that already supports encrypted file systems. webOS already stores applications on an encrypted partition to discourage piracy. The priorities seem wrong to me; I want an encrypted file system for my data.
  • The wipe-on-failed-login function could be coupled with the automatic-backup-to-the-cloud function. If the system really thinks that the phone has been stolen, save all of the data before throwing it away.
  • Too many failed login attempts? Do what websites do, lock out the account, and require authentication through another channel (such as email).
  • Be careful what you call “backup”. I think that I would have been better off if the “Backup” application didn’t exist; at least then I would have made some effort at copying data myself.

In truth, there probably was not anything terribly important that I lost. Most of the notes I probably either wouldn’t understand or wouldn’t have looked at again anyway. There weren’t very many photos (if they were worth keeping, surely I would have uploaded them somewhere?). I can re-solve the puzzle games if I feel like re-spending the time. And yet I feel like not remembering what I lost is going to keep me up at night, which is ironic.

My new top choice for an HTPC keyboard

April 12, 2011 at 1:42 pm (PT) in Rants/Raves, Reviews

I recently bought an IOGear GKM571R mini keyboard. Copied and pasted from my Amazon review:

I really like this keyboard for HTPC use. I also have the Lenovo N5901 multimedia remote/keyboard, and while the IOGear GKM571 is quite a bit more expensive, it’s also much better.

Things that I like:

  • It’s backlit. This is the single biggest flaw in the Lenovo N5901.
  • It has a scroll wheel. Scrolling without one is a chore because it’s not easy to accurately grab and move a scrollbar thumb with a mini-trackball, and it’s not easy to press arrow keys on a small keyboard by touch alone.
  • It uses standard batteries. Li-ion batteries have a higher charge density, but like all batteries, they eventually wear out, and replacing them is usually a pain. I much prefer replaceable, standard batteries (especially low-self-discharge NiMH ones).
  • It’s the right size. It’s larger than the Lenovo N5901, but it’s still compact. The larger size allows it to have more spacing between the keys, so it’s easier to type without accidentally pressing adjacent keys.
  • It has a full set of keys, including F1-F12.
  • Its power switch is intuitive. It turns on when you open the lid and off when you close it.
  • It’s easy to set up (at least on Windows). It was instantly recognized when I plugged it in, and no configuration was necessary.

Things that I don’t like:

  • It occasionally drops out. This might be because I plugged the RF dongle into a rear USB port, but I didn’t encounter any such issues with the Lenovo one.
  • The keys are mushy. Unlike with the Lenovo one, there is no distinctive click when the key registers.
  • There are no dedicated arrow keys or escape key. They require using the Fn modifier key.
  • I’m not sure how I’ll clean the trackball if it gets gummed up.
  • The scroll wheel can’t be pressed, so there’s no native middle-click.
  • I wish it used Bluetooth instead of requiring its own RF dongle. Oh well. The RF dongle is unobtrusive, at least, and RF contributes to the ease of setup.
  • I’ve occasionally had a little bit of trouble reading some of the keys when lit. Maybe it’d be better if IOGear used a green or red backlight instead of blue; humans have poor visual acuity for blue.

Things that I’m (mostly) neutral about:

  • The Lenovo N5901 trackball can be used with one hand (although dragging requires two hands and then becomes awkward) whereas the IOGear one is designed for two-handed use. I prefer the two-handed design though; if I’m going to type anything, I need two hands anyway.

The Oatmeal + Stanford Bookstore = FAIL

March 4, 2011 at 3:43 am (PT) in Personal

The creator of The Oatmeal was at the Stanford Bookstore yesterday signing copies of his brand new book. A couple of coworkers and I went over to buy copies of it and to get them signed and, well, the Stanford Bookstore is the suckiest piece of sucktacular suckage that ever did suck.

Before I went to work, I called the bookstore and asked if they would have enough copies for everyone attending. The lady assured me that they had plenty of copies, in a tone that made me think I was crazy for even doubting them. A nagging voice in the back of my mind wanted me to ask exactly how many they had and to mention that the Facebook event listed over 300 expected attendees, but apparently the conviction in her assurance shut it up.

My instinct was right: the Stanford Bookstore was completely clueless and had grossly underestimated the number of people interested in punching dolphins in their mouths. They had only 100 copies of the book, and since the book was only two days old, a lot of people didn’t have it already. To add insult to injury, the inept Stanford Bookstore employees seemed completely uninterested in taking any control of the situation. Rather than organizing everyone into a single line (or better yet: one line for people who already had the book and one line for people who had yet to buy it), they let everyone pile together into multiple makeshift lines that merged together. The employees didn’t do anything to keep the line moving, didn’t seem to care that the line had moved only about 6 feet in 20 minutes, and didn’t seem to care that the people waiting in line didn’t know whether they’d even be able to get a book or not. (And at the rate the line was moving, it wasn’t clear if they’d be able to get anything signed at all.) Instead, the employees mostly stood around and spectated at the chaos.

Kudos, Stanford. You have managed to make this Berkeley graduate find new reasons for cursing you.

My current meet-a-web-comic-creator-and-get-something-signed scorecard:
Perry Bible Fellowship: Success!
Saturday Morning Breakfast Cereal: FAIL
The Oatmeal: FAIL

Tron: Legacy impressions

January 15, 2011 at 8:32 pm (PT) in Rants/Raves, Reviews

Another year, another movie outing with my (mostly) teenage cousins on New Year’s Eve. This time we saw Tron: Legacy in IMAX 3D, even though none of my cousins had seen the original Tron or were even aware that the new film was a sequel. My impressions:

  • It was visually awesome.
  • Daft Punk’s soundtrack was great. It was a bit overpowering, but…
  • … I wonder if the film wouldn’t have been better as a feature-length music video with no dialogue, letting the audience piece together their own plot (a la Daft Punk’s Interstella 5555). The actual plot was ridiculous.
  • I think it would have been better as a reboot instead of as a sequel. You can’t build a solid story on top of an awful foundation. The first Tron film is almost 30 years old, so most people probably don’t remember it very well anyway, especially since its plot is best left forgotten. A reboot also would have provided an opportunity to give the “Tron” name to the world instead of to a character. (It’s a little telling when the film’s titular character isn’t even significant to the story. I don’t remember if Tron: Legacy even explained who Tron was.)

Free Wi-Fi annoyances

December 30, 2010 at 1:43 pm (PT) in Rants/Raves, Usability

Some people might think that I’m crazy for complaining about free services, but squeaky wheels get grease, and I truly believe that these wheels need greasing.

Most free Wi-Fi hotspots require accepting a EULA before they can be used, and they usually accomplish this by intercepting a user’s first attempt to view a web page and by showing a web page with their EULA form instead. This isn’t so unreasonable, but pretty much every EULA page that I’ve seen sucks.

  • EULA requirements disrupt service. While most Internet traffic involves the web, there are still other protocols that aren’t uncommon. Some Wi-Fi hotspots block all traffic until the EULA is accepted, but this means that things such as email and instant messaging applications can fail without providing any explanation why. Admittedly, I don’t think that this is fully the fault of the hotspots themselves since they can’t control the error messages (or the lack of them) in the individual applications. Perhaps some standardization effort is warranted here.
  • Most EULA pages are not designed for mobile devices with small screens. Free Wi-Fi hotspots might have been predominantly used by laptops not so long ago, but smartphones with Wi-Fi are becoming increasingly prevalent. At least on my Palm Pre, I almost always have to zoom in and to do a lot of scrolling to find the checkbox or button to accept the EULA, and then I have to zoom in some more so that it’s big enough to tap on.
  • Most EULA pages don’t automatically redirect to the original destination. If I go through the effort to type out a web page address on my tiny keyboard only to be redirected to a EULA page, at least redirect me to my original destination after I accept the EULA. Don’t make me type out the address again.

In some cases, free Wi-Fi hotspots actually do me more harm than good. Since I have an unlimited data service through Sprint, if my phone suddenly decides to use a free Wi-Fi hotspot instead of my cellular data service, I suddenly have to deal with all of the EULA nonsense (or, as mentioned before, things just start mysteriously failing).

Unfortunately, there aren’t strong economic incentives to fix issues with free things. Alas.