Death Threats Against Bloggers

First, there was what happened to Kathy Sierra. Now, it’s hitting Michael Arrington, too.

I’m disturbed, and I don’t like this.

I’m aware that some people take things like religion and politics so seriously that they’ll fight, kill or die over them. But Kathy Sierra wrote about making software as pleasing to users as possible. Michael Arrington? Okay, I didn’t used to read his blog, but I get the idea his topic was “what’s going on in Silicon Valley”.

And people feel that they need to spit on and threaten to rape or kill over this?

Did such things never used to happen? Or did we simply never hear about them? Why were there no cases of, for example, newspaper columnists in the ’50s getting death threats over their thoughts about fashion or architecture? (Or were there such cases?)

Are people getting more insane? And if so, why? And how do we stop it?

I also can’t help but wonder if, now that it’s happened to Arrington too, people will take it more seriously. And how much of that is that twice is more significant, and how much of that is because Arrington is male, and so we can’t write it off as “feminine hysteria”? (On the other hand, kudos to those who took it seriously back when it was just Sierra — and even pointed out that “this culture of attacking women… has especially got to stop“.)

Why I Haven’t Updated Lately

If you look at the dates on this post and my last one, you’ll see that there’s been over a month of “dead time”. That’s because I’ve been too busy trying to fix my server. Starting a few days after my last post, the server I host this site on started having kernel panics and lock-ups. Dealing with the fallout from that, and putting time into my new job (which started on February 2nd) has been eating up most of the time I’d normally use to write blog entries.

Bad UI Discourages Cops in Queensland

How important can good (or bad) user interface design be? If the system you’re building is the Queensland Police’s record-management system, the interface can apparently be so bad that police would rather let petty criminals go free than try to enter an arrest report on the thing. In one case, the police found data-entry so time-consuming, they didn’t think they could get a summary of the case in time for a court appointment the next day. They were forced to release prisoners on bail.

In fairness, the article does mention that the new QPRIME system “replac[ed] 230 other systems, many of them non-compatible” — so the previous situation must have had its own disadvantages, as well. But whatever the new system’s advantages, if people can’t get information into it, it’s not going to be useful.

And the penalty for a bad UI in this case is more than just “the user might switch to your competitor’s product”. It can result in criminals going free and the police being unable to do their jobs.

A Tale of Two Web Sites

I just finished applying (online) for unemployment, and then followed the EDD‘s link to CalJobs. The difference in understanding of UI/UX principles between the two sites is shocking.

The EDD’s “Eapply4UI” site, aside from having a name that looks like it’s trying to fit onto a vanity license plate, is surprisingly good at what it does — particularly the input validation. When you type “San Francisco” into a text field and then tab off it, the page silently converts it to “SAN FRANCISCO”. When you enter a phone number in “123-456-7890” format, it silently auto-converts it to “(123) 456-7890”. And many items have little “Help” links that provide useful information.

Those links provide the information throught the somewhat ugly and low-tech expedient of popping up a JavaScript alert() box, but the information in that alert() box is useful and helpful. Sure, a hidden div that fades in over an 800-millisecond time-span, with nicely styled borders and rounded corners, would be prettier. But in terms of “bang for one’s (taxpayer-funded) buck”? This gets the job done.

CalJobs, on the other hand, has already earned my displeasure by assuming that everything in a registration form should be a doubled password field. Including your desired username, and your Social Security Number. And it doesn’t give any indication that you need to leave out the dashes in the SSN until you try to submit the form.

This is silly.

CalJobs people: Take a look at the EDD. And learn.

Grousing About PHP’s Limitations

Drat. I would like to chase back up the class hierarchy of a bunch objects, and then do something based on the second-from-the-top of that chain. (For example, when the chain goes Word > Noun > Animal > Mammal > Human, and I’ve instantiated a Human, I’d like that object to be able to tell that it’s a Noun.)

Unfortunately, I’m doing this in PHP, and it’s not possible to get a class’ parent — all you can do is find the parent of an instantiated object. So, in order to chase back up the class hierarchy, I’d have to instantiate one of each object type… and that would require coming up with parameters for each one, because these aren’t the sorts of things you can just create as anonymous items with no values.

I tried creating a static getParent() method in the top-level object, but then when I do the static call on a subclass (e.g., Human::getParent(), which should return Mammal), it apparently calls Word::getParent() anyway (and that complains that it has no parent class…)

I expect I’ll be running up against more and more of PHP’s limitations in the near future, now that I’ve gotten more accustomed to concepts like functional programming, introspection, and so on.

A quick glance at the Ruby Class documentation makes it painfully obvious how easy this would be in Ruby. While native JavaScript doesn’t support such things, Prototype.js does — down at the bottom of this page, under “Special Class Properties”, it mentions the subclasses and superclass properties, and gives handy examples.

I’m Getting Tired of Yak-Shaving

It seems like every time I try to get around to actually writing some code, I discover yet another thing that I have to do in order to make that more possible. Today, it was: Get PHPUnit installed on Lórien, so I could run my unit tests locally during development, rather than having to shove everything back up to Finrod every time I wanted to run a single test.

The yak-shaving odyssey that this necessitated involved upgrading my local copy of PHP (which originally came with InstantRails) from 4.whatever to 5.2.8, so that I could develop PHP5 code at all, then installing PEAR so that I could use it to get PHPUnit, and also resolving the weird extension-loading bugs on PHP for Windows (for example, you have to load php_mbstring.dll before php_exif.dll, or else both of them will fail and complain. Ditto with php_pdo.dll and php_sqlite.dll. None of this is documented in the manual; you have to Google on it and get links to the bug database. Joy.)

But I can now run PHPUnit test on the stuff that I’m working on, locally rather than remotely. So… now can I get some code written?

Blog Integration

After a fair bit of hacking, I’ve now got the look of my blog integrated with the rest of my site. This wouldn’t normally have taken so long, except that I also had to deal with being sick and throwing a party. So I haven’t had as much time as I might like to focus on the site and the blog.

More useful content when I have time to write some…

Trying to brush up on PragProg…

Trying to brush up on PragProg’s _Agile Web Dev w/Rails_, but failing my INT rolls due to phlegm.

I’ve been too sick to do anyth…

I’ve been too sick to do anything of use.

Cover letter updated, and even…

Cover letter updated, and even got a resume sent out.