Tuesday, December 24 2002

You want Java with that?

So, Microsoft wasn’t shipping Java? Boo-fucking-hoo. Java on the web has been an insecure, browser-crashing nightmare from day one, and applications written in it are poorly integrated into native GUI libraries and sloooooooooow.

(Continued on Page 40)

Friday, July 11 2003

Why I’m not a Switcher

I own two Windows machines that I rarely turn on any more. Even at work, the only thing I use Windows for is handling expense reports and accepting meeting invitations. I own two Macintoshes and an iPod (well, two, but only ’til I find a home for the old 10GB model), and I’ll almost certainly buy a dual 2GHz G5 later this year.

I spend most of my time using Macs these days, but I insist that I am not a Switcher. Why not? Because the Switch ads aren’t about technology; they’re about validation. For years, Mac users have been the whipping-boy of the mainstream computing world, and they’ve responded with a “cold, dead hands” attitude and a cultlike devotion to all things Apple. The Switch ads play up to that.

(Continued on Page 91)

Tuesday, September 16 2003

Today is a good day

New PowerBooks are out. Must wet pants with joy. They all look good, but I’m leaning slightly toward a 15” model with an 80GB disk and 1GB of RAM; not sure I’m ready for a 17” boat anchor.

Yesterday, on the other hand, was definitely not a good day. For some time now, I’ve been installing Panther betas on my iBook with the Archive & Install option, which preserves almost all of my applications and customizations while completely replacing the OS. I’ve always backed up my home directory first, but haven’t bothered with an extra full backup. Cuts the total upgrade time down to about an hour, most of which is spent watching the disks spin.

On another day, I’d consider including a comparison to my last Windows upgrade horror story. Unfortunately, things went terribly wrong this time. Twelve hours later, my iBook is almost back to normal.

(Continued on Page 1585)

Friday, September 19 2003

Bits, bytes, platters, and drives, how many were going to St. Ives?

Four complete and total morons in Los Angeles (redundant, I know) are suing computer manufacturers for reporting hard disk capacity using international standard prefixes. Even better, they are not suing the companies who actually make and label the disks with these capacities.

“Your Honor, I’d like to submit as evidence this disk drive, taken from a Dell computer. Note the name M-a-x-t-o-r on the label, right above the advertised capacity in gigabytes.”

“Right. Bailiff, take these four clowns out back and sterilize them for the good of humanity.”

Wednesday, October 29 2003


Very little email spam actually gets through to me any more. OS X’s Mail.app weeds out about 40 a day based on content, leaving about three a day that consist entirely of inline JPG images. Which Mail.app doesn’t load.

The subject lines make it clear that they’re obvious spam, so my latest trick is to view the raw source, look for the link to the picture, and add that domain to a custom rule. For the past few weeks, virtually all of these have been links to sites in the .VG top-level domain. From the host names involved, it’s clear that the registrar is in on the scam, so I’ve junked all messages containing “.vg/”. Works like a charm.

Today, a few got through with .BIZ domains, and I realized that I’ve never seen a legitimate business that had a .BIZ domain. So I added “.biz/” to the list as well.

The rule also junks messages containing “http://1” through “http://9”; I think that one still catches about ten spams a day.

Friday, October 31 2003

Latest variation on the Nigerian email scam

This actually made it past my spam filters. Once.

Needless to say, I won’t be helping this innocent victim of political persecution, wrongly jailed for “suspected genocide”. Nor will I keep his message a secret “for the sake of humanity”. In fact, I’d be delighted if it served as evidence against him. The person sending the spam, that is, not the fictional character in the message.

(the email address used was scraped from the blog Making Light; I’ve never used it anywhere else, and now that my filters trap about ten spams a day sent to it, I never will)

(Continued on Page 1635)

Saturday, November 1 2003

Super screen

I want one of these. Screw putting it into a PDA, though. A 300dpi LCD display? I want it on my 15” PowerBook!

Of course, it would probably cost more than my Lexus, but I can dream, can’t I?

Tuesday, November 4 2003

WPA needs strong passwords

Wi-Fi Networking News reports that Wi-Fi Protected Access (WPA) is vulnerable to dictionary attacks. This means you gain nothing by turning it on unless you choose a strong WPA key.

The best source I’ve found for creating strong keys is Arnold Reinhold’s Diceware page. There’s a wealth of information here, including a number of alternatives to the main Diceware system, such as creating a strong password using only coins and your keyboard.

A few additional tables are only listed on the original ASCII version of the Diceware article. I particularly like the random syllable table, since you can print it out and carry it in a small container with a set of dice.

1bcdfgh 1a
2jklmnp 2e
3qurstvw 3i
4xzchcrfrnd 4o
5ngnkntphprrd 5u
6shslspstthtr 6y

There are a lot of online stores that sell casino dice, but if you ever get to Las Vegas, many of the big hotels sell their used casino dice in the gift shop. The Luxor even sells theirs online for $2 a pair. You can get their playing cards, too.

Friday, November 7 2003

Adobe CS suite adds revision control, insecurity

Version Cue is a revision control system for Adobe applications, introduced as part of the new CS suite. It’s off by default. It makes local copies when you check out files, and requires explicit commits. It’s based on public standards (WebDAV and XMP, implemented with Tomcat). You can lock a file to keep others from editing it, and you can break locks set by others.

All good so far.

If you turn it on, it defaults to sharing your projects with everyone on the local network. Privacy and user administration are optional, and must be administered locally, from their GUI tool; usernames and passwords are not integrated into your network infrastructure (Windows or Mac). It appears to be non-SSL WebDAV, which means anyone on the local net can sniff passwords and access anyone’s “secured” projects. For real fun, they recommend starting with wide-open desktop-based project sharing, and adding dedicated servers and access controls later. It doesn’t look like there’s any direct support for branching, labeling releases, or reverting to previous versions. Oh, and turning it on chews up a minimum of 128MB of RAM on each machine.

Not so good.

Makes me glad I don’t do user support for graphics/publishing people these days. I’d hate to have to strangle a manager who insisted on rolling this thing out right away.

On the flip side, if you’ve got the RAM and you turn off sharing, it’s A Good Thing for people who do a lot of tinkering in Photoshop, Illustrator, and InDesign. I’m going to be importing a few of my Illustrator projects to try it out, while I read the available documentation. If it runs correctly under Panther Server, I might even use it for photo editing in Photoshop, as a convenient way of preserving the raw scans side-by-side with the corrected versions. After I upgrade my laptop to 2GB of RAM.

Update: I just spotted something hilarious in the Version Cue Preference Pane.

workgroup size screenshot

Yes, that’s right; a large Version Cue workgroup is 10+ people. Gotta love that scalability!

Monday, November 10 2003

When spammers get desperate

This is the only spam to make it past my filters in the past 24 hours. Needless to say, the message didn’t get through. Even if they hadn’t screwed up the subject line, its spam-nature was still obvious to the human eye. For more fun, their clever attempt to evade the common “html-only messages are spam” filters backfired with OS X Mail; it displayed the raw HTML, which was unreadable due to their other filter-evading strategies.

It’s pure poetry. They’re trying so hard to hide their message from filters that they’ve ended up hiding it from the people they’re trying to reach. Incidents like this are why I’m becoming more optimistic about the future of email.

(Continued on Page 1655)

Thursday, December 4 2003

Dark Grey Screen Of Death

Now here’s something I hadn’t seen before:

OS X Bomb Box

Fortunately I save early and often, and in the worst case I have a full backup that’s only a few days old (minutes, now!), but this was the first honest-to-gosh kernel panic I’ve had since I bought an OSX-equipped Mac. Quite a surprise.

/Library/Logs/panic.log seems to blame it on the Airport drivers. I can cope with that, as long as it doesn’t happen again. Then I’d have two reasons to send my shiny new PowerBook in for service (the first being the famous “white spot” problem that’s finally starting to become visible on my screen).

Tuesday, December 16 2003

Building a decent PC

There are still a few games that aren’t available for the Mac or the Xbox, so I finally broke down and cobbled together a new Windows PC. Here are the parts I used:

  • Shuttle SN41G2 — This is my second Shuttle barebones box (the other runs OpenBSD), and I love them. Everything has to be arranged just so during assembly, but the layout is clean inside and out, the fan is fairly quiet, and the motherboard is chock full of first-rate features. I see no reason to buy a larger case for a home or office PC.
  • AMD Athlon XP 2800+ — The 3200+ was too pricy, and I was persuaded to go with AMD over Intel this time. I’m mostly agnostic on the processor wars.
  • Kingston HyperX DDR400 DIMMs (2x 256MB) — They recommend filling both memory slots on this motherboard for best performance, and 512MB is enough for gaming. Today.
  • TDK indiDVD 440N — reads, writes, and rewrites CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, and DVD+RW, at 4x for DVDs and 16x for CDs. The software bundle seems reasonable, too.
  • Hitachi Deskstar 200GB hard drive — (don’t expect that URL to work for long; ick) This looked like a decent drive, especially with the very aggressive rebate currently being offered. ATA100, but I’m building a gaming box, not a video workstation (that’s what Macs are for).
  • ATI Radeon 9600 XT — I actually haven’t installed this yet, because the builtin GeForce4 MX on the Shuttle is not only pretty good, it supports dual monitors. Hmmm, maybe I’ll build another OpenBSD box soon…

Software is Windows XP Professional. I left an empty 4GB partition near the front of the disk in case I want to dual-boot, but like I said, it’s for games. The only real reason to install OpenBSD or Linux is to image the Windows partition for disaster recovery backups. I’ll probably start by using BitTorrent to grab the current Red Hat Fedora distribution.

Update: since a few folks have asked, I bought all this stuff at Fry’s for $1,194.83. The $100 in sales tax was offset by the $120 in mail-in rebates ($90 for the hard disk, $30 for the DVD burner).

Dear Linux Community,

If you’re going to make Linux into Windows, could you please try to match the behavior, not just the window decorations?

Love, J

[translation: I just installed RedHat Fedora, and was astonished to discover that after it popped up a little dialog asking for disc #2, it didn’t detect the presence of the correct disc and continue on its own. It sat there for twenty minutes, patiently waiting for me to click ‘Ok’ to confirm that I had, in fact, inserted disc #2.]

By golly, Linux still sucks!

Just tried to install nVidia’s Linux drivers for the onboard ethernet on my new Shuttle box. After transporting them on the only available media (USB keychain drive, which I had to mount by hand as root from the command line; love that user-friendly Gnome desktop!), I was greeted with a long string of syntax errors in the make output. Of course, I’d already had to abandon the build instructions provided by nVidia, because the version of rpm in Fedora doesn’t support the command-line options they used. It also apparently doesn’t support the C compiler they used.

So, to play with Linux on my shiny new PC, I once again have to play Goldilocks with multiple distributions, until I find the one that’s just right. Fuck that; it’s not worth the headache.

Update: Okay, I gave it another try. Seems I actually could get the network driver to install with Fedora, if I ignored the default OS install options and added the kernel sources. It seems they don’t expect ordinary users to own hardware they don’t provide drivers for. Still, after going through three or four “modern” Linux installers, my new slogan is “Desktop Linux: it’s like Windows without the QA”.

Thursday, January 8 2004

Altec Lansing inMotion

I’d love to supply a link to this extremely cool iPod accessory, except that the manufacturer doesn’t list it on their web site, and Apple’s online store generates nonsensical URLs that don’t share well.

Altec Lansing inMotion

Instead, imagine a white plastic brick, about the size of an O’Reilly book, that opens up into a surprisingly good mini-speaker system that doubles as a fully-functional iPod docking station. It’s quite loud for a system with only 2 watts/channel, and distortion is well-controlled at reasonable volumes. It’s compatible with older iPods and other devices through the Aux port (short cable supplied), which I’m connecting to my PowerBook for a significant sound boost.

They claim up to 24 hours of life on four AA batteries, or you can use the supplied wall-wart to run it on AC.

Tuesday, February 24 2004

Scam spam

Not only did I finally get one of the “you use illegal file sharing” extortion scam spams, it actually slipped past OS X Mail’s filters. Just the once, of course, now that I’ve told the system about it.

I’d love to know where they came up with the phony IP address they claim I’ve been using, though. I suspect it’s just boilerplate, since even if I were using a file sharing app, there’s no way they could associate it with that email address. Unless they (gasp!) really did manage to confiscate the contents of my computer. Tee hee.

Of course, there’s also a trojan attachment for infecting Windows boxes, which pretty neatly undercuts any claim that they ever got anywhere near the contents of my Macintosh…

Best part: the use of a phony Italian email address (from a machine that really is in Italy) while claiming to be associated with the FBI’s Department for “Illegal Internet Downloads”. They even supply a phone number.

Worst part: according to multiple news reports, there are quite a few people who are dumb enough (or, to be charitable, “sufficiently unsophisticated about the Internet and con artists”) to fall for this cheesy scam, and the associated “we found illegal porn on your computer” version.

(Continued on Page 1777)

Wednesday, May 12 2004

You’re kidding, right?

“I downloaded the file in the hope that perhaps Microsoft had released some sort of public beta. The file unzipped, and to my delight the Microsoft icon looked genuine and trustworthy. I clicked on the installer file, and to my horror in 10 seconds the attachment had wiped my entire Home folder!”

Why, yes, Microsoft often officially releases beta software on peer-to-peer file-sharing networks. Your confusion is understandable, and no one is going to accuse you of being a software pirate. Really.

Besides, I’m pretty sure you won’t be downloading any commercial software in the future…

Update: Oh, and note the clever way the story implies that this had something to do with Intego’s “concept trojan horse” scare story. Sorry, Charlie, but we’re not that stupid. An application that doesn’t do what you think it will ain’t the same thing as an application disguised as an MP3 file.

Wednesday, May 19 2004

“Hey, I’ve got a great idea! Let’s make it scriptable!”

This Mac security hole has been all over the web recently. The thing that makes it dangerous is that it’s ridiculously easy to exploit. The thing that makes it annoying is that anyone on the development team should have seen it coming a mile away, especially given the many well-publicized scripting exploits in Windows software.

How did it happen? WebCore. In an effort to produce a common HTML/HTTP library for all applications, functionality that used to be restricted to the Help tool was suddenly embedded in everything that retrieved or displayed web pages. Apple’s pervasive AppleScript support completes the circle.

Ask not what you can do with scriptable applications; ask rather what scriptable applications can do to you…

Update: The official fix is available via Software Update.

Update: You still need to turn off the Open “safe” files after downloading option in Safari, because disk: URLs still work, and mounted disk images can include auto-execute programs. Yes, there are two stupid features in the previous sentence.

Thursday, May 20 2004

Will debug for food…

Fun little blog entry documenting the life and death of a bug in Microsoft Word for Mac. A nice reminder of how difficult it can be to predict how your shiny new feature will interact with old code, and, more importantly, why it can take so darn long to fix an “obvious” bug. I’d love to see a similar explanation of Apple’s “can’t use capital U in firmware password” bug.

One thing this story doesn’t touch on is the importance of clear, unique error messages. If Word had actually reported “too many open files” instead of “disk full,” the problem might have been fixed a lot sooner. In one of my own favorite debugging stories, our discovery of the message “oh shit: fState != kParseError” led us directly to one line out of 16,000. It wasn’t clear, but it was at least unique.

Thursday, September 23 2004

Oh, now this one’s just shameless

I hadn’t seen any good spam for a while, even when I indulged my curiosity and looked inside Mail.app’s Junk folder before wiping it clean. This one, however, stood out in the crowd.

Silly me, I didn’t even know the FDIC had an office in Beijing, much less that it was where they hosted their “ATM/Debit/Check Card Protection Program”.

It was, of course, sent to the email address that’s in my WHOIS records, which is not on file with any banking institution I do business with. Not that I’d have fallen for it anyway…

(Continued on Page 2129)

Wednesday, September 29 2004

Dicing with passwords

Last year I posted a reference to Arnold Reinhold’s Diceware page, and included a copy of my favorite passphrase generator, which attempts to generate pronouncable nonsense words.

I’ve always been a big fan of pronounceable nonsense, even in the days when passwords were limited to eight characters, but I think it’s particularly useful for long passphrases. My problem was that it can actually be pretty difficult to get a good nonsense phrase out of the original table. So I made my own.

Now, the instinctive reaction to someone creating their own security tool instead of using one created by an expert is (or ought to be) an anguished cry of “Noooooo, you fooooool!”. This is a special case, though, because the beauty of the Diceware scheme is that the contents of the table don’t actually matter, as long as each cell is unique. You could fill the first column with colors and the rest of the cells with the names of different superheroes, and the resulting passphrases would contain just as much entropy.

So here’s my new favorite method of generating passphrases. Roll three six-sided dice (one to choose a consonant, two more to choose the rest of the syllable), repeat at least ten times, and assemble into a phrase.


Update: Sorry if I didn’t make it clear. Split the results up with spaces to create two- or three-syllable “words”.

Also, a word on the relative strength of passphrases. Each syllable contains ~7.75 bits of entropy (log2(6*6*6)), so ten syllables produces a 77.5-bit passphrase, which is likely good enough for data that isn’t kept under lock and key 24x7 (e.g. login password on a laptop). See Reinhold’s FAQ on passphrase length for details. Note that the dictionary-based Diceware system requires longer passphrases to get the same strength (5d6 per word versus 6d6 for nonsense syllables).

Sunday, November 14 2004

Still waiting for Java

Gamer friend Scott just discovered that the reason he was having so much trouble with PCGen under Linux was that the JVM was defaulting to a rather small heap size, effectively thrashing the app into oblivion when he tried to print.

Now, while it’s true that PCGen is as piggy as a perl script when it comes to building complex data structures in memory, it’s still fundamentally a straightforward application, and yet it exceeds the default maximum heap settings. He had plenty of free RAM, gigs of free VM, and here was Sun’s Java, refusing to use any of it unless he relaunched the application with a command-line override. Doing so not only fixed printing, it made the entire application run substantially faster. Feh.

I’d noticed a slowdown with recent versions of PCGen on my Mac as well, but Apple was good enough to compile their JVM with defaults sufficient to at least make it run completely. Sure enough, though, increasing the default heap settings makes it run faster, by eliminating a whole bunch of garbage collection.

In other words, with Java, Sun has managed to replicate the Classic MacOS annoyance of adjusting memory allocation on a per-application basis, and made it cross-platform!

PCGen is still the only major Java app I have any use for on a regular basis, although there’s another one that has recently entered my arsenal of special-purpose tools, Multivalent. I have no use for 99% of its functionality, but it includes robust tools for splitting, merging, imposing, validating, compressing, and uncompressing PDF files, as well as stripping the copy/print/etc limitations from any PDF you can open and read.

There’s another Java application out there that might join the list sometime soon, Dundjinni, but first the manufacturers have to finish porting it from Windows to the Mac…

Friday, November 26 2004

Please, crash for me

I have never been more annoyed at an application’s failure to fail.

We have this service daemon that performs various actions on incoming images. Recently, it’s been crashing at random intervals, leaving behind a core file that tells us precisely what function it segfaulted in, but includes nothing to tell us where the image came from. All we know is that somewhere out on the Internet, there are JPEG images that crash our copy of the IJG JPEG library in jpeg_idct_ifast().

Since this was affecting customer performance, we really wanted to know, so we cranked up the logging on one of the affected thirty-two servers, to capture the incoming request URLs. And it hasn’t crashed since.

Four days of crashes every hour or so, and now nothing. The good news is that our customers are less unhappy. The bad news is that our developers don’t have a test case to code a fix against.

So now I’m trolling the web, looking for corrupt JPEGs. I strongly suspect that the images that caused our problem were intended to exploit holes in a certain other OS, but I can’t be sure until I find some and feed them to our server. Sigh.

Friday, February 18 2005

I always knew they were real

Everywhere I’ve worked, people believe in them. They’re the ones who clear jams, change toner cartridges, reload the paper trays, and clean up the messy pile of abandoned printouts, and finally they’ve been captured on film. I give you…

(Continued on Page 2247)

Wednesday, April 6 2005

Is it Engrish if they just didn’t notice?

People familiar with Adobe PostScript will recognize the source of this label misprint.

Tuesday, April 12 2005

A for effort, guys, but…

…I don’t sit twenty feet away from my laptop, and the subject line gives it away as spam anyway: (Continued on Page 2279)

Sunday, May 15 2005

Okay, who flipped the switch?

As of Friday morning, over 90% of my spam is either in German, about the T_rk_sh g_n_c_d_ of _rm_n__ns, or both. None of it is getting into my main mailbox, of course; what manages to escape my usual spam filters ends up in my Quarantine folder, due to the unknown senders. After the first few get through to there, the filters learn to recognize it.

[Note that I disemvoweled that phrase to keep it from getting into search engines. I know better than to invite traffic from the folks who can’t even see a recipe for Christmas {large bird} without being compelled to post multi-page screeds about that history. I’m already getting email spam about it, I don’t need to clean out my blog comments as well.]

Wednesday, July 27 2005

Adobe Version Cue 2: here we go again…

Apparently the folks at Adobe haven’t learned anything about computer security since I looked at the first release of Version Cue. After I installed the CS2 suite last night, I was annoyed at what I found.

Listens on all network interfaces by default? Check. Exposes configuration information on its web-administration page? Check. Defaults to trivial password on the web-admin page? Check. Actually prints the trivial default password on the web-admin page? Check. Defaults to sharing your documents with anyone who can connect to your machine? Check. I could go on, but it’s too depressing.

The only nice thing I can say about it is that it doesn’t add a new rule to the built-in Mac OS X firewall to open up the ports it uses. As a result, most people will be protected from this default stupidity.

Wednesday, August 3 2005

The Best Damn Keyboard You Can Buy

Friend and co-worker Jeff was an unhappy typist, suffering under the tyranny of mushy keyboards. Soon after I started my new job, he complained about the pain (both spiritual and physical) that these devices cause him. He lamented the passing of the Apple Extended Keyboard, code-name Nimitz, which reminded me that I’d blogged about its return more than a year ago. Jeff ordered one five minutes later. Ten minutes after it arrived, I ordered two. There was another suspiciously keyboard-shaped box sitting in his office today…

Pay no attention to the Mac-themed advertising for the Tactile Pro keyboard; it works just fine with “those other operating systems”. Pay close attention to the mechanical keyswitches that make typing a joy, and that fill the air with a reassuring clatter. My PowerBook isn’t bad, especially compared to the dreck Dell ships with their desktop PCs, but I’m seriously considering picking up another one for travel, even if I have to buy a bigger laptop bag to hold it. It’s that good.

We’ve been buying them straight from the manufacturer, but it turns out that SmallDog has them at a better price.

Sunday, August 7 2005

The Secret Truth

I hate Adobe Illustrator. I’ve always hated it. If the folks responsible for CorelDRAW! hadn’t turned it into crap by constantly shipping new major releases that didn’t fix crippling bugs that were in the previous version, I’d still be using it. On Windows, no less.

Oh, sure, they never really got on the typography bandwagon, severely limiting your ability to use features like ligatures, swash caps, true small caps, optical kerning, etc., but there were a lot of things I could do in Draw 4 that are still a complete pain in the ass in Illustrator 12. Some days, I still find myself writing PostScript by hand and importing the results, just to save time and energy.

And it keeps getting slower. Photoshop is still pretty snappy on my 1.25GHz G4 PowerBook with 2GB of RAM, but Illustrator gets sluggish well before I start trying to get fancy, and it doesn’t have Photoshop’s scriptability, so I can’t easily automate a complex task and walk away while it runs. There’s no real competition out there today, though, so I’m stuck with it.

Sigh. Done ranting for the day, off to cook and kill murlocs. (note that these are separate activities…)

Thursday, August 11 2005

Putting all your eggs in two baskets

When I was getting ready to switch jobs back in June, I decided it would be a good time to consolidate all my backups and archives, sort out my files, and in general clean up my data. The vehicle I chose for this exercise was a pair of LaCie 500GB Firewire 800 drives.

The idea was to copy everything to one of them, then clone it all to the second one, which would be kept offsite and synchronized on a weekly basis over the Internet. My many other Firewire drives could then be used for short-term backups, scratch space, etc. One thing led to another, though, and I didn’t unpack the second drive until Tuesday night, and it was DOA.

LaCie’s online tech-support form didn’t produce a response, so I called them this morning. Ten minutes later, a replacement was in the mail, due to arrive tomorrow. They charged the new one to my credit card, and they’ll refund the money once I ship the dead one back (using their prepaid label). Because the price has dropped since June, the refund will be about $30 larger than the charge.

While I’d have preferred to have a working drive the first time, I like the way they handle problems.

Friday, August 12 2005

6Sense, podcast edition

A Japanese-language online radio show I like, 6Sense, is published in an annoying way. They keep more than a month’s worth of archives online in MP3 format, but each episode is split into 60+ audio files, accessed through a Flash interface.

Examining the Flash app told me very little. Examining my Privoxy logs gave me the regular-but-unpredictable naming convention for the audio files, and a little more digging turned up the URL that the Flash app calls to get the list for a specific day. After that, I simply used wget to download the complete show… as 60+ MP3 files.

Knowing that someone had to have written a Perl script to concatenate MP3 files, I googled and found mp3cat, part of Johan Vroman’s mp3cut package. Making the results into a podcast required the use of another Perl script, podcastamatic, and a web server to host the results. I just turned on web sharing on my Mac, moved the files into ~/Sites, and typed the appropriate URL into iTunes.

With the latest version, iTunes supports podcasts directly, but the integration is kind of peculiar, and carries over to the iPods. Both correctly track what you’ve listened to, and where you left off in the middle of an episode, but otherwise they’re not treated like regular audio tracks.

In iTunes, if you finish listening to one episode of a podcast, instead of moving on to the next episode, it skips to the current episode of the next podcast. On iPods, there’s no concept of “next” at all; when a podcast ends, it just stops playing. If you’ve set it to repeat, it repeats the episode you just heard. Unfortunately, not all podcasts are an hour long; some are quite short, such as ナナライフ, which averages about 90 seconds.

Ironically, the least sophisticated iPod handles podcasts the best right now. The iPod Shuffle just treats them as sound files, and syncs up the play count when you connect it to your computer. When you delete an episode from iTunes, it’s deleted from your Shuffle. Not perfect, but better for long drives (and I’m driving 150 miles a day right now, as I settle in to my new job…).

Tuesday, September 27 2005

Ah, AppleScript

Daring Fireball demonstrates at length why it’s a bad idea to pretend that a programming language’s syntax is “English-like”. Personally, I’ve avoided AppleScript due to a bad experience with Apple’s similar HyperTalk language, which scarred my brain the day I tried to do something extremely simple,and found myself typing:

get line one of card field short name of the target

This was the simple, concise way to do it…

Saturday, November 19 2005

A new low in gaming lawsuits

I’m sorry, but this is bullshit so raw that even a Democratic presidential hopeful wouldn’t touch it:

The parents filed a suit against Blizzard Entertainment on Wednesday, saying their son jumped to his death while reenacting a scene from the game, the report said.

What scene would that be? The one where you deliberately send your character off the edge of a cliff, knowing that he’ll die when he hits the ground? Or did he leave a note saying that he was going to teleport to the top of the Twin Colossals and try out that cool new Parachute Cloak he picked up at the Auction House in Gadgetzan? Or did these loving parents just not pay enough attention to their kid to notice that he was suicidally depressed?

If this cash-grab fails, no doubt they’ll turn up a witness who claims that the kid was shouting “Accio Firebolt!” on the way down, and sue J.K. Rowling next.

Thursday, March 2 2006

Dear Cisco,

If you’re going to make your VPN Client software completely incompatible with the Mac OS X built-in VPN support, could you at least make it capable of connecting to non-Cisco servers? It’s just not fun to be forced to delete my other VPN config and reboot every time I need to connect to one of your servers. It’s not like this stuff is some kind of standard or something…

Love, J

Saturday, March 4 2006

Why I like Macs, “warts and all”

So, it took two trips to the shop to get my brand-new Quad G5 running reliably, demonstrating once again that it’s never safe to buy The Latest Thing from Apple (or, to be fair, most vendors). It works great now, and when I took it in the second time, it received automatic priority as a “looper”, so it was done in two days. That’s the good news.

Now for the bad news: this morning, my PowerBook died with repeated kernel panics (most likely bad RAM, from the symptoms). I had backups, of course, but I didn’t need them. All I had to do was carry it over to another Mac, connect them with a FireWire cable, and reboot the second Mac from the PowerBook’s hard drive. In 30 seconds I was back in business, with everything exactly the way I like it.

I immediately made a fresh backup to a portable FireWire drive, and just for good measure, stored a disk image of that backup on the other Mac’s drive. Since I still need a laptop, I’m now booting my ancient 700MHz G3 iBook from the FireWire drive, and that’s what I’ll be carrying to work until the PowerBook is fixed. It’s a lot slower, and a bit clumsier to carry around, but I don’t have to spend any time fixing preferences, reinstalling applications, etc, etc.

Best of all, everything was done with vendor-supported tools that ship with Mac OS X, without ever opening up a case. You can rescue data from a broken Windows or Linux laptop, but the process is a touch more involved (coughcough), and the odds aren’t good that you can just boot another computer from that disk.

Update: okay, there are a few things that don’t “just work” when you pull this trick. The OS stores some of its preferences on a per-host basis, keying off the MAC address on the primary ethernet port. These are stored in ~/Library/ByHost/, and include that address in their name. Most of them are pretty obvious, like network port configurations, display preferences, and iDisk synchronization, but I was surprised that it included the input menu contents for multi-language input. The menu was there, but I had to click the checkboxes to re-enable Japanese input. So far, that’s the only host-specific preference I’ve had to set.

So, add 5 seconds to the transition time. :-)

There is one annoying side-effect to this. If you’ve turned on local mirroring of your iDisk, that mirrored copy is also host-specific. It makes sense, but it means that I have a hidden disk image chewing up 1GB.

Tuesday, March 7 2006

The first step is proving you have a problem…

So, it initially looked as if swapping the DIMMS around and reseating everything fixed my PowerBook. Paranoia is an old friend, however, so I decided to do some more testing before trusting it.

First up, TechTool Deluxe, a piece of software that Apple gives you when you buy AppleCare support. I ran the full suite of tests half a dozen times, with no errors.

Next up, World of Warcraft. I booted normally, logged in and had one of my characters stand in the middle of the busiest city, opened up the Activity Monitor, and… success! Or, more precisely, failure. It locked up good and hard, filling the screen with garbage.

Packed it up, made a support appointment at the Apple Store, walked over at the appointed time, waited 40 minutes for someone to get to me, and then spent the next 40 minutes proving that the problem really existed.

Standard diagnostic tools passed with flying colors. The tech’s random mix of apps worked just fine. We ended up testing each DIMM separately, loading up memory and CPU with World of Warcraft, QuickTime Player (random music video set to loop), and VLC (random VOB file set to loop). With the DIMM that I initially had figured was the good one, this produced several crashes within five minutes. The other DIMM worked fine, and in fact it’s been running for about half an hour now back in my office.

They’ll have a replacement DIMM for me in a few days, and meanwhile I’m going to keep stressing the machine to make really sure there’s nothing else wrong. Then I’ll migrate back from my G3 iBook.

Update: I spent a few days abusing the replacement RAM, and now everything’s back to normal. It was interesting using the G3 iBook for a while; it was perfectly adequate for use at work (Terminal, Safari, Mail, iTunes, MS Word, SSH Agent, Cisco VPNClient, Firefox, and Thunderbird), and only really showed its age when confronted with video clips (no, Choco Party is not work-related, or particularly work-safe, but it was certainly popular, especially after I googled out the name of the featured model, Miri Hanai).

I don’t plan on buying one of the current MacBook Pro models, even after they sort out all the early hardware problems (I’ve had enough early-adopter fun with Apple for a while, thanks). It will probably be a year before it’s worth the effort of migrating my primary machine to the new platform, but an x86 Mini is a possibility. We’re buying some for the office, so I’ll be able to check it out soon.

Here’s my simple RAM-thrasher. Kicking off half a dozen of these is more predictable than standing around in Ironforge in World of Warcraft:

foreach (1..250000) {
@y = sort @x;

Tuesday, March 21 2006

A Class I refuse to claim membership in…

I remember hearing about these morons a while back, when they wanted to sue the major computer companies for fraudulently advertising disk capacity using the exact same units as everyone else in the industry, using the sizes provided by the hard-drive makers.

Apparently, the howls of laughter with which this argument was received led them to retarget their suit against the hard-drive makers:

You are receiving this notice because our records indicate that you purchased an aftermarket Western Digital Corporation (“WD”) hard disk drive between March 22, 2001 and February 15, 2006. “Aftermarket” purchasers are those who purchased their hard disk drives separately rather than pre-installed by an original equipment manufacturer into a computer.
A proposed class action settlement may affect your legal rights. If the settlement is approved, you may be eligible to receive free hard disk drive backup and recovery software from WD. Read below for a summary of the proposed settlement. For a detailed legal notice and complete terms, please visit www.wdc.com/settlement.
A class action lawsuit entitled Safier v. Western Digital Corporation is pending in the U.S. District Court for the Northern District of California. The lawsuit claims that in the sale and marketing of its hard disk drives, Western Digital overstates the useable storage capacity. According to the lawsuit, when attached to most personal computers, a hard disk drive advertised as having “80GB” will only show an available capacity of “74.4GB.” The lawsuit alleges that one reason for this disparity is the existence of two different measurements of a “GB,” one of which is used by computer operating systems and another of which is used by hard disk drive manufacturers. The lawsuit seeks restitution, damages, punitive damages, and injunctive relief. The lawsuit is case number 05-03353 BZ.

Emphasis added. I won’t be joining this one, and if I can find a way to send a message to the greedy little bastards behind the suit, it will consist of two words:

Bite Me

Thursday, March 23 2006

Dear Adobe,

While preparing a faithful, high-resolution copy of the Mac OS X kernel-panic screen (to submit a patch to XScreenSaver’s BSOD module, now that JWZ has gotten it mostly working as a native Mac screen-saver), I ran into several problems. First, the result of my efforts:

Mac OS X 10.3-10.4 kernel panic screen

Now for the problems. I started out working in Photoshop, mostly because I hate Illustrator and wish CorelDRAW 4 had been stabilized and ported to every useful platform, but quickly gave up. Even for a simple graphic like this, it’s just annoying to work without real drawing tools.

The power button took about fifteen seconds in Illustrator, leaving me to concentrate on the text (12.2/14.6pt Lucida Grande Bold and 13/14.6pt Osaka, by the way). The Japanese version took the longest, obviously, especially with the JPEG artifacts in my source image.

Mind you, the above PNG file wasn’t exported from Illustrator, because all of my attempts looked like crap. The anti-aliasing made the text too fuzzy. To produce a smooth background image with crisp text, I had to manually transfer the two layers to Photoshop. I exported the background graphic at 300dpi without anti-aliasing, resized it in Photoshop using the Bicubic Sharper mode, then created a text field, pasted in the text, set the anti-aliasing mode to Sharp, and nudged it into the correct position.

The real fun came when I wanted to take the text I’d so painstakingly entered and paste it into another application.

I couldn’t.

Selecting the text in Illustrator CS2 and copying it left me with something that could only be pasted into Photoshop or InDesign. Fortunately, InDesign was written by people who think that text is useful, and after pasting it there I could copy it again, ending up with something that other applications understood. See?

You need to restart your computer. Hold down the Power button for several seconds or press the Restart Button.

Veuillez redémarrer votre ordinateur. Maintenez la touche de démarrage enfoncée pendant plusieurs secondes ou bien appuyez sur le bouton de réinitialisation.

Sie müssen Ihren Computer neu starten. Halten Sie dazu die Einschalttaste einige Sekunden gedrückt oder drücken Sie die Neustart-Taste.


Monday, June 12 2006

World of Warcraft ganks my DSL modem

[update 8/9: The ActionTec GT704 that I replaced my SpeedStream with has been rock-solid with WoW; I haven’t had a single disconnect since I started using it]

[update 6/21: I scrounged up a different brand of DSL modem, and preliminary testing suggests that this one doesn’t have the same problem. Current working theory is that excessive packet fragmentation is causing the ethernet port on the Speedstream to choke.]

I recently started playing WoW again, after a lapse of several months. I like the game, but I really hate the way it crashes my DSL modem when I turn in quests.

This is not my imagination. Frequently, the act of turning in a quest disconnects me from the Internet, forcing me to power-cycle the modem. It happened five times this morning, as I was running my Orc Warlock through some low-level Crossroads quests. Turn in quest, lose connection, power-cycle modem, log back in, repeat. It’s not the volume of data; I can flood the line with BitTorrent traffic for days, upstream and downstream, without the line going down. I think that since I got the current modem, it’s lost connection maybe once every six weeks.

Except when I play WoW. I’m stumped. And despite the fact that I know I’m not crazy, I can’t think of a way to explain this to SBC tech support that would result in useful support.

[update: more details. I’ve now repeated the crash using the PC version of WoW, and it’s 100% consistent. Turn in a quest, power-cycle the Siemens Speedstream 4100 (running in bridge mode with firmware, upgraded from today without fixing the problem). Even the direct web-admin connection goes down.

To my astonishment, SBC tech support believes me. It took a bit of doing, but I managed to get to a second-tier support guy who spoke sysadmin, and we spent half an hour on the phone diagnosing the problem. There is no evidence on his side of the modem crashing and failing to resync, or of other problems on my line. What may in fact be happening is that the uplink port on my switch is crashing, not the DSL modem at all. Connecting directly to the modem and turning in a quest worked once, but I didn’t have any other quests to test further with.]

[update: I’ve been wanting to upgrade to a gigabit switch for a while now, so I did that today, replacing the 10/100 that was connected to the DSL modem. I was able to turn in three quests without a problem, and just as my confidence started rising, the fourth quest crashed the modem. To do more serious testing tomorrow, I’ll have to move the G5 into the same room as the modem, so I can easily try with and without the switch in the loop. I’m coming to believe that it’s simply the LAN port on the modem that’s flaking out, not the software actually crashing. Supporting evidence is the fact that it’s still up enough to detect the disconnection of the phone line and reconnect when I plug it back in.]

Tuesday, July 11 2006

From Point A to Point B

I am here, at the corner of Boronda and N. Main in Salinas. I wish to go here, to a parking garage in Palo Alto.

Yahoo thinks I should take US-101 to CA-85 to I-280 to Page Mill Road to Alma to University. 76.2 miles, 78 minutes.

Mapquest thinks I should take US-101 to University. 74.32 miles, 78 minutes.

I recently upgraded my car’s GPS navigation system, replacing the 2001 software with the 2005 version. Before the upgrade, it thought I should take US-101 to Oregon Expressway to Middlefield to University, which (perhaps accidentally) recognizes that University is a lousy place to get off the highway. It was a good route.

Imagine my surprise when the four-years-newer firmware proposed the following route: US-101 to Espinosa to Castroville Road to CA-1 to CA-17 to CA-85 to US-101 to University. 78.25 miles, 95 minutes.

the long way...

This is not a “scenic route” option; the car thinks it’s offering good advice, despite the fact that you can persuade it to admit that both Yahoo’s and Mapquest’s suggestions are both shorter and faster. They’ve significantly changed the way they weight different roads, and I haven’t figured out where the “don’t be stupid” button is.

And I need to, because this is a mind-bogglingly stupid route, starting with the very first turn. Espinosa is a two-lane highway with heavy farm traffic, and getting onto it from US-101 requires making a left turn across southbound traffic, from a full stop. When you eventually make it to Castroville, the speed limit in town is 25mph. CA-1 is two lanes of lovely coastal highway up to Santa Cruz, with lots of trucks struggling to navigate the hills and curves. CA-17 is a very pretty – and ridiculously crowded – drive through the Santa Cruz Mountains. CA-85 isn’t nearly as bad as it used to be, but even with the recent improvements, merging back onto US-101 at the north end can be messy during rush hour.

Unfortunately, my ability to control routing decisions is limited to flavor (“shortest”, “fastest”, “maximize highway”) and “avoid this road”. I don’t want to tell it to avoid Espinosa, because when it’s not rush hour, it’s the fastest route to the Borders in Seaside, and it’s always the fastest way back from the coast.

[update: when calculating the B-to-A route, the new version of the software agrees with the old one, and combining that with the Mapquest picture gives me a pretty good clue about what’s going on. I think US-101 between Salinas and Watsonville is being weighted as a non-highway road, making Espinosa/Castroville the shortest path to a highway. Either the old data gave that stretch of 101 a better rating, or the new software optimizes for starting road conditions at the expense of overall trip quality.

So, if I tell it to avoid the stretch of Castroville Road just before CA-1 North, it should change the weights enough to send me up 101 when going to Palo Alto without interfering with route planning to Seaside. The potential downside is that it might try to route me up 101 to CA-17 to reach Santa Cruz, but that depends on just how heavily it weights the “avoid this road” markers.]

[update: oh, this is getting good. I set an “avoid this area” marker on Castroville Road just past the 156 south exit, so it wouldn’t interfere with routing to Seaside and Monterey. The car recommended taking 156 south to the next exit to get onto CA-1.

So I moved the marker a bit further down the road, past that exit, and the car took 156 south a bit further to reach CA-1. So I moved the “avoid this area” marker onto CA-1, and the car routed through Hollister.

Along San Juan Grade Road. This is a paved goat path running through the Gabilan Mountains.

However, if I remove all of the “avoid” markers and set a waypoint along 101 near San Juan Batista, the car gives me a perfectly sensible route, which it admits is shorter and faster than all previous recommendations (74 miles, 69 minutes).]

Thursday, August 17 2006

They still don’t get it…

[last update: the root cause of the Linux loopback device problem described below turns out to be simple: there’s no locking in the code that selects a free loop device. So it doesn’t matter whether you use mount or losetup, and it doesn’t matter how many loop devices you configure; if you try to allocate two at once, one of them will likely fail.]

Panel discussions at LinuxWorld (emphasis mine):

“We need to make compromises to do full multimedia capabilities like running on iPod so that non-technical users don’t dismiss us out of hand.”

“We need to pay a lot more attention to the emerging markets; there’s an awful lot happening there.”

But to truly popularize Linux, proponents will have to help push word of the operating system to users, panelists said.

… at least one proponent felt the Linux desktop movement needed more evangelism.

Jon “Maddog” Hall, executive director of Linux International, said each LinuxWorld attendee should make it a point to get at least two Windows users to the conference next year

I’m sorry, but this is all bullshit. These guys are popping stiffies over an alleged opportunity to unseat Windows because of the delays in Vista, and not one of them seems to be interested in sitting down and making Linux work.

Not work if you have a friend help you install it, not work until the next release, not work with three applications and six games, not work because you can fix it yourself, not work if you can find the driver you need and it’s mostly stable, not work if you download the optional packages that allow it to play MP3s and DVDs, and definitely not work if you don’t need documentation. Just work.

[disclaimer: I get paid to run a farm of servers running a mix of RedHat 7.3 and Fedora Core 2/4/5. The machine hosting this blog runs on OpenBSD, but I’m toying with the idea of installing a minimal Ubuntu and a copy of VMware Server to virtualize the different domains I host. The only reason the base OS will be Linux is because that’s what VMware runs on. But that’s servers; my desktop is a Mac.]

Despite all the ways that Windows sucks, it works. Despite all the ways that Linux has improved over the years, and despite the very real ways that it’s better than Windows, it often doesn’t. Because, at the end of the day, somebody gets paid to make Windows work. Paid to write documentation. Paid to fill a room with random crappy hardware and spend thousands of hours installing, upgrading, using, breaking, and repairing Windows installations.

Open Source is the land of low-hanging fruit. Thousands of people are eager to do the easy stuff, for free or for fun. Very few are willing to write real documentation. Very few are willing to sit in a room and follow someone else’s documentation step-by-step, again and again, making sure that it’s clear, correct, and complete. Very few are interested in, or good at, ongoing maintenance. Or debugging thorny problems.

For instance, did you know that loopback mounts aren’t reliable? We have an automated process that creates EXT2 file system images, loopback-mounts them, fills them with data, and unmounts them. This happens approximately 24 times per day on each of 20 build machines, five days a week, every week. About twice a month it fails, with the following error: “ioctl: LOOP_SET_FD: Device or resource busy”.

Want to know why? Because mount -o loop is an unsupported method of setting up loop devices. It’s the only one you’ll ever see anyone use in their documentation, books, and shell scripts, but it doesn’t actually work. You’re supposed to do this:

LOOP=`losetup -f`
losetup $LOOP myimage
mount -t ext2 $LOOP /mnt
umount /mnt
losetup -d $LOOP

If you’re foolish enough to follow the documentation, eventually you’ll simply run out of free loop devices, no matter how many you have. When that happens, the mount point you tried to use will never work again with a loopback mount; you have to delete the directory and recreate it. Or reboot. Or sacrifice a chicken to the kernel gods.

Why support the mount interface if it isn’t reliable? Why not get rid of it, fix it, or at least document the problems somewhere other than, well, here?

[update: the root of our problem with letting the Linux mount command auto-allocate loopback devices may be that the umount command isn’t reliably freeing them without the -d option; it usually does so, but may be failing under load. I can’t test that right now, with everything covered in bubble-wrap in another state, but it’s worth a shot.]

[update: no, the -d option has nothing to do with it; I knocked together a quick test script, ran it in parallel N-1 times (where N was the total number of available loop devices), and about one run in three, I got the dreaded “ioctl: LOOP_SET_FD: Device or resource busy” error on the mount, even if losetup -a showed plenty of free loop devices.]

Tuesday, August 29 2006


Current stats across all my email accounts: 115 spams/day, 30 of them caught by Mac Os X’s Junk filtering, 85 ended up in my Quarantine folder (people who aren’t in my address book or email history).

Best news: 0 false positives in the most recent ten days worth of email. By its nature, the Quarantine folder will occasionally contain real email from someone who’s trying to reach me for the first time, but I have a variety of other rules that do a pretty good job of detecting common cases. I also create custom addresses for every new vendor and site membership, and a monthly disposable address for this blog, and all of those get filtered into special folders.

I haven’t set up anything more sophisticated, largely because the problem is under control. About twice a month, something makes it into my real Inbox, and that’s not worth the effort.

Saturday, September 2 2006

This should be easy…

I have a large stack of unencrypted (well, they are now…) DVDs. Each one contains several short video clips, correctly separated with chapter marks. I want a new DVD containing a subset of those clips, arranged in the order of my choosing, with a simple menu structure, and without re-encoding any of the videos. A mix disc, as it were, with no quality loss. So far, every Open Source or free tool I’ve tried has choked.

I’ve tried three different VOB-splitting tools. All of the available author-from-VOB tools choke on them, because they’re missing the embedded tags that make it a real DVD-compatible VOB (e.g. muxed with “mplex -f8”). Demuxing (either directly from the DVD or from split VOBs) produces an audio track that none of the tools can read, not even the same tool that just demuxed it; they all claim it’s unsupported. mplayer, ffmpeg, ffmpegX, mjpegtools, dvdauthor, transcode, etc, etc, all the same. mplayer cheerfully plays the DVDs (and the single-chapter VOBs), but it only successfully demuxes if the audio is AC3 or MP2; mine are all PCM.

[side note: ffmpegX and HandBrake both have a tendency to produce garbage in either audio or video when used to transcode and compress DVD video; there are options that work correctly with both, but many things that should work don’t.]

It seems the only realistic solution is to rip to DV and drop them into iDVD, accepting the quality loss from re-encoding. Everything else involves spending more money than the task is worth.

Wednesday, September 20 2006

The sweet smell of paranoia

I cherish these people. From the wipe manpage:

I hereby speculate that harddisks can use the spare remapping area to secretly make copies of your data. Rising totalitarianism makes this almost a certitude. It is quite straightforward to implement some simple filtering schemes that would copy potentially interesting data. Better, a harddisk can probably detect that a given file is being wiped, and silently make a copy of it, while wiping the original as instructed.

Recovering such data is probably easily done with secret IDE/SCSI commands.

My guess is that there are agreements between harddisk manufacturers and government agencies. Well-funded mafia hackers should then be able to find those secret commands too.

Don’t trust your harddisk. Encrypt all your data.

Friday, January 12 2007

Please tell me they’re kidding

I always knew graphic designers were a little goofy, but come on:

COLORSTROLOGY™ Widget combines astrology and numerology with intuitive wisdom and the spiritual power of color to create a personal color for every day and month of the year. By blending the colors that are associated with the sun sign, ruling planet, and elements such as fire, earth, air or water, with the numerological vibration of each day, the colors for the COLORSTROLOGY calendar are selected, along with key words that best describe the personality traits associated with that color and day.

This is part of Pantone’s web site, and they even offer a Dashboard widget for offline shweng fui magic color selection. And there’s a book, and an official “colorstrology” web site, with a Flash intro that suggests it’s completely serious.

Friday, March 23 2007

Buying Windows laptops for work…

Rory has ranted a bit about our recent laptop troubles. After giving up on those two companies, and not being able to fit ThinkPads into the budget, we looked for an alternative. These days, we’re also constrained by the desire to avoid becoming a mixed XP/Vista shop, so I went to the vendor who likes us the most, PC Connection, and sorted through their offerings.

The first “fix me now” user really, really wanted a lightweight machine, and had a strong affection for Bluetooth, so we bought him a Sony VAIO SZ340P and bumped the memory to 1.5GB. He loves it, and I was pretty pleased with the out-of-the-box experience as well (including their new packaging). There are only three real problems: it takes half an hour and three reboots to delete all of the crapware that’s preinstalled, you have to spend an hour burning recovery DVDs because they don’t ship media, and the default screensaver plays obnoxious music on a short loop.

The second user liked the SZ340P, but wanted something even lighter, so we bought her the SZ360P. It’s a quarter-pound lighter, uses the same docking station (which ships without its own power supply, but uses the same one as the laptop), and is also a really nice machine.

The downside of 4-pound laptops is they’re not as sturdy, so for the next four new-hires in line, I looked for something a little bigger, and ended up choosing the BX640P, with RAM bumped to 2GB. Different docking station (nicer, actually, with room for an optical drive and a spare battery to keep charged), different set of crapware, and not a widescreen display, but a better keyboard and a sturdier feel, and I’m equally pleased with its performance.

The only serious negative: it looks like the BX series will be discontinued, so when they run out and I need to start buying Vista machines, I’ll have to switch series. At the moment, I’m leaning a little toward the FE890 series, but PC Connection doesn’t stock the full range yet, so I can’t get the CPU/RAM/disk combination I want. With luck I can put that off for a few months, though.

With the previous brand, 2 of five had video and wireless problems. The five VAIOs I’ve set up so far have been rock-solid, and I expect the same from the other three that just arrived.

Sadly, while we’ll be able to put off the Vista migration for a little while (hopefully until Juniper gets their VPN client working…), Microsoft Office 2003 is a dead product, and starting Monday we’ll have users running 2007. On each user’s machine, I have to open up each Office application as that user, click the unobtrusive button that looks like a window decoration, click on the “{Word,Excel,PowerPoint} Options” button, select the Save tab, and set the “Save files in this format” option to use the Office 97-2003 format. Or else.

[Update: Actually, if you like ThinkPads and you’re willing to buy them right now, PC Connection has some nice clearance deals. If we were a bigger company, I might find the “buy 15, get one free” deal attractive…]

[4/17/2007 update: okay, one of the Sony BX laptops just lost its motherboard, after locking up at random intervals over a week or two. That still leaves 9/10 good ones, which is better than we got with Dell and Alienware.]

Friday, April 13 2007

Open-slot surgery

Slot-loading optical drives suck, especially when they refuse to eject a disc that shouldn’t be allowed into the hands of J Random Technician down at the Apple Store (or anywhere else, really).

For future reference, if you really, really need to crack open a MacBook Pro and peel the optical drive open, the nice folks at Other World Computing have you covered.

Be sure to pick up a Torx size 7 and a Philips size 000 before starting, and keep very careful track of which screws came from where. And don’t forget to plug the keyboard back in before you seal it back up.

Sunday, May 13 2007

Dear Adobe,

Please stop embedding Reader in my browsers; it’s a horribly bloated application that renders PDF files a dozen times more slowly than Preview.app, and frequently manages to peg the CPU and lock up my browser while failing to render a document.

Tuesday, June 12 2007

Sony says: “we’d rather sell laptops than force Vista on you”

Well, for corporate customers, at least.

It’s no secret that Vista sales have been sluggish, with many people (and most companies) preferring to stick with Windows XP for now. Retail sales are pretty much Vista-only, though, and online dealers have a strong preference for it as well.

At my company, application compatibility has been the main reason to avoid Vista (as opposed to Office 2007, where “user pain” tops our list). If all their apps and peripherals worked, I think most of our users would quickly adapt to Vista, and prefer it over XP.

Until that day comes, we’re sticking with the XP-based models in Sony’s SZ and BX series, which continue to deliver excellent performance and stability (one motherboard failure in 20+ machines, quickly repaired). I’ve been casually keeping an eye on Sony’s lineup, on the assumption that when the existing supply of XP-based VAIOs runs out, it will be Vista time.

Maybe not. Today’s press release from Sony Japan only has assorted versions of Vista on the A, F, and G series, but still offers XP on the brand-new widescreen BX’s. The BX series is still completely absent from sonystyle.com, but now that the new model has been announced in Japan and Europe, it should show up soon here.

Sadly, all recent models in the lightweight SZ series (beloved by our non-Mac-using executives) are Vista-only, but unless we hire a lot more execs soon, we’re in pretty good shape there.

Friday, June 22 2007

Gosh, thanks, PC Connection!

I ordered one of these (250GB laptop SATA drive) a few weeks ago, knowing that they weren’t in stock yet. Today, PC Connection says they’re in stock, shipping today, but mine is still marked “back-ordered”, and a call to customer service confirms that it won’t ship until around July 9th.

Why? Because it’s in stock in California, and she said that orders going to California have to ship from a warehouse in another state. So my shiny new drive has to be loaded onto a truck, driven a thousand miles or so, and then overnighted back to California.

And she’s not kidding. If I try to place a new order, it shows as “in stock, shipping today” right up to the moment I try to finish the transaction, at which point it switches to “2+ weeks”.


[7/5 Update: we just got bit by this again, when we ordered a shiny new “in-stock” LED-backlit MacBook Pro for a new hire. It arrived two weeks after he did, shipped from Nashville. Meanwhile, I’m still waiting on my new drive…]

[7/10 Update: still hasn’t shipped, and customer service confirms that they still haven’t managed to ship any from their warehouse in California to their warehouse in Nashville. So, I ordered another one from Other World Computing, who’s had it in stock for weeks for $20 more, and who promises to have it on my desk by 10am tomorrow. I might leave the other order open and expense it at work; we’ve got several laptop users who’d love to have 250GB.]

Wednesday, July 4 2007

Perhaps I should have stopped here…

Recently I picked up a new battery on Amazon for my ancient Sony VAIO XG-19. I used to use it to VPN into Microsoft to work from home, but that meant running XP Pro, which is not terribly pleasant with 256MB of RAM. So, I could either use the original restore CDs to put Windows 98 back on, or I could free it from the chains of Microsoft (and complete hardware compatibility, but who needs all those ports and drivers anyway…).

First up was OpenBSD 4.1, which I’m quite fond of for firewalls and hostile-universe-facing servers. I didn’t expect much, and certainly the manual package retrieval and dependency tracking is a pain in the ass when configuring it as a desktop, but it worked, and I only had to tweak one line in the supplied xorg.conf to get it running. VLC wasn’t terribly happy about my limited video memory and pathetic CPU, but I wasn’t really expecting a multimedia powerhouse. There’s only so much you can do with a 650MHz Pentium III.

Fedora 7 blew chunks.

Fedora7 installing on a Sony VAIO XG19

It actually made it all the way through if I forced it to install in text mode, but the same DVD I installed the OS from couldn’t be mounted after the install finished (to add Emacs, of all things, which was inexplicably missing from the selected packages), and the first reboot after the install locked up good and hard after loading the Sony JogDial driver.

I have no desire to ever look at Ubuntu again, so I suppose I’ll give the latest Debian a try before going back to a BSD variant.

[Update: Debian 4.0 installed just fine, and after tracking down the magic to get the synaptics driver to stop accepting taps as double-clicks (blech), setting the right options for the neomagic video driver, and locating the libdvdcss2 package, it’s running fairly well. DVDs actually look pretty good, and the drive is old enough not to require a region-unlocking firmware update. The downside: modern Linux distributions install more crapware than Sony does. Oh, and I still needed to install Emacs myself…]

Claws Mail doesn’t appear to suck

My friends keep whining about certain behaviors in Apple’s Mail.app. Specifically, the inept way it wraps URLs in allegedly plaintext email, which simply don’t work in most other mailers. I can’t really defend its behavior, because I think that Mail.app’s concept of “plain text” is pure shit and violently anti-WYSIWYG, obviously only tested against itself. [note: don’t bother complaining to Apple, the bug will be closed with “working as intended”]

Claws Mail seems to be much more sensible, and at this point I’d cheerfully send some cash to support a native port to Mac OS X. The X11 port works, but it’s a bit clumsy to use (especially for Japanese; Apple’s X11 server doesn’t support their own Kotoeri input method, so you have to use an external editor), and like virtually all Open Source applications, it’s in desperate need of user interface design. I need to poke around some more and see how it handles some of the features I rely on in Mail.app (particularly SpamSieve), but the initial experience is pretty good, and it sends honest-to-gosh plain text.

There’s a native Windows port available, but it hasn’t been updated in quite a while (2.4, current is 2.10).

[Update: Tip for the day: don’t open an IMAP folder containing 17,167 messages. Claws locks up until it finishes downloading and processing all of their headers, and then (at least on Mac OS X) the X server locks up for a few minutes when you try to scroll through the massive message list too quickly.

Mind you, until today I didn’t know that I had an IMAP folder with 17,167 messages in it (it was a trash folder full of spam, on a server I’d only been reading via POP), so I really can’t blame Claws Mail for being a bit overwhelmed. And to its credit, it recovered perfectly when the X server came back, and the memory footprint was still nice and lean.

It doesn’t look like the Mac port includes any plugins right now, so I need to keep something else around to handle spam. The account I most want to get mail from is of course the one with the most spam, so I need to continue processing it through SpamSieve for now. Most likely, what I’ll do is leave Mail.app running with SpamSieve on one of my machines, but turn off all of the other filtering rules and port those to Claws.]

Thursday, July 19 2007

More fun with old laptops

I’m playing with my old Sony XG-19 again. As reported earlier, OpenBSD 4.1 worked but never played DVDs, Fedora 7 blew chunks during the install, and Debian 4.0 worked fine, requiring only a few xorg.conf tweaks and a copy of libdvdcss2.

But it sucked for Japanese, so it had to go. There are all sorts of input managers and applications available, but they don’t all play nice with each other, and the system setup assumes that anyone who wants to type in Japanese wants a completely localized system. You can work around this, eventually, but I lost patience.

So I tried CentOS 5. The graphical install worked fine, the xorg.conf file only needed a one-line change to shut off double-tapping on the trackpad, and once you find DAG, it’s easy to get DVDs playing with VLC (Totem steadfastly refuses to admit which of its plugins are missing, and nothing I install seems to placate it, but who cares?).

The Japanese support in CentOS is much more mature, and offers a user experience reasonably close to Mac OS X or Windows. The default keybindings are naturally different from anything you’ve ever used before, but one has to make some concessions when dealing with Open Source, and it has a “behave like Windows” option.

Now to build the current version of Claws Mail…

[Update: got Claws 2.10 built and running, and unlike my Debian install, it plays nice with the Japanese input method.]

Thursday, July 26 2007

Two days, two dead Sony laptops

Yesterday, a user’s VAIO BX640 dropped dead in the middle of a meeting. It didn’t come back, and by that I mean “nothing happens when you press the power button”. After swapping in different battery and power supply, I called for service.

This afternoon, another user reported that he wasn’t getting sound out of his BX640, and the headphone jack just made ticking noises. It doesn’t even make the magical VAIO noise when you power it on. I swapped parts around, reset the BIOS, etc. No luck. This isn’t a critical issue, so I’ll wait until Monday to ship it off for service, but it’s disturbing, because they’re both motherboard problems. And so was the only other one of my (more than a dozen) BX640s to fail so far, several months ago…

Tuesday, September 11 2007

Dear Roxio,

Your DigitalMedia SE software is installed on one of our Windows laptops (Sony ships the damn thing, in fact). It’s supposed to help users burn DVDs. When I pushed the little button to burn a disc containing 3+ GB of data scattered across several thousand files, a little dialog box popped up complaining that 6 of the files couldn’t be written.

This was in a fixed-width window, and the files were listed with their full pathnames, cut off at the end of a non-resizable column. I have no idea which 6 files can’t be burned to the DVD, and your software refuses to tell me. Obviously no one at your company has ever actually used your product.

Monday, October 8 2007

Dear Sony,

Why on Earth are you shipping a brand-new, business-class laptop with a 14-inch 1024x768 display?!?!?

Tuesday, February 19 2008


Asus EEE PC Japanese SLogan

This is the Asus EEE PC slogan localized for Japan: “manabu hataraku asobu”, which copies half of the English slogan, leaving out the whole “easy” part. Then again, it ships with Windows XP instead of a dumbed-down Xandros derivative, which might make it less approachable for a complete novice, but definitely more familiar to the Windows-centric Japanese audience.

Now that there’s a working Fedora 8 distribution for the EEE (thanks to the new official kernel support and Philip Pemberton’s RPMs), I can really start using mine. The supplied Xandros-derivative was amusing, but much too limited. Among other things, WPA2 Enterprise wireless was messy to set up, the Juniper VPN software simply didn’t work, and I really, really like chkconfig.

The most important software I’ll use on it? Claws Mail, Perl, emacs, minicom, Firefox, and StarDict. StarDict isn’t as useful a Japanese dictionary as Jedict for the Mac, but at least it uses the same source data. I’d prefer the “Green Goddess” dictionary that’s being included in some of the recent handhelds, but the EEE is small enough for most occasions, and I’ve already got a WordTank and a DS Lite running Kanji sonomama.

I was expecting another 9

After making my latest Amazon order (no, not the boy’s shoes they recommended because I rated a Microsoft mouse, or even the Bourne Ultimatum DVD they recommended because I bought a book on Tokyo (although, to be fair, I did see that movie dubbed into Japanese…)), an HP ad popped up that included a statement that seemed surprisingly honest:

HP honesty

Ink-cartridge technology must be pretty bad when you’re proud that only one in a hundred are no good.

Monday, May 12 2008

Etoan Irshlu

We’re used to getting our laptops back in… “worn” condition. Usually just cosmetic wear and loose display hinges, but some of them get dropped or otherwise abused (our CEO apparently uses his MacBook Pro to stop bullets), and a few have been completely trashed.

The one we recently got back from our copy-writer when she left the company (“Hi, Sue!”) was special.

(Continued on Page 2986)

Thursday, May 15 2008

Dear Fedora 9 developers,

Please tell me that the new GUI package manager is an early alpha, and that the dreadful performance, almost-invisible feedback, downright misleading “install security updates?” dialog box, and reduced functionality is a temporary aberration.

With that minor gripe out of the way, I just need to build the EEE wireless and ACPI packages on a VMware session, grab the updated RPMs that fix Japanese text entry, and then reinstall with a slightly-less-insane package selection, but out of the box, F9 has decent sound, video, and wired ethernet support for the EEE. I found it fairly easy to switch to a full Sun Java install, which got our Juniper VPN software working.

As a side note, while playing around with the new install, I finally confirmed that the furigana and vertical-text-layout features in OpenOffice interoperate with MS Word correctly; the UI is completely different, but it sucks in both, so that’s not necessarily a criticism. Given what an ugly hack furigana is in Word to begin with, I’d say one of the OO developers earned his lunch money on that one.

[this is mostly a theoretical issue for me, since a Word license costs me less than lunch at McDonalds, but it’s nice to know that people for whom Word costs a few burgers can get by for free]

[Update: to clarify a bit on one of the above points, when I turned on my EEE this morning, F9 popped up a dialog informing me that three important security updates were available. Unfortunately, clicking the “Update computer now” button silently installs eight updates, and I can’t even get a list of them without closing the dialog, clicking on the star-bang icon at the top of the screen, selecting “show updates”, and then selecting “review”. In addition to the security updates, it also updates libvorbis, the UpnP SDK, PPP, some Japanese bitmap fonts, and the OS release notes. Bad design.]

[Update: the pop-up window doesn’t have a scrollbar, either, so when I booted up a small-screen machine that had 21 security updates, I couldn’t even see the buttons.]

Monday, June 23 2008

Dear Parallels,

I’m sorry, but companies who forge email headers do not inspire customer confidence:

From: <Parallels@yes.yes>
To: "J Greely" <______@ooma.com>
Reply-To: "Parallels, Inc." <central@parallels.com>
Subject: 2 Licenses. Only $20 Each! Parallels Desktop 2-Pack
Date: Mon, 23 Jun 2008 10:03:40 -0700
Message-ID: <C109DF91B795BC2452F2EF13323BC8D2834B706F8164CD34@ontarget.crmgroupusa.com>

Please fire the idiots responsible.

[Update: they sent it out again with a decent From: header:
“From: “Parallels Inc” <central@parallels.com>]

Wednesday, July 9 2008

Dear Emacs,

Here’s what I think of your “modes”:

(defun perl-mode (&optional foo) (interactive “p”) (fundamental-mode))
(defun cperl-mode (&optional foo) (interactive “p”) (fundamental-mode))
(defun text-mode (&optional foo) (interactive “p”) (fundamental-mode))
(defun html-mode (&optional foo) (interactive “p”) (fundamental-mode))
(defun sgml-mode (&optional foo) (interactive “p”) (fundamental-mode))
(defun sh-mode (&optional foo) (interactive “p”) (fundamental-mode))
(defun java-mode (&optional foo) (interactive “p”) (fundamental-mode))
(global-set-key (kbd “TAB”) ‘self-insert-command)
(setq-default inhibit-eol-conversion t)
(setq default-tab-width 4)
(put ‘narrow-to-region ‘disabled nil)

Thursday, July 17 2008

Dear Adobe,

I think I’ve figured out why the Creative Suite 3.3 Standard (upgrade version) installer insists that you exit every running application and not try to use your computer at all until it’s finished: you don’t want anyone to find out that the guy who wrote it doesn’t know how to manage memory.

I made the mistake of trying to open a file containing all my software licenses, so I could look up my CS2 keys if they were needed to validate my upgrade, and I couldn’t fork a process to do so.

What’s more, the act of opening a terminal window to look at the file caused the installer to fail on the current and pending pieces of the application. I had to stop, undo the partial install, clean up some other cruft, and do it all again.

Later, after I started using my computer again, I ran the updater, and since it looked like it was going to take forever, left it overnight. Sometime in the wee hours, the InDesign update noticed that Safari was running and aborted, throwing up a dialog box that blocked the rest of the updates as well.

Gosh, thanks. I just remembered why I hate upgrading your software: my time is worthless to you.

PS: remember when complicated expensive professional software came with documentation? Yeah, didn’t think so.

Tuesday, July 22 2008

Dear PocketMac,

Blow me.

PocketMac for BlackBerry

“Hi, I’m a badly-written installer for a small utility that does only one thing, and does it poorly. You’re stuck with me, though, so I can fuck up your machine as much as I want and make you spend half an hour getting your environment back the way you like it.”

“PS: this update might fix your problem. Or not. But I’m going to make you reboot just to find out. Nyah nyah.”

Wednesday, August 27 2008

“Welcome to the ISS Andromeda Strain”

“We are not responsible for any mutations that cause your virus-infected laptop to wipe out human civilization after your return to Earth. Unless you land in Berkeley, in which case we’re totally claiming the credit.”

from the BBC: “Nasa has confirmed that laptops carried to the ISS in July were infected with a virus known as Gammima.AG.

“The worm was first detected on Earth in August 2007 and lurks on infected machines waiting to steal login names for popular online games.”

Wednesday, September 10 2008

Stop the “/tmpu/”!

I love the feel of the Matias Tactile Pro keyboards. The plastic case is so cheap that my first two are now held together with gaffer tape, but the key action is great. So, back in January, I bought the new 2.0 version, with programmability that I don’t need and a USB 2 “hub” “dock” extension cord that turns out to be spectacularly useless. And the same horribly cheap plastic case.

I haven’t broken the case on the new one yet, but in the past few days, the damn thing’s come close to breaking me. It generates spurious keystrokes, you see, and its current trick is generating “/tmpu/” roughly 1/3 of the time when I type “/tmp/”. If I plug it into a Windows box, it generates “/tmp/u” instead, and more frequently.

For weeks, now, I’ve been wondering about the gradual increase in the number of typos I’ve been generating. I just thought I was tired from all the late-night testing sessions and the stubborn persistence of my sinus whateverthehellitis problem.

Nope, my keyboard is trying to kill me. Do you have any idea how many times a day I type “/tmp/”? Aaaargh.

Monday, September 15 2008

Dear Matias,

[Update 10/24/08: after informing them on 10/2 that the replacement was also defective and that it was heavily used (the one I exchanged for it was pristine, by the way), I have never heard from them again. Their customer service is as bad as their engineering.]

[Update: the replacement arrived used. Not “previously owned”, used. As in filthy, sticky, and filled with hair and food from the previous owner. It’s also even worse for typing, generating phantom keys under even more conditions, like attempting to type the word “since” (which comes out “sincey”) at a normal speed. It’s junk, and I’ll never buy a keyboard from them again.]

Fuck you. “Thank you sincerely for eventually agreeing to replace the defective product and ship the replacement in parallel.”

When I sent a support message about my still-under-warranty expensive keyboard suddenly generating spurious keystrokes, I expected a better answer than this:

What you are experiencing is called a “shadow key” or “phantom key” or “ghost key”. Every keyboard has them (in different locations) but most people don’t notice them, because they don’t type the key combinations that produce them. They are an artifact of how keyboards are built.

There is a workaround…

You can turn On the Sticky Keys feature on the Universal Access control panel, in System Preferences. This will allow you to press & release the Command and Shift keys together, and then press the key being modified on its own.

We are very sorry for the inconvenience…

This is the most useless “workaround” I’ve ever seen. “Can’t touch-type on your keyboard? DON’T TRY!! Problem solved!”

Never mind that I simply don’t believe their explanation…

Saturday, November 29 2008


When you alert me that a server is running out of swap space, I really don’t want to log in and find out that you’re the one using up all of the virtual memory.

Wednesday, December 3 2008

“My god, it’s full of cars”

Last week, I got a letter reminding me that my 2002 Lexus RX-300 was due for its 200,000-mile service. Monday, I called the dealership near my office to schedule it. The service tech asked for my phone number, typed it in, and said:

S: Wow, you’ve got a lot of cars.

J: Um, no, just the one.

S: I see at least 50. No, wait, 115.

J: By chance, are any of them a 2002 RX?

S: No. Is your address 1721 Del Monte?

J: No. But you have the right name and phone number.

S: Um, okay, we’ll just schedule this manually, and I’ll tell someone about the glitch.

A few minutes later, I realized why the address he gave sounded so familiar: it’s the dealership I originally bought the car at, in Monterey. I figured he had just clicked the wrong option and ended up looking at their inventory.

No. When I showed up the next morning, they typed in my name and said, “wow, you’ve got a lot of cars.” I pointed out the address, and someone laughed and said he knew what had happened:

everyone has admin privileges in the system, and the last time I’d come in, the tech had made the “rookie mistake” of transferring every car at another dealership into my name instead of transferring my car’s home dealership from there to here.

He was surprised that I hadn’t gotten 115 warranty service reminder calls.

Sunday, December 7 2008

Intel != Qeng Ho

But hey, it’s a start.

Tuesday, December 23 2008

Dear Redhat,

When someone installs a machine and enters somedomain.net as the hostname, please do not insert the line “search net” into /etc/resolv.conf.

Wednesday, December 24 2008

You know what Anaconda really needs?

An Unselect All button, so you don’t have to manually click on dozenshundreds of “optional” packages that are installed by default. It’s pretty sad that the easiest way to reduce the amount of cruft in a Fedora/Redhat/CentOS install is to ignore the GUI package selector, install once, save the resulting Kickstart config, load it into a text editor, strip out everything you’re sure you won’t need, re-install with that template, and then see if you ended up with a bootable system.

This still installs a lot of stuff that you’ll never need or want, but at least the resulting package list is smaller, and after a few iterations you can build a decent server or netbook install.

[Update: If my script is correct (package selection from comps.xml and dependencies from primary.sqlite), installing Fedora 10 without changing the default list of packages will install 1099 1109 1116 1070 RPMs out of 2218 total; stripping out the default-but-optional packages brings that down to 510 514 522 505, which still includes a working Gnome desktop environment. A typical offender is a2ps, which pulls in texlive, imagemagick, ghostscript, ncurses, groff, and plenty of others (even libthai!).]

I’d also like a Really, Really Unselect Everything That Isn’t Necessary For This Locale button; “core” and “base” still have a fair amount of cruft in them.

Note: this is not a Linux-versus-{Windows,Mac,whateverdude} posting; it’s just about the difficulty of overriding the decision to include every precious snowflake’s package in the standard install. The decision to enable every compile-time option doesn’t help, either, since you end up pulling in half a dozen other packages on the off chance that the user is in an environment where one of them might matter.

Why do I care? Because about six weeks ago, I did an update on my EEE PC running Fedora 9, and there were so many updated packages that I didn’t have enough free disk space on the 4 GB flash drive to download them all, much less unpack and install. I had to symlink the yum directory to a loopback-mounted ext2 image on another flash drive (because the drive itself was FAT32, which wasn’t good enough).

[note on the twice-updated RPM counts: my script wasn’t handling conditional packages correctly. I was processing conditionals before resolving all dependencies, so it missed cases where the package in the condition was added by a dependency, not by another group. A good example is language packs for OpenOffice: you select the packages for each application, all of which depend on the -core package; when you add support for a language, it adds the office language packs if it sees -core.]

[Update: Okay, I had to completely redo the dependency resolution, because multiple non-conflicting packages supply the same requirements. Anaconda chooses exactly one of them, apparently based on the length of the package name (shortest wins). My script now produces exactly the same results as a default install of F10, so the numbers should finally stop changing.]

Saturday, December 27 2008

The universal language

Yes, it’s the Christmas holidays and I’m tinkering with Perl scripts that parse XML files and SQL databases. It was worth it, however, to discover that the circle is now complete: Emacs requires Perl.

Also awk, bash, cpio, ping, and sed, but hey, who doesn’t need those?

[Yes, that list is so basic that it would be surprising if a package didn’t end up pulling one of them in somewhere down the dependency chain, but Emacs is a Lisp interpreter with delusions of godhood, built around text processing; why would it want Perl? Turns out there’s exactly one Perl script in the distribution, packaged up in emacs-common: /usr/bin/grep-changelog]

Saturday, January 3 2009

Just for Pete…

Fedora 10 correctly handles FA19 in various applications, including OpenOffice.

(Continued on Page 3210)

Thursday, January 8 2009

How do you turn it on?

Announced at CES: The 3GSpot. It’s open to negotiation, anytime, anywhere. All it wants is a little power, and it guarantees you a good networking experience. Use it alone, or share with your friends. Perfect for when you’re on the road and you need to make a personal connection in your hotel room.

Wednesday, January 21 2009


As a general rule, one does not expect to find that replacing a single server with several significantly faster ones has reduced performance by a factor of four. On reflection, however, perhaps it is inevitable that the word “cluster” must be followed by the word “fuck”.

Wednesday, February 11 2009

Free as in “can I use this to swim to Miami?”

Cuba is creating its own Linux distribution. Everything’s backwards-compatible and memory is free, but there are no drivers, and everyone has to share the same library.

Networking support, is, of course, limited to the CCCP protocol.

Wednesday, September 2 2009

Dear Sony,

Are you sure you want to use this slogan on the look-but-don’t touch display model of your just-announced super-thin, ultralight laptop?

Sony make-believe

(via Engadget)

Friday, November 20 2009

Never trust the comments, reason # 14B7

The comment said, “calculations done in base 16”. The code said, “n % 12”.

The code wins, always.

At least it wasn’t done in a base-11 substitution cipher, because that would stump dozens of highly-intelligent alien races for centuries.

(Continued on Page 3445)

Thursday, January 21 2010

Software, good and bad

Good: Sony’s SPUDownloadManager. Lost the install CD for a Sony product, or is it old enough that Microsoft has released two new operating systems since you bought it? Plug the device into your computer, run this tool, and it installs the latest versions of all the relevant software and drivers.

Bad: Lenovo’s VeriFace. This is a biometric authentication system that uses your laptop’s built-in camera to scan your face as your password, and record the faces of people who fail to login. It includes an optional check to make sure that it isn’t being fooled by a photo, but it’s still useless, because it only works under excellent lighting conditions. You can spend upwards of a minute finding good light and staring at the screen until it recognizes you, or you can just type your password.

Thursday, February 11 2010

Random Thoughts

“I cried because I had no salt, until I met a man who had no entropy.”

Thursday, July 8 2010

I promise

“I will not laugh. I will not laugh. I will not laugh.”

At this.

I suppose there’s a chance that he’s being deliberately vague about his actual project and the scale of the data involved, but he sounds so earnest.

Tuesday, July 20 2010

Life with MongoDB

Before I ramble, let me sum up my feelings about MongoDB:

Good: easy to install, easy to start using, easy to dump a metric crapload of loosely-structured data into, easy to write basic queries and indexes, rapid high-quality (free!) support from the core development team, phenomenal cosmic power.

Bad: hard to install some drivers (Perl in particular pulls in an amazing number of poorly-specified dependencies), hard to get a metric crapload of data back out quickly, hard to write advanced queries and indexes, easy to reach “here there be dragons” territory outside the scope of documentation and guarantees and available tools, easy to lock up a server process for minutes or hours with simple operations, easy to lose everything unless you replicate to at least one other machine that has independent power, eats RAM like you wouldn’t believe.

It is, if you like, the Perl of databases, immensely powerful and versatile, but extremely dangerous in the hands of amateurs. And, like early releases of Perl, it is a rapidly-moving target that grows new functionality every time you turn your back on it.

The past few weeks have been a heady mix of excitement, frustration, satisfaction, and annoyance, as my first large-scale use of MongoDB has moved from simple prototype, to initial production version, through major bugs and poorly-documented limitations (often “already fixed in next release”), to what I hope is finally “stuff I can just leave running and go work on other projects again”.

(Continued on Page 3593)

Saturday, July 24 2010

Using MongoDB

Suppose you had a big XML file in an odd, complicated structure (such as JMdict_e, a Japanese-English dictionary), and you wanted to load it into a database for searching and editing. You could faithfully replicate the XML schema in a relational database, with carefully-chosen foreign keys and precisely-specified joins, and you might end up with something like this.

Go ahead, look at it. I’ll wait. Seriously, it deserves a look. All praise to Stuart for making it actually work, but damn.

Done? Okay, now let’s slurp the whole thing into MongoDB:

(Continued on Page 3595)

Thursday, August 5 2010

Lenovo Ideapad S12 clearance

The current generation of S12 with the ION graphics chipset has been discontinued, with all remaining inventory now in the Lenovo Outlet Store for $399. I’ve been quite happy with mine. The ION gives it decent performance for HD video and light gaming, and it has a full-sized keyboard and bright, crisp screen with decent resolution.

[Update: they also have hundreds of brand-new power supplies for $16. For that price, I can have one at home, one at the office, and one in the trunk of the car, and never carry one around. They also have a hundred or so of the 10-inch netbooks in a major scratch-and-dent sale ($220), and some refurbished 10-inch tablet netbooks]

Tuesday, August 17 2010

Effective index use in MongoDB

Three basic rules to keep in mind when trying to index that massive crapload of data you just shoved into MongoDB:

  1. All indexes must fit in physical memory for decent performance.
  2. A query can only use one index.
  3. A single compound index on (x,y,z) can be used for queries on (x), (x,y), (x,z), or (x,y,z). However, prior to 1.6, all but the last field used from the index had to be an exact match, or you might get a full table scan instead.
(Continued on Page 3605)

Saturday, August 21 2010


Just got a complaint from a user about a Perl script that wasn’t handling regular expressions correctly. Specifically, when he typed:

ourspecial-cat | grep ‘foo\|bar’

he got a match on “foo” or “bar”, but when he typed:

ourspecial-grep ‘foo\|bar’

he got nothing at all.

My surprise came from the fact that the normal grep worked, when everyone knows that you need to use egrep for that kind of search, and in any case, since the entire regular expression was in single-quotes, you don’t need the backslash. Removing the backslash made our tool do what he wanted, but broke grep.

Sure enough, if you leave out the backslash, you need to use egrep or grep -E, but if you put it in, you can use grep. What makes it really fun is that they’re the same program, GNU Grep 2.5.1, and running egrep should be precisely the same as running grep -E.

Makes me wonder what other little surprises are hidden away in the tools I use every day…

Thursday, November 18 2010

Dear Developer,

When you send me a SQL statement that updates a 600,000-record table based on a join to a 900,000-record table, please make sure there are indexes involved. Also, please don’t test on a toy database.

Tuesday, January 4 2011

Life with SSD

For a slightly-early birthday present to myself, as part of a post-Thanksgiving sale I bought myself an OWC Data Doubler w/ 240GB SSD. After making three full backups of my laptop, I installed it, and have been enjoying it quite a bit. This kit installs the SSD as a second drive, replacing the optical, allowing you to use it in addition to the standard drive, which in my case is a 500GB Seagate hybrid. I’ve set up the SSD as the boot drive, with the 500GB as /Users/Shared, and moved my iTunes, iPhoto, and Aperture libraries there, as well as my big VMware images and an 80GB Windows partition.

[side note: the Seagate hybrid drives do provide a small-but-visible improvement in boot/launch performance, but the bulk of your data doesn’t gain any benefit from it, and software updates erase the speed boost until the drive adjusts to the new usage pattern. Dual-boot doesn’t help, either. An easy upgrade, but not a big one, IMHO.]


  • Straightforward installation. There was only one finicky bit where OWC’s detailed instructions didn’t quite match reality, which just required a little gentle fiddling to get the cable out of the way.
  • Boots faster. Much.
  • All applications launch faster, especially the ones that do annoying things like maintain their own font caches. Resource-intensive apps (pronounced “Photoshop”) also get a nice speed boost for many operations, especially when I’m working with 24 megapixel raw images.
  • Apple’s gratuitous uncached preview icons render acceptably fast now. Honestly, I got so sick of delays caused by scanning large files to generate custom icons that I turned it off a long time ago (except the magic Dock view of the Downloads folder, which you can’t disable it for).
  • SuperDuper incremental backups are ~4x faster. 10-15% of this comes from not having to scan the 160GB of stuff that’s now on a separate drive, but most of it is due to not seeking around on the disk to see what’s changed. I’ve actually switched my backups from a fast FireWire800 enclosure to a portable USB2 drive, and I still save a lot of time.
  • A little better battery life, a little less heat. The hard drive stays spun down most of the time unless I have iTunes running.
  • External USB DVD drives work fine for ripping, burning, and OS installation.


  • Apple’s DVD Player app refuses to launch at all unless an internal DVD drive is present; external drives aren’t acceptable (unless there’s also an internal, in which case you can cheerfully use both, and even have them set to different regions). VLC is a poor substitute. You can get it to work with external drives… by editing the binary. Seriously, you replace all instances of “Internal” with “External” in this file:
  • Time Machine backups don’t pick up the second drive. Neither does SuperDuper, so I added a one-line script to my SuperDuper config that does:
    rsync -v -‍-delete -‍-exclude .Spotlight-V100
        -‍-exclude .Trashes -‍-exclude .fseventsd
        /Users/Shared/ /Volumes/Back2/

  • Snow Leopard seems to have lost the ability to reliably specify the mount location of a second drive. In previous releases, you could put the UUID or label into /etc/fstab and it worked. Now that file only accepts device names, which are generated dynamically on boot. This works if only two drives are present at boot time, since the boot drive will always get disk0, but having an external drive connected could result in a surprise.
  • (obvious) Can’t watch actual DVDs without carrying around an external drive.

So, file this little experiment under “expensive but worth it”. I do watch DVDs on my laptop, but only at home or in hotels, so the external drive isn’t a daily-carry accessory. The SSD has a Sandforce chipset and 7% over-provisioning, and is less than half full, so there’s no sign of performance degradation, and I don’t expect any. Aperture supports multiple libraries, so I can edit fresh material on the SSD, then move it to the hard drive when I’m done with it. Honestly, unless Apple releases MacBook Pro models that wil take more than 8GB of RAM, I really see no need to buy a new one for quite a while.

Friday, January 21 2011

“Y’see, software has layers

Just spent a merry, no wait, hellish few hours fighting to get a LaTeX distribution up and running for the sole purpose of running a single script that uses it to convert marked-up Japanese text to PDF in convenient ebook sizes.

I failed. Or, more precisely, I got all the way to a DVI file that could be displayed quite nicely on screen, with all the kanji and furigana intact, but then the PDF converter that was part of the same TeX package that had generated it started barfing all over my screen, and I refused to spend more time on the project. I simply have no desire to navigate the layers and layers and layers of crap that TeX has acquired in its hacked-together support for modern fonts and encodings.

Honestly, if I want to generate cleanly-formatted Japanese text as a PDF, with furigana and vertical layout and custom page sizes, it takes 10,000 times less effort to spit out bog-standard HTML+CSS and feed it to Microsoft Word.

[Note to the MS-allergic: performing the equivalent import into OpenOffice is possible, but not reasonable. Getting basic unstyled plaintext+furigana wasn’t too bad, but anything more complicated would be an exercise in tedious XML debugging.]

[Update: gave it another go, and eventually discovered that running dvipdfmx with KPATHSEA_DEBUG=-1 in the environment returned a completely different search path than the kpsewhich tool used. Copying share/texmf/web2c/texmf.cnf.ptex to etc/texmf/texmf.cnf made all the problems go away. At least until the next time I upgrade something in MacPorts that recursively depends on something that obsoletes a recursive dependency of pTeX and hoses half my tools.

And, no, I can’t use the self-contained and centrally-managed TeX Live distribution (or the matching GUI-enabled MacTeX). That was the first hour I wasted. Its version of pTeX is apparently incompatible with one of the style files I needed.]

Tuesday, January 25 2011

Fun with LibreOffice…

Since a new version of the free-as-in-fork LibreOffice package was just released, I thought I’d take a look and see if it’s gotten any easier to import formatted text.

The answer: “kinda”.

Good: It imports simple HTML and CSS.

Bad: …into a special “HTML” document type that must be exported to disk in ODT format, and then reopened. Otherwise, all formatting not available for web use will either disappear from all menus and dialog boxes, silently fail, or be deleted when you save (generally the result of pasting from another document).

[note that the Mac version crashed half a dozen times as I was exploring these behaviors, but it usually managed to open the documents on the second try]

Sadly, furigana are not considered compatible with HTML, so they’re stripped on import, making it rather a moot point that you can’t edit them in HTML mode. The only way to import text marked up with furigana is to generate a real XML-formatted, Zip-archived ODT file.

Sunday, February 6 2011

Spoiling my laptop, and myself

A while back, I upgraded my laptop by replacing the DVD with a 240GB SSD. This has been very, very nice, and gave me just shy of 750GB of disk space, a third of it silly-fast.

So naturally I couldn’t resist replacing the 500GB Seagate hybrid with a Western Digital 750 GB 7200rpm drive, giving me just shy of a Terabyte. And I carry another Terabyte around in the form of a WD hardware-encrypted USB drive.

If this future we live in had flying cars and catgirls, it would be perfect.

Amusingly, despite the fact that this laptop (and its daily backups…) is the center of my electronic universe, I will likely not be taking it to Japan with me at the end of March. My sister and I are only going to be in Kyoto for a week, and time spent in the hotel is time wasted. I’ll take my little Win7 netbook (can VPN to work in an emergency) and my Kindle (v3 has kanji support, and 3G Whispernet works all over Japan), but the bulk of the weight in my carry-on will consist of cameras and lenses.

The Kindle is the reason for several of my seemingly-unrelated recent entries and sidebar links, by the way, including an upcoming discussion of my grand kit-bashing project that mixes Aozora Bunko, MeCab, JMdict, MongoDB, pLaTeX, dviasm, and pdftk, welded together with a few hundred lines of Perl to produce ebooks with personalized levels of furigana and matching per-page vocabulary lists. More on that soon.

In addition to Aozora’s out-of-copyright literature, it’s easy to find much more contemporary work marked up in their format. One should of course only download such things if one is already in legitimate possession of the printed book, but once that hurdle is cleared, my version will be much easier to work through. The scripts can take a complete light novel from raw text to completed PDFs in about 10 seconds, and it only takes a few passes to find all of the unusual vocabulary and definitions, so my reading speed will be improving quite a bit soon.

Which is good, because, as I said, I’m finally going back to Japan!

Tuesday, April 26 2011

Sony, hacked

Quoting ArsTechnica:

Here is the data that Sony is sure has been compromised if you have a PlayStation Network Account:

Your name
Your address (city, state, and zip)
E-mail address
PSN password and login name

“…although Sony is still unsure about whether your credit card data is safe.”

If they got the credit cards as well, Sony is in for a world of hurt.

Wednesday, August 31 2011

Dear Lenovo,

Between the product page that focuses almost exclusively on vague descriptions of bundled apps, the extremely weak coverage of yesterday’s press conference, and the distinct lack of detailed product reviews based on actual shipping hardware, one might wonder if you’re not terribly excited about releasing the ThinkPad Tablet, even with the real digitizer hardware that makes it possible to use a stylus for more than fingerpainting.

I managed to find confirmation that it supports the regular Android Market as well as the Lenovo App Store, but does it work with Amazon’s App Store? Can you cleanly delete unwanted bundled apps, such as McAfee for Android? Does the note-taking app include all of the optional handwriting recognition languages, such as Japanese? If not, are they available as add-ons?

The product doesn’t seem to be really getting launched, y’see. Most of the press coverage is still from over a month ago, and is a mix of direct quotes from press releases and handwaved comments about how good it will be when it’s finished.

Which suggests that until this week, it was still so rough that it couldn’t be sent out for real reviews. This might have been okay if you’d been the first company to launch an Android tablet, or perhaps even if you hadn’t already shipped a similar one (without the pen) in the IdeaPad line.

[Update: the ship date keeps slipping on lenovo.com, and I don’t think it’s due to a huge number of orders…]

Wednesday, September 7 2011

“You! Out of the pool!”

Or, in this case, “Pool! Out of the loop!”, which explained how someone’s straightforward Python-based service had managed to open 350 simultaneous connections to the MySQL server in a matter of minutes, under very light load. Another one of those “glad we caught it in QA” moments.

Thursday, October 13 2011

Setuid bits at half mast

Dennis Ritchie has died.

“I feared that the committee would decide to go with their previous decision unless I credibly pulled a full tantrum.”
    – dmr@alice.UUCP

Wednesday, May 9 2012


Security advisory from Adobe about all versions of Photoshop/Illustrator/Flash/Acrobat except the just-released CS6. The fix? Buy CS6. The workaround:

“For users who cannot upgrade to Adobe Photoshop CS6, Adobe recommends users follow security best practices and exercise caution when opening files from unknown or untrusted sources.”

Monday, November 12 2012

What’s the difference between Chinese spam and Japanese spam?

Japanese spam tries to get you to join pay web sites that offer access to women. Chinese spam tries to get you to open virus-infected Excel spreadsheets.

Thursday, January 10 2013

Spin versus Truth

Adobe Acrobat release notes:

“Because PDFs are used so universally, they can be a target for hackers. Adobe provides regular updates to safeguard your computer from attacks.”

What they really mean:

“Because we took a perfectly-safe document-formatting system and crufted it up with Flash and JavaScript and anything else we could think of, downloading a PDF file is about as smart as blowing a junkie in a third-world shantytown. Have a placebo and come see us again next month.”

Thursday, October 3 2013

Adobe fails to secure credit cards

Details on nearly three million customers stolen. So, how’s that switch to renting your software by the month working out?

Thursday, October 24 2013

CMOS battery time!

So, to hide my new Kindle behind a VPN that pretends to be in Japan (so it won’t trigger region-detection forced on the ebook market by publishers), I had to resurrect an old wireless access point and put it behind a machine that could NAT out through an OpenVPN tunnel. I grabbed a dusty old Shuttle from my closet, put a fresh distribution of OpenBSD on it, and then had it lose all of its BIOS settings when I moved it to a more convenient place in the house.

I’d forgotten about the joy of replacing CMOS backup batteries; we’re so spoiled today.

Wednesday, March 19 2014

New home firewall router

On a whim, I went looking for a new small-form-factor PC to use as a home firewall. I found the Shuttle DS61, which has several things to recommend it: dual gigabit NICs, mSATA port, dual serial ports, 4x USB2 and 2x USB3, HDMI and DVI, and the ability to take up to a Core i7 and 16GB of RAM.

Everything but the USB3 ports are supported by OpenBSD, so it will make a spiffy little firewall. It would be nice to have a third NIC to run a DMZ, but the only thing I’m using a second static IP for right now is my wireless, which I can leave untouched. The CPU and RAM are serious overkill, but it means I have plenty of spare power for Openvpn and IPSec tunnels.

So, for $427.61 on Amazon, I got:

It took about ten minutes to put it together and boot it up. I did a quick OpenBSD test first to make sure everything worked, then threw a graphical install of Scientific Linux 6.4 on it to see how it worked as a potential developer box. (modulo the lightweight CPU and small amount of RAM I put in it, that is)

So far I like it. I might even hold off on turning it into a firewall for a while, and use it to replace dotclue.org and move it out of the current co-lo. I’ve been running on an old beta NetEngine for, um, too many years, with a 500MHz Pentium 3, 256MB of RAM, and an 80GB hard drive.

Friday, June 13 2014

Dear Adobe,

In your lengthy Creative Cloud survey (in which you mistakenly addressed me as a former customer), I was struck by what was missing in the list of possible answers to the question “how did you learn to use Adobe creative tools?”: books.

Apparently the kids you’ve got running the game now are so hooked on the web that they’ve forgotten that Adobe software used to ship with manuals, and that third parties used to write entire books on how to use the stuff. Or perhaps they’re too young to have ever known.

Also, I was amused when the surveydroids referred to the process of installing the CC tools as “onboarding”, and then immediately had to explain their jargon, but what the fuck does this statement mean, which I’m supposed to rank my agreement with: “I have been able to meet the objectives I set for using Adobe Creative Cloud”? The correct answer would be “you stopped selling products, so I had to start renting them, which I’m not a big fan of”.

And I love this question toward the end:

“What methods would have been helpful to you in getting started to use Adobe applications or use the applications more?”

  • A call from customer support to provide more information
  • More emails explaining the benefits of applications
  • A learning game
  • Live chat online to provide more information
  • A five minute how-to video
  • A prominent 800 number to call Adobe customer support
  • Included access to a 3rd party training provider such as Lynda.com
  • A social network connection e.g. via Facebook, Twitter, Blogs, etc.
  • Step-by-step tutorials (just text and graphics, rather than “how to” videos)
  • Online or in-product tutorials
  • Access to an Adobe learning resource center
  • Links to CC user forums
  • A 30 minute webinar/online seminar
  • Other (specify):
  • None/no other resources needed/none would be helpful

Odd how none of these options are related to the quality of the documentation, which defaults to online help pages these days. In fact, you have to manually download the actual PDF reference manuals separately from the CC applications; it isn’t even a clickable link in the help options.

Monday, October 20 2014

Not included: a text editor

From today’s Emacs 24.4 announcement:

Highlights of this release include:
  - A built-in web browser (M-x eww)
  - Improved multi-monitor and fullscreen support
  - "Electric" indentation is enabled by default
  - Support for saving and restoring the state of frames and windows
  - Emacs Lisp packages can now be digitally signed
  - A new "advice" mechanism for Emacs Lisp
  - File notification support
  - Pixel-based resizing for frames and windows
  - Support for menus in text terminals
  - A new rectangular mark mode (C-x SPC)

Looks like I’ll need to add a few more disabling commands to my .emacs file…

Monday, November 3 2014

Dear developers,

Regardless of the flaws and limitations of the specific tool, saying “it will slow us down” is not a valid argument against code reviews.

Tuesday, November 11 2014

Free Kindles!

Well, free 30-day trial, anyway, of the Paperwhite, the HD 7”, or the HDX 7”.

I haven’t used them myself (I kind of lost interest in Android/iOS tablets after I bought the Surface Pro 2), but I like the fact that you can download a lot of the Prime video collection for offline viewing. That would be handy.

Monday, December 1 2014

Life’s too short to wait for spinning disks

Everyone started playing WoW again, and while I had left my accounts lapsed for the past two years, on discovering that I didn’t have to buy the previous expansion, I reactivated an account and started playing Mists of Pandaria. Maybe when the next expansion comes out, I’ll play Warlords of Draenor. :-)

The Surface Pro 2 handles the game just fine, although the small high-DPI display takes some getting used to, and the keyboard has a tendency to treat the “w” key as a toggle (only in this sort of game; some firmware limitation on really long keypresses, I suppose).

I still have the Asus gaming laptop I bought a few years ago, and while it’s not an everyday portable, it’s ideal for our weekend food/gaming parties. However, when I transferred the updated client over and started playing, I was reminded that load times exist. Asus shipped a nice pair of 7200 RPM drives in it, but everything starts up so slowly compared to the Surface.

So I bought a pair of Crucial MX100 512GB SSDs; I could have bought smaller ones, but $190? Sold! They even come with an Acronis license to do the data transfers.

Why the Crucial, besides the price? I’ve had a 960GB M500 in my Mac for a year and a half, and it’s been fast and trouble-free. The Amazon ratings agree.

[Update: oh, yes, that’s much nicer. Also significantly faster for video editing in Premiere]

Thursday, December 18 2014

Bugs I could do without

I have no idea why, but the order of the output of the permute() function in the Perl library Math::Combinatorics depends on the number of elements in @ARGV. This resulted in a rather frustrating debugging session, in which it was assumed that the output was deterministic, and one could reliably shift off the null permutation.

Seriously, when the mere act of adding a command-line option that is completely ignored by the program changes the output, your library is kinda fucked.

Monday, January 12 2015

512GB Crucial MX100 for $214?!?

I thought they were a good deal when I paid nearly twice that at the beginning of December, but damn.

Monday, March 9 2015

…and so it begins

Refrigerator so “smart” it joined a spam botnet. When combined with the eavesdropping Samsung TVs, we face An Exciting Future.

(and, yes, if they ever roll out IPv6 in a significant way, that fridge will be serving up kiddie porn to the world, too, with no need for crude NAT redirects or UPnP automatic hole-poking)

Wednesday, March 11 2015

Bye-bye, DSL; it was nice

[Update: all switched over, and the only difficulty in the install was discovering that Comcast still ships routers that hang onto MAC addresses for dear life, preventing you from reusing an IP address on the LAN side unless you reboot the silly thing. This was dumb on a home line ten years ago, and inexcusably stupid on a business line today. On the bright side, it came with native IPv6, so I can get rid of my Hurricane Electric tunnel sometime soon.]

So on March 9th, I got email from sonic.net informing me that their current DSL service was going away on April 10th, and that I needed to call right away to upgrade to their new faster-cheaper-better service.

The person who answered the phone seemed surprised that I’d actually called right away. Then she put me on hold for several minutes while she looked at my account, then she said she’d call me back. She didn’t.

So I replied to the original email, which surprisingly actually went to someone, who answered and said someone would call me back. Today, I got a long, casual voicemail from someone who eventually got around to explaining that the new service isn’t offered in my area, and I’d need to find a new ISP. Yes, I was expecting this.

(short version: they had a contract with AT&T to use their lines for DSL, and that expired)

So now I’m waiting on a callback from Comcast Business to schedule an install. It will cost more, but even their cheapest plan is much faster than the 6000/768 I have now. Internet-only; I’ll keep the Dish for TV, and migrate the landline to an Ooma box.

(the only reason I still had the landline was that Sonic’s agreement with AT&T required it)

Monday, March 16 2015


I think I can live with this performance on the new Comcast line.

57 Mbps down, 11 Mbps up, 15ms latency, 3ms jitter

[Bonus! My new static IP range is not blacklisted by Paypal. Both my old AT&T and Sonic.net ranges were for as long as I had them, and not only does Paypal silently treat it as “incorrect password”, their customer-service folks don’t even acknowledge that this is possible. For years, I’ve had to open a VPN connection to my office just to be able to log in to my account.]

Tuesday, December 22 2015

Comcast Business support surprisingly good

So I’ve got family in for the holidays, and my sister promptly took over the office for conference calls and video editing, leading to a distress call last night when the 2.2GB upload of the final cut of the new promo promised to take 70+ hours. (iperf to Hurricane Electric was running at about 500 Kilobits/sec upload speed, with ~10% packet loss)

I called Comcast at 6:30pm. They had a guy onsite at around 8:30pm, who verified that all my wiring was good, replaced the modem, and spent a merry twenty minutes poking through the flooded cable box out at the curb (he appreciated my big golf umbrella). All to say, “well, the problem isn’t here”, and he promised a network guy would take over in the morning.

Sure enough, by the time I got up and had breakfast, iperf was reporting 60 down, 12 up, which is a bit higher than before the outage.

Friday, January 8 2016

Got RSI? Want some?

Ultimate RSI keyboard


Thursday, June 30 2016

Internet of Stupid Things

No. No. I do not want a cloud-connected keyboard. I don’t care if the mechanical keyswitches are clad in the purest shimmering samite.

Monday, July 4 2016

Keeping it up(dated)

If your Windows Update lasts for more than four hours, consult KB3161608.

Downside: while this resolves the dependency-calculation problem that caused update runtimes to go insane, it also manages to include changes that break a wide assortment of software. Because sure, why not force users to choose between business-critical applications and the ability to install security patches in less than a week of runtime?

Saturday, November 12 2016

It’s amazing…

…how much faster home Internet gets when you replace a flaky switch. It’s annoying that I had to drive to three different stores to find one (Office Max even had PoE-capable and 24-port switches, but I only needed a basic 8-port today).

I went from 1.4 Mbps down/0.88 up to 58/12; one of the nice things about having an OpenBSD router is that I can run iperf3 on it and verify that it’s not Comcast’s fault before opening a ticket.

Tuesday, November 15 2016

Mac Bash-ing

If you drag URLs around on a Mac, you get .webloc files. If you drag text around (successfully…), you get .textClipping files. Getting data back out of them can be annoying; some applications treat them as attachments, and most insist on grabbing the rich-text version of a clipping rather than the plain text.

webloc () {
  /usr/libexec/PlistBuddy -c 'print URL' "$1"
clipping () {
  DeRez -noResolve -only utf8 "$1" |
    perl -e 'while (<>) {
      next unless s/^\s+\$"([0-9A-F ]+)".*$/$1/;
      tr/ //d;
      $x.= $_;
    print pack("H*",$x),"\n"'