Sunday, December 20, 2009

Friday, December 11, 2009

A Google rant ... but not the one you expect

I like Google just fine, thank you very much. I gave up expectations of privacy before Scott McNealy told us all to “get over it” back in the long, long ago. I've had a sneaking suspicion that Google had been keeping an eye on things for quite a while now, what with the targeted ads and so forth. That's their freakin' business model, innit?

No, I'm not complaining about a lack of privacy, but rather about a lack of respect. I'm just a poor boy (nobody loves me), so I tend to use Google's “free” tools when I need to do something webbish, all the while knowing that TINSTAAFL. I understand that there are going to be some limitations on what I'm allowed to do; I expect that the Google brand will have to remain intact, and that the ads that provide their revenue ought to be visible to surfers. That is, after all, why the lunch is free. Strings attached. I get it. I also understand that there are some nasty people in this world who like to engage in XSS, credential-grabbing and all kinds of mean, ugly, nasty things. (Mother rapers. Father stabbers. Father rapers! Alice's Restaurant Massacree - Arlo Guthrie) Well, I've done my share of littering, so I guess I deserve to be on the Group W bench playing with the pencils, but...

If you're going to offer me something called a “Page” and provide an HTML editor for that page, AND allow me to preview the page and see its wondrous beauty, why, oh why must you strip out all of the HTML on save?

Okay, they do leave the p and br tags alone. Well, except for the attributes, if you've used any of them. And I can understand why they'd want to strip out script tags, and URIs that start with “javascript:” or “data:”, but when a man steals another man's identity (id attributes are stripped) and cramps his <style>, that's just wrong. (Cries of “shame” and banging of desks issue from the Opposition benches.)

I'm really rather more apoplectic than this posting suggests. Google Groups meets my needs—it's the fair-haired bastard child of the discussion forum and the Usenet newsgroup, except for this one little hitch. Well, the needs aren't so much mine; I'm just the guy setting up the support system for people who will be saving one another's lives. I'm just disappointed that I have to use so many different tools to do what needs doing, with the potential for privacy problems spread far and wide across the net. And all it would take to fix it, to consolidate everything in one place, is for Google to treat group owners like adults.

That is all.

Thursday, December 03, 2009

This stylesheet is maxed out now.

Yes, folks, there are limits to what I will do. Adding three more images to the stylesheet has made it as large as I can let it be and still sleep at night. I hope none of you are on dial-up, 'cuz this page has just transitioned into “sometime next month” ETA territory for the fourteen-four crowd.

Obviously, I need to find a place to put the images where they can load (as binaries) in a reasonable amount of time. I've tried Picassa Web Albums and Flickr, and they're both way too slow for me—my browser won't load them nine times out of ten. Oh, they'd load just fine as <img> elements (eventually), but they're just decorations, not content, and I've gotten pretty hard-line about semantic purity ever since accessibility has become an issue. So for now the images will remain Base64-encoded on the stylesheet. Sorry about the page size.

Sunday, November 29, 2009

Good enough?

So I guess the object of the game here is to post content every once in a while. There have been lengthy periods during which I simply didn't have the inclination for whatever reason. There have been others when I didn't have the means. And there have been times when I was incapable of thought that extends beyond the basic food and shelter kinds of issues. (That's not about poverty, though my means are modest, to say the least. No, it's been more along the lines of: “Oh, yeah. Fork. How do you make it work again?”) Even on my best days now, I have more trouble than I really want to admit putting words together, let alone distilling them into glyphs for the perusal and enjoyment of others.

It may seem a little bit odd, then, for me to say that I've been a little bit busy playing with things webby lately. By default, I've become the designer, administrator and moderator for a small organisation to which I'm not allowed to publicly declare my attachment. I really can't wait to hand off those responsibilities—what would be a half-hour-a-day pain in the butt to most people is more or less a full-time unpaid job for me. Despite the difficulty, though, I am the only member with any expertise at all in the area, so until I can teach somebody else everything they need to know, my time is booked. To put the task into perspective, imagine doing all of your day-to-day computing tasks as text messages on a garden variety cell phone that won't let you turn off a predictive text feature, and that the predictive text can't be trained. Characters are pseudo-random, may be repeated, and are capitalised at random, and my hands are as likely to type a word that is almost, but not quite, entirely unlike the word I want simply because it starts with the same two or three characters. The backspace and delete keys on my keyboard no longer carry legends. I'm glad I don't actually do this for a living anymore—I'd need to put in so much of my own time on a project that I doubt I'd make “real” minimum wage.

Well, that's enough griping about typing. It's time to gripe about other things. Like, say, the English-made Stanley #9½ block plane I have. I'll be able to keep the body casting and the nosepiece (a part of the sole of the plane that slides, letting one control the size of the throat, or the opening in front of the blade). Everything else needs to be replaced: lever cap, lateral adjustment lever, blade follower, depth screw, and the blade itself. The blade, at least, is available in a couple of different genuine tool steels quite unlike the plasticine the Stanley blade is made from. Everything else needs to be fabricated. Even the body needs to be modified, but at least there's nothing involved that can't be done with a drill, a couple of taps, set screws, some epoxy, a file and a lapping plate.

Now, I'm well aware that the intricacies of the block plane are not a subject of concern to the historical audience for this blog. The plane qua plane itself really isn't that important, but it is an excellent illustration of the decline and fall of the empire. It's a simple device, just a couple of iron castings with minimal machining, a few sheet metal stampings and a couple of screws. It should be unimaginably easy to get it right, particularly when one takes into account that the device itself hasn't really changed in a century. It's the small corners cut along the way that make my #9½ different from the one my grandfather had. The sheet metal is thinner and softer, the pawls are simply stamped rather than stamped and machined, the edges of stampings are raw where they used to be chased (finished by filing), and everything fits looser so small variations in the parts don't require hand work to make things fit together. That looseness, though, also means that the blade can't stay where you put it, that any adjustments mean a half-dozen back-and-forth operations to eliminate backlash (the “give” in the screw mechanism) and that the lever cap, which also acts as the handle, will adjust the angle of the blade during normal use. And since the standard blade needs to be sharpened every fifty cuts or so, the whole finicky adjustment process never seems to end.

None of the changes to the production of this simple machine are, by themselves, fatal to the functioning of the machine. Taken together, though, they mark a triumph of the bottom line over the product and the consumer. A nickel saved here, a penny there, and before too long something that is conceptually foolproof is defeated by genetically-enhanced fools the original designer could not have imagined. I never thought I'd be a grumpy old fart wandering the streets saying “they don't make 'em like they used to”—but here we are.

“Good enough” almost never is. There is little difference between my little block plane and a lot of the code I have seen over the years. The basics are there, there are vestiges of well-thought-out features, but every corner that could be cut has been cut. An occasional user who never encounters a pin knot or difficult grain might never notice the problems, but that doesn't mean they're not there. Guard clauses, type checking, error trapping and correction and logging are as essential to code as tight threads, shims and smooth surfaces are to the functioning of a machine. As coders, we are not making widgets as much as we are making tools to help other people make widgets. Their craftsmanship depends on ours, so let's make it right.

Sunday, November 22, 2009

With a new life comes a new blog design

And it only took me three weeks to make the template work! Which is, I suppose, the point I was trying to make in the last posting. It's not completely finished -- there are a few bits of workbench clutter I'd like to work into the mix -- but I'm still kinda juiced about the result.

Oh, don't get me wrong -- I'd be happy(ish) with the result even when I was up to the task. What makes this different is that I've managed to get it done without being able to reliably link to images. That's right: there isn't a single link to a picture anywhere. If you aren't using a reasonably up-to-date browser, you won't see any pictures at all, and will probably wonder why I'm all excited about some mediocre typography.

If you can see the images, it's because your browser understands the data url in CSS. The images are Base64-encoded on the stylesheet, and the stylesheet is on the page, so there are not extra requests. (Well, except for the ads and the navbar.) There is no real advantage here, since the stylesheet has to download with every page request, but if the stylesheet is cached, you can more than make up for the extra weight of the Base64-encoded images by cutting the server requests for background images to zilch.

Something to keep in mind if you can ever drop support for last year's browser. (Works in current versions of IE8, Firefox and Safari. I haven't tested in Chrome or Opera, but both have a good record for CSS support. Older versions of IE must die, and maybe this trick will help kill 'em.)

Oh -- the theme is woodworking and design for a reason.

Monday, November 16, 2009

When what you are changes...

As someone pointed out, I'm a little overdue for my "I'm not dead yet" posting. Part of that has been simply that I haven't felt like I've had much useful to say, and part has been because using the computer has been a frustrating and futile venture at best. Well, at least a part of that has changed over the last few weeks -- I am now in sufficient control of my hands often enough and for long enough to take the odd stab at life online. Some things, though, haven't changed much at all.

The monster that ate my brain isn't exactly Parkinson's disease, but it's related. Dementia is the primary symptom; the shaking is just incidental. There are drugs to control the shaking, but as with anything that messes with brain chemistry, it takes some trial and error to find the right mix, and it's only been recently that I've regained the ability to type -- or to walk without having to think through the mechanics of each step, for that matter. There's not a lot anybody can do about the dementia, though.

I still know enough about Notes, Java, PHP, JS and HTML that I ought to be able to make a living at it, but my "scratchpad" memory is so thoroughly shot that I can get lost in a ten-line function. That continues to get worse as time passes, so my life as a programmer (or as an answer man on the developerWorks fora) has effectively been over for quite a while now. It was a blast while it lasted, but now even the most trivial work is a source of anger and frustration. I don't need that, nor would I want to expose anyone I worked with to it. And since I have no way of predicting when or if I'm going to have a good day (that is, a day when my body and mind both show up, and when I'm not comatose), normal employment at something less intellectually demanding is also a pipe dream.

Merely accepting my life as it is today, though, seems to have made me something of a local inspirational character, particularly within the recovery community. I sometimes wish there was a way to monetize un-unhappiness (although I have to admit to a steep decline in my own spending on coffee, since that nectar seems to be the traditional offering when the troubled seek solace from the guru). It's not that I enjoy having ever more restrictive limits imposed on me, but when life offers you a choice of laughing or crying one finds that the crying gets really old really fast.

One thing I've found I have been able to do adequately is work with wood. By adequately, I mean I'm only scarring my fingers up badly -- I haven't actually removed any. It's all hand tools (except for the drill, since making a small hole that is actually round with a hand-cranked drill or a brace and bit is almost impossible). And I have to say that I'm enjoying the hell out of it, even when I'm screwing up. It's a quiet and solitary pursuit, which frees me from the anxiety that comes from having all of my perceptual filters turned off. The smell is intoxicating. I know by the sound that I have planed a perfect shaving half a cell thick without having to look (and when the grain has reversed on me and there has been a terrible tear-out). There's the mirror shine of wood that has been pared by a chisel that's been sharpened keener that the average razor. And don't get me started on the miracle that is the Japanese saw.

So Stan is now a fine cabinetmaker. With any luck at all, I may actually make enough money to pay for the tools. For those of you who may be unaware, the good toolmakers of the past have all gone the way of the dodo. There are still tools sold under venerable names like Stanley, Record and Marples, but they're, well, crap. Worse than crap, really. Power tools are doing much better -- but a fellow in my condition can't afford to be playing with anything where a small slip can result in a big injury. So I'm stuck paying three hundred bucks to a small but excellent toolmaker for something I would have been able to buy for fifty bucks (or, rather, yesterday's equivalent of today's fifty bucks) when I was a kid. Used? The ones that survived have become collectors' items and sit in places of honour on shelves. Kinda like what happened to those antiquated Leica cameras.

In any case, I'm having fun turning big sticks into sawdust, shavings and custom convertible multifunction furniture for small spaces. And I'm pretty good at convincing people that setbacks are only defeats if they surrender. But I am not, and will never again be, a techie.

Friday, February 13, 2009

Digging for some words

Some of you may have noticed that I am something of a naive polymath. Or, at least, that I seem to have accumulated a lot of esoteric and largely useless knowledge for a guy who never quite got around to finishing high school. I guess I have a sort of Faust complex, but I've never been willing to commit to more than hocking my soul. (And to quash any rumours before they start, let it be known that I never failed to redeem the ticket.) I just gotta know, you know? Lately I have become rather obsessed with linguistics. I thought I knew a bit about the subject. I mean, my military career in communication electronics got me into information theory, and Shannon led to NLP, which eventually led to Chomsky (I compulsively followed the links before Sir Tim gave us the web), and ol' Noam was the be-all and end-all of linguistic theory for a very long time. It all made perfect sense. Then I began to experience aphasia.

That hasn't shown up in my public life, and that makes sense. There's little point in trying to blog, post cogent comments or answer technical queries when you can't glue the words together, either because the words or the glue is missing, and I haven't has anything like a hot potato in my inbox for quite a while. Even picking up the phone is pointless at times. Only my closest face-to-face friends have seen what I have sometimes become, and then only when I thought I was well enough at the beginning of a long conversation.

If you know how language works, you ought to know how it breaks. One ought to be able to predict modes of failure. If one part of the brain gets stuck, you might expect to lose structure; if another goes, then you might find it difficult to fish in the big bucket o' words for the right one. What I have been experiencing doesn't jibe well with what I knew.

Let's take the vocabulary failure instance first (in transmissive rather than receptive mode). Sick or healthy, we have all had occasions where the exact word we want to use seems to be just slightly out of our grasp. We know we know it (and we know that we'll wake up at about 2:37 next Tuesday morning with the word frontmost in our consciousness, a general sense of urgency about the word, and absolutely no idea why it's so damned important), and can usually slip in a substitute after a short interjectory "uh" (those outside North America may wish to read that as "er"). No harm, no foul. I thought that a pathological vocabulary slip would work much the same way, but I found that my indexing failure was somewhat more catastrophic. For instance (and this is contrived for illustrative purposes) if I were to try to name a particular shade of red and missed, I would find that it wasn't just "carmine" that was missing, but everything related to crimsons. And if I tried to climb back up the tree, I'd find that "red" was gone, along with "colour", "shade" and "tone". Hell, I couldn't even name things that were red to get the analogy across. Have you ever tried to make an onamatapoeic noise for an abstract concept? I have. I found that my mind is organised very much along the lines of Roget's classic thesaurus (the big one that's conceptually organised, not the little alphabetical list of synonyms they sell to schoolchildren) — when things go missing, great conceptual swaths disappear, not just words. Mainstream linguistic theory doesn't suggest anything like that level of coupling.

I am still trying to find a way to express the more structural failure modes. That will be harder because the recording of the experience in my brain was made through the filter of the failure itself. I'd love to tell me what was going on, but it's going to take a while to wade through an unorganised bucket of words and impressions that are more Rorschach than Rembrandt. The trick will be in teasing out the actual experience, uncoloured by pet theories or preconceived notions.

As always, the best opportunity to examine how a complex system works is to examine closely what happens when a part of it breaks. As a person who has experienced the breakage, was aware of it at the time, who can describe the phenomenon from the victim's perspective, and who has witnesses who can tell me what they saw "in the wild" (as opposed to in contrived interviews), I am in what seems to be a unique position to contribute to the knowledge pool.

Or maybe I'm just looking for a new way to feel important. Whatever. It makes me happy.

Wednesday, February 11, 2009

It's been a long, long, long time...

… but a good blogger ought to update at least once every seven or eight months or so, I suppose.

Fact of the matter is that I haven't had a lot to say. Or, rather, that I haven't had the language to say a lot for some time. Things appear to be getting better, at least in terms of written language — it still requires the patience of a saint to talk with me in the real-time audio sphere — but there appears to be a persistent connection to some level of grammar now, so I am sending out a signal in hopes of receiving an ACK from somewhere.

I've learned a lot about myself in the last few months. Take away an intellectual's intellect, and he's left wondering who he is. (Sometimes literally. That's every bit as scary as it sounds.) Take away his ability to communicate, to express himself, and (more importantly) to read and understand others, and the question turns to what it means to be human. I hope to take you on a guided tour of my explorations over the next little while, for as long as I can stitch my thoughts together coherently. I am not taking this for granted; there have been too many times when medication has caused a short-term improvement in my symptoms only to fail again in a couple of weeks. Let's see where this goes.

Physically, I'm no better, but that seems utterly unimportant compared to being able to walk a block to the grocery store without getting lost. I'll take the trade-off, thanks.