Some days I’m embarrassed to be a software developer.
My employer just switched brokerage firms, so I have to go to the new firm’s website to register my account. So far:
- The registration page doesn’t allow punctuation in my userID, so I can’t use my e-mail address. I have to choose yet another impossible-to-remember, minimum 8-character userID. At least they have a “remember my userid” checkbox on the login page.
- There is a “Password Hint” feature for lost passwords. There are only four questions. The answer cannot contain spaces (making “who is your favorite teacher” hard to answer). The hint response is not displayed, so you can’t see what you’ve typed, but you only enter it once, so you can’t be sure it is correct.
- I entered my phone number in +1.416.555.1212 format (the ITU/ISO international standard for such things). It was re-written as 14165551212; I wonder what their employees will do with that if they ever try to call me? I’m actually kind of surprised it accepted an 11-digit number at all, come to think of it!
They have a “contact us” form:
- The form requires a company name. Without punctuation. My employer’s name is “Hewlett-Packard”. See the problem? :-)
- The form requires a phone number, but this time it must be ###-###-####. No exceptions. What if I have a problem when I’m on a business trip to Ireland?
- The message body cannot contain newline characters, making it hard to write intelligent messages to customer service…
I’m terrified to find out what’s going to happen once I try to trade my shares.
All of these issues are standard, common website usability issues, the ones that we all end up dealing with every day. UI experts have been ranting about stuff like this for at least a decade, but as far as I can tell, nobody is listening. It’s very depressing…
I’m surprised this announcement took so long:
IBM to Bail Out HP Security Software Customers
OK, I exaggerate. Linux as a server is an awesome tool. Linux on the desktop sucks like a Hoover.
I decided to try Ubuntu 8.04 on a desktop machine. My primary goal was to have a MythTV client, so I could watch recorded TV when the kids had taken over the main television (for the Wii, of course! :). I’ve been a casual Linux user since kernel version 0.91, and a regular user since RedHat 5.0 shipped. I used Sun and SGI desktops, NCD X-Terminals, and even early Desktop Linux for 10 years before I started using Windows. Desktop Linux has come a long way since then, so I figured it was worth a try; I was experienced enough to work around any problems that came up.
Browsing and email are OK, because Firefox and Thunderbird are available. The official mailer, Evolution, is utter dreck, of course, and everything suffers the standard open-source problem; crappy UI, and feature-incomplete. It seems that when a developer encounters a program that doesn’t work in their ideal way, the reaction is not to improve the program, as open-source supporters would have you believe. Instead, the reaction is to think “Wow, that sucks! I can do better from scratch!”. And so we have, for example, well over a dozen MP3 players that all suck in different ways! (Although, thanks to the underlying crappy audio support, they all suffer the problem that changing the volume lags by 2-3 seconds… *sigh).
I tried a compromise position for a while; I installed VirtualBox, a “free” VM solution from Sun Microsystems that allows one to integrate the host and guest desktops almost seamlessly, so that I could run my favourite Windows apps alongside the Linux stuff. But even that doesn’t work as well, and so I think I’m going to surrender and go back to Windows on the desktop.
I could go on, but instead I’ll link to a couple of sites and essays that cemented it all for me. There are many themes, but most boil down to the same problem: Linux developers act like they’re smarter than Linux users. If there’s one thing that 13 years of commercial software development has taught me, it’s that you ignore your customers/users at your own peril. I don’t think the open-source community is ever going to learn that lesson.
I’ve been a big fan of computer automation for as long as I’ve been computing. Computers are partcularly well suited for repetitive, mundane tasks. I used to have a system set up at Alias, based on track, that would automatically keep all of the system software and configuration files up-to-date, long before HP Software bought Radia :-). My PVR is probably my current ultimate example; it automatically downloads TV listings from the source, searches those listings for my favourite shows, resolves conflicts, etc.; all without my input!
Anyway, it always surprises me when I power on an infrastructure server, and the LDAP server or Perforce server or whatever isn’t configured to start automatically! I mean really; who runs around manually starting essential services after a power outage? I thought we stopped doing that in the 1970s…
(We had to power down our labs over the weekend, because the A/C cooling tower on the roof was being refurbished. It took me all day today to get everything running properly again…)
UNIX – The Hole Hawg – I’ve been a UNIX person since I started university, what, 22 years ago now?
I was asked for my title links plugin (See wordpress filter), so here it is:
Updated with a brute-force fix for a conflict with the “pretty quotes” functionality in Textile:
This plugin will create links between WordPress posts whenever the title of the target post appears in the text of another.
You can specify alternate link keywords for a post by creating a Custom Field named ‘link_names’, containing a set of alternate phrases surrounded by square brackets. e.g. if the ‘link_names’ field for the post titled “Lady Danielle de Barbarac” contains
[Lady Danielle] [Danielle]
Than any occurence of the either phrase in another wordpress post will create a link to the Lady Danielle article.
I just wrote a simple wordpress filter that automatically creates links to a post if the title of that post (or other ‘link names’ in the post’s metadata) appear in text. I wrote it for the Queen’s Guard game log. It gives us a little bit of wiki-ness without having to use a full-blown wiki; I haven’t found any wiki software that I like enough to foist on my non-technical gaming buddies.
If anyone’s interested I can clean it up and post it somewhere.
(Update: It’s published: Title Links Plugin)
The sudden absence last week was due to a J2EE course; come the winter I’ll be adding a J2EE-based product to my CPE stable.
Our instructor was very good; he didn’t waste time with piddly details that are in the API docs anyway (except the important ones); instead he explained what the pieces are and how they all fit together! Suddenly, it all makes sense! Actually, used carefully, J2EE is pretty cool…
And he made me snort coffee when he mentioned the two types of session bean: stateless and useless :-)
Maintaining badly written code is like trying to solve a crossword puzzle set by someone who can’t spell.
(taken from Simon)
I’ve been trying to merge a series of changes from the mainline to the bugs branch all week. But every time I get into the flow, some critical interrupts would arrive. Even working from home didn’t help; the phone rang off the hook all day. (I’ve got two children in school nearby, so I can’t just turn off the ringers, alas). I’ve had to drop and restart the task so many times that it got completely befuddled, to the point where I realized this afternoon that I had to start over. On the plus side, I know what I need to do now, so it won’t take me another entire week… unless more interrupts show up!
I’m glad I’ve got two other team members now; at least they are working on long-term projects, and are able to concentrate on one thing at a time. Without that, I don’t think we’d be making any progress at all…
It took way too much effort to get those blobs of code to display properly. Even inside PRE and CODE tags, WordPress was mangling stuff. I downloaded David House’s grabcode plugin, but then I had to play with my CSS to get the results to look acceptable (and they’re still wrong in the RSS feeds, but I give up for now).
It’s done now, and the next time will be easy :-)
I was looking at my logs, because I was seeing a lot of traffic on my XML feeds. ClichÃ©d, perhaps, after the Microsoft debacle :-). I was looking because my RSS2 feed had risen to the top of the daily traffic statistics.
I did notice that many aggregators still aren’t using Conditional GET, and that some others don’t support gzip. But that wasn’t it… Instead, a full 25% of hits resulted in HTTP Code 302 (not modified), and yet were also transferring the full RSS feed (sometimes compressed, sometimes not). Digging in the code, I found (in the Conditional GET logic in wp-blog-header.php):
I moved the exit to the right place, and now all my Conditional GET clients are downloading 0 bytes :-). Here’s the fixed version:
There is a subtle (as a brick in the face) difference between “It just works” and “I got it to work.”
When I think about it, I realize how much this applies to the things I do on a day-to-day basis. Certainly most things in my life “just work”; cars, telephones (but not cell phones), kitchen stuff, light switches, hot water heater, laundry, furnace, and on and on. (Can you imagine what life would be like if they didn’t?)
And then there are computers (and other bits of computerised technology, like VCRs), where sometimes things “just work”, and sometimes “I got it to work”, and sometimes “I threw it out the window in disgust”. I’m often surprised by items in all three categories; sometimes things I expect will require a hammer and a lot of elbow grease “just work”, and (frustratingly) sometimes the opposite.
Where I work, we try very hard to make software that works, and yet are continually surprised by the bizarre things people do with their configurations before they call and complain. Reliability in the face of unexpected problems with computers and networks is one thing; reliability in the face of determined administrators is another thing entirely.
Anyway, I’m not sure where I’m going with this, so I’ll stop. Go read Scott’s article; I think it is interesting.
From Teal Sunglasses: It pays to pay well.. As usual Chuq nails several interesting ideas. But I particularly liked this quote, only slightly out of context:
ask anyone who works for any company that builds things and deals with finances about the joy of figuring out who is responsible for warranty costs. Is it ever the group responsible for building reliability into the product in the first place? Nope. Want reliable products? Take warranty repair costs out of your development budgets, not your support budgets. and watch your development managers have big, ugly, purple cows…
Ouch, says I, wearing my CPE hat! CPE -> Current Product Engineering; my team fixes software that has already been released to customers. Software is different than hardware; repairing or replacing hardware is more expensive than patching software. Anyway, the costs for my team do come out of the development budget. We also have a separate customer support hierarchy, responsible for all of the day-to-day handholding that customers need. Theoretically problems don’t cross into my domain until they are confirmed defects (as opposed to “controlled flight into terrain”), but in practice we end up debugging the hard problems on both sides of that line.
Anyway, it’s certainly fun and challenging work…
I feel so un-pure :-)
That’s when we decided to label the System button “Start”.
It says, “You dummy. Click here.” And it sent our usability numbers through the roof, because all of a sudden, people knew what to click when they wanted to do something.
The real science of usability… (laughter)
Email is one of the greatest things the computer revolution has done for personal productivity. Used improperly, it can also hurt your productivity. This article discusses ways to use email effectively. Then it goes beyond that and talks about how to be productive, period.
Another get_weather_ca update for misterhouse. Environment Canada reformatted their text-only web page again:
- they changed a bunch of ULs to DLs.
- They re-ordered the sections on the page (messing up the forecast finder).
- they added spaces before all of the colons.
I also added a “[Read,Show] weather forecast” to my code/weather_ec.pl code, and fixed a minor bug in the dewpoint calculator. Of course, that code only gets triggered when something is broken these days, because EC now publishes the dew point as part of the data.
The patch is against 2.78; I haven’t upgraded to 2.79 yet. (It figures that as soon as 2.79 was released, my code would be obsoleted again :-)
You can download: