The Falsehoods Series

Falsehoods programmers believe about time

More falsehoods programmers believe about time

Falsehoods programmers believe about time and time zones

Falsehoods Programmers Believe About Names

Falsehoods Programmers Believe About Phone Numbers

Falsehoods programmers believe about addresses

Falsehoods programmers believe about geography

Falsehoods programmers believe about maps

Falsehoods Programmers believe about Gender

Falsehoods programmers believe about networks

Falsehoods programmers believe about build systems

posted at 3:25 pm on Sunday, July 10, 2016 in Links, Programming | Comments Off on The Falsehoods Series

embarrassment

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…

posted at 12:17 pm on Monday, December 15, 2008 in Programming, Rants | Comments Off on embarrassment

IBM Identity Management

I’m surprised this announcement took so long:

IBM to Bail Out HP Security Software Customers

read it at yahoo or marketwire.

posted at 12:46 pm on Wednesday, October 01, 2008 in Personal, Programming, Security | Comments (1)
  1. RG says:

    I got this as an internal email flash this morning and just chuckled. I agree this seemed to have dropped out of a time warp or something…

linux sux

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.

posted at 9:13 am on Wednesday, October 01, 2008 in Personal, Programming, Rants | Comments (4)
  1. Richard Chapman says:

    You know, during the American Revolutionary War, columns of British infantry were often harassed by Colonial Militia using tactics that would be later known as Guerrilla warfare. It pissed the Brits off to no end. Battles were supposed to be neat and tidy. Everybody lined up and traded volleys until enough people were dead. We all know what battle tactics are not in use today.

    Ok, so what does this have to do with Linux development? You say you’ve had 10 years in commercial development but you didn’t say if it was Open Source development or not. A community effort will not come up with anything that looks and works like Vista. That’s not a bad thing. Think of the proprietary development model like the battle field tactics used during the Revolutionary War. Yeah, Open Source is messy as hell. I’m not a developer but I can think of at least two reasons why that is. It’s relatively new, compared to proprietary methods (I know a basic Open Source model was in place before the proprietary influences took over. Software was developed and traded freely before it was discovered to be a “gold mine” by the corporations.) Second, the Open Source model reignited, established itself and has begun to flourish in a proprietary “pond”. Imagine that, born and bred in a completely hostile environment. The Open Source model you see today is not the one you would see if it was as prominent as the proprietary one.

    What I don’t understand is that you should know this. Having as much experience as you do with Linux, you would have canned it a long time ago if you had issues with a little GUI quirkiness. There weren’t “well over a dozen MP3” players when you first started using Linux. They accumulated while you using it. Did it just hit you one day that there were “too many”? I say, if someone wants to create their own MP3 player or even a distro for that matter, go ahead, let Darwin sort them out. For me, a quirky GUI is just a nice little reminder that I’m not using a Microsoft product.

  2. chk says:

    I think you completely missed all of my points, but that’s ok; the other blogs I linked to are full of similar behaviour.

    I’ve been running Linux as a server for over a decade. I gave up on Linux on the desktop nine years ago. I decided to try it again, and discovered that other than a few new bells and whistles, nothing has changed. Developers can’t even get basic functionality right, never mind the interesting stuff that really makes a program useful.

    My example about MP3 players was not that there were so many, but that they all suck. Nobody seems to want to collaborate to make one or two better. It’s not just the MP3 players.

    A quirky GUI just gets in my way when I have real work to do. I don’t want to be fighting with my computers all the time (And yes, for the record, both Apple and MSFT have problems in this area too).

    I’ll continue to run linux on my servers (5 personal, dozens at the office), but I’ll not be using it on a desktop. More importantly, I won’t be recommending it to my family and friends, either.

  3. Richard Chapman says:

    No, after reading your comment I believe I didn’t miss your point. I’m not saying there is something wrong with you for not liking desktop Linux. It just seems a little odd. If you’ve been working with Linux servers for the past 9 years you must be quite at home with the command line. Don’t use the desktop, it’s optional. I think it’s nuts but some people do it. I don’t know what distro you tried but desktop Linux has improved a lot in just the 3.5 years I’ve been using it. My needs aren’t great but it does everything I need and more without getting in my face. The maintenance is nonexistent compared to XP. Vista? From what little I’ve seen of it my computer would be smashed to pieces in a matter of hours if I had to use it. That friggin’ OS has an attitude and I don’t like it at all.

    I use PCLinuxOS and there isn’t any piece of codec crap it can’t handle. If you are happy with XP or Vista or whatever you use then there is no reason to switch. If you’re just investigating the “hype” then that’s fine too. Just understand that there isn’t any Linux hype machine, it’s just people’s experiences. Nobody said Linux was the Second Coming. They are just happy to finally get their work done without being pestered by their computer.

  4. Reid says:

    Yep it does.

    Now why would you go to Windows? There’s always Mac.

    Games?

Debian / Ubuntu and OpenSSL

(See Debian Security Advisory 1571 and SSLkeys)

This seems appropriate somehow:

posted at 8:38 am on Wednesday, May 14, 2008 in Programming, Security | Comments Off on Debian / Ubuntu and OpenSSL

automation

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…)

posted at 5:35 pm on Tuesday, October 09, 2007 in Programming, Science and Technology | Comments Off on automation

construction metaphors

UNIX – The Hole Hawg – I’ve been a UNIX person since I started university, what, 22 years ago now?

posted at 8:42 pm on Monday, September 11, 2006 in Links, Programming | Comments Off on construction metaphors

Title Links Plugin

I was asked for my title links plugin (See wordpress filter), so here it is:

title-links-1.0.zip

Updated with a brute-force fix for a conflict with the “pretty quotes” functionality in Textile:

title-links-1.1.zip

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.

You can see this plugin in action on The Queen’s Guard and Five Rivers game log sites.

posted at 10:08 am on Wednesday, August 02, 2006 in Gaming, Personal, Programming | Comments (2)
  1. Kody says:

    What I want to do on my blog, is every few hours take the oldest post and move it to the
    front of the queue, all automatically. Anyone know if there is a plugin that can do this or
    a simple way to set up another plugin to do this (use my own feed perhaps)?
    Thanks.

  2. […] It’s published: Title Links Plugin) 87 words posted at 9:37 am on Saturday, June 10, 2006 in Personal, Site News, Programming […]

wordpress filter

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)

posted at 9:37 am on Saturday, June 10, 2006 in Personal, Programming, Site News | Comments (4)
  1. David Brake says:

    I know the textile URL format is appealing but you should be warned that a) it doesn’t transfer across into the RSS feed (at least not as you have it configured now) and if you ever find yourself transferring your blog to another server (as I have done) you may find (as happened to me) that you have loads of old archived material whose links don’t work because the new server doesn’t parse them and translate them. You probably could write a script to translate them on your server of course…

    P.S. When you first mentioned the Queen’s Guard I thought you had joined the Canadian army – some reserve regiment I never heard of. Seemed unlikely of course but…

  2. chk says:

    This appears to only be a problem with the old (rss1.0) feed, which nobody should use anymore. For now I’m redirecting it to the RSS2 feed (which most clients should handle); eventually I’ll disable it altogether.

  3. I am setting up yet another political blog and I am very interested in the plug-in you’ve described for automatically linking between posts and from posts to a bibliography.

    Can I get a copy?

  4. […] was asked for my title links plugin (See wordpress filter), so here it […]

J2EE makes sense!

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 :-)

posted at 6:30 pm on Monday, July 25, 2005 in Personal, Programming | Comments Off on J2EE makes sense!

quote

Maintaining badly written code is like trying to solve a crossword puzzle set by someone who can’t spell.

(taken from Simon)

posted at 11:48 am on Friday, March 18, 2005 in Humour, Programming | Comments Off on quote

interrupts

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…

posted at 11:32 pm on Friday, October 22, 2004 in Personal, Programming | Comments (1)
  1. Greg Wilson says:

    I’m really glad Blueprint lets me squat at one of their empty desks, but it’s a very noisy workplace —- lots of side conversations about non-technical things going on all the time. I’ve taken to wearing earphones again for the first time in years, just to cut the accidental interrupt rate.

code snippets

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 :-)

posted at 9:56 am on Thursday, September 30, 2004 in Programming, Site News | Comments Off on code snippets

WordPress and HTTP Conditional GET

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:


posted at 8:58 am on Thursday, September 30, 2004 in Programming, Site News | Comments (4)
  1. Reid says:

    I use “wget“ to download my RSS feeds onto tnir to produce my news.tnir.org page. Now wget has an option, “N, —timestamping that tells it “ don’t re-retrieve files unless newer than local”. However, I also use another option, “-output-file=FILE“ because I don’t want 200 files named “index.html“. When you use that option, it turns off the time-stamping feature. Bleaugh.

    I downloaded the code to see if I could fix it, but it turns out that the code is structured in such a way that redirecting the output is a major fork in the code path. *sigh. Maybe one day I’ll get around to it..

  2. Reid says:

    Whoah, some of my HTML leaked through there. The comments info says bold tags are allowed, and I certainly did not type any “del” tags..

  3. Harald says:

    Apparently Textile is processing comments, too; text surrounded by “-” is marked with del tags, and text surrounded by + is marked with ins tags.

    Seems to be haphazard though, esp. since it appears that textile is adding tags, and then the HTML sanitizer is stripping (some of) them out…

  4. Hi Harald,

    just stumbled about your blog and found a nasty bug there:
    You got a self signed SSL cert for some parts of your blog, if a user doesn’t accept the self signed cert, your blog layout breaks away completely.

    Grettings from Berlin/Germany

Will ANYTHING new ever work?

ComputerZen.com – Scott Hanselman’s Weblog – Will ANYTHING new ever work?

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.

posted at 9:49 am on Sunday, May 30, 2004 in Links, Programming, Science and Technology | Comments Off on Will ANYTHING new ever work?

Current Product Engineering

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…

posted at 10:43 pm on Wednesday, December 10, 2003 in Programming | Comments Off on Current Product Engineering

Good vs. Evil

I remember the days when rms refused to port Emacs to Windows (or the Macintosh) because they were closed platforms and violated the spirit of free software.

Today I have Emacs, Apache2, PHP, Perl, Python, MySQL, and Firefox all running on my spiffy new Windows XP based laptop…

I feel so un-pure :-)

posted at 10:57 am on Tuesday, December 09, 2003 in Programming | Comments Off on Good vs. Evil

The Start Button

Why do you have to click the Start button to shut down?

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)

posted at 10:09 am on Tuesday, August 12, 2003 in Humour, Links, Programming | Comments Off on The Start Button

The Tyranny of Email

Critical Section – The Tyranny of Email

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.

posted at 3:28 pm on Tuesday, March 11, 2003 in Programming | Comments Off on The Tyranny of Email

get_weather_ca update

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:

posted at 10:01 am on Monday, March 10, 2003 in Programming | Comments Off on get_weather_ca update
Next Page »