Advance Notice of Unplanned Outage

Just a quick note to tell you guys that I’ve run into technical difficulties renewing the muddledramblings.com domain name. LiveRack sucks. Never, ever, register a domain with LiveRack.

Actually, I’m not sure you’d be able to register with them even if you wanted to; their payment acceptance portal seems to be broken. Thus, I cannot renew this domain. There is no way to contact anyone at LiveRack. A long time ago they listed contact information but never answered queries, now they don’t even bother pretending. LiveRack sucks. Never, ever, register a domain with LiveRack.

So, I decided now would be a good time to move the domain to a new registrar. I’d tried this some time ago, without success, because LiveRack did not respond to the request. This is, as you might have surmised, because LiveRack sucks. If I were you, I’d never, ever register a domain with LiveRack.

So, with time running out, I put my nose to the grindstone and got the right codes to move the domain despite LiveRack’s unresponsiveness. But, wait! It can’t be that easy… The domain is too close to expiring to move. I have to renew, then move. But I can’t renew, because LiveRack sucks. There was a time, long ago, when LiveRack didn’t suck. Those days are long gone. You see, these days there’s really no way to describe LiveRack without using the word “sucks”. I wish I’d never registered my domain with LiveRack.

Tomorrow I’ll try LiveRack’s renewal again, in case they’ve fixed it, and I’ve appealed to Enom to intervene as well. LiveRack is a reseller for Enom; LiveRack’s only role was to process my payments. Now they can’t even do that, apparently, which leads me to the inescapable conclusion that LiveRack sucks.

So, in a couple of days, muddledramblings.com may stop working. I’m still hopeful, but I wanted to let folks know ahead of time.

Oh, and if anyone asks you about LiveRack? Well, LiveRack sucks. Under no circumstances should anyone register a domain with them. Seriously.

Microsoft Needs to Run its Grammar Checker on Word

I just saw this in the user interface for Microsoft Word:

“Word found 36 items matching this criteria.”

This criteria. In a product that is supposedly created by professional writers for professional communication. Interestingly, when running the above sentence through Word’s own grammar checker, the sentence is flagged. Use these criteria or this criterion, the software advises.

This isn’t the latest version of Word, so there’s a chance it has been addressed. But still, this doesn’t reflect well on the Quality Assurance team at Microsoft.

Incidentally, my sweetie and I discovered this while comparing to see who had the most f-bombs in their story. It’s been one of those years. (It would be premature to declare a winner, as she will be adding a lot more words over the next three days.)

Well, THAT Sucked

The last few days my Web host has been having a tough time. I don’t know the exact nature of the problem and I doubt I ever will, but this site has been broken. For a while it would not load at all, and then it was in ‘read-only mode’, Which meant that it was still performing terribly and I couldn’t even put up a notice that I knew things weren’t going well but the solution was out of my hands. Not a good situation when my credibility as a programmer is an important asset.

I couldn’t even make a backup.

Things seem to be getting back to normal (though they are not there yet – the site is still quite slow). There’s even a chance that I’m running on a brand-new server that is not being shared with as many other people. Or at least a brand-new server. Unfortunately, however, while I have come to appreciate iPage the company, which was very helpful and patient getting me up and running, iPage the service has not been so great.

I have vowed that the next move I make will be to a server that I control completely, so I can choose who shares it with me. I’m looking at Co-location deals now, though I might wimp out ant take the middle road. A VPS (virtual private server) gives me all the control of having my own machine, but in fact it’s an illusion — I still share physical hardware with an unknown number of others.

1

The Drupal Attitude

I’ve been doing some geekery with Drupal lately. Drupal is a free, open-source server application that makes it easier to build really complex Web sites. It allows you to create complex data types and establish relationships and do fancy database stuff… without actually touching the database. That’s not too shabby. Drupal is rapidly becoming more popular, but there are a few things standing between Drupal and world domination. At the top of the list is the Drupal Attitude.

I will illustrate with an example. Things will get geeky for a while as I set the stage, then mellow out as I focus on the human interactions between various groups.

From a technical standpoint, Drupal’s biggest flaw is that it sucks when it comes to many-to-many relationships. Imagine I have a data type called “shirt” and another called “color”. It is very easy for me to set up “shirt” so that it can have several colors. So, when I look at a specific shirt in my database I can see that it has red and yellow in it. That’s all pretty straightforward.

The catch comes when I want a list of all shirts with yellow in them. If I had direct control over the database, many-to-many relationships like this are trivial and do not diminish the performance of the server. Drupal has no built-in way to get a list of all shirts with yellow in them.

But wait! Drupal is open source, and better yet has been built to be easy to extend by outside programers. Into this glaring hole in Drupal several folks have stepped forward with modules that solve the problem in a variety of different ways. Some of these methods are clever (one uses the indexes built by the search engine, for instance), but all have trade-offs and weaknesses.

So, you’re a Drupal developer, and you want a list of shirts with yellow in them. Which module do you use? Each module works differently, each requires some installation and fiddling to get working. Then there are the two modules by the same guy that are for similar but different purposes, yet the actual differences are not spelled out very clearly. What would help a lot would be some concrete examples of when to use which.

Now we’re getting closer to the Drupal Attitude. Remember as I rant about this that all the modules I’m evaluating are free, posted by geeks who wanted to contribute to make Drupal better. So, some slack-cutting is in order. BUT…

I had already spent more time than I had available trying to figure out which module to use, when I found a question posted by a guy asking “can I use this module for x”, where x was very similar to what I needed. “Aha!” thought I, “Now we’ll get a definitive answer!” Except that the response to the question was, “In this discussion (the article was about the differences between two modules) we want to focus on generalities, not specific applications. You should download both modules and fiddle with them for a few hours to determine which is right for you.” Or something like that. Notably absent from the answer was a pointer to where specific questions would be answered.

The guy who asked the question responded a bit harshly, pretty much saying, “Would it kill you to just answer my question? I don’t want to spend hours learning something you already know and could tell me in fifteen seconds.”

Well, this is just the sort of uppity user that the Drupal community loves to hate. Several people piled on in defense of the developer who had refused to answer the question. “He’s doing this for free, he’s helping the community, you should be grateful, blah, blah, blah.” None of them deigned to answer the original question either. There is a real, entrenched cadre in the Drupal community that says, “we learned things the hard way, and you should too.” Who needs documentation when you can read the source code?

Let’s step back for a moment and ask ourselves, “Why did the developer give this code back to the Drupal community?” The obvious answer, the one everyone talks about, is that he wants to make things easier for other Drupal users. That is a noble motivation and one I wholeheartedly support. He wants to be useful. Perhaps he just isn’t aware that a huge part of utility of software lies in the documentation. Perhaps he isn’t aware that a few choice examples of what his modules are meant to accomplish would have cost him an hour of his time and improved the acceptance of his work dramatically. He’s a coder, after all, not a marketer or a technical writer.

Even with all that, however, when someone, in the form of a question, contributes to the documentation by providing a specific example, he didn’t answer the question. No light came on that even if that was not the place for the question, then spending five minutes creating an FAQ would have helped the community far more than adding a new feature to his software. So an opportunity to spend just a few seconds and make his contribution to the community better went completely ignored. His supporters congratulated him for not capitulating to the demands of his potential users for more clarity.

Any of them could have stepped up and helped the newbie, probably in ten words or less, but none did. None of them wanted improved documentation. “We had to learn it the hard way, so you should too,” with a side order of “we make lots of money because we’ve figured all this stuff out.” Ladies and gentlemen, the Drupal Attitude.

If the guy posted his module but doesn’t seem interested in making it useful, then why did he post it? Well, he’s certainly getting lots of love from the people who figured out his work the hard way. They can all feel good about how smart they are.

And in the end, should I be thankful this guy shared his work with the rest of us? Actually, no. In my case, the presence of his modules ultimately had negative value. They cost me time, and never getting an answer about which was appropriate for my task, I went with a module developed by someone else.

So, Drupal contributors: If you don’t want to document your module, and you don’t want to answer straightforward questions from people who need to get a job done in limited time, don’t bother posting your fucking module at all. I don’t have time for endless fiddling and I sure as hell don’t have time for the Drupal Attitude.

1

Novel: A Novel

According to the back cover of the book, George Singleton is a ‘master of the comic short story’. He has been published in some pretty impressive places, and I like humorous prose, so despite some rather negative things my sweetie said about the book, I secretly held hopes that her negative experience was more an issue with Singleton’s style and that I would enjoy the ride.

Novel is written in the first person, narrated by a man named Novel who spends a significant chunk of the story trying to write a novel. Because of a divorce surrounded by an odd series of events, he finds himself in the backwater South Carolina town of Gruel. Gruel is populated by an odd assortment of characters, but it is a dying town. The locals are convinced that Novel’s novel will put them on the map, and rekindle the economy of the town.

The book is written in a rambling, meandering style that took me along with it. Believe me, I know rambling. The opening two-thirds of the book is about our narrator bumbling along, becoming increasingly paranoid, and telling and retelling his history — which changes, evolving in a very interesting way. There’s a lot of foreshadowing in the opening 75%, which is to say we haven’t really got to the plot yet.

Mr. Singleton’s humor shows through, as do his short-story leanings. In a short story he wouldn’t have had time to beat some of the jokes into the ground with such force. (For instance, his adoptive older siblings are named James and Joyce, and “James, Joyce, Novel” is worked pretty hard.) Other parts seem like they’re in there to set up some sort of comic payoff, but never come through.

One of the jokes Singleton beats on quite often is “Books about writing novels say never to do…” and then in the next sentence he breaks that rule. He breaks a lot of rules in this book, and seems to think that pointing out that he knows he is breaking the rule makes it all right. Usually what he accomplishes is to demonstrate by counterexample that the rules exist for a reason. Rules are made to be broken, but not just so you can point at the rule like a proud three-year-old who just broke a vase.

The town has secrets, lots of secrets. As we learn more about the people of Gruel, we discover that they are not the simple, naïve country bumpkins we first thought. Oh, no, not at all. That’s pretty cool. But wait — under a veneer of obtuseness, their plan for Novel is woefully simple-minded. How do these savvy people ever buy into it? The contradiction is never resolved, in fact, Singleton is caught in his own trap. All the characters he introduces are against the grand scheme for Novel. He can’t show us any of the people who think the plot is a good idea, because they would betray the inherent contradiction.

At the end, lots of things happen. Everything comes to a head, people are coming out of nowhere (James and Joyce? But why?), and our boy Novel is in the thick of it. Then a Huge Coincidence occurs, and everyone shrugs and goes home again, nothing changed, nothing resolved, and a lot unexplained; humor pistols loaded in the first act lie undischarged in the third.

The book grinds to a stop leaving a big a pile of unresolved events that we had passed, that I assumed would have some sort of significance. Just why the hell did the owner of the surplus store want Novel to find the knives buried behind the hotel? As I closed the book, I felt like there was some big explanation I’d missed (notwithstanding the big explanation that was provided). I suspect it never left the author’s head and found its way to the page.

I mentioned in a previous review that just because an author is writing a farce doesn’t mean he can just throw out a new coincidence whenever he loses momentum; everything still has to hang together and make sense in that farcical context. I don’t think Mr. Singleton has learned that lesson yet.

Note: if you use the above link to buy this book (or a Kindle, or a new car), I get a kickback.

2

None of Your Damn Business

After reading a post in my buddy’s blog (and the articles that post links to) about National Security Letters I started to get more and more irate. Apparently, our government sends out thousands and thousands of letters to Libraries, Web hosts, and the like, saying, “We’re the government, we’re fighting terrorists, so give us everything you have about this person. Also, you’re not allowed to tell anyone about this, not even your lawyer.” This is not like a search warrant, because there is no judicial oversight.

The FBI’s use of national security letters to get information on Americans without a court order increased from 16,804 in 2007 to 24,744 in 2008. The 2008 requests targeted 7,225 U.S. people.

Read More

Those are all requests for personal information with no warrant, no need for probable cause, and no right to legal counsel even for the people who are not themselves under investigation. I’m not a trained legal scholar, but good lord, this can’t possibly be constitutional.

Well, it’s not like I have anything to hide, but if my ISP got served with one of these letters, would they turn over the information, or would they fight? Would Google protect the emails mouldering in that account that I rarely check? What about my Web hosting provider? I would love to see each entity that has my personal information publicly state that they will not turn over information without due process.

The only way this governmental bullying will be stopped is if everyone agrees not to be intimidated.

On a personal level, I’ve decided to start a policy of encrypting my emails. Not because there’s anything incriminating in there, but because if only secrets are encrypted, then everyone knows where the secrets are. And really, it’s nobody’s business but mine what I put in private correspondence. If everyone encrypted all their messages, the constitutional rape called National Security Letters would be pointless.

Toward that end I have installed Gnu Privacy Guard, which is based on OpenPGP (Pretty Good Privacy), a system which can withstand any attacks feasible at this time (naturally as computing power increases, the encryption must be made ever-more sophisticated).

It takes two to pass a secret message, however. I’m not able to encrypt messages to people who do not also have GPG or PGP installed, and who do not have my public key. The system works with a pair of keys – one I keep secret and another that everyone can see. When the message is encoded using one key, it can be decoded using the other. So if I have your public key, I can encode a message that only you can read.

It’s a bit of a hassle to set up GnuPG (available for Mac, Windows, and Linux), but once you have your key generated and all the pieces in place, it’s pretty transparent to use. My public key is now available on many servers, so once you have the plugin to your email program installed, it’s easy to load.

You can learn more through the link called “Jerry’s public key” on the sidebar in the top section. Please join me in taking the teeth out of National Security Letters and the bullying bureaucrats that use them.

Addendum: Comcast’s privacy policy states that they will not disclose information without a subpoena, warrant, or “other valid legal process”. Then they go on to say they will also disclose information if they think “the disclosure of information is necessary to prevent financial loss“. That means they reserve the right to sell out their customers if they think they could end up incurring legal costs to protect them. Sigh.

5

Open Letter to the Guy with the Battered Flag on his SUV

Yes, I’m talking to you. You know who you are; you’re the guy that thinks flag-burning should be constitutionally banned, yet you drive around with a tattered, battered mockery of the flag and the country it represents. Oh, I know you felt proud when you put that little flag on there. DAMN I’m a good American! Let’s all stand up and salute (me)! Just remember: when you bought that flag, you also took on responsibility.

Then you continued to fly that flag in the rain, and at night. Huh. Kinda disrespectful there, Sparky.

Now your flag is much the worse for wear. It is truncated, and the edge is tattered to threads. The dyes have all faded, especially the red, so that the stripes are barely discernible. Yet still you parade around with this thing attached to your car. How is this not worse than someone burning a flag as a conscious exercise of free speech?

There used to be a lot more of you. In the last patriotism boom millions of folks bought (incorrectly packaged and handled) little flags and put them on their cars. Look at me! I love America! What happened to all those little flags? I’ll tell you what happened: those patriots threw them in the trash once they got too tattered. Somehow sending a flag to rot in a landfill is not as bad a burning it.

Which brings me to the US Flag Code. You’ve already abused the hell out of the part that says “The flag should never be fastened, displayed, used, or stored in such a manner as to permit it to be easily torn, soiled, or damaged in any way.” (This is under the section titled “Respect for the Flag”.) It’s time to move on to disposing of your shameful insult to your country. What are you going to do? You’re not going to just throw it away, are you? You’re a patriot! The flag is a symbol of your country! That’s why you’re flying it in the first place. So what are you going to do?

How about “The flag, when it is in such condition that it is no longer a fitting emblem for display, should be destroyed in a dignified way, preferably by burning.”

Yep. You should burn that American Flag. Of course, this won’t be the camera-drawing antics of a hippie protester, but instead will be a solemn occasion while you consider the flag, what it stands for, and respect the service it has done. Gather the kids around to pass that deep respect on to the next generation. I recommend flagkeepers.org as a reference for the proper way to respectfully dispose of your little plastic badge of patriotism.

Gah! You’re going to throw it in the trash anyway, aren’t you. Yeah, you’re a real patriot.

2

Hacked!

Some of you may have noticed on this site a black-and-red screen with a self-congratulatory message from a bunch of assholes who are not me. Naturally this occurred when I was out in the middle of Nevada, so it took a while before I was able to effect repairs. Things are (mostly) working now. Actually, I had them fixed even before the hosting company became aware of the problem, apparently. The time they cite for the intrusion was 10pm July 3rd, but it was 10am or even earlier that the attack occurred. That fills me with confidence. (Maybe it’s just a typo in their message.)

My hosting company is setting up a new server and will be restoring this site from backups that are a few days old. Hopefully I’ll be able to update the database (no affected) to include episodes (like this one) and comments that have happened since the hack.

I assumed at first that the brand-new version of WordPress might have a security exploit, but then I discovered that jerssoftwarehut.com and all the sub-sites I have on that server (except paseeger.com, for reasons I can’t figure), were hacked. Then I tried to get into the control panel and it was hacked. That takes more access than even I have; the control panel code is off in some other place. No, my Web host was hacked.

I do not yet know whether the credit card fraud protection kicked in at about that time as a result of actual fraud or because I was traveling and some robot flagged the behavior as suspicious. It looks like there might be some bogus charges, but I won’t know for sure until I can talk to an actual human tomorrow. (I did talk to a human in India, but she was unable to access the information I need.

So now I have no credit card, and the ATM powers of the same card seem to be suspended as well (that or I’m misremembering my PIN). All the cash My sweetie thrust upon me for the trip, more than I would have taken otherwise, has proven a lifesaver.

Once I had a glowing recommendation for MM Hosting on this site. I really liked them at first; their service and responsiveness was fantastic. Things have been going downhill with them for a while, and I had already been investigating other options that gave me more control. Inertia has kept me here for the most part. No longer. Goodbye, MMHosting. I’ll be asking for a refund for the remainder of my contract.

Rite of Summer

First sunburn of the year

I was only out for a quick errand...

Yep, it’s my first automotive-related sunburn of the year! I made it almost halfway through June this year — not bad.

Medical Fun Fact!

Hey! did you know that even after your fortieth birthday you can spontaneously develop serious food allergies to things you’ve been able to eat your whole life? I had no idea such a thing was possible until my sweetie and I shared a shrimp salad, just like we’ve done before. Only this time… yow!

She’s OK now.

1

Lost in Translation?

Even if you’re not a programmer, take a look at the following lines of code:

public function sendCommunication($oCommunication)
{
    if (self::emailMode != EMAIL_TEST_MODE_NONE) {
        if (self::emailMode == EMAIL_TEST_MODE_LOGGED_IN_ONLY) {
            // DO NOT COMMENT OUT THE FOLLOWING LINES
            // EVER
            // FOR ANY REASON
            // INSTEAD CHECK THE TEST MODE AND SET THE ADDRESS FIELDS ACCORDINGLY
            $oCommunication->to = $oCommunication->from;
            $oCommunication->cc = '';
        }

Now, I ask you, even if you’re not a programmer, you know there’s one thing you would never, ever, do to the above code. Right? Now let’s say you are a programmer, a professional, being paid because of your ability to find solutions to problems and express them in an abstract language.

Now further imagine that changing the above code can lead to the customers of the people paying for this work getting spammed with confusing emails with our client’s name on them.

Yeah, you guessed it.

1

Jer’s Software Hut Falls Silent

The shadowy, misshapen minions have all gone home; the vast underground chamber that once rang with their chants as they turned the giant wooden capstans has fallen silent. The river of lava flows unimpeded, the precarious rope bridges spanning it falling into disrepair. Above, the streets of Sky City Research Facility, once teeming with antigravity cars, are empty, the crystalline architecture acquiring a layer of eagle guano and dust that is transformed into gritty runoff when it rains.

The crudely-crafted Web site at jerssoftwarehut.com no longer accepts payment for Jer’s Novel Writer software licenses, and bears the following statement:

Well, it’s happened; I have a regular job. As I slave away working for the man I often wonder if things might have been different had I only worked harder at making Jer’s Software Hut a business rather than a hobby. Probably now we will never know. It was a good run but it’s time to ackowledge that development is stalled and customer service around here has been really awful.

That pretty much says it all; despite thousands of happy users, some of whom even paid for the software, when it came time to have a steady income again I took the safer path of working for someone else. (The ironic twist to this narrative I will leave for another time.)

It was a good run, and as I get my work life under control I hope soon to at least return to using Jer’s Novel Writer for its intended purpose – as a writing tool that helps me create fiction. Until I do that I can’t even consider opening the shutters on the Hut and throwing the big switch that raises the lightning rod into the violent midnight thunderstorm, while sparks fly and the turbines spin faster and faster, the needles on their gauges creeping ominously into the red. Maybe someday, though. Maybe someday.

1

A Job I’m Glad I Don’t Have

As you might be able to tell from the paucity of episodes here at MR&HBI, I’ve rejoined the ranks of the employed. My writing has taken a real beating, so today I’m going to spend some time writing about work. You don’t have to thank me, it’s what I do.

I don’t mind writing software; I’m pretty good at it and I can make pretty decent money doing it. I would much rather write code than dig ditches, for instance, and luckily for me the world has decided that making Web sites is worth more than roadside drainage. (Before you go and say, “that’s because it takes skill and training to make a Web site, but anyone could dig a ditch’, ask yourself – could you dig ditches for a living? If the economy were turned upside-down, that ditch-digger living in his nice house would say, ‘anyone can make a living sitting on their ass in front of a computer, but I dig ditches. I’m glad things are the way they are, is all I’m saying.)

My current job sends me dangerously into territory I don’t much like, however, and that’s the area known as Information Technology. It’s not really a good name for the job, which is about setting up computers and keeping them running. It’s less about making things and more about making things work.

Last night, for instance, I moved the Web product I’m working on to a different server and it didn’t work. Naturally I assumed the problem was in my code (it had worked on that server in the past), so it was several hours later that I discovered that for reasons I still don’t know, the server failed when it tried to compress very large messages. Just *poof* no response beyond the number 500 (something went wrong). To make things more fun the server was specifically set up to not write out a lot of error messages to its log. I turned off the compression feature (with a hammer) and things worked again. Five hours or so spent to add seven characters to a PHP file, to make things work the same way they already did on other servers. Welcome to the world of IT.

I think the original intention of the phrase information technology referred to the the information that would be stored, manipulated, and distributed by machines. What the I really stands for is the vast store of arcane crap you have to know to do that job well. What line of the php.ini file to modify if you want zlib output buffering and utf-8 character encoding. How to set up all the computers in an office to use a local domain name server first. That’s the information in IT.

The worst thing about having an IT job is this, however: When you’re doing a good job, no one notices. When a company is running smoothly, that’s a sign that the IT department can be downsized. There are no problems! What are those guys doing all day? Having things not happen as part of your job description makes for tricky times when you do your job well. Of course, when something does go wrong people know just where to find you.

So if you work in a company that has people on payroll working to keep your technology humming along, cut them a little slack. Someone’s got to do that stuff; be glad it’s not you. I do enough IT now to know that I’d rather let someone else have the pleasure.

An open letter to the retard driving a white compact car on Highway 17 in dense fog with no lights

You, sir, are a fucking retard.

Sincerely,
Jerry

The Book Review that Wasn’t

Last night I wrote a review of a book. I was pretty pleased with the results. It actually talked about the book for a while. This morning I tweaked it a bit and hit post.

It vanished.

Well, mostly vanished. The title was there, as was the little blurb at the top. Everything else was gone. “Poop!” I said (or something like that).

I use ecto to compose my larger blog episodes; the offline editor is much nicer than any in-browser editor I’ve encountered, especially on my 8-year-old laptop. I don’t call it Ol’ Pokey for nothing. Plus there are times I want to write an episode but the Internet is nowhere in sight. ecto has been working very well for me. Except when it loses my work. This is the second time, but somehow this one hurt more. Also, ecto was recently bought from the original developer and seems to be stagnating.

“Looks like it’s time to give MarsEdit a serious look,” I said, and downloaded the latest. I fired it up and was greeted with “Your trial period has expired.” Dang. I’d launched it once when comparing ecto and MarsEdit back in the day. MarsEdit was missing a particular feature (don’t remember exactly what) and that made ecto the winner. Before it started losing my work.

Lots of people like MarsEdit (lots of people like ecto, too), but am I willing to pay for it without writing a single episode with it? That’s hard to justify. I’m downloading a program called Qumana to rewrite the book review with. We’ll see how that goes.

Edited to add: Nope. Qumana didn’t work. At all. I checked the system requirements, and it should work. But it doesn’t.