Wednesday, July 05, 2006

It's the end of WinFS as we know it, and I feel fine!

So Microsoft went and killed WinFS again, a few days back. I really can't say I'm surprised. Databases and filesystems are conceptually similar, and the idea of unifying the two is certainly attractive. From a purely theoretical standpoint, anyway. As with most attractive ideas, someone else thought of it years before it showed up in Redmond. In early versions of BeOS, the "filesystem" was a database, but that turned out to be way too slow, so they dropped the idea. A general-purpose database is never going to be as fast as a traditional filesystem, and maybe that's what happened to WinFS. We may never know the full story, and I'm not sure it matters anyway.

Not only am I not surprised, I'm pleased as punch. In my RL endeavors over the years, I've spent an inordinate amount of time working around all the odd quirks and foibles of Windows filesystems. Ok, quirks and foibles is being very kind. Maybe it's better to call it a disgusting, oozing mass of scabs and scar tissue. How's that for vivid? Every time a new version of windows comes out, the complexity multiplies, so for the sake of readable, maintainable code, and for the sake of my own professional sanity, I have to firmly oppose anything that would add more special cases.

If you're writing a Windows app and want it to be really robust, especially if it needs to read and write to random user-specified parts of the filesystem, here are a few of the fun special cases you'll have to deal with, just off the top of my head:

  • I've already mentioned the new fun that crops up on x64 Windows and its goofy filesystem redirection misfeatures, so I won't repeat the rant here.
  • Long paths can be a problem. Windows defines the constant MAX_PATH as something like 260 characters, and that's often enough in the real world. But this constant is sort of misleading, in that each individual component of the full path can be that long. It's fairly easy to confirm this yourself with a little effort, and it's not hard to create a few nested directories with long names, such that the fully qualified path is greater than MAX_PATH in length. But if you try passing a long path like this to Win32 file functions (CreateFile, for instance), you're in for a rude shock. Sure, it's a valid path, but it's too long, so Windows errors out. Oh, but this is Windows, and there's always an obscure workaround if you just hunt around in MSDN long enough. And sure enough, if you preface your jumbo-sized path with the magic incantation \\?\, you can use paths up to the physical maximum of about 32768 (2^15) characters. Oh, and you can only do this with Unicode Win32 functions, btw. The ASCII ones just aren't hip to the jive.

    Either you do this magic trick, or you break the path down into manageable chunks, and SetCurrentDirectory a few times using relative paths until you can finally access the file or directory your'e interested in. But that's even more ugly, IMHO.

    In all fairness, this can happen in the Unix world too, and there's no magic incantation to set things right. All you can do is use the "more ugly" option and chdir as needed. Blech.
  • If you've got a \\server\share UNC, you can treat it the same way you'd treat a drive letter, basically, but if you want to list all shares for a given machine, you have to use a couple of completely different functions and pull in a whole separate dll, and there are another couple of functions to use to enumerate machines in an NT domain, in case you need to do that. And when you enumerate the shares on a given machine, you may end up with a few additional things you weren't expecting, like the hidden admin and IPC$ shares, plus any shared printers you might have. So you'll need to either handle these cases intelligently, or be sure to pass the right flags so you don't see 'em.
  • If you need to do the 32k character trick with a UNC, the holy mantra is \\?\UNC\server\share\path. I think. It's been ages since I needed to do this, and I'm not on a Windows box to test it at the moment.
  • Even in the most current versions of Windows, the reserved names of creaky old DOS devices are still "special". Try creating a file on disk called LPT1, or even LPT1.TXT. Didn't work, did it? Turns out that if you try to use a special device name, even with a file extension, even with a full path specified, Windows assumes you really want to talk to the device. As always, there's probably some unavoidable backward-compatibility reason behind this. And as always, there's a workaround. Preface your full path with the eldritch runes \\.\, and you can proceed as you like. Those runes tell Windows you're providing a literal device name (which just so happens to specify a disk device and a hierarchical name underneath it), in which case Windows can finally get it through its thick skull that you aren't interested in, say, line printer #1. Of course, if you use this method to create a file with a special name, and then try to access it with the tools of mere mortals (say, Notepad), fun happens. Well, mild fun. Usually your app just locks up.
  • NTFS is case-insensitive but case-preserving. Except when you tell it to be case-sensitive. If you use the flag FILE_FLAG_POSIX_SEMANTICS in calls to CreateFile, Windows uses Unix-style naming rules, and you can create multiple files in the same directory whose names differ only by case. This, uh, feature has been in Windows since the beginning, in order to support that creaky old Posix subsystem that nobody ever used. This wouldn't be that big of a deal except that most apps don't expect to see this situation and get very confused when they do, including Explorer. In WinXP and later, the Posix naming feature is disabled by default, but you can reenable it simply by tweaking a registry setting whose name I can't recall at the moment.
  • There's another class of special Windows filenames to consider. Every NTFS volume contains a few hidden files with reserved names ($MFT, $MFTMIRR, etc.), which aren't part of any directory and which require a little special handling, too. Any function that expects the specified object to have a parent directory (i.e. FindFirstFile) is guaranteed to fail.
  • And who can forget Windows' alternate data streams? I won't go into a huge long rant about them here, since you can find lots of existing rants on the topic with your favorite search engine. I'll just say that ADSs wouldn't be a problem a.) if they were easily visible at a command prompt, and/or in Explorer, and b.) if there was a simple API for handling them. Neither of these things is true. As a programmer, your best bet is to monkey-see-monkey-do with the code in MSDN. Feel free to try to understand what's going on with all those BackupRead or BackupWrite calls, if you like. And remember, streams come in a number of distinct types. I've found that many ADS tools only look at streams of the "standard" ADS type, which may not be sufficient if you're facing a clever attacker, or a new MS Office feature (which is basically the same thing).

    One additional fun quirk of Windows alternate data streams is that you can attach them to directories, not just files. And just like with files, you can only get rid of a directory's ADS by deleting the directory. If you attach a stream to a root directory, which you can do, there's no possible way that I'm aware of to delete the damn thing.

    If a stream happens to have a name, and you know what the name is, you can open it in any application with the syntax c:\path\filename:stream. If you've ever wondered why you can't use colon characters in regular filenames, here's why. The colon is a reserved 'separator' character that lets Windows know you're working with a named stream. You can treat named streams just like files, you can open or create 'em with Notepad, redirect data into them at a command prompt, and so forth, everything works like a regular file except that they don't appear under a directory listing, and they disappear if you delete the main file.

    Unless MS drops it between now and whenever Vista slithers out into the light of day, it looks like there'll finally be a stream API at long last. But if you need to support Windows versions before Vista, this will just add to your code's complexity, not reduce it.
  • There are several different ways of getting attributes on a file: FindFirstFile, GetFileAttributesEx, and GetFileInformationByHandle, and there may be others, in the future if not now. Each returns slightly different information, and each fails under slightly different circumstances. And what's worse, the file times returned by FindFirstFile may not always match those returned by GetFileTime. This seems to be completely undocumented, but from what I've been able to gather, FindFirstFile always fetches file attribute values from disk, while GetFileTime hits cached values in memory whenever it can. When you do something that updates the last access time on a file, the change typically isn't flushed to disk immediately, and several access time updates can happen before the value on disk changes. I've seen the on-disk value be as much as an hour out of sync with the in-memory version. There's probably an obscure registry setting somewhere to fine-tune this behavior to your heart's delight, if you've got nothing better to do.
  • Windows and Unix both provide the ability to lock byte ranges within files, and prevent other apps from reading or writing the specified range while the lock is held. If it's important to you to ensure that you read/write all of the file, or none of it, you'll want to scrutinize GetLastError() or errno if an operation fails or reads or writes fewer than the requested number of bytes. In my newbie days I used to think that if you could open a file, you could read or write as you liked inside the file, and that isn't always true. File locking isn't that common, and less common than it ought to be IMHO, but you may run into it at some point, and you'll see weird results if you don't handle it correctly.

    One more step to be aware of on Unix: If your app's going to run unattended, you might want to be sure you're opening files with O_NONBLOCK, so that when you run into a file lock, your read attempt will fail instead of blocking for an open-ended amount of time.
  • You can confuse Windows with other sorts of illegal filenames. For whatever reason, filenames ending in spaces or periods are Bad, and you normally can't create them, but you can if you've got a Unix box w/ Samba. Windows hates it when you do this, and your only option is to try to try the alternate 8.3 name instead, if the file's got one. Windows also really hates it when filenames contain characters less than 0x20. This is really hard to do; I pulled it off once by hex-editing the directory listing on a scratch floppy. Windows refused to open any of the files I'd messed around with. But this is sort of outside the scope of this post, since there's no workaround, and the odds you'll run across this in the wild are vanishingly small.
  • There are three different kinds of "links" Windows knows about. POSIX-style hard links, reparse points (a.k.a. "junctions"), and shortcuts. The first two are poorly supported and much of the OS isn't aware of them, while shortcuts are implemented all the way up at the Windows shell level, and working with them involves COM and all kinds of silly needless overhead. Command line apps can't do diddly with shortcuts. Yeah, sure, make the UI layer responsible for basic filesystem features. Great plan there, guys.
  • That's not the only thing implemented at the shell level. There's a whole separate shell namespace, rooted at the current user's desktop, with a whole new set of terminology to learn: LPITEMIDLISTs, monikers, antimonikers, and so forth. Any filename can be a moniker, URLs are monikers, all sorts of exciting things are monikers. One fun thing MS did was to come up with something they call "structured storage", in which subelements of a given document can have globally unique names. The classic example is Excel, where you can specify a range within the file c:\foo.xls with the moniker c:\foo.xls!a1:d10, if you're using an app that expects monikers, not literal paths. "Structured storage" uses the exclamation mark as a separator, and this is not to be confused with the colon used with alternate data streams. They're completely separate animals. Perhaps you could put an Excel spreadsheet inside an ADS and then use structured storage notation to address a range inside it. I've never tried that. Your mileage may vary.

    The problem is that this seems to be yet another M$ orphan technology, supported for Excel documents and CHM (compressed html) files, but nowhere else that I've ever seen. If there's a syntax for addressing ranges within Word documents, I've never encountered it. It's also worth noting that when you use this trick on an Excel spreadsheet, you're essentially loading and running Excel inside your application. When you pass it a "mailto:" url, you're launching Outlook in the context of your app. Is that a wise idea? I really couldn't say. I report, you decide.
  • That's not the only competing "global" namespace Windows offers. Within the NT kernel, the Object Manager namespace ties all sorts of kernel objects together. For instance, the file c:\foo.txt is really named \Device\Harddisk0\Partition1\foo.txt so far as the kernel's concerned, and the registry key HKEY_LOCAL_MACHINE\Software\Foo is really \Registry\Machine\Software\Foo. You generally don't see these names outside kernel space, which is a shame. Windows makes a bit more sense once you poke around the Object Manager tree a little. Fortunately there's a tool that lets you do this: WinObj, from the gurus over at Sysinternals, the same folks who discovered Sony's music cd spyware.

    Working with Object Manager names isn't hard, but you need to use the poorly documented (by M$) "Native API". As far as I'm concerned, if you want to mess around with this stuff, you need Gary Nebbett's book Windows NT/2000 Native API Reference. It can be a bit of a dry read, but the Bible and Larousse Gastronomique can be dry reads, too, and the Nebbett book is just as essential in its own intended field. The familiar Win32 API is often just a thin layer on top of the Native API, with a few minor differences in semantics, and some obscure Native API features that aren't mirrored in Win32 land.
  • Oh, but that's not all, far from it. If your app wants to care about anything that might have an ACL attached, the Native API will only get you so far. You can also have various kinds of "user objects" sitting around, which aren't kernel objects and so don't appear in the kernel object tree. Common examples include Windows services, both local and remote, and LSA and SAM objects, along with more obscure things like NetDDE shares. Oh, and did I mention that Active Directory objects can have their own ACLs too? Well, they can, in case it matters to you.
  • The aforementioned Nebbett book contains a short appendix that explains how to read any NTFS file by opening the disk device, parsing its MFT, and reading or writing to the contents of the file without ever opening it. This appendix is tacked on almost as an afterthought, but it's why I originally bought the book. Many moons ago, I needed to be able to read and back up a file even if it was currently opened for exclusive access by another process. Unlike most Windows features, exclusive access pretty much is exactly that. There's no obscure API flag, or registry setting, or process token privilege that lets you override the exclusive access thing, or if there is, nobody outside Redmond knows about it. Your only option is to go in at a very low level and read the bits off the disk device, so long as you're on an NTFS volume, and you really should check first before proceeding. This is obviously a pretty extreme measure, but hey, I'm all about extreme when I need to be.
  • And for the sake of completeness, there's also the weird object naming scheme that appears only in boot.ini and absolutely nowhere else. IIRC this has something to do with the firmware system on ancient MIPS-based NT boxes based on the "ACE" platform, from way back in the early 90's. Nothing ever really goes away on Windows. It's rare that anything even gets seriously deprecated. Usually MS just stops talking about it in public, and buries the reference materials in some dark corner off in MSDN. If they're really serious, they might not include the headers with the next version of Visual Studio, but that's about it. Whatever else you might say about Microsoft, they really are serious about backward compatibility. Especially the "backward" part.

a better squirrel

squirrel_july3_06

My squirrel photography skillz have improved a little since last time, although this is still kind of blurry. The little bastards don't seem to realize my camera's power-on chime is their cue to strike a photogenic pose and hold still, dammit.

This particular squirrel lives in the remote mountain fastness of Marquam Nature Park, in downtown Portland. I should probably point out that "Nature" is a bit of wishful thinking in this case. The park is full to bursting with invasive English ivy. Technically this Eastern gray squirrel is a nonnative species too, but I don't see anyone starting a nonprofit campaign against squirrels any time soon. They're so cuuuute and cuddly... Awwww.....

Some of the credit here also goes to the nice folks behind GIMP, too. It was a hot, hazy afternoon, and the colors needed a little tweaking. I've also got a couple of pics of Mt. Hood from Council Crest (the classic tourist brochure shot), but the mountain almost disappears into the afternoon haze/smog, and I haven't yet figured out how to make it stand out without turning everything else weird and unnatural colors. So maybe I'll get to that sometime, or not. It's probably really easy in Photoshop, but I'm notoriously cheap, and I prefer having the source code available even if I never actually need it.

Amateurish Photos of Fireworks

4july_06_3

A few pics of the big fireworks show on the waterfront, in downtown Portland. My digital camera claims to have a fireworks mode, and I figured I'd give it a shot. I don't recall the manual mentioning anything about not moving the camera during the exposure... Anyway, if you'd like to see more of my feeble efforts, I've put together a small Flickr photoset here.

4july_06_4

It's a great holiday. Watching fireworks is fun, backyard barbecue is delicious, and Dubya can kiss my ass. Conservatives whine that this is impossible; if you don't worship their Glorious Leader, you must be against the flag and pie and mommies, too, and you're "helping the terrorists" or whatever. The usual stupid crap from the usual stupid people. They insist they love the Declaration of Independence, which tells me they probably haven't read it. It's not exactly the most conservative of documents.

4july_06_8

And then there's this nasty ol' commie pinko liberal attack on "traditional values":

Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.


If Jefferson was around today, or today's conservatives were around in 1776, they'd sic Ken Starr on poor TJ over the Sally Hemmings thing. And they'd dig up some Valley Forge Veterans for Truth to go after Washington. I can only imagine what they'd do to smear Ben Franklin, with his tinkering around with science, and spending all those years in France and everything. And Thomas Paine would be off to the colonial version of Gitmo.

Their beloved King George, on the other hand, would be praised as infallible, God's viceroy on earth, and they'd grovel before him and praise his every mistake, and insist against all evidence that he was doing a heck of a job.

But, of course, this is all strictly hypothetical.

Sunday, July 02, 2006

Getaway

Assorted notes from a weekend getaway:

I. Tacky weddings are great, so long as you aren't invited. Seeing the unnaturally tan Bridezilla arrive at the ceremony by golf cart is great fun. The moment a few minutes earlier where daddy polished off his Corona, looked around, and stashed the bottle in the bushes... that was priceless. And yes, somebody was watching. The photo shoot, earlier in the day, went on and on and on, with Bridezilla ordering everyone around and posing them however she liked. The elderly cleric droned on and on, while the family members sweated in the hot sun. Several of the female guests dressed like it was a cocktail party, not a wedding. Even I know you aren't supposed to wear black to a wedding, even if the outfit is tight and clingy. And you can't lighten the black outfit up by pairing it with flip-flops, either. Sorry. And guys: Denim is not ok, unless maybe you're doing a Western-style ceremony, in which case you wear a nice shirt with a bolo, and your best boots and hat. Levis plus a random J. Crew shirt, untucked, doesn't cut it. Oh, and the wedding march at the end was drowned out by a passing train. Later, another photo shoot at sunset, and at the end Bridezilla strides through the hotel lobby, dazed tubby smirking fratboy groom in tow. Both are even uglier than they were at a distance, and both chose wedding wear at least a size or two too small, and not in a good way. He's clutching a therapeutic Corona as if his life depended on it, which isn't out of the question. Several of the groomsmen kept their shades on throughout the whole ceremony. At first I thought they were trying (and failing) to be cool, but once I got a better look at the sort of person we were dealing with, I realized they were probably still hung over from the bachelor party. I'll grant that it was probably a really great bachelor party, so far as those things go, if you're into that sort of thing.

I give 'em four years. They had the ceremony videotaped, so when he fails to return home after poker one night, she can watch the thing on DVD while sniffling and snorking a pint or two of Ben & Jerry's.

gorge_sunset_1

II. As a non-golfer, as someone who's bored to tears by watching or even thinking about golf, I'd like to make a few observations about the pastime, including some constructive thoughts about how to improve the sport, because if it bores me, it obviously needs work.

  1. The clothes have to go. What is it about ugly polo shirts and belted pleated knee-length khaki shorts that lights a fire in the soul of the average middle-aged man? Who tells him he looks good that way? Are you really obligated to wear this dork suit if you want to hit the little white ball around?
  2. Golf carts have to go. It's a sport. People should have to walk, no, sprint, between holes. If you don't work up a sweat, it's not a sport (and that goes for baseball too, while I'm at it).
  3. Caddies have to go. You get exactly one golf club to play the whole game with. What sort of club that is is up to you, but you don't get to have a servant carrying a big bag of clubs around for you to choose from.
  4. Thirty second shot clock. You can't stand around and agonize about how to take the shot. If you do, you get penalized somehow.
  5. Borrow a little from miniature golf. On at least one hole, you need to hit the ball through a spinning windmill, and eventually into the mouth of a flaming skull. That would be cool.
  6. Also have part of the score based on a driving range segment, where players are ranked by sheer distance attained. This will reward golfers who actually work out and try to build upper body strength. Eventually golf will get its very own steroids scandal, and that's how you'll know "real sport" status has finally been attained.
  7. Fans are supposed to shut up when someone's trying to make a shot. That's silly. In real sports, you're expected to do your job properly even when opposing fans are screaming obscenities at you. That should be encouraged. Stop trying to make the sport family friendly. Kids don't give a crap about golf, and they probably never will.
  8. Cheerleaders. Gotta have cheerleaders.
gorge_sunset_2

III. How many rural northwesterners does it take to change a lightbulb? Based on an observation today, the answer is at least three. One to notice the problem, and have no clue what to do about it. One to be in charge, know what to do, and yet fail to delegate the job to anyone. One to mind the front desk while the first two go off to investigate the light bulb situation. Perhaps even more people were enlisted in changing the blown bulb before things were all through.

gorge_night

IV. Brewpubs in Washington keep peculiar hours. Or more to the point, the two we tried to hit on the trip were closed when we visited, and I'd really like to draw general conclusions from this limited set of data points.

Friday, June 30, 2006

Friday (foo) Blogging



A pic of Saturn's weird moon Hyperion, taken by Cassini on Wednesday.



A NASA radar image of the asteroid 2005 CR37, taken when the asteroid passed near the Earth in February.



A few more blogs I came across with the aid of random "Next Blog" users or similar means:




A few (primarily) local items of note:

  • Two posts at Welcome to Blog debunking Portland's so-called "Shanghai Tunnels ". I can't blame people in town for wishing we had a cool underground netherworld beneath our fair city. I can't blame people for wishing our city's early history was more interesting. Everybody knows that real cities have vast networks of centuries-old catacombs beneath their streets. Also, caves rock.
  • But lest you think that it's all fun and games underground, you might want to read this cautionary tale over at K5 about getting food poisoning at Carlsbad Caverns. Yikes!!!
  • A whole category of funny posts over at Jalpuna! about the fun of owning cats.
  • A post at Loaded Orygun bashing Bojack. Aww, c'mon, Jack's a local institution. Rumor has it Matt Groening actually based the character of Grandpa Simpson on our very own Mr. Bogdanski. (Well, I'm trying to start this rumor, anyway.)
  • It's official, our neighbors across the Columbia are a bunch of dorks, and I mean that in a good way. Really. The governor of Washington has issued a proclamation declaring today and tomorrow "RSS Days". No, seriously. For the sake of comparison, it doesn't look like Oregon government uses news feeds much at all. So far I see exactly one: The state Department of Revenue, of all people. All other departments apparently release their news in PDF form only. If there are any other feeds, they're cleverly concealed. Multnomah County is just as bad that way. You'd think governments would care more than private sector firms about using open, non-proprietary formats, but at least in this state the opposite is usually true. A few entities have mailing lists, which is fine from a practical standpoint, but it's not exactly geeky these days, and I demand geeky. At least Portland city government's holding up its end of the deal, feedwise. I love the city's news feed. I'm serious.
  • Local reaction to the latest Tour de France doping scandal. I was going to root for Basso too, and now I can't. Society needs to accept that bike racers are a bunch of freakish mutants, drugs or no drugs, and just let them have at it. The same goes for jockeys.

    We have a household tradition that when Le Tour rolls around, we hole up in front of the TV with a couple of baguettes, a wedge of Pierre Robert, and a jug of cheap rose (which we avoid the other 11 months of the year). We were already lamenting not having Armstrong to root against this year (yes, you read that right). Now most of the riders I've heard of won't be in the race either.
  • Forget everything unkind I ever said about the Portland Aerial Tram. It's official now: the tram is my friend. Yay!



A few articles examining MySpace and its "walled garden" model. I was going to write a post about this myself, but these and other articles are pretty good, so I think I'll just pass some links along instead.

My new Crackberry addiction

Believe it or not, until a month or so ago I'd never owned or desired a mobile phone. Then I got a Blackberry, and I quickly learned where the "crackberry" nickname comes from. Hell, I'm using it to blog right now, as I have on several past occasions. What makes this time so special is that right now I'm at the gym, on a stationary bike. I've also got the iPod on, too, and I'm sure I look like a total clown. But I find that I simply don't care. You'll get this thing away from me when you pry it from my cold, dead hands, understand?

Now if only Crackberries were waterproof, so I could do this from the pool and be an even bigger gadget dork. Yeah, that would be just fabulous, I'm totally sure of it.
Sent from my BlackBerry® wireless handheld

Thursday, June 29, 2006

Reason #641 why modern art is dangerous

So I was walking over to the Thursday market in the Pearl District, and I saw what appeared to be a green purse hanging in a tree, with a paper tag attached. Hmm, interesting, I thought, that must be someone's conceptual art installation. Next week is First Thursday, maybe someone's getting a head start or whatever. So I stopped and reached up and grabbed hold of the thing, to get a better look at the tag and see what it was all about. Most of the time they don't bother to explain the concept behind the art, but you never know. Maybe the real art's inside the bag, waiting for an inquisitive person to find and discover it. I've heard of people doing that, so it wouldn't be all that surprising. Or maybe it's an invitation to a really super-elite art party that only the cool people know about, and looking at the tag is the test to see if you're cool enough.

So I got a look at the tag. It read BAITED INSECT TRAP! Gaaah!!! So I hurriedly let go of the thing, brushed my hands off, and went to look for somewhere to wash off all the nasty chemicals. Drat! I hate not being able to tell when something isn't art.

The worst part is that now that I think about it, I still can't be sure the thing isn't someone's conceptual art. Maybe "Baited Insect Trap" is actually the name of the piece. Maybe there's even a secret camera trained on it. Maybe the whole episode was caught on film, so absinthe-guzzling art snobs in black turtlenecks all across the globe can snicker condescendingly at my distress, and call me a rube for not immediately intuiting what was really going on. Maybe it's even on YouTube now. Artists can be incredibly vicious that way, and I woudn't put it past 'em. The effete little bastards.

moonshot

moonshot

I was going to call this something along the lines of "TEH MOON", but I've already done two tech posts in a row.

ESA's SMART-1 probe (which, um, isn't visible in this photo) is now scheduled to crash into the moon in just over 2 months. Here's a recent photo of the moon taken by the probe. I realize the moon isn't exactly the most exciting corner of the solar system, and I agree it's a real shame. But the pic's sort of newish, so here it is. At least the moon's got lava tubes, which might end up being useful someday. So anyway, enjoy!

Wednesday, June 28, 2006

Linux Genuine Advantage

Everyone's been wringing their hands lately over the new "Windows Genuine Advantage" program, which Microsoft uses to determine whether your copy of WinXP is legit or not. But did you know Linux has had something very similar for years and years now? It's true! Chances are it's already on your box, perhaps without you even knowing it was there.

So here, for the first time ever, is the super-secret way to tell if your machine has a legitimate, authorized, legal copy of Linux or not:

1.) At a shell prompt, type /bin/true. You won't see any immediate output here, but don't worry. Linux Genuine Advantage (LGA for short) does its thing quietly, and you don't need to enter any serial numbers off any cds, or go register on some random website, or enter any personal information, or provide a credit card number. The state-of-the-art LGA system is able to figure out all the info it needs without ever interacting with you. It's clever that way.

2.) When step 1 completes (which should take almost no time at all on any modern PC), type this at the shell prompt: echo $?. This command will let you see your super-secret LGA authorization ID code. If your copy of Linux is legal, this ID should be 0. Otherwise, you will need to contact SCO headquarters and purchase a new Linux license. (Please note that a nonzero ID may also indicate a causality violation, so prior to contacting SCO you may want to try rebooting the universe you currently inhabit, and then retry step 1. Be sure to exit universe before rebooting.)

And remember: If you don't participate in LGA, your box *will* stop working on January 19, 2038.

Be careful who you share this information with. If people find out about this trick and learn the secret ID code (and quite possibly even if they don't), they'll be able to get their own "legal" copies of Linux, absolutely free.

[Originally posted elsewhere.]

tagz:

SCO loses again, bwhahaha!!!!

If you've been following the SCO saga like I have, you've been waiting for this day for a very, very long time. Today's ruling (which Al P. has here [PDF]) throws out nearly all of their allegations about those evil commie Linux hippies stealing their precious secret code. There are a few assorted charges left, so we haven't seen the last of Darl McBride and his merry pirate crew just yet. I doubt that what little they've got is enough to make all those big federal court cases worthwhile, but they'll pursue it anyway, of course. No sense in suddenly growing a brain this late in the game, after all.

A lively and well-deserved round of gloating has started over at Y! SCOX, but the story's only just now showed up on GrokLaw, and just as a comment thread, not a story yet (see here). It'll probably make Slashdot sooner or later, too, although as usual the comments will be all about Soviet Russia, Natalie Portman, and Beowulf clusters, instead of the topic at hand, whatever it is.

This may be bad news for SCO, but it's probably going to be great news for SCO investors, since the stock mysteriously jumps up every time there's bad news, defying all known laws of economics, gravity, logic, and common sense. So somebody's going to make kazillions tomorrow.

tags:




Updated: Here's a fascinating item I ran across today, one man's memories of Darl McBride from back in the old days at Franklin-Covey (you know, those "synergize proactively outside the box" guys).

Referroutine

First off, I'd like to give a mad shout out, or mad props, or proppy shouts, or or shroppy pouts, or whatever the current term is, to the nice folks over at alt.portland, for linking to my rant about the Essential Forces fountain over at the Rose Quarter (among other things).

Second off, a brief program note: I've acquired another colony in the ever-growing Cyclotram multimedia empire. Please bid a hearty "hi" to cyclotram3, my infinitely humble blog over at MySpace. Yes, that MySpace. I figured I ought to check it out, even though I think it's teh st00pid. Don't expect a great deal of thrilling excitement over there; the idea is that people can find me over there, and then find their way here. In the end I think MySpace will be the AOL of the 21st century. It'll be acceptable for a lot of people for a limited span of time, but ultimately the "walled garden" model always loses out. Every tech CEO would love to be in charge of an MSFT-style predatory monopolist, but MySpace-style social networking is only going to be cutting edge for a few short years, and then something else shiny and new will come along, and MySpace will go the way of Lycos, Excite, and friends. It'll be one of those things "Generation Y" people will reminisce fondly about once they hit about age 27 or so, sort of the way people my age did about archaic things like playing outdoors without constant and extremely strict adult supervision. Oh, and about Madonna, if we're being brutally frank here. But only the early stuff. Like all right-thinking citizens, I stopped being a diehard fan around the time of "Papa Don't Preach". Now that was a dreadful, dreadful song.

So without further ado, here are a few selected referrer pages I got lately, since it's hot outside and I'm unable to think of anything to write about. Or more precisely, I have a few ideas to write about, but it's hot outside and I'm inclined towards sleeping instead of writing.


  • Tabitha's Blog, about live in rural Alaska. Pretty fascinating, at least for me. In the Pacific NW we tend to have a sort of inferiority complex about Alaska. We have nature, sure, but they really have nature. We have salmon, but they've got the good salmon, and lots of 'em. We're rugged and independent and all, and we defy the elements, yeah, yeah, whatever, but we're a bunch of wimpy East Coasters compared to Alaska. Read this blog, and look at the photos, and weep, puny lower-48-ers. And those of you in my (somewhat) sizeable UK contingent, I just don't know what to say to you guys. You can talk about remote northern Scotland all you want, but in Alaska everything is bigger than Scotland. I'm not exaggerating here. Everything. Especially the mosquitoes.
  • Productos Brain-Team. I haven't run this through Babelfish to see exactly what it's about, but it's a tech blog of some sort, and the name's fantastic.
  • ohime nana
  • Esculturas de lury Pinto. It's sort of like Claymation, except in Portuguese, and in blog form. Other than that, it's kinda like Claymation.
  • VIM in Belize. A blog from freakin' Belize, already. I don't care if it's mostly about church stuff, it's from freakin' Belize. (Note to oldsters: "Belize" is the place formerly known as "British Honduras") I also got a search engine hit from Belize a couple of days ago, FWIW. This visitor must've been bored to tears by the way I write, because s/he clicked on the link to translate this page in to Pirate. Yarrr!!!! Stereotypes are a terrible thing, but maybe sometimes they exist for a reason. I mean, with Belize being on the Caribbean coast and all.
  • Four Corners of NY Photoblog from NYC, with lots of baseball photos.
  • 4th Avenue Blues Interesting, somewhat New Agey blog.


And a few referrer pages from earlier that I never got around to posting:

Tuesday, June 27, 2006

Tramhenge

So I was looking at those photos of the tram tower I posted the other day, and suddenly it reminded me of something (a bit), and suddenly I was inspired (sort of) and wrote this song (more or less):

[To the tune of Stonehenge, by Spinal Tap]

Tramhenge, where they all read Dwell
Where the boomers live and they do live well
Tramhenge
Where a $cam is a $cam and spoiled pugs dance to
the pipes of pan
Tramhenge
Tis a magic place where the condos rise
With a smug yuppie face
Tramhenge
Where the bureaucrats lie
And the prayer of developers fill the midnight sky
And you my love, won't you take my hand
We'll go forward in time to that mystic land
Where the tapas fry and the cats meow
I will take you there
I will $$$how you how


It's not a very good song, is it?

Don't hold your breath for an mp3 of it or anything. If you thought the lyrics were bad, oh, you haven't heard me try to sing it. And you won't. Oh, the humanity...




It's not a very good blog post, is it?

Ok, fine, here's some cute prosimians to look at, so you don't go away feeling cheated or anything.

Thx. Mgmt.

Sunday, June 25, 2006

Those tram tower pics I promised

tram2_6-25-06

As I mentioned earlier, today I walked down and had a gander at the new tram tower. I haven't yet found the perfect adjective to describe the thing. The closest I've managed so far is improbable, which is true, but doesn't really convey a lot of information. Maybe I'll be inspired once they bolt on the top segment.

tram_eclipse

Ok, phallic is a fairly apt (if overused) description as well. I think it's awfully amusing that the city added the big middle segment on Midsummer's Eve, as if they were raising the, ahem, maypole or something. I guess I really don't mind the occasional state-sponsored pagan fertility ritual, just so long as there's no mead, and no Morris dancing. You have to draw the line somewhere, after all.

tram1_6-25-06

Hot Sunday Moblogism

Ok, I managed to drag myself outside after all. It's really hot out today. Did I mention that already? I wandered down to the tram tower to take a few photos (which I'll post when I get to a box that speaks Camera). I decided that was enough pointless, geeky exertion for the moment, so I'm on the streetcar now. The heavily air-conditioned, non-walking-about-in-the-sun streetcar. Mmmm.... Transit...

So a few days ago I was out getting rained on, taking pictures of roses for you people, and now I went out and risked a slim but nonzero chance of heatstroke on your behalf, and has anyone thanked me yet? Anyone at all? Umm, no. Maybe I ought to start just making stuff up and saying I did it, without leaving the comfort of my own home. It would probably work out just as well in the end.

The streetcar is full of tourists, plus the sort of locals who aggressively seek out tourists to yammer at. The sort of people who work really hard at cultivating their quirky local vibe, and want everyone on earth to hear all about it. If that wasn't bad enough, today's Oregonian ran another of those "You Know You're From Oregon If..." articles this morning, celebrating the fascinating folkways of our little tribe. I guess maybe some of us were slacking off in the smugness department and needed reminding about our truly special uniqueness, which isn't like anyone else's uniqueness, nosirree.

In reality, all these articles accomplish is to help rich Californians learn how to pass as natives. Well, they try, anyway. The cologne and gold chains are dead giveaways, and in all history no real Oregonian has ever used the word "babe" as a synonym for "buddy".
Sent from my BlackBerry® wireless handheld

Hot Lazy Sundayism

So it's hot outside, and I'm too lazy to do much of anything except blog randomly. (Please recall that I only promised not to ever use the word "random" in titles of blog posts.) Here are a few things I came across while feedgrazing today, which I'm doing instead of enjoying the sunshine like a good Oregonian.


  • A cool photo of a dragonfly.
  • An article about the proposed "Oregon Wine Train" running between Portland and Grand Ronde, which would double as a commuter rail line, and triple as a train to the Spirit Mountain Casino. I'm all in favor of passenger rail, and I think this would be pretty cool, even though in practice it would end up being packed full of pretentious Californian (or wannabe-Californian) wine twits and geezers heading for the nickel slots. The initiative seems to be unrelated to the upcoming Beaverton-Wilsonville commuter line. Seems as though Portland-area commuter rail is being done in a piecemeal fashion, with no real central leadership taking place. I've gotten the impression that the bureaucracy at Tri-Met sees commuter rail as a threat to the expansion of light rail, which may explain why there aren't commuter rail routes between downtown and the other existing train stations in the metro area at Vancouver and Oregon City. But I'm not a bureaucrat, so what do I know?
  • It's a bad year to be a pelican here on the West Coast. Either you're starving, or you're getting poisoned by algae. And when the latter happens, humans just say you're "drunk" and laugh about it.
  • This very blog right here, translated into Pirate. Yarrrr!!! Shiver me timbers!!!! Blow the man down!!!

    More translators and such here.
  • The latest creepiness from our local bike subculture.
  • The Friday (Foo) Blogging thing has finallygone too far.

Friday, June 23, 2006

Friday Multimedia Semi-Extravaganza


  • An update on the Washington Park reservoir grand opening, which is now scheduled for July 10th.
  • A way cool optical illusion.
  • The Two Coreys are reuniting. Yes, those two Coreys. I have to admit I was never a fan back in the 80's, being, you know, a guy and all. Sometimes I think the Powers That Be are trying to arrange things so we'll all welcome the Apocalypse when it finally happens.
  • Harriet, the world's oldest tortoise, has passed away at the ripe old age of 176.
  • New episodes of Futurama are on the way, for real this time, allegedly.
  • Lyrics for a song about Cthulhu.
  • Yet another LOTR DVD set is due out in August. This time each film comes with a new feature-length "Making Of" documentary. Just how many of these things am I going to have to buy? And will I have to do it all over again once the HD-DVD or Blu-Ray versions come out? Sheesh...
  • If you haven't seen it already: The New Orleans Times-Picayune's animation about the Katrina flooding. Yikes! It just keeps coming -- bam, another levee goes out, and another section of the city turns blue, again, and again.
  • Awww, kittens!!!!
  • More feline cuteness, although I can't provide any more details about the site without invoking Godwin's Law.
  • Ooh, yet another local beer blog to pass along. Mmmmm.... beeer....
  • I wasn't planning to do an extended rant about Ann Coulter's latest circus freakage, and I'm still not going to go there. But I would like to pass along this nice lil' video rant on the subject from Henry Rollins. Now that he's had a go at it, there's really no point in anyone else trying.

Thursday, June 22, 2006

Meet Nix & Hydra


The two little moons of Pluto discovered last year now have official names: Nix and Hydra. Sounds like a twisted Nickelodeon cartoon, or maybe an almost-famous indierock emo duo. "Nix" should not, not, not be confused with "Nyx", which is an asteroid, not a moon. Get it right, silly.

Hydra, meanwhile, should not be confused with the alcopop of the same name. Also I can't very well say "Hydra" without mentioning my Hercules vs. Hydra post, part of my recent foray into total math geekage, in which I sought to bore readers out of their minds -- and I often succeeded. Yay for me!

If I wasn't sick to death of the word "blogosphere", I'd say that's where these four N&H links came from:

  • Laura Elizabeth looks at the mythology behind the names.
  • More mythological musing at ryusen
  • The comments at shsilver feature the first lame joke I've seen about the new names.
  • And The Empty Space In My Head uses the moons in a nice post, which occasions me to wonder when my posts became so prosaic. Oh, wait, they've always been this way. My bad.

The tram tower grows taller!

tram tower construction, 6-22-06

The middle segment of our shiny new tram tower was bolted on sometime late last night, and here it is. Compare this to the photo I posted when the first segment went up.

My previous post just got a link from a guy who's working on building the thing, to illustrate what it is that he's working on. How cool is that?

So do I like the thing? Do I hate it? I haven't made up my mind yet, despite what all my carping and complaining might lead you to believe. Maybe it'll be totally fantastic once it's up and running, for all I know.

The most common complaint you hear about it is over the ever-growing cost. The public originally got a bargain-budget $15M figure, and now we're at $50M and counting. I don't really see why anyone's surprised the city & friends lowballed the initial estimate. You do that to get all the key players on board, and get construction started. Then it's easy sailing the rest of the way, because nobody wants a partially-built tram just sitting around gathering dust. It's the oldest trick in the book. I'd be shocked if it didn't happen when the great pyramids were built. And when people say nobody will care what it cost 75 years down the road, I'm sure they're right. Look at the St. Johns Bridge. The city spent way more than it needed to, and built what's still more or less a bridge to nowhere. The taxpayers were stuck with a huge bond debt right in the middle of the depression, and we could't afford to build any more bridges again until the mid-60's. But it sure is pretty. There's no denying that.

While I'm at it, I'd like to dispel a couple of common misconceptions about the tram. One, it is absolutely untrue that the tower grows -- poof, just like that -- every time the city lies about what it's going to cost. Two, there were no magic beans involved, here or anywhere else in the South Waterfront district. Those are just fairy tales, and they aren't even the right fairy tales. The thing would be much cheaper if magic beans or lying politicians were involved. No, the correct fairy tale is that we in this city are going to build an enlightened new economy where everyone is rich, upscale, thin, liberal, and ultra-educated, and nobody makes anything more complicated than a half-caf soy mocha. For everything else, we'll rely on the hard labor of cute little six-year-olds in China (but we'll try our hardest not to think about that part, because that would mess around with our precious inner calm).

Wednesday, June 21, 2006

three relaxing(?) video clips about water



The beach at Pacific City, Oregon, right outside of the Pelican Pub & Brewery. The audio is more wind than waves, which is unfortunate, but that's the coast for ya.



A fountain known simply as "Untitled", downtown Portland. It's often called the "Car Wash", but don't be fooled. If you try to wash your car in it, a nice policeman will drop by and shoot you full of holes. I mean, not to detract from the relaxing(?) tone of this post or anything, but the fuzz really will do it. Go ahead and try it if you don't believe me. [Legal Disclaimer: Don't!]



Balch Creek, Macleay Park, Portland. You can't actually see the creek very well in the clip, but at least the audio's better than the other 2 clips. It's probably obvious by now that I won't win any Oscars anytime soon. And the clips aren't exactly box office gold either, not unless I CG in a few big explosions or something unrelaxing like that.

The creek contains a native, isolated, and threatened population of cutthroat trout (image), so the trail's plastered with signs hassling visitors to please fer chrissakes stay the hell out of the water already, this means you, and your little dog too, dammit. The signs work really well, too, except for children, and dogs, and people who don't read signs, and people who don't feel the rules apply to them, and people who don't think anyone's looking, and people with fishing poles, and so forth. I'd say this was a damn shame, except that the creek's fish are a bunch of little bastards who have it coming. They're everywhere and are easily seen, except if anyone else comes to the park with me, in which case they all go hide somewhere, so that people think I'm just dreaming or hallucinating or something. Which, for the record, I'm not.

Three Wet Roses

orange_wet_rose

Three roses, captured during a bit of drizzle a week or so ago, in the South Park Blocks, downtown Portland.

a wet yellow rose

A group of schoolchildren was touring the park around the same time, and they were somewhat less enthusiastic than I was. I got absolutely soaked on your behalf. Yes, you. Now you owe me, big time.

red rose, south park blocks

Tuesday, June 20, 2006

Misc. Items 6-20-06


  • Just started playing with Opera 9. Seems nice so far, except that my collapsing menu sidebar comes out horribly mangled. Instead of one little arrow graphic next to each menu item, the browser delivers 30-some arrows per item. I have to say I find that a little excessive. So I guess it's back to the Javascript salt mines again.
  • Here's someone's homebrew recipe for "Echidna's Barleywine". I couldn't resist linking to this because it involves both beer and echidnas. Which is unusual.
  • The latest idiocy from SCO. (Y! has the press release here.) "Biztones" are a clueless PHB-ism for the ages, and SCO's entire wireless initiative is teh st00pid. Yeah, I'm really going to pay for the right to receive spam on my phone, and I'm going to rush out and buy the one model of phone that can run the Me, Inc. software, catastrophic system bugs and all. And I'm going to love it so much that I'll run out and sign up to resell all those super-advanced Me, Inc. services under SCO's MLM scheme, which is most definitely Not A Scam. And I'm also going to rush right out and join their developer program, in hopes of scoring that ultra-desirable Bimmer with the V10 under the hood. Because nothing motivates programmers like a pretentious new set of wheels. I need that there Bimmer so bad I'm going to give SCO all the rights to my work, even if I don't win the grand prize, because it's an honor just to be part of the Revolution. Yeahhhh... Not.
  • A new survey claims that New York is the world's politest major city. Clearly they've never observed the curious ritual practiced by Oregon drivers at four-way stops: "After you", "Oh, no, you go ahead, I'm in no hurry", "No, no, you were here first, please, be my guest", and on, and on. Well, it's either that, or they simply don't consider us a major city, the bastards. I'll key their cars for that, dammit. It should be noted that the survey was conducted by Readers' Digest, which is based in -- you guessed it -- the New York metro area. So really what they're saying is that New Yorkers do a rather good job of resembling themselves, and people in other cities don't pull it off quite so well. Seems that Mumbai does an especially poor job of it, causing a bit of hand-wringing in the local media.
  • If you've been in downtown Portland in the last few days, you might have noticed that the parking lot next to the Fox Tower is being torn up. Seems we're getting a brand new Park Block. This is the last vestige of a once-grandiose plan to tear out a bunch of buildings and connect the north & south park blocks. The plan went nowhere, even though it was being promoted by a now-disgraced Ex-Governor Who Shall Not Be Named. Certain power elite types thought it was a fantastic, visionary plan, but everyone else saw it for what it was: A horrible throwback to 60's-style urban renewal. But this one block was just a surface parking lot, so there's no harm in putting that parking underground and sticking a park on top.
  • I seem to have missed this year's Oregon Eel Festival, which celebrates the local lamprey population. (And yes, I know lampreys technically aren't eels. Tell it to the people who run the festival.) I'm not joking here, I really would've gone if I'd known about it. I keep hearing about how Northwest Indian tribes consider them a delicacy, and I'll try just about anything once or twice. An article in the Portland Tribune claimed lamprey tastes something like a cross between liver and duck, which sounds kind of promising. There's always next year, I guess.
  • Speaking of liver, the local food fascists (and we have a rather large contingent of them) are hassling a local French bistro for serving foie gras. And if they win, no doubt they'll keep expanding their jihad until we're all making do with vegan raw food, the blander the better. Um, but I have to drop in a little qualifier -- one of the comments mentions a substance known as casu marzu, which is basically cheese full of wriggling insect larvae. I know I just now said I'd try just about anything, but I draw the line here. No thanks, guys. This is why I always say "just about", in case something like this pops up. Ugh!

Slug on a Fungus

slug on a fungus

A slug oozing over some sort of random tree fungus in Macleay Park, NW Portland.

Monday, June 19, 2006

More Miracles of Modern Technology

multibus

An ancient bus converted to a (sort of) double decker using part of an old van. This is on NW 29th near Nicolai, in a weird old industrial corner of NW Portland. It's on the hike to/from Portland, er, Pyramid Brewing up at NW 31st & Industrial, in case you're wondering what I was doing up there. There's probably a fascinating and eccentric story behind this beast, but I have no idea what it is, or why it was made.

In other thrilling technology news:

  • MEJ mentions the latest tech conspiracy theory rippling across the blog 'verse. If you open Notepad on WinXP, type "Bush hid the facts", save it, and reopen the file, you see gibberish. Frightening, no? A little government censorbot right there in your own PC. And Windows probably reported you to the NSA, as well.

    Ok, well, no, that's not really what's going on. As the comments to that article note, it's really an artifact of the flaky international language support in Notepad, and a lot of short text snippets trigger the same behavior. Also, the text itself isn't actually mangled. If you open a command prompt window and do a "type bush.txt" (or whatever you named the file), your computer will tell you that Bush hid the facts, exactly like it was supposed to.

    I spend an inordinate amount of time in my RL job dealing with ugly internationalization (i18n for short) issues, primarily with Japanese language support on Windows and a few Unixes. And this is one of the rare situations where I'm forced to say that Windows is not worse at it than the Unix world. Convincing iconv to do what I want, reliably, across umpteen different platforms is a freakin' nightmare.
  • Both Slashdot and Groklaw both took the recent "Caldera OpenLinux X" hoax seriously at first. I'm sorry, but when something defies all evidence and all common sense, a little skepticism should be in order. It wasn't even a very good hoax. Is this why people keep falling for phishing spam? They just believe anything that looks vaguely legit after a brief couple of seconds' inspection? C'mon, people.
  • Another blog spammer managed to get past Blogger's word verification, and posted an ad for aquariums to an old story of mine about Saturn's moon Rhea:

    Hi I was searching for some information on Aquariums - some tips and Tricks and sites which have great resources and came across yours.
    Great site - I will bookmark it !

    Thanks
    h t t p :// hckpublishing . com / aquarium /

    I imagine the spammers think bloggers are so needy and insecure that they'll be thrilled to receive insincere compliments from spambots. And maybe that's actually true for some people. I just get curious about who's behind it. Unfortunately these spammers have taken a few steps to cover their tracks. The domain's registered through Domains by Proxy, so there's no useful domain contact info. And the hckpublishing.com site is hosted through a "reseller hosting" firm called HostGator, so there's several layers of obfuscation here. I can't figure out who to complain to, which I'm sure was the whole idea. The site itself is puzzling: a few low-value filler articles, and a few ads. Do people actually make money doing this? That's what I really don't understand about the spam business. Other than stealing credit card numbers, the spam business model is a complete mystery to me. Are there people out there, in this day and age, who still try to buy stuff from spammers?
  • It's time to jump on the viral video bandwagon again. Here's that ultra-cute Kitten vs. Powerbook video, if you haven't seen it already. Awwwwwww....
  • A post about our fair city's shiny new tram tower, arguing that the tram is cool and artistic and architecturally adventurous. Also, did you know that we're now officially the Best European City in America? It's true, at least so far as anyone knows. We don't get across the pond that often to see things in person, but we have cobblestones here, and sidewalk cafes, and Vespas, and the Europe you see in the movies looks a lot like that, so we must be on the right track.

    What's more certain is that we're the most Caucasian city in the country, and getting even more so every day. Surely that can't be what our leaders are really thinking when they say "European", can it? I mean, not consciously thinking it, anyway. (Actually, these days genuine European cities are probably more ethnically diverse than we are, come to think of it.)
  • An article about the current architectural fad of figuring out how to use surplus shipping containers as housing. Seems that in the Glorious Future, we really will live in bitty little boxes, er "modules", and we'll love it. Also, we'll subsist on nothing but vitamin pellets, and ride flying cars to the office. Resistance is futile.
  • Anything that's large and shiny counts as technology, even if it's art. This is doubly true if said object is on the cutting edge of "intellectual property" legal insanity.
  • This is even more of a stretch for a technology-related post, but here's a photo titled hops plant transplanted from a local park. Hops growing wild in our city parks. How cool is that? (I figure this item fits here because hops go in beer, and making beer involves technology, so there you have it.) Mmmm.... beer....

Friday, June 16, 2006

Some news and stuff, 6-17-06



A couple pics of the asteroid 2002 JF56, taken by New Horizons a couple of days ago. Color pics with higher resolution are due next week some time.

In other news:

  • This comment takes the place of an extended rant that used to be here. I'm not pleased about yesterday's "don't bother knocking" ruling from the Supremes. But the rant didn't really fit here, so I'll save it for later, probably.
  • All of this (i.e. the aforementioned supreme court ruling) makes me want a beer. And here's yet another local beer blog I just ran across. Lookit all them hops in that there carboy. Mmmm, tasty.
  • I don't know if Portland's ex-mayor Vera Katz is a beer drinker or not, and I kind of suspect not, but her new statue seems to like the occasional brewski.
  • A fun little piece about Crazy Crab, the most hated sports mascot of all time, hands down.
  • The "OMG PONIES" thing may have run its course, but Portland's tiny plastic pony thing is still going strong. More photos here. I was thinking about taking some photos myself and posting them, but now everybody's doing it. And as I've said before, I'm not much of a joiner.
  • In Ireland, even mad scientists have literary leanings. "Bloomsday device". I love it.
  • The OLCC's jackbooted thugs are at it again. Like I said before, I'm not a libertarian when it comes to the economic side of things, but I'm all in favor of abolishing the OLCC. Never give puritanical power-mad busybodies their own funding source and their own law enforcement arm. Everything they do would be handled better by local governments (licensing), regular state & local police (enforcement), and the private sector (liquor retailing). There's no need for them to exist. If we ever did abolish the agency there'd be no need to shed a tear for all the unemployed OLCC bureaucrats -- with their experience, they'll have no trouble finding similar jobs in Saudi Arabia.
  • A couple of lists of the world's worst beers. If the OLCC really wanted to perform a public service, they'd establish minimum quality standards for beer and wine, as a consumer protection measure. But noooooo....

Precambrian Blogging

(in which a decade-old short story of mine gains unexpected new life out here on the Interwebs.)

I found a box of my old Atari ST floppies the other day, and after a bit of finagling, I was able to read files off of most of them. Which is surprising, considering that some of the disks are close to (gulp) 20 years old. And by "finagling", I mean using Hatari, an ST emulator that runs under OSX, and firing up trusty old 1st Word. It wasn't Emacs or anything, but it did the job at the time.

Anyway, I was browsing around my old documents and came across one that read remarkably like a blog post, dating back to some time around '96 or '97 ( I used to keep computers a long, long time, you understand ). Of course there was no such thing as a blog posting back in that primitive era, when wild 486 DX4s roamed the earth, and laptops were a luxury item, reserved for millionaire CEOs and marketing VPs. And even then, these laptops ran MS-DOS. A blogger today would be sitting in the coffee shop, typing things up as they happened. But back in my day we had to remember stuff, and wait until we got home to type it in to the computer. Also, every day we walked to school through the snow, uphill, both ways. And we were grateful. Kids these days, they never believe you when you try to tell 'em.

So instead of a blog entry, I viewed this piece as a "slice of life" short story. I really can't say at this point how much of this is strictly accurate, and how much is artistic license, but it's based on a visit to the coffee bar at a big-box chain bookstore in Augusta, GA, about ten years ago. I'd like to apologize in advance for the missing capital letters. I thought that was ultra-sophisticated at the time. But then, I recently altered this blog's title from a capital 'C' to a lowercase one, so maybe some things just never change.

I've cleaned the post up a little and fixed a couple of ungrammatical bits, but otherwise this piece is unchanged from when I wrote it all those long years ago. I figured, hell, it's not like I'm ever going to make a cent off this thing, so I may as well just post it here.

If you prefer to wallow in present-day computing trendiness instead of going all retro, you might enjoy my imported OPML full of RSS feeds, courtesy of SYO.

Anyway, here's our story, which I originally titled simply Capuccino. Ok, the file was actually called "CAPUCINO.DOC", since you were limited to 8.3 filenames back in the day.



so i'm in the bookstore and i decide i need coffee. i first
hunt down a book to read. this takes a while. i think there's an
art to having coffee properly, and part of it involves having a
book on hand. first, so you don't drink too quickly. a bad habit
of mine. second, for something to do instead of stare into the
middle distance trying to look thoughtful. third, so people can
see how intelligent and literate you are, supposing they care to
look at what you're reading. this is both difficult and a sign of
being insecure, maybe. or just pretentious. so is dropping
capital letters, maybe.

so i've tracked down an overview of surrealist art and i'm
standing in line for coffee. it's memorial day and there's a
line. the woman ahead of me is making trouble, and it's not even
her turn yet. at the corner table, a clean-cut mid-twentyish
black guy asks if anybody's got a watch. i don't. hardly anyone
does. finally somebody has the time. fifteen something hours. this is
an army base town. black guy says this is what he gets for not
wearing a watch. the accent says educated, middle class. the
body language says outgoing. you know, like on tv. maybe gay, also, it's hard to say.

so the woman ahead of me is ordering now. it's taking a
while. she's whining about the coffee not being fresh enough.
it's like if it's been in a thermos it turns to bat guano, she
wants it fresh. and gripes about the grounds, too. look, i
know coffee, this place has good coffee, i don't see what her
problem is. plus, i want it to be my turn soon. she's talking
like she knows the staff here. i wonder if she's an employee off
duty, or a regular, or what. it's not clear. the barista's
making quite a show of humoring her caprices and not getting
sucked into an argument. i admire that. i've done that job. i
know how it can get sometimes. she says hello or something to
the black guy without a watch, i can't hear exactly because
there's a bunch of noisy middle-aged men behind me. so she
knows the guy in the corner. are they together? i wonder.
and then one of the guys behind me talks to her. i just make out
a few words and they're greek to me, seems they know each other
too and have the sort of conversation people who know each other
have. you can't very well listen in because you had to be there
and see what happened in person to get it, and i hadn't done so.
somehow she manages to also heckle the barista some more. oh, and
the barista says a few words to the black guy in the corner. i
have a sudden feeling of being tied to a balloon and launched
skyward, floating, moored to nothing solid. everybody seems to
know everyone else, in ways i seem destined never to discover.
all this time i'm clutching the book about surrealist art, trying
to look nonchalant, and trying to avoid eye contact. with anyone.

so the woman ahead of me seems to be wrapping up her order.
she's changed her mind a few times now, and the barista's trying
to placate her. she's scored a couple free samples with promises
that she'll enjoy them. now, i'd be quite satisfied with a few
free samples. but does anyone offer any to me? no. this is her
reward for making trouble. so finally she decides to get coffee
out of a thermos. you'd think the guy was trying to sell her a
syringe full of rat poison the way she's carrying on. he rings
her up, and then she needs a cookie, too. he gets her a cookie
and rings her up. and quickly leans around her and loudly asks
what he can get for me. i tell him i need an iced capuccino and
she tells him she needs something else too, when he gets a chance.

the barista seems like an ok guy. asks me if i want ice in
it. huh? my surprise means yes, i do, and he explains that some
people like it without ice. i'm a coffee snob, and bantering with
the guy i try to get the fact across. so i ask him if it's
unusual for people to order iced capuccinos, hoping it is. he
says people often change their orders in the midst of him making
the thing - seems they also have this coffee drink that comes in a
mix that people in these parts seem to like. probably full of
sugar. i think i'm detecting that he's glad somebody knows what
they want, and that it's something worth wanting. i think that's
what it is. but i can't explore this. the way he says it all
seems like an apology for asking if i wanted ice. this is how you
get when you're harried. i know how it is. plus, those noisy
guys are still behind me in line. so i get my drink and go find a
table.

the only table open is next to the one that woman is at.
seems she's got a son, eight or nine years old, and she's fussing
over him. oh, and she's unhappy about something and goes to
discuss this with the barista. meanwhile the guys behind me want
to know what i'm having. the barista is trying to explain what
the different items on the coffee menu are. one of the men has
gone to claim a table, maybe twenty feet from the counter.
without deciding what he wants first. so we've got this forest-
father-granola looking guy at the table and this swarthy fat guy
in line shouting a confused dialogue on what the guy at the table
wants, in his heart of hearts, to drink. it goes something like
this:

"how about a 'caffe latte' ?"

"What's that?"

the swarthy guy confers with the barista for a moment.

"espresso and steamed milk"

"What?"

"espresso and steamed milk"

"i thought that's what a capuccino is"

the swarthy guy confers with the barista for a moment.

"it's the same thing with more foam and less milk"

"what else they got?"

this goes on for a while. finally the swarthy guy decides
to prove he's a take-charge, bottom-line, take-no-guff type by
making an executive decision. the woman is impatiently waiting
for another go at the barista.

"what's fast around here?" says the guy.

"excuse me?"

"to make. what's fast to make. you got just plain coffee?"

"yes, sir."

"okay. four of those."

the barista starts pumping four coffees from the thermos.
the woman interrupts. she's brandishing the half-eaten cookie
like a district attorney with crucial evidence.

"are you sure this doesn't have peanut butter in it?"

"pretty sure, yes"

"pretty sure?"

"i'm sure there isn't any peanut butter in it"

"absolutely sure?"

"yes, ma'am."

"my son is very allergic to peanut butter"

"does it taste like peanuts?"

"i don't know. maybe."

she comes back to the table and sits down. looks very
frustrated. i don't think she asked about peanuts when she bought
the cookie. and while she was asking, the kid was happily
munching part of the cookie. during all this i'd been sitting
there at my table failing to get into the book but turning pages
anyway by force of habit, sneaking peeks at the commotion.

the men walk by loudly. the footsteps aren't loud, they
aren't talking noisily, there's just something loud about them.
as they pass by, the woman (who had just sat down) turns to
them.

"hey, have you been to that new church?"

"no."

the feeling of tumbling through space returns. i don't
know what the hell is going on here. i like watching people.
it's like putting a puzzle together. you pick out bits and pieces
of information from how they act, and a picture of who they are
starts to emerge. not this time. it's like a puzzle, but none
of the pieces fit together, and if they did i wouldn't recognize
the picture.

the woman takes a sip of her coffee, gets up, and interrupts
another customer. it seems she likes her coffee. not too strong
like it usually is. chatters about this for a while. the barista
ignores her. she comes back and fusses with her son. she gets up
again and interrupts someone else. her son needs chocolate
sprinkles for the whipped cream on his drink. the barista
measures some out for her in a little cup. she sits down
muttering about not being trusted with the jar of sprinkles. she
gets up again to fetch sugar for her coffee. this doesn't involve
even going near the barista, but she still returns angry and
frustrated. there's just no pleasing some people.

"can i sit here?"

i look up. the black guy wants the seat across the table
from me. i say sure and go back to my book. somehow he strikes
up a conversation with the woman at the next table. i thought
they knew each other before. now i really couldn't say.

"Don't I know you from somewhere?"

"Could be. I was on TV."

"You were on TV?"

"No, not really."

"Oh."

"Actually, I was. See those Desert Storm books over there?
I was in a foxhole."

"You were in Desert Storm?"

"Yeah, didn't do anything too special but don't let anybody
tell you they didn't use chemicals over there. Here, look at
this. This is a chemical burn" he says, showing off his shoulder.

"I don't see it, but I believe you. What kind of chemicals?"

"I think it was mustard"

"Like in food? I didn't know..."

"No, mustard gas. It's a poison."

"Oh." She marvels at where the scar would be if she could
only see it and then asks: "What was it like over there? I heard
it was really dirty."

"It was really sandy, if that's what you mean"

"You know, like Iran, Iraq, India, that whole place is dirty.
I heard somebody say they were in Israel, and there were
Christians, Jews, and Moslems all in this one neighborhood, and
you could tell where the Moslems lived because they just threw
their garbage out into the street."

"You want to see dirty, you should see the people I have to
deal with through work"

"Where do you work?"

"I reposess things."

"Oh." she says, with a deer-caught-in-the-headlights look.
she's been following along in a dull way, inert except when her
wrath is aroused.

he starts talking about the filthy conditions people live in
here in this very city. none of this surprises me. she's doing
the same "Oh" and nodding. there is nothing behind those eyes
except a bundle of needs that god and all his angels and the
denizens of the nine circles of hell and everybody on mount
olympus couldn't fill. so he talks away unimpeded by serious
questions. more and more this seems like a real advantage for
him. something about the way he's saying all this makes me
wonder. whatever the conversation snakes around to, he's done.
how convenient. he happens to mention in passing he was in haiti
with the army too. i think he says somalia too, but i'm trying
to read a book here.

during all of this the barista fusses over the bright
bronze tubes of his espresso machine. like the average
person here would notice. he could use the same grounds
all day and let the milk sit out every night and people
would think that's how it's supposed to be.

he says his name is marcello. she says hers is leona. i
think it's leona. i'm trying to be inconspicuous here, so i
can't listen too closely. she asks where he's from. california.
makes sense, she says, it didn't seem like he was from
around here. yes, he says, leaning close, people around here
are a bit, you know, he says, whispering, stupid. she agrees. i
agree too. i could jump in to the conversation and say some
very witty things at this point, but i am who i am, so i don't.
accent says she's not from around here either, but he doesn't ask
about it.

seems marcello's from huntington beach. ooh, orange county.
just moved here a month ago, lives in a little rural town just
outside our fair city here. came to be near his mother. hates
it. the town police are always pulling him over. playing rap
too loud, they say. i hate rap, he replies, don't stereotype me.
hey, that would bother me a lot, too. southern police make me
upset, and i'm not even black. inwardly i'm cringing, though:
we're in the south, and the race thing has come up in
conversation. i can't put my finger on what i'm afraid might
happen. maybe a guy at the next table is in the state aryan
militia or something and starts lobbing grenades. i dunno.
but this time it passes. she's too eager to be regaled with
tales of exotic locales:

"what's california like?"

"it's wonderful. you have to go sometime. you just really
have to go. it's unbelievable."

the adjectives seem to do the trick for her. she nods in
agreement without having learned anything about california. it
might as well be somewhere on the moon of pluto.

leona doesn't have the accent, but she's got the southern
way of being an idiot. it's like if you haven't been somewhere
or seen or done something personally, the place, the action, or
whatever, is just inconceivable. not knowing isn't a character
flaw in my book; not wondering certainly is.

to be fair, there's a northwestern way of being an idiot,
too. instead of having no imagination, the crucial piece missing
is basic common sense. a few years back a bunch of guys were
having a party in the woods and had just polished off a keg of
beer. lacking basic common sense in addition to being drunk, they
got to wondering what would happen if they put the keg in the
campfire. it heated up, exploded, and killed a couple people.
the worst thing with having no common sense is that you'll never
realize it until it's way too late. thus, people think they
can get away with all kinds of weird things. like trying to
outrun cop cars like they do on tv. or hiring some trailer park
tough to break an ice skater's leg so you can be champion.
or robbing banks. oregon has the highest number of bank robberies
in the country, and the crooks almost always get caught. and
every single time the offender is absolutely shocked that they
didn't get away scot-free.

"i think you should be a police officer."

"you know, i tried out for that, but i didn't pass some
psychological test they had.", says marcello, not missing a beat.

"oh, really? how come?", says leona, not missing a beat.
whether it's worse to buy the brooklyn bridge or to sell it is
an open question.

"when they asked me questions i told the truth. i told
them i didn't believe police should have special privileges, and
like, they have to obey the law just like anyone else.", like
those would be actual test questions or something.

"i think you're right about that", she says. if the planet
ever runs low on sympathy so that it's worth money, i want
drilling rights to leona here. she's like an artesian well of
moral support. except if you don't make her coffee right.

"besides, there's more money in reposession work."

"are you going to school?"

"i'm trying to get into the local college, but now i'm
not sure. credits don't transfer to other schools very well.
i think it's because people in this town are stupid and the
courses are designed for them."

"do you have friends here?", she says. my, isn't she
curious.

"just tammy and john here", he says and points. seems
john is the barista. and the plot thickens. oh, did i mention
i'm trying to read a book here? really, i am. so maybe morbid
curiosity is getting the best of me, but i'm having a go at a
bit of art history. i have to say that pictures of birdcages
full of marble "sugar cubes" aren't helping my mental state
at all. i look up for a moment and sip my coffee. nobody's
paying any attention to me. fine by me.

they chatter on a bit more. she's starting to act restless.
just about done with her coffee, and i guess that means time to
go. and i notice that would leave empty tables all around this
one, so marcello might decide to talk to me. somehow that holds
zero appeal for me, so i start sipping my coffee faster. i try
to be nonchalant about it, though.

and now the kid's gotten up and he's peering over my
shoulder. i look directly at him figuring that'll shame him
into going away. but no, that only works on adults. i put a
marker in the book and close it, and take a couple gulps of
my coffee. hey, this is the south -- exposing kids to modern art
is probably a felony. he gets bored and starts toward the big
section full of children's books based on violent cartoon shows.

she says she has connections and could probably get him a
job with the city police. that's interesting. marcello seems
to think so too, but begs off, giving the recent pay cut for city
employees as a reason. she nods like this is some kind of small
town and everybody knows the inner workings of city hall. or at
least they both do. and he allegedly just moved here, too. she
says this while getting up and they exchange pleasantries i catch
snippets of in between mouthfuls of iced coffee. she wanders off.

she's walking off, sip, sip, sip, marcello goes back to his
magazine for a bit, and then turns to the barista.

"hey, could i get a glass of ice water?"

there's a woman behind the counter with john. Must be
tammy, his other friend. I think.

"there's a drinking fountain over there, see it?", she says.

"let me rephrase that. i need a glass with cold water and
ice in it."

"do you want ice in that?", he asks. i hope he's not making
fun of me. why would he? maybe i'm paranoid. sip, sip, sip.

"no, and make that warm water."

"okay, sure."

i'm almost done here. sip, sip, gulp, done. cool. i'm
outta here. i stand up quietly and do a studied saunter over to
the trash bin and deposit my cup nonchalantly.

"can i get that with soap?"

"the customer is always right."

"yeah, that's what i need. a cup of hot, soapy water."

yeah, right. a real master of wit there. i wander off and
don't look back. all i want is to find a nice quiet part of the
store so i can immerse myself in magritte.

on my way there, i pass the customer service desk. leona is
there. it seems she's unhappy about something.