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:
A showcase of my craptacular writing and art.
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:
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.
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.
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.
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).
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.
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.
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.
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 listHello,
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”.
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:
Design lessons:
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.
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:
Things that I don’t like:
Things that I’m (mostly) neutral about:
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
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:
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.
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.