A (Not So) Simple Task

Even the most reliable cars require occasional maintenance, like changing the battery. Happily, this is a very simple operation — unclamp, remove, replace, clamp, and away you go. Simple, right? Right? It’s not like it’s the kind of task that would take more than a week to accomplish.

A little more than a week ago I was working here in my office when my sweetie went out to run errands. The sound of the car starting wasn’t quite right, but she got it going and away she went. A couple hours later she called from her parents’ house. “My battery is dead. I’ll be home as soon as I get a jump start from Dad.”

The battery is the original that came with the car, ten years ago. Not terribly surprising that it needed replacing. (And it’s worth noting that this is the first trouble of any sort with the car.) I opened the hood to take a look-see. The negative terminal was badly corroded, along with some pieces that connected to it. The pair of nuts that clamped the connector onto the lead battery post were not really recognizable anymore. I realized it was going to be tricky to loosen them.

Although in the end it turns out there was no need; the clamp itself was cracked through. That explains the sudden loss of electricity, rather than a slow decay of battery performance. I would need a new battery terminal connector as well as a new battery.

I looked closer and realized that there were two parts connected to the old terminal – one a fairly typical heavy-gauge wire connected to the chassis nearby, as you will find in dang near every car, and another elbow-shaped copper piece that was fused into a plastic connector that had a pair of other plastic connectors snapped into it. A Dealer Part. The metal was badly corroded, and I thought it would be a good idea to replace that bit, too.

I tabled that thought, however, and ambled off to the local Kragen to get the new battery and a standard terminal connector. I brought them home and set to work loosening the nut that held all the pieces together.

I quickly realized that I didn’t have the tools to loosen a nut that has been corroded almost beyond recognition. Off I went to Sweetie’s Father’s house to borrow his socket set. Home again, to discover that the smaller sockets weren’t deep enough to get all the way down the shaft of the bolt and onto the nut. There were some box wrenches in the set, but they were all too big. I was faced with another decision. I judged that it was time I had a decent set of wrenches of my own, and so away once more I went, this time to the local Ace hardware.

After a long time considering options, it boiled down to two choices: a set of wrenches with both metric and SAE, or a set with a wider variety of SAE sizes. I didn’t think the metric-and-SAE set went small enough, so I went with the comprehensive SAE set (it also had a holder for storage, which in our current situation is a big plus).

Home once more with new wrenches (always good to have anyway), I dove back under the hood and discovered that Americans building cars in American plants are putting metric nuts in their cars now. While overall I’m behind this movement to get in sync with the rest of the world, I still didn’t have the right wrench. It was late, I was tired; I put some penetrating oil on the mess and resolved to finish with the car the next day.

The following day I took another trip to Ace and bought the metric version of the set of wrenches I’d bought the day before. I also bought a pair of vice-grips, in case things got ugly. Home again and back under the hood, things got ugly. The nuts were too corroded, and were chemically welded. The vice grips could lock on with mechanical ferocity, but the material of the nuts was not able to withstand the force necessary to unfreeze them.

During this operation I made another discovery. Normally the clamp that goes over the battery terminal is a separate piece that the ground wire bolts to. Not in this car. The broken metal strap was a contiguous piece crimped directly onto the ground wire. I figured I could work around that, but it was looking more and more like the other Dealer Part was not coming off the car intact. To the Internet I went.

There was no mention of a part like this on any Ford Web site. Finally in a Ford Escort owner’s group I found my answer: the part could only be obtained by buying an entire wiring harness for $350. Say what, now? Also the broken terminal strap that started this whole mess was only included in that $350 purchase.

We ruled out that option and I went back to unscrewing The Nuts That Were No Longer Nuts. Failure, fatigue, and another day lost ensued. That night I decided that bolt cutters were called for, but I wasn’t sure how to get them down into the recess where the nuts lay. Perhaps a little saw would be better. I called Father-of-Sweetie the next day and of course he had all those things. “Do you have a little Dremel tool?” I asked, suddenly realizing what the right tool for the job was.

Sparks fly as I cut through the reluctant bolt.

Sparks fly as I cut through the reluctant bolt.

We have a Dremel tool,” my sweetie informed me. Hot dog! I opened up the case, and there was a little cutting-wheel attachment, smiling up at me. It looked like a light at the end of a tunnel. On a gloomy Tuesday afternoon (the car first failed the previous Thursday), I opened the hood once again and set to work cutting the bolt, while being careful not to harm the Irreplaceable Dealer Part (IDP) any further. Sparks flew! Get the camera!” I hollered to my sweetie. She took some great shots. Now I wish I’d gotten more pictures up to this point, like a time-lapse of the slow aggregation of more and more tools.

Success! After cutting through nut and bolt about two millimeters above the surface of the IDP and then slowly carving away at that, at last the bolt came free! Now all I had to do was cut back the main ground terminal so it could be mounted on the new terminal strap, slip on the IDP, and go have a beer.

bits and pieces of the old terminal connector

bits and pieces of the old terminal connector

Only…

The place to connect the Irreplaceable Dealer Part to the new terminal connector wasn’t flat enough for the IDP to sit flush. It would have to do, I decided, and cranked down on it to get the best contact I could and forged ahead. Not very far ahead, as it turns out; I dropped one of the nuts for the new connector. It fell under the battery tray. Probes with a magnet were fruitless. Shaking the car didn’t free it. We couldn’t get to the damn nut. We were thwarted for another night.

I’d been thinking about using a good old-fashioned lead terminal connector anyway, rather than the steel one I’d first purchased, so while on another shopping mission we flew by Sears Automotive and got what I thought was exactly the ticket. We got home and I told my sweetie it would only be a few more minutes. Hah.

On with the lead connector, on with the… What the #$%$@#! The corroded and truncated connector at the end of the main ground wire didn’t fit over the terminal post. *sigh* I used a screwdriver, twisting it in the hole, to widen the opening until I could just get it over the terminal. I was worried about that connector, though, corroded and abused as it was. I managed to get the IDP onto the clamping screw, and tightened everything down.

At last, the battery was installed.

I got in and the hazard lights blinked and the chime went “beep-beep… beep-beep” which I took as a sign that a) there was electricity, and b) the car was trying to tell us something. Like, that it had lost power and its electronics needed to readjust. I turned the key.

Nothing. Not even a click.

Well, crap. Back under the hood I went. Primary suspect: The used and abused ground connector. I cut the ground wire and stripped back the insulation. Holey moley – the copper was corroded right on up the wire, beneath the insulation. Powdery light-blue copper oxide fell like snow. I cleaned off what I could and clamped on a new connector that had come with the first terminal connector kit. I used parts from both kits to get the IDP bolted on with good contact as well. This was about as good as it was going to get without replacing the entire wiring harness. Key in ignition, lights came on, beepers beeped. I turned the key. Nothing. Not even a click.

Perhaps the battery didn’t have enough charge to turn over the starter. The Miata was standing nearby, so my sweetie and I pushed the Escort out into the gentle rain to the other end of the carport. We hooked up the jumper cables (using an entirely different ground point), waited a couple of minutes, then turned the key. I think you can guess what happened. Yep, lights flash, beeper beeps, turn the key and nothing — that’s what happened. We pushed the car back, managing the slight uphill better than I thought we would, and I turned once more to the Internet.

After striking out finding any sort of answer myself, I found JustAsk.com, a place where, for a fee, I could ask a certified Ford mechanic what the heck was going on. I went through the preliminary steps, plunked down fifteen bucks, and asked my question to a guy named Chuck.

“Is it a dealer or aftermarket anti-theft device?” he asked.

“I specifically told the dealer I didn’t want any of that,” my sweetie said when I relayed the question.

“Well, you have one,” Chuck informed us. “You need to find the reset button.”

The anti-theft module we didn't want

The anti-theft module we didn't want

Long story (that had me contorting myself underneath the dashboard) short, we did have an anti-theft device, and it didn’t have a reset button. That was the part that the dealer was trying to sell my sweetie when she declined to be upsold.

To emphasize: Frontier Ford of San Jose sold my sweetie a car that would become completely disabled any time the battery was disconnected. What if she’d been out in the middle of nowhere when something happened to interrupt the electricity? What else might have activated the device? The irresponsibility of the dealer is simply mind-boggling. There really are no words to express the depth and breadth of my anger, and it pales next to the world-class ire my sweetie felt.

After a couple of hours tracing wires, we called it a night. At least we knew the problem. I would be able to remove the module, but I needed wire and connectors to restore wires that the anti-theft module interrupted. The next day I went out to the car again and got my only pleasant surprise of this whole endeavor: merely removing the plastic anti-theft module but leaving all the wiring in there actually allowed the car to start again. I’m a little surprised at this outcome, but I’m not questioning it.

When she heard her car start, my sweetie came down and hugged me and congratulated me on getting the damn thing fixed. Honestly, though, when you consider I made six trips, bought wrenches, vise-grips, multiple redundant parts, had my sweetie pushing a car in the rain, and torqued my back, all to change a battery, it doesn’t sound so great. But there it is.

3

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