Well, So Much for Thunderbird

Published at 07:34 on 9 April 2014

I’ve been using Mozilla’s Thunderbird client to read my e-mail since last fall, when Apple Mail’s antics finally got to the point that the camel’s back broke. (The final straw was when message filtering mysteriously stopped working for my work computer. The amount of messages I receive at work make it absolutely intolerable for filtering to not work; it’s a must if important messages that impact my ability to do my work well are to get noticed instead of buried amongst massive numbers of unimportant messages.)

Yesterday morning I notice that Thunderbird is definitely eating messages on one of my inboxes. They simply don’t show up. Sometimes, they show up but a week or more late, in one big batch. There’s no clear reason why. So far the only explanation I’ve found is to delete “bad” messages that “confuse” Thunderbird, and to be sure to “compact my folders” regularly.

Well, sorry. Neither should be my responsibility. None of those “bad” messages confuse Apple Mail or the Squirrel Mail software I use to read that mailbox over the web. Moreover, it is not my responsibility to babysit a program which is incapable of managing its own databases by manually “compacting” files. I’m busy enough as it is without having to add extra busywork to the picture, busywork that makes me miss important communications and thus mismanage my time if I don’t do it.

So the search for a mail client that does not abjectly suck resumes.

Finally, a Smartphone that Tempts Me

Published at 15:10 on 27 January 2014

This phone is tempting, despite still having all the disadvantages inherent in a smart phone.

Alas, I suspect the temptation to be mostly academic. If the phone can do all which is claimed of it, then expect the government to promptly ban it. If not officially, then behind the scenes by getting the cell phone carriers — who have a track record of being the willing lackeys of the surveillance state — to agree to not support it, by deliberately crippling their networks, if need be.

The latter wouldn’t be hard to do; just block all serial numbers in the Blackphone’s range.

Good Riddance to Apple Mail

Published at 18:34 on 1 December 2013

I’ve put up with it’s broken search function for years. Searching in Apple Mail depends on a fragile and basically broken indexing system that is typically out of step with the actual contents of a mailbox file. Upshot is that a search typically fails to find the message I’m trying to locate.

Then filtering mysteriously stopped working. I had set up a battery of filtering rules to ensure that the torrent of low-priority messages I get on my work computer get shunted to one of two low-priority folders, leaving the main inbox folder for messages that typically have higher priority. This was even worse, as important messages were now getting buried in the torrent of low-priority babble.

The last straw was when deleting mail suddenly stopped working for my Gmail account after I upgraded to OSX Mavericks. I’d delete a message only to have it immediately pop back into existence. OK, time to get off my butt and stop procrastinating about dumping Apple Mail, now.

After a little bit of research, I downloaded Thunderbird because it seemed to have fairly good ratings and I could download it for free right now and start using something that was hopefully not fatally broken.

The first pleasant surprise was configuring my inbox. It was shockingly easy compared to how painful it typically is in Apple Mail, where there always seems to be a crucially important setting buried in an obscure submenu which has defaults to the incorrect value.

The second pleasant surprise came when my messages were displayed: the display looked much like the old Apple Mail did, before Apple started playing games with the display of the inbox in various ways which always seemed to reduce the number of message subject lines and senders you could see at a glance.

The third pleasant surprise came when I set up filtering. There was a most useful “From, To, CC, or BCC” option which let me define in one rule what it took creating four rules to do in Apple Mail. And the filtering actually worked, instead of silently failing for no good reason.

The fourth surprise happened today, about a month later, when I set up Thunderbird on my home computer. I have a bunch of email accounts, and one of them is on a discount hosting service and has some truly strange options. I saved that one for the last. Before I got to it, I noticed Thunderbird flashing a message about checking its database of mail server parameters when I configured one of my other inboxes. So that’s why things “just work” and I don’t have to fight my way through obscure sub-menus. Could it be? Yes: I enter that final account, the message about checking the database flashes, configuration parameters found, done, even the obscure one “just worked”!

And searching works, too.

AJAX Makes Javascript Suck

Published at 18:12 on 1 December 2013

Probably the biggest reason Javascript-infested websites suck so mightily is AJAX. Every GUI widget no longer simply operates local to the browser; in the background things are talking to the server for every little thing you do. This makes pages act erratically if your Internet connection is anything less than rock-solid and high-speed.

Making matters even worse is the tendency for JS-infested pages to re-invent the wheel. Instead of using standard buttons and other widgets, it’s all implemented from the ground up in Javascript. Unlike the standard widgets, these JS ones violate the look and feel of what the rest of your computer is doing.

Add that to the erratic behavior that AJAX causes with anything less than optimal network connectivity, and you have a recipe for an unusable web page. Do I need to click on that widget or not? One click or two? Does its color indicate it active, or disabled? Did the click I made register, or did AJAX make it vanish due to network flakiness? Or is the response just delayed? Oh, it did something! Was that my first click (with an unwanted second response coming when the network catches up), or my second one? And so on, and so forth.

Mind you, I’m not saying “never use Javascript”, just “use Javascript with great caution, and only when there’s no other way to do what you want (and are you sure it has to be done in a way that requires Javascript in the first place?)”.

Javascript’s proper place is as a seldom-used last resort, not as a commonly-used first one. Browsers work best when they run functional and descriptive code such as HTML and CSS, not procedural code such as Javascript. They also work best when user interaction is handled “off-line” (i.e. completely locally by the user’s computer), not “on-line” in an AJAX fashion.

Javascript Makes Web Sites Suck

Published at 13:39 on 30 November 2013

I’ve said this before, and I’ll say it again. Nothing underscores the slogan which comprises the title of this post more than trying to read your email via the Web while riding on the bus.

Mobile internet connections are never as fast or as solid as normal wired ones. Google Mail is awkward and unpleasant to use and iCloud is basically unusable. Yet reading my third inbox on a discount hosting service using the plain-Jane Squirrel Mail web software is a snap.

And if deep-pocketed big businesses like Apple and Google can’t produce a Javascript-infested web site that behaves properly, just what sort of hope do developers with far more modest resources have?

The Paradox of Programming Languages

Published at 20:57 on 14 November 2013

I care so much about programming languages principally because I don’t care about computer geekery that much, at least not as much as most computer programmers do. I can’t really geek out on learning a programming language. Just give me something that’s simple and well-designed and therefore not much work to understand and use.

That me averse to overly-complex languages like Ruby, Perl and particularly C++. Why would I want to piss away my valuable time becoming proficient in one of those when for less investment in time I can be proficient in something simpler and easier like Java, Python, or C#?

It means I can spend less time worrying about computer programming and have more brain cells to devote to other things.

There is No Excuse for Not Having GC

Published at 10:45 on 1 January 2013

About five years ago, I set out to learn C++. I gave up after a few days when I ended up going down the rabbit hole of what’s on the heap, what’s on the stack, and what can be freed when. It was an enormous headache, and nowhere was it clearly and succinctly explained.

And it wasn’t even necessary to worry about. Modern languages like Java, Python, and C# all have garbage collection. Program in one of those and you don’t ever have to care much about memory management. The language subsystem that runs your programs does it all for you.

Given that memory leaks are one of the most common, and one of the most difficult to track down and resolve, classes of bugs, this is a win of simply monumental proportions. It is unfathomable why one would wish to voluntarily relinquish such a boon.

The standard answer to this observation is to point out that there are certain timing-dependent programs (typically ones that access raw devices), where GC gets in the way and can cause lost data.

I don’t think this argument has much validity when it comes to arguing in favor or not providing GC. Rather, it is an argument in favor of providing the programmer with control over GC. All one needs are four basic operations:

  1. Turn automatic GC off.
  2. Turn it back on again.
  3. Perform a GC cycle manually.
  4. GC a single datum manually.

With those, one can do timing-critical programming and not have GC get in the way one bit.

By turning GC off and reclaiming things on a case-by-case basis as needed, one can even use the same memory-management paradigm that primitive, functionally obsolete languages like C++ mandate you to use. Even if you do that, you can still perform occasional invocations of manual GC cycles, and log error messages if anything got garbage collected, and your program will detect its own memory leaks.

About the only rationale I can think of for not having GC at all is that one is writing some sort of embedded code on hardware so limited that there is not memory or CPU cycles available for it. That’s almost certainly a tiny fraction of all programming tasks.

Fscking Spammers

Published at 20:54 on 20 August 2012

It seems as if one of my recent posts has attracted the attention of search engines, probably because in relating how I solved a Macintosh frustration, the information has proved helpful to others.

So far, so good. The bad news is that’s attracted the attention of spammers. No, they’re not getting any spam posted: I have several lines of defense against that. But they are getting through the first line of defense: the captcha on the comments form.

They’re probably doing that with the free porn scam, in which one writes some back-end software to impersonate a browser (not hard to do; I’ve done so many times for legitimate purposes), and presents the captcha image to someone who wants to be rewarded by viewing some porn for free if they solve it. The front-end that displays the porn then passes on the solution to the back-end, which uses the information to send back a form response containing the spam.

It’s a pretty minor irritation, but an irritation nonetheless. Maybe I’ll get motivated to go through my server logs and start reporting them to those responsible for the IP addresses the requests are coming from.

iTunes Video: A Complete Ripoff

Published at 09:23 on 18 August 2012

Note to all: avoid iTunes videos that you must pay for like the plague.

I had been wanting to watch some Portlandia episodes , and last night tried to with iTunes video. Big, big mistake. After charging me $2.99 and commencing the download, iTunes sneeringly informed me that I could not watch said video on my computer, and then launched into a paragraph of arcane technobabble that even I could not understand at first.

Apparently, some lame copy-protection scheme mandated by the Hollywood studios considers all but a select few Macs a piracy threat, presumably because the digital video signal going between the system unit and the monitor could be used to create a decrypted, free copy of the video.

Of course, that’s no excuse for iTunes’ bait-and-switch behavior. iTunes could obviously tell if the system it was running on was unacceptable to Hollywood (hence the message); there’s no reason whatsoever for not sending it before you pay for a video and start the download. None except pure greed on Apple’s part, that is.

While researching the issue, I came across a comment in passing that mentioned BitTorrent and pirated copies of videos. A light went on. I downloaded BitTorrent, downloaded an AVI video player, typed in a few Google keywords, and within a matter of minutes BitTorrent was merrily downloading the content Apple had previously defrauded me for. Content which actually played.

And the BitTorrent download proceeded far faster than the iTunes download had. Just for yucks, I tried it again with another episode and that one arrived promptly and without issue, too.

Way to go Apple and Hollywood: you’ve successfully made it so difficult and risky for customers to pay for content that they opt for the easier option of pirating it instead.