AT&T Blinks…

I try not to just blatantly repost things I see on other blogs, but this one is worth boosting up a little bit.
About a week ago, it came to light that AT&T had truly heinous restrictions in their contracts that gave them the legal right to terminate your account if you said anything bad about them.
AT&T tried wiggle around it, saying they’d never actually prosecute using that clause, but the blogosphere wouldn’t let it go.
Yesterday, AT&T revised their contract:

5.1 Suspension/Termination. AT&T respects freedom of expression and believes it is a foundation of our free society to express differing points of view. AT&T will not terminate, disconnect or suspend service because of the views you or we express on public policy matters, political issues or political campaigns. However, AT&T may immediately terminate or suspend all or a portion of your Service, any Member ID, electronic mail address, IP address, Universal Resource Locator or domain name used by you, without notice, for conduct that AT&T believes (a) violates the Acceptable Use Policy; or (b) constitutes a violation of any law, regulation or tariff (including, without limitation, copyright and intellectual property laws) or a violation of these TOS, or any applicable policies or guidelines. Your Service may be suspended or terminated if your payment is past due and such condition continues un-remedied for thirty (30) days. Termination or suspension by AT&T of Service also constitutes termination or suspension (as applicable) of your license to use any Software. AT&T may also terminate or suspend your Service if you provide false or inaccurate information that is required for the provision of Service or is necessary to allow AT&T to bill you for Service.

As someone who is seriously considering an iPhone sometime in the not too distant future, seeing activism generating a positive response from the vendor is heartening.
Score one for the good guys.
(Thanks to boingboing for the article.)

Sick Day

Today I am, alas, home sick. Something horrible has taken up residence in my sinuses and is producing an amazing amount of… well, you get the picture.
Colds like this turn my brain to tapioca. I can’t focus, I can’t get into the groove I need to get things done. So I’m taking this opportunity to catch up on some movie watching that I’ve been putting off because of lack of time.
Today’s entertainment has been re-watching Lord of the Rings with the directors commentary turned on. I picked up one of the various ‘directors cuts’ at some point, and unlike many people, I’ve only watched the entire 3-movie series through once. (Okay, once in the theaters, once at home), so I am a long way from losing my sense of wonder about the whole thing.
I just finished up Fellowship, with the commentary track on, and, as I have every time I’ve seen this sequence, or read it, or even talked about it, I am completely gobsmacked by the final scene in Moria between Gandalf and the Balrog. It brings tears to my eyes, I start hyperventilating, I am simply floored by the intensity, emotion, and wonder of the story…

You cannot pass!
I am a servant of the Secret Fire, wielder of the flame of Anor. You cannot pass!
The dark fire will not avail you, flame of Udûn. Go back to the Shadow! You cannot pass!

When the balrog brings the sword down on Gandalf, and he deflects it with a shining globe of pure white power. Ahhh…
And then, the final words…

Fly, you fools!

Sometime soon I’ll sit down with Zach and we’ll watch the movies together (he hasn’t seen them). I’ve watched out of the corner of my eye when we’ve shown him other movies, watching to see if he ‘gets it’ – if he feels the same sense of wonderment I have, and he does. They are magical moments for me (when the Death Star (mark 1) is destroyed… the other one is in Titan AE when the Titan first ‘powers up’…)
The directors commentary while watching Fellowship added a lot to it for me, because Peter Jackson et al were so passionate about the story, and the characters, and Tolkien’s vision for Middle Earth, it really came through in the decisions they made.
I probably won’t make it through the other movies today, but this brief interlude has been…. precious.

A Peek Under the Covers – Windows XP Registry Keys

While working on my current Java project, I needed to better understand how the Preferences API stores data. My initial instinct was to dig around in my home directory looking for a .java/Preferences file or something similar. Perhaps under Linux, this would have been the case, but Preferences is platform agnostic, and under Windows, it uses the Windows Registry.

I’ve long since tried to drive out my knee-jerk reaction to the Registry. The initial implementations of it were awful, and prone to easy corruption. Navigating the registry has never been what one would call ‘simple’, but after a while things settled down a bit and stabilized.

In this case, I was using a simple Java command to store some values for a Webstart launched client:

prefs = Preferences.userRoot().node(nodeName);
prefs.put("ExpoLoginName",userField.getText());
prefs.put("ExpoPassword",new String(passwordField.getPassword()));

Pretty straightforward stuff. In general, the code was working as expected, but I was seeing doubling of some of my values. What I needed to be able to do was actually see the registry stored values themselves, without going through the interface, to see if I was actually storing the values properly, or things were going wrong on the way out.

This unfortunately brought me in contact with the Windows native tool ‘REGEDIT’. This tool came out quite a while ago, and is the defacto standard way of editing, browsing, and searching the Windows Registry. Unfortunately, regedit hasn’t seen any interface upgrades in approximately an eon. It is painfully difficult to work in, and while yes, it gets the job done, little interface quirks can flat out destroy productivity. For example. The FIND function (amazingly, bound to ‘^F’), does in fact let you search the registry for a key or value. But, it is a one-way search, from the current position forward. It does not wrap. It also does not RESET when you change to a new search term. So if your first search finds a match, say, at the 5th from the bottom key (by the way, the window does not scroll to show you where your match hit. You have to scroll it manually), and you decide to search for a second term, it will only search the last 5 rows in the registry.

I lost half an hour searching for keys I KNEW were in the registry, because my first search had set the pointer so low. GAARRRHHHH!

What I found most entertaining about this path was it gave me a chance to look under the thin veneer of civility that Windows brings to the operating system experience. Take for example the screen shot above. Note that the keys stored in the registry have been altered from their internal values. Some bright Windows developer back in the dark ages realized they should tell the difference between an upper case letter and a lower case letter. Rather than, say, writing that into the logic of the registry, they cleverly decided simply to preface upper case characters with a forward slash.

Ah, but that brought up a problem! You could now not store a forward slash into the registry! Not to worry, we’ll just change any forward slashes in the registry to backslashes! Sounds like a great plan!

This sort of tortured logic is what you see happening in student built technology experiments, hacked together during all night jolt-driven marathons. It’s not something you’d see in the largest software company in the world. Their programming practices, in theory vastly improved from the early days, wouldn’t allow such awful hacks.

Would they?

Update – it appears, due to notes in the comments, that the registry values hack is due to Java’s interpolation, not Windows. Java needs to specify slashed items because the backing store being used in this instance (Windows Registry) is case insensitive. If a different backing store were being used, that wouldn’t be happening. My apologies to Redmond for assigning blame. On this one thing. 🙂

Not so much with the doom.

P5190129.JPGToday, I shall not rant about Verizon.
What, I hear you cry? But Dave, you’ve certainly let your feelings about Verizon be known before, has something changed?
As far as their offerings and their choices for what to do with the subscriber base? No, for the most part, I’m still pretty annoyed at them. But, in the department of “If you do things right, you can avoid a world of hurt for yourself”, I’m in pretty good space today.

Continue reading “Not so much with the doom.”

Well smack me with a trout.

I feel somewhat foolish.
I’ve been looking around for local places to go work on my laptop that are outside chez geek. My needs are pretty basic I think… Quiet comfortable space, wireless net access, a power outlet, and coffee.
I’ve found a space that covers everything but the coffee, and I feel foolish for not having come here before. It’s the Moore Institute library, better known as the Natick Public Library. It’s a huge space, several floors, well designed and laid out, and… best of all… nice little cubby spaces that are all set up for laptop use (with power outlet, hardwire connection and everything). The wireless is active as well, so you don’t need to plug in if you don’t want to.
It’s within easy bike distance of the house, and lunchstops are all around here. I think I’ll try and come down here more often.

Journeying Abroad – Life without Mozilla

It’s become almost a truism that if you use a Linux machine for your desktop, you must be running Firefox as your web browser, and Thunderbird as your mail client. The former is certainly more prevelant than than the latter, but even so, both of these programs are fairly common in the greater Linux community.
However, despite their popularity, they have their drawbacks. On the Firefox side, the program suffers from it’s core dependance on XUL, the XML based rendering engine that is at the core of the product. While XUL is remarkably flexible, powerful, and useful, it is also a performance hog. Firefox, even on yawl, my desktop machine, which should have enough oomph to drive it, can come to a painful crawl after only a few hours of use.
The memory leaks in Firefox are well known, and to Mozilla’s credit, they are being addressed in Firefox 3, currently under development.
On the Thunderbird side, I’ve been having some absolutely infuriating problems with sending mail. Hitting send will regularly cause a pause of 5-10 seconds in my complete desktop before the mail actually gets sent. I’ve checked DNS, my SMTP configuration, everything, I can’t find the problem.
So why not use this opportunity to play the field?
Here there be dragons…
For the last week, I’ve been on a No Mozilla campaign, with an audience of one. I have on occasion needed to start Firefox (most notably to view Google Calendar), but for the most part, I’ve been using Konqueror, the browser within KDE, as my primary web browser.
Konqueror has been remarkably stable and useful, I will happily admit. It is noticeably faster than Firefox in almost every way, and I’ve seen only 1-2 websites where rendering has failed completely (noteably Google). KDE’s inherent ability to allow keyboard redefinition has made the transition to Konqueror quite easy (for instance, Firefox uses ^L to jump to the address bar and edit/copy/whatever your current URL. Konqueror has ^L bound to ‘clear address bar’, something that was driving me bonkers for a few days, before I realized I was simply using the wrong function. A quick key redefinition, and I was happy again).
For the most part, all my plugins are working correctly as well. Konqueror adapts the Flash, Java, and Shockwave plugins as used in Firefox without any problems. In stream videos and animations work just fine.
Will I continue using Konqueror? Most likely I’ll stick with it for a while. I do miss a few basic things though. For instance, I use Google Browser Sync to make sure all my bookmark folders are synced across all my machines. My Konqueror installation does not have my, er, large selection of bookmarks I’ve accumulated. Secondly, I’ve been using Sage as my RSS reader (as it syncs in with the Firefox bookmarks quite nicely). That naturally won’t work with Konqueror, so I’m without a centralized RSS reader right now.
Even with these niggles, I’m finding myself using Konqueror more and more. Speed, stability, and functionality. How pleasant!
Great Dave, but what about mail?
Oh yeah, the mail. Well, this one doesn’t have quite as happy a story.
In my journey away from Thunderbird, the first choice was naturally KMail, the mail component of the Kontact system in KDE. I’d used KMail on and off several times over the year, and I’m sad to say, it really hasn’t improved at the pace other applications have. In many ways it’s quite pleasant to work with, snappy rendering, good layout and feel, complete and workable dialogs, but it still suffers from a Linux ‘half complete’ feel. The keyboard bindings for mail navigation are obtuse and, oddly, impossible to reassign (I even have a bug open on it – it’s still not fixed). The thread model in KMail is abysmal – making it very easy to freeze the entire interface on very large mailboxes, etc etc.
So KMail was okay for a bit, but wasn’t cutting the mustard for regular use. The next natural check was of course Evolution, the Gnome mail client.
I’ve used Evolution off and on a lot over the years, and in general, it’s okay. I don’t particularly like GTK based apps (I find them overly hungry for screen real estate, and a bad combination of eye candy and ham-handed attempts at UI design), and Evolution shows many of these traits. However, even with those faults, it’s not a bad client. I got it up and running without any problems, and it’s working fine.
So why am I gripey?
I miss Thunderbirds spam filtering. I get a LOT of spam. My monitors regularly log 500-700 spam messages a day into my inbox. boomer does an awesome job of catching the lions share of the spam (about 80%), but the rest shows up in my inbox. Thunderbird was catching perhaps 90% of -that- spam, and tagging it for me. I could review what was tagged, agree with whatever it set, hit “purge”, and it would all go away.
Evolution has very rudimentary junk filtering, and it’s not catching much of this spam. I’m finding myself spending much of my time just deleting spam messages, and growling.
Conclusions
Will I stick with Konqueror for a while? Yes, I think so. I have to rethink my RSS aggregation and viewing. I’m not keen on a locally managed RSS list (because I change machines so often), but I’m also not excited about a remote ‘web’ based system (Web 2.0 can bite me, and old sk00l type applications are not fast enough for my reading habits). So that need is still missing.
Will I stick with Evolution? Perhaps, if I can fix the spam filtering problem. Evolutions handling of multiple accounts is FAR better than Thunderbirds (have a bug open on that one too), and the UI is one I can deal with, if if if…
I’m just never satisfied I guess.