WTN v 2.0, now with less breakage.

So there is news on the personal front that I’ll get to eventually. But at the moment, I’m up to my eyeballs in geek. The simple explanation why is actually to Google’s credit. The site fell victim to an apparent run-in with a significantly tricky spot of malware. It came in courtesy an exploit in a plugin I no longer use on this site, about a day or two before that exploit was supposedly patched against. It resulted in fun times with google, as they got twitchy about the site any time someone dared come within five miles of it. I took my time with removal, but the thing with a problem like that is once it’s in, it’s in. So every time I’d find something to clean, it would come back somewhere else.

I eventually ended up scrapping the platform entirely, backing up the data (here we go with me being paranoid about backups again), and starting over from the ground up. And now, 8 years of blog posts, comments, and random mockery lives in version 2.0 of this significantly less busted platform. I’ll go into more detail on exactly what plugin is to blame and why you should run far, far away from using it if you’re a WordPress user later. But for now, suffice it to say all things have been cleaned.

Things you’re likely to find in version 2.0:

  • Hopefully slight increase in loading speed. I’m told the site was slower to load than it should be previously. I think I’ve found and killed the cause, but I’ll be keeping an eye.
  • An online calendar, for things I’ll be up to in the near to way far off future. Because sometimes things happen that don’t get posted about. And sometimes I just need a reminder to stop freaking being lazy.
  • Several fewer plugins attached to the site. There was a bunch of extra, useless code kicking around the old version that I haven’t touched in probably a couple years. It was taking up space, and I hate things that take up space. It no longer exists.
  • Probably not noticeable to you, but I’m sure appreciating: a much smaller database. The old database was 120 MB when it was retired. The new one? Try 21 MB all told. That probably won’t last for too long, but it’s nice while it does.
  • And lastly, the option of receiving each individual post by email, rather than just the daily updates. Because on the rare occasion when I post something, it almost doesn’t seem worthwhile to wait for the single midnight update to send it to the folks what read this thing. You’ll still have that option if you want as well, but now, it doesn’t have to be the only one.

I’m still finding the occasional kink, like duplicated content that shouldn’t be duplicated. But, everyone’s here, and no one was lost in the kerfuffle, so I’ll take the duplicated content. And if it breaks too horribly, I do still have the old site on an out of the way strip of hard drive where it can’t be easily located, and it’s healthy enough to survive long enough for me to pull off whatever’s missing. All told, this has been a mighty fine way for me to flex skills I’ll need in the near future. And that leads me into my spot of personal news–which will be an entry later. For now, I’m off to sleep so’s I can finish unbreaking WordPress. But we’re up, we’re online, we’re malware free, and as soon as Google catches on I won’t have to stare at the reminder in Webmaster Tools. Now, where’d I put that other piece of code…

System administration. Because the vodka industry needs some love, too.

Warning: the below post is probably long, and definitely geeky. You’ve been warned.

I’ve had this blog and several others hosted on a server I run and pay for since around the neighbourhood of 2010 or 2011. Naturally, this means I go beyond the whole finding random things to post about idea and dip into the territory of the sysadmin. Awesome, insofar as experience goes–not, mind, that said experience gets me any closer to being employed, but you’ll have that. But the more I play around with it, the more I think it gets me ready/comfortable with the idea of actually doing something like this and getting paid for it. Besides, I like a challenge.

So I’ve been running this particular server since August of 2012, or thereabouts. And in that time, yeah there’s been just a tiny little bit of broken here and there. But I usually had some warning or could guess that, hey, what I’m about to do will very likely end in spectacular fashion with me spending the next week and a half picking the pieces off my floor. This time, not so very much.

I maintain a small platform where I can stick random bits of info, like documentation for things I’ve figured out about otherwise less than stellarly documented programs. Or, you know, random things that just might turn out to be useful to me a year and a half later. That platform is powered by MediaWiki, who’s probably best known for being the thing used by Wikipedia. So you know, it’s been poked at, prodded at, tested the hell out of, and generally considered stable enough. Well, that or Wikipedia is partially owned by MediaWiki, but hey whichever. So I figure, why not? It’s scaleable, so my small little documentation platform oughta be no sweat. Which is largely true, until it breaks.

I’d never actually bothered digging into the code, if I’m being honest. I figure eventually I’ll get to it, then things happen, and it doesn’t really get gotten to. You know the deal. Fixing the broken, though, necessitated a quick little dig through the surface layer of code. The bright side: now I know why it’s relatively light on database usage. Can I trade, now?

Here’s a little bit of a primer, if you’re one of those folks who’re on the border of techy but not quite ready to slide across it yet. Most software, like wordPress for instance, pretty much leans on whatever database you’ve set up for it. Everything hits the database, no questions asked. Unless you run some kind of a caching plugin (I do), even the basic trying to access the website hits the database. Database goes down, site goes down. MediaWiki does that, to a point, but there are enough layers between the database and you that it’s not entirely obvious. One of those layers is the extensive use of regular expressions for damn near everything. Almost nothing in the software is actually pulled from the database after, perhaps, the first initial load. Exceptions might be made for things like menus, but that might also be stored in the code itself somewhere and I just haven’t bothered finding it yet. But everything else, like for instance the actual page content? Cached somewhere on disk, then hit with a regular expression. Awesome, in theory. Works perfectly, again also in theory. Until theory goes out the window and they release a server software update that pretty much breaks the place. I applied that server update. Had no idea anything was broken–because barely anyone uses what I’ve set MediaWiki up for, and nothing else went sideways. So all was right in the world. Until my documentation actually needed to be flexed.

In fixing the broken, I learned exactly two things, real quick. Thing the first: Even on non-Windows systems, updates still break pretty–I knew that already, but it’s occasionally nice to have that confirmed once in a while. Especially when you know a few people who’ll gladly insist they’ve never had an update problem with $OtherSystem like they’ve always had with Windows. And thing the second: If you release an update to a pretty significant piece of software that breaks compatibility in new, interesting and creative ways, and pretty much no one sees it coming, you’re doing it wrong.

Let the record reflect I still love the sysadmin gig. Let the record also reflect I’d still love to be paid for the sysadmin gig. But I’m kind of wondering now how many paid sysadmins are sitting in an office wishing they could fire themselves a developer. Other people’s broken is never a fun thing to come home to. Now, I speak from experience.

In which every bad tech support call I’ve ever taken comes back to haunt me. Twice.

Because I still don’t feel like substance, even if it would appear the things what I was figuring on getting done today aren’t actually going to get done, have a one of these. You can take some comfort in the fact most of the things on that list I can safely say even in my unpaid work as the family geek I’ve never heard. However, my favourite–where favourite equals if I hear it one more time I’m going to break a nearly half finished bottle of vodka over somebody’s head–is one I can safely say I hear way, way too much. It’s also the last one on the list–go figure.

Tech Support: “All right. Now click ‘OK’.”

Customer: “Click ‘OK’?”

Tech Support: “Yes, click ‘OK’.”

Customer: “Click ‘OK’?”

Tech Support: “That’s right. Click ‘OK’.”

Customer: “So I click ‘OK’, right?”

Tech Support: “Right. Click ‘OK’.”

Customer: “I clicked ‘Cancel’.”

Tech Support: “YOU CLICKED ‘CANCEL’?!”

Customer: “That’s what I was supposed to do, right?”

Tech Support: “No, you were supposed to click ‘OK’.”

Customer: “I thought you said to click ‘Cancel’.”

Tech Support: “NO. I said to click ‘OK’.”

Customer: “Oh.”

Tech Support: “Now we have to start over.”

Customer: “Why?”

Tech Support: “Because you clicked ‘Cancel’.”

Customer: “Wasn’t I supposed to click ‘Cancel’?”

Tech Support: “No. Forget that. Let’s start from the top.”

Customer: “Okay.”

(15 minutes later)

Tech Support: “All right. Now, are you ready to click ‘OK’?”

Customer: “Yes.”

Tech Support: “Great. Now click ‘OK’.”

Customer: “I clicked ‘Cancel’.”

And this, right here, is pretty much every tech support call gone wrong in my entire professional and unproffessional career. Except with a few dozen choice explitives under the relative protection of the mute button, copious amounts of coffee, and rather liberal consumption of the afore mentioned vodka upon a return to the apartment and relative safety from, uh, other people. It still got me paid, and in still getting me paid I had a hell of a time finding the ability to care, but reading this now, I find myself amazed I didn’t actually do something regretable–like be completely honest while the offending annoyance was still on the phone. I do have *some* class, on occasion. It’s just not all that frequent an occasion.

That type of call is only topped by a thing I can safely say I’ve only ever, as in ever, received a grand total of once. I was working nights, which is what I spent most of my time working at Dell doing, and I get a call from a customer in Texas. Sweetest person you’re ever gonna talk to, and I can tell she meant well. She just… Well. There’s no polite way to describe it–she could really have used an education in basic common sense before being allowed within 50 feet of a computer. Or at least a basic education in how technology worked. Things like no, ma’am, your computer is not linked to the hive mind.

Tech Support: “How can I help you?”

Customer: “I just wanted to know. Uh, are your computers down?”

Tech Support: “Uh. N.n.n.no. Why would we be down?”

Customer: “Oh, I don’t know. But my system hasn’t come on all day and I was wondering if yall were having problems.”

Tech Support: “Sounds like you might have a pretty major one. You’ve tried turning it on?”

Customer: “Oh, yeah–tried every so often. It just doesn’t do anything but sit there. I hit the button you’re supposed to hit and nothing.”

Tech Support: *about to become an all too well documented statistic* “Do me a favour, alright? Let’s just make sure no one’s walked by and unplugged you here. Make sure the cable from your tower–the thing you need to turn on before your computer will actually do anything–to the wall is secure at both ends. Just in case. It could be that minor.”

Customer. “Oh. Now why didn’t I think to check before calling?” *puts down the phone, rummages for a few minutes, comes back* “Everything’s connected. The chord goes from the computer in behind the desk and to the wall. I even unplugged it and plugged it back in just to be sure, but it still won’t turn on. Was that supposed to reset things?”

Tech Support: *internal, dramatic sigh of relief* “No. But, you did confirm what I suspected. You’ve got a thing here.”

Because the internet of things can come crashing down and take the world of innocent bystander systems with it. Or something. I never quite got my head around exactly how A fit into B, as in at all. I probably should have had her explain that to me a little better, but I was sort of occupied with replacing her power supply and motherboard–and trying to find creative ways to tell her what I was doing without opening myself up to the inevitable questions about that being how Dell monitors things to make sure all the appropriate updates are installed and to make sure no one goes and does nasty things with the internets–or something. I honestly have no idea. I kind of stopped listening to that side of the conversation after she figured I was the guy that fixed all the things so she could get her email, or something. No, ma’am, I promise–I’m just the Dell guy. The Dell guy that happens to be holding your motherboard and power supply hostage until you stop playing 50 questions long enough for me to get info from you, and hand you same, but still just the Dell guy. At least she didn’t make me glad for vodka. Just coffee. Lots, and lots, of coffee. And I’m pretty sure I took my lunch break early that day…

Senderbase.org, 5 months later.

So. Here’s a thinggy for long-time readers. Remember the epic server move of August of last year? You know, the one where everything and its asociated user had to be shuffled off a server I no longer had any actual stake in inside of 5 minutes–and where I was met head on by an email blockage issue? Sure you do. But I’ll let you refresh yourself just in case you don’t. In the meantime, I’ll catch things up–because the stats tell me I’m not the only one with the issue.

In August, when I fired up this server, I was slapped with an IP address–well, several IP addresses, actually–that had a poor reputation, according to senderbase.org. Here’s the problem with that. Because they decided my reputation–which they don’t really tell you a whole lot about–was poor, several major ISP’s and a few smaller ones were permanently rejecting email sent to them with the ever so helpful message that if I believed this message was rejected in error, to please contact the recipient using alternate means. Helpful, but not really. I fought with it for a few weeks and got pretty much nowhere. Senderbase doesn’t actually have any way to contact them. No support address, or any real contact page, and the information I was able to piece together on a possible contact got me pretty much no response. A back and forth with the guys running the datacenter this server’s sitting in told me they have just as much luck with these folks. So figuring I’d deal with it later, after I finished ironing out the kinks that came with a move of this variety, I was handed a new IP address from a different block entirely. This one, at least, had a neutral reputation when I got it–and it’s supposedly only improved from there, but again, I have no idea according to what metrics.

So I set email to go out using only that IP address and pretty much forgot about it. Because it worked. so I saw no need to continue aiming guns at heads. ISP’s that used to take one look at the server and laugh their asses off now accepted email from that same server as though there was nothing at all wrong in the world. I was a happy geek. Still am, but largely because the damn thing still does what I told it to. So fast forward to this week. I’m doing a check on other things, just to make sure I don’t need to go behind the scenes and do some sort of wicked nifty cool brand of tweeking. Which, okay, is major amounts of fun–but only after generous amounts of caffeine and nearly as generous amounts of vodka. Or a vodrumoke, if one would prefer (all of 3 people might actually catch that reference, including the one what said it). So it’s during this routine scan for breakage that I decide, hey, let’s take the server’s primary IP address and run it by those bastards at Senderbase. Let’s see if they’ve wised up any. Hint: if you thought for even 2 seconds that they might have, I’m going to have to revoke your license to read this blog.

Not only did they decide the primary IP address of this server still has a “poor” reputation, but they escentially also decided to forget that I used that IP address for pretty much anything. Where before, I could get an idea of how much email has been blocked by Senderbase, so far as it’s concerned now, I’ve got nothing. Senderbase lets me ask it about my server’s IP, then sneers at me and says “Look, bud. I don’t actually know the guy, but I hear he’s no bloody good. Hey–that’s just what I hear, alright? Whatcha want?”. It can’t even tell me what the IP’s DNS reverses too, which is–well, odd and quite doable using the good IP, but hey, whatever. I just find it highly interesting that, 5 months on, it’s forgotten pretty much everything about this server except its reputation–which supposedly improves over time, but I’m still waiting. In the meantime, if you run your own mail server and actually rely on Senderbase to handle even part of your antispam policies, you’re an idiot. And if I can find some way of getting email to folks what use you and not actually have to go through you, consider it done. Now. About that vodrumoke.

Tech support license: revoked, sucker.

When I lived at the other apartment in Ottawa, every so often we’d get calls from nonsensical numbers that couldn’t be called back, blocked or even properly traced. They’d call for one of two reasons. Either to try and sell us tech support (me and the former roommate are both more than capable of our own tech support), or to offer us air duct cleaning service (we lived in an apartment and didn’t actually, uh, *have* air ducts). Oddly enough, our number was on the DNCL (Do Not Call List). Come to find out, we weren’t the only ones with the problem–and two of the companies responsible have been slapped. The smackdown went global, with the US and others joining in the festivities earlier this year. Of course, by now that phone number isn’t even in service and the new one hasn’t been slapped in any lists of that variety, as in ever, but it’d be interesting to see if this actually had any kind of affect. I mean beyond being some wicked little poetic justice if one of those guys was the one what rang me. In the meantime, I think we’ll be keeping our current phone numbers the hell off the DNCL, thankya please. I’m not interested in tech support for my very much not infected machines.

Useless Sack of Bull, or why USB is of the devil.

I pretty much live on USB. Have for half an age. Kind of a requirement with about 90% of what I do. I have 3 external drives, all of them USB. I have an admitedly not used printer. That’s USB. The keyboard is USB. The mouse, if I’d gotten it back from the former roommate before he started being a tool, is also USB. The new wireless card (more on that below) is USB. Oh and I have an iPhone. that’s USB if anything useful needs to happen. Basicly, USB runs my life. Which is awesome, squared. At least until it decides to stop working. Which brings us to today–well, yesterday now.

I got my hands on a wireless N card a bit over a year ago, since the card this machine came with was trying real hard to head maybe in a that-a-way type direction. When I got the card, the N wireless standard was still fairly new–so new it was still considered experimental. The card did what it was supposed to, for the most part. But recently, especially when doing fairly network intensive things like copying files from one system to the other, I started pushing the card’s limits. And it started pushing back. Dropping connections, sometimes not actually picking the connection back up, and once requiring a restart to actually fix the thing–I’m somewhat blaming windows for that last one. Productivity doesn’t really get to happen if you have to check every so often to make sure your system didn’t drop your productivity on the floor halfway through. So yesterday, since May and I wanted breakfast anyway, we figured we’d bounce off a restaurant and land at Staples. So we did, and I grabbed a USB wireless card. I’m getting a little low on ports, as is she, so we grabbed a couple hubs to go with–nothing fancy, just your basic 4-port jobs. Brought them back home, then figured we’d relax a bit before I started setting things up. It was only gonna take a few minutes, but it didn’t need to get done right away–most of the intensive stuff could wait a couple hours. So I put it off until yesterday afternoon, then decided I’d take the couple minutes I’d need to actually get things set up. It was gonna be quick and easy. Slap the hub in place, slap the card in the hub, install both, go on about my day. Yeah, about that.

The USB hub installed no problem, once I figured out what the hell the extra cable was for. The card? That took a little convincing. Well, and a CD–really, who the hell packs driver software on a CD anymore, D-link? But then the fun popped in and said hi. The instalation of either card or hub, or both, caused one of my external drives to hit the deck. It was recognised, but you couldn’t actually *do* anything with it without getting permission and I/O errors up the wazu. Weirdness squared, since nothing I’d done went anywhere near the drive that gave me the fit. Oh well, you’ll have that. So figuring what was just your typical Windows wonkyness, I hit the restart button. Hey, they aren’t kidding that 90% of problems with Windows can be solved, at least temporarily, by a restart. This one slid itself neatly into the 10% that couldn’t.

I brought the machine back up, went to call up the problem drive. “Windows can’t find l:”. Wait wait what? Oh no you didn’t. “My Computer” tells me nope, that drive ain’t showing up. Different letter, maybe? Windows develops amnesia sometimes. Nope, that doesn’t do it either. Alright, let’s drop into device manager and see what ate itself. Oh, well that’s cool. Where my external drive should be, there’s an “Unknown Device” staring at me instead. Oh and hey look. Uninstalling it and reinstalling it? Still an unknown device. And Windows ever so helpfully informs me that a USB device attached to this computer has malfunctioned and could not be recognised. Where’s my vodka, again?

I fought with that for several hours. Then, when I thought the system might be in the process of unscrewing itself–it was taking longer than usual to restart, which it usually does if it’s attempting to self-correct, I took the opportunity to throw myself into bed for a couple hours and allow my brain to recover from its partially liquified state. Should not have done that, for the system, it done fooled me. It came up just fine. I could, again, sort of see that there was a device there. But it was still an unknown device. Well hey. It’s something, just not what I’d call progress. So, alright, whichever. USB sometimes has its preferences. That’s fine.

I’d shuffled things around in the back of the machine so I’d have room to put the hub without killing me, and that required shuffling the drive over a port. That could have possibly screwed things up. Okay, we can fix that. Yank the hub, stick it in one of the vacant ports in the front of the machine. Move the drive back to where it used to be. Hey look–I have a drive again. We’re in the clear, finally. That only took far too long. So I started to set things up the way I had them before. That meant queuing up the several downloads I have going in the background. So I did that. “This drive has been removed. Please reattach the drive.” Oh really.

turns out, universal plug and play means you must reorganize everything, if you’re going to reorganize anything–clearly, this is what they meant by “play”. That’s what my computer was trying to tell me, when it decided this time I didn’t have a j: drive. I most certainly do have a j: drive, but my fixing of the l: problem made everything go pair shaped. Oh, and Windows decided I didn’t have an SD card reader either–fair enough, since I never used the thing anyway. Like the first drive did before, both of these showed up as unknown devices when looking. Well, hell. I didn’t want sleep anyway. I did want caffeine, though. And vodka. Definitely vodka. So it was do this dance again and see what turns up. Exactly how I invisioned spending my first 24 hours with new hardware.

Once again, into device manager. Once again, play the uninstall reinstall game. For the sake of the card reader, it was also hit up Dell’s website for drivers, just in case a simple reinstall fixes its wagon–it didn’t. Well bloody hell. And the drive in question didn’t move once during the entire arangement of getting everything else to work. Windows just decided it wasn’t gonna play. Oh, and it was *that* drive’s turn to have malfunctioned and not be recognised. this is getting hella old, Microsoft.

Again, do the poking around, figure out where it’s brokoen. Again, curse when the thing that’s broken won’t fix when you shove it into place. So, I did the next best thing. I pulled *that* drive out of the port it had been sitting in since that drive existed, and slapped it into the USB hub alongside the wireless card. And didn’t the damn thing spin up, be recognised and do anything I damn well please like it’d spent its entire life exactly like that. “Show you what’s in your downloads directory? Sure. Here you go.” “Hold very still while your torrent client re-checks every single goddamn file I have because my disappearance threw it for a loop? Whatever you say, boss.” Yeah, screw you, ya something something something.

So now I have 3 working USB drives again. Plus the working USB hub and wireless card I wanted to have in the first damn place. Still don’t have a working SD card reader, but I’ll worry about that if and when I need to. I’ll probably do a system restore at some point if only to see if that puts it in a position to maybe self-correct and undo the mass confusion, but as for right now? The damn thing works, I’m braindead, and I think there’s a sub or two calling my name. Oh, and the next time somebody tells me USB is extremely easy to work with, I won’t be held responsible for any pain caused to any USB stick regions.

In which Bell Canada and a crappy modem team up to break my brain. Twice.

I have caffeine. And I have a bit of free time. That means geek entry. If technical things make your brain do melty things, there’s other stuff coming. Or, you can flip through some of what’s already posted. On the other hand, if brain damage is your thing, keep reading (Warning: long post is long). I don’t disappoint.


Folks who’ve been reading me for a while know this already. But for the new ones, or the ones who haven’t yet found the time to go wandering back through really wicked old entries, a background. I used to work for Dell, back when Dell used to be cool and actually wanna pay me. Naturally, that meant insane amounts of exposure to large doses of the kind of stupid that would be lethal without the proper equipment. Or an international border. whichever was more convenient. The kinds of breakage I had a front row seat to, and the wicked nifty cool shapes my brain had to fold itself into just to figure out 1: how in the 7 levels of hell $person actually ended up breaking their thinggy what I’m being paid to fix, and 2: how in the 7 levels of hell I was going to fix it without a small miracle, copious amounts of caffeine and an IV drip of vodka–only one of which was actually practical while sitting in a call center in the middle of freaking Kanata, made origami look like something your 2-year-old pulled off in his sleep last night–appologies to anyone who’s 2-year-old may or may not have just been mildly offended. I’ve even seen software–and some hardware–who’s manufacturers make an honest attempt to break things by default (see: standards, Microsoft’s lack of). Usually, that kind of is an out-of-the-box flop, though. And usually, I’m the shmuck that gets to appologise to the customer because there really is no way to fix that broken, short of replacing the defective–not something you want to tell someone after they’ve just plunked down $400 for that self same defective. Now, I’m that customer. And Bell Canada gets to play the part of Microsoft.

I do all manner of geeky–and sometimes freaky–things from behind this network. Including helping May with setting up and administering an FTP server. Sometimes, it involves extreme amounts of stress testing. And sometimes, it just involves a simple hey, can someone from outside this network access $service on $port, or do I need to smack me a modem? Up until a few days ago, that was a simple process if you were me. Or, hell, if you were May, who’d tell you herself she’s not quite as technical-minded as I am but she’s kind of busy catching up on posting to her site at the moment. All either May or Myself had to do was pull up a chair and connect. Well, more or less. From behind the network, we could still pull up the external hostname, bounce to it from inside the network, and have it route the connection back to the network on the appropriate port. So basicly, it’s like picking up the landline and dialing your own phone number rather than *98 (or whatever your US equivalent is), and seeing if your voicemail picks up. At some point last week, though, Bell decided to turn off that ability.

I have no idea what the hell they changed, but they apparently pushed an update to the modem we’re using–we’re using Bell’s “Connection Hub”, if you’re curious–that pretty much broke standard networking. Now, if I’m sitting at the machine I’m using right now, behind an otherwise fully functional network, and I try to pull up a service I know is working as expected, I get nowhere. Or, rather, I get somewhere–it still tries to connect to the external hostname. It just times out, as opposed to connecting. Going back to the comparison from earlier, it’s like calling your own phone number, knowing you should be hearing your voicemail, and instead the phone just keeps ringing.

Thinking the modem just developed amnesia–they do that sometimes, I go in and have a look. Sure enough, it ate the settings I’d whipped up to actually allow the public to access things from outside this network. I’d seen this once or twice so was actually kind of expecting a whole other set of issues–amnesia of that variety is usually asign you’ll be soon replacing your modem. So while reimplementing the settings that let things be visible to the greater internet, I was internally preparing to have that conversation with both my ISP and my girlfriend. And only really not looking forward to one of those conversations. so I reminded the modem that yes, in fact, this is a friendly thing, and please to be letting John Q User play with it thanks much. And then I hoped like hell the damn thing wouldn’t forget me 10 minutes after I left the room. I tried connecting externally again, same result. Then we lost internet briefly. Well hell. Here comes 2008 all over again, it looked like. Still, when we came up, I smacked the reboot option–just to cover my ass. And because, hey, if it was 2008 all over again, we’d already lost our settings so what was I hurting? Another reconnection later, and I figure okay, let’s play find the server. Again, dialing my own phone number, expecting to hear my own voicemail, and instead hearing ring ring. Not cool, network. And not the standard performance, either.

Still suspecting the modem might be on its way out, I check again. Nope, all of our settings are there. The modem’s just being a Microsoft product (*). What the blue? So fine. I have access to a server that’s well beyond this network–hint: WTN’s sitting on it. So let’s go see if the service is even visible. Connect to the server, fire up two different FTP clients. Connect from the server, back to the network, to May’s FTP server–the thing I couldn’t reach by the external hostname from the local machine. Doesn’t it work like there’s nothing wrong in the slightest. I can connect, do what I do, then bail. No problem. Alright, next test. C’mere, CanYouSeeMe. Do we exist, at this IP address, and on this port? We do? And you say that more than once? Awesome. So John Q User can play with the thing after all. We just can’t bounce off the hostname anymore. Cute. So why the hell not, and can we fix it?

As it turns out, I don’t actually have an answer for that first question–I’m guessing Bell pushed out an update, but as locked down as that modem is (hint: Google doesn’t turn up any super nifty administrative access levels, a la the modem we had at the old apartment through Rogers), that’s just a guess over here–though that would be the only reason for the modem’s temporary bout of amnesia, assuming it’s not trying to warn us it’s going to fail tomorrow. As to the second question? After about 15 minutes poking around in the thing, it looks as though that has potentially no written all over it. Actually, poking around inside this modem tells me you can’t actually fix, or turn off, much over here–enter breakage the second.

The modem they gave us when we signed up for internets is one of those router combos. Because of the speeds we’re getting and the fact it’s fiber, this is kind of the only modem we can get from Bell–and I’ve not found an equivalent outside of Bell that I can be reasonably confident won’t crap itself in 6 months just on account of the connection expecting too much from the hardware. But so far as router combos go, even the ones provided by the ISP, the thing’s crippled. Problem the first: no bridge mode. As in, at all. At least, not in the sense that you can tell the modem to just be a dumb modem and hook up your own damn router. You can turn off DHCP and wireless access, but that’s about as far as it goes. Why? Part of it’s because, stupidly in my honest, Bell uses this exact same modem for its TV service–not much use to us at the moment, but a trivia type thing I found while poking. So, truely bridge mode would break that in several interesting and not so fun ways. That also means I can’t bypass Bell’s breakage and go buy me a new router–too bad, too, as there are several that’d do the trick quite nicely. But the modem would still be handling the trafick from the router, and playing cop where necessary–or rather, where Bell thinks it necessary, thus defeating the entire purpose of a second, better, more stable router. And problem the second: What access Bell gives you to this modem is, well, basic at best. You can configure wireless network settings, open whatever ports you need (see above for situations wherein that might not be practical), and set up management for dynamic DNS in the event you don’t want to have to fight with a client for doing exactly that (I don’t, personally). And that, right there, is about the extent of your access. Add an exception to the firewall so the router doesn’t block your mystery packet transfer? Not happening. Set it up so specific services aren’t available during certain times of day, or days of week? Not happening.

Rather than having the option of becoming a dumb modem, Bell handed us a dumb router. Then they broke it with an update. Awesome, yeah? And between the two of them, my brain suffered two very significant meltdowns. And I still don’t get to just say screw it and run my own damn router.

(*): The comparison may or may not have had a small something to do with the fact I just got done fighting with Outlook. Maybe. Or was that this morning? Oh well.


I’m not crazy! This caught someone else too, or at least one other someone else, pushing me just a little bit further towards the theory an update broke it. Awesome job, Microbell. Now when do ya get to fix me?

The basics of what Twitter ate, and how to work around it.

I still live on Twitter, even if they occasionally go and break their API without warning. Which is kind of what happened yesterday. Users of a few different clients ran into an issue where they could receive tweets, mentions and DM’s all the day long. Posting? Different story. Twitter threw back a 411 error–which, just for the record, does not mean what Twitter would like to think it means. I’ll let you know what that is when Twitter lets me know. No one has any idea just yet how to fix it. But like that’s stopped me. So late-ish last night, I put together a vaguely quick attempt at fixing the issue. It involves an entirely different–and yes, supremely simple to use–program and, for those who need it, support files for the screenreader I use. You can download the zip archive of both the program and the scripts for JAWS for Windows from over here. Instructions on how to use the program from the perspective of a visually impaired person are right this way. If there’s a question that isn’t answered here, feel free to come find me, and I’ll see what I can do. In the meantime, happy breaky day!

In which cPanel and CentOS actually, uh, kind of do what they should?

I’m still trying to figure out if it’s just because somebody decided to smack me in the head a little too hard, or I woke up in an alternate reality at some point, or what. But an interestingly weird thing happened over the course of the last couple days. I asked cPanel and CentOS very nicely to do something for little innocent old me, and the server didn’t actually catch fire.

A little background, for those of you who may be almost as sadistic as me. Installing Icecast on a CPanel server, any version, any time, used to be a right royal bitch. Compile the thing from source, curse as it spits out 80 million missing dependencies, compile those dependencies from source, curse as it still can’t find them–by the way, /usr/local/lib64 being in root’s environment path apparently does not help when the configure script is freaking braindead, then spend the next 5-10 minutes tracking down all those dependencies, finding the exact shared object the configure script wants to reference, then symlink the whole damn batch to a directory wherein the damn script wouldn’t bitch. If I didn’t occasionally *use* Icecast, just setting up the dependency structure for the compile process would warrant hourly billing for the poor bastard who asked for it. But since I do, and hey, it was an excuse to flex muscles I haven’t needed to flex since the last time I smashed Gentoo, I figured oh what the hell. So Icecast existed, compiled from source, dependencies and all. and I kept 80 million notes for the next time, just in case. And then the wickedest weirdest awesomest thing happened.

I’m not sure if it’s a CentOS 6 thing, or the version of CPanel I’m running, or hell, maybe the OS devs just finally decided let’s update a bunch of packages that we haven’t actually updated in at least a year and a half (Did I mention I hate binary OS’s for that?). But on a random thinggy, I thought hey, let’s run a theory. They’ve had time to fix their shit, and they’re not Debian, so maybe. So I skip the tracking down of my usual source dependency packages, and go straight to the configure process. It falls on the floor. Apparently, the server has ogg-vorbis support (hey, that’s an improvement right there), but it’s 0.6.x. Awesome. Wicked. Nifty. Cool. But Icecast wants 1.x. Well fuck me running. So I’m all ready to go tarball hunting. I’ve got links, I’ve got references to other links, I’ve got ice cold (no, literally ice cold) caffeine, bring it, bitch. I do the usual dance. make sure my links haven’t broken in a year and a half, make sure nothing was unexpectedly updated and I need to do something slightly different this time around, and I find something so new it still has that new geek smell. Where before, the CentOS package manager absolutely hated to do anything remotely involving Icecast and its dependencies, this time, I was fed exactly the command I needed, in exactly the format I expected, that I’m pretty sure I tried a year and a half ago that made just about everything fall down around my ears. But, hey. Maybe. I didn’t find this in Google last time I looked, so maybe. It would certainly make me less dependent on vodka, if nothing else. So I do the do, and suddenly, I’ve got updated libraries the configure script likes, and a couple packages I’m pretty sure the box I set this all up from via source last year is still missing. And because CentOS did whatever CentOS does with it, the configure script *should*, God willing, find the damn things without me needing to perform minor surgery. So I run it, kick back, and hope the booze store’s still open just in case this thing blows up–it wasn’t, by the way. And the thing not only compiles, but compiles like a dream. Thing threw less warnings on this box than it did last year.

I nearly fainted. CPanel doing what I say is a rare occurance when it comes to actual, significant admin things. CentOS doing what I say is even more rare, for anything, administrative or not. Both of them cooperating on the same task, at the same time, and neither’s arm needing to be twisted? That alternate universe theory sounds better and better all the time. And then I go and install something like Logwatch (believe it or not, the server was not handed to me with that installed), and I run smack into CPanel’s damned yum.conf exclude line. Okay, right universe. CPanel just wanted to mess with my head. Did I mention I hate it when CPanel wants to mess with my head?

In which WordPress changes their API, busts a couple features. Oopsies.

This site has comments by email. This site also has posts by email, should you be sadistic enough to subscribe to it–hey, a couple of you have, so it’s relevant. Or it did, until approximately 2 hours ago. You see, WordPress released a slightly newish version of their software last month, and one or two of the things that get some fairly regular use over here I don’t think were expecting that just yet. So they’ve kind of gone, um, squishy. I get to go digging through code later, but here’s a thing to keep a hold of–all your info has stayed put. If you subscribed to get comments to an entry by email, you’ll get comments to an entry by email–just not immediately right now, and unfortunately not retroactively either. Although, now that I think of it, your mailboxes might just thank you for that. Same goes for posts by email–although those, at least, you’ll get retroactively (don’t worry, I have sane limits on the amount of email this thing sends). The features still exist, they’re just somewhat temporarily broken. stick around, though–I’m not done twisting things into knots just yet. One of those knots might just fix themselves.

In which WordPress and my server conspire to psych me out.

I’ve been making a fair few changes to things on this end lately. Mostly changes aimed at preventing things from falling flat on their faces. For the past few days, though, it’s been looking mostly like things were falling all over the place anyway. It started with my finally ditching Feedburner, while at the same time playing with the latest new addition to this blog’s feature set–you’ll find it at the end of this post. Multiple issues decided it’d be fun to crop up right around then. This blog’s RSS feeds, temporarily, did the awesomest impression of a corpse, with a path that used to be acceptable to get to the feeds in question deciding to pick around then to, well, fall flat on its face. Or so I thought. On top of that, the server was quite running away with memory usage around the same time–to the tune of over 2 gigs of reserved memory last night, for what should be at most maybe 3 quarters of a gig at peek times. Nifty. Except not. I managed to track down the memory leak to my first attempt at introducing the feature you’ll find at the end of this post, after a couple days of troubleshooting. It’s since been shot in the face. But the other issue? That was the fun one. And by fun, I mean so stupidly simple I could only have figured it out after a couple beers. Fortunately, I’d had 5 tonight so was in good shape. The RSS feeds, as it turned out, weren’t quite as broken as I’d thought. WordPress just temporarily decided to forget what it was supposed to do with them. A stupid setting on the admin side of the software developed temporary amnesia and needed to be reminded how things were supposed to look. And then reminded again, because it didn’t save the first time. Thanks, WordPress. No, really. Thanks. My technology has been conspiring to sych me out. And it damn near worked. Now, to go attempt this whole sleep thing, then try and figure out what the hell caused *this* spike in memory usage. More mockery tomorrow–I’ve built up quite a bit since things started conspiring. You’ll get to read it when I’m not halfway to Zombie City. Well, okay, if I remember.

Fake hardware failures suck almost as bad as real ones.

Disclaimer: If you’re not of a technical mind, or things like hard drive failures make you run screaming in the other direction, you may want to skip this post. Just a friendly warning from your neighbourhood undercaffinated geek. Particularly when the fake ones in question leave not just you, but your equally technically inclined roommate, staring at the computer as though it’s just sprouted its very own artificial-ish inteligence.

Take this weekend, for instance. I’m minding my own on a Friday evening, trying to invent the best and least hair-pulling way to introduce updates by email–and comments, by the way, not just replies–to the blog, when the desktop decides to throw not one, or two, or three, but nearly a dozen warning and critical error messages at my face. Everything from hard drive failures to RAM usage being critically high, to flat out memory failures. Now, keep in mind, this machine’s nearly 4 years old and just had its wireless card replaced–twice, mind you, so one or two failures of that nature wouldn’t be beyond the realm of possibility. So I’m going through the usual diagnostic steps, doing what you do when you’re under the distinct impression your primary machine’s about 30 seconds from going flatline and you’ve got absolutely no spare parts kicking around, when this innocent enough looking “Windows XP Recovery” window crops up. It helpfully informs me that Windows is suffering damage possibly related to bad sectors on the drive. This along side yet another of those dialogue boxes cropping up informing me one or more IDE/SATA drives are about ready to self-shoot.

By this point, I’m more than a little WTF-ing. I *just* meaning less than a week ago, had a Dell tech out this way to replace the network card. Was I *really* going to have to have another one out to replace at least one failing drive and lord only knows what else? Not to mention the roommate just 48 hours prior to that got the pleasure of dealing with his very own failing hard drive and the replacement of same–in fact for much of Friday evening, while I was diagnosing, the running joke was that apparently hard drive failures had now become as airborn as your common virus. But I got curious. The only Windows XP recovery utilities, particularly utilities that bare that name, are usually found on the XP CD–and certainly don’t randomly show up when Windows is loaded, though sometimes I think that might be helpful. Enter that tiny little alarm going quietly off in the back of my head while I go hunting for my usual fix me tools.

I keep 3 tools one hand for incidents kinda like this one–one spyware scanner, one virus scanner, one nuke ’em all tool. Because I was testing a theory, and if I was right it would at least manage to nail most of it, I loaded–and fired–the nuke ’em all tool first. Sure enough, within about 2 minutes of the utility running, Windows XP Recovery took a hike. And so did its small army of warnings and alerts and whatever else managed to show up. Yay! I’m free! Except not quite. I nuked the majority of the infection, and probably caught the source, but there was still damage. Have my desktop was toast, and I’m pretty sure I was missing things out of my start menu on top of that. Nice. Wonderful. Nifty. Easily fixed.

I ran my other two tools, which took a little longer than I’d of liked to finish–but they finished and nothing broke, so I’m happy, and removed what I think might have been the last remains of the thing. Easily delt with by a simple reboot. Now, there was just the issue of half my desktop and probably some of my start menu going completely snap all over the floor. Because I was sick and tired of fighting with it, a system restore took care of that–and then some. Yay, again. I took care of what I thought needed taking care of manually, then went on the hunt for info.

Apparently, the infection I just went around with is new. Extremely new. As in I’ve seen postings as early as May 13th, but no older so far. To the tune of every forum, blog, website etc I know to check has something on it. And still, it managed to sneak by my usually pretty solid defenses.

All told, I’d way rather have just had an actual hardware failure. Or several, to be completely honest. The fake ones were a bitch to knock out. Now, to find where I hid my emergency back-up material–just in case.

When is a router no longer a router? The sequel.

That didn’t take long. After just over a year of actual, constant usage, the router I ended up finally putting in service last February took that very short drive off the performance cliff. Or perhaps it was a long-ish one I just didn’t really pay attention to. The problem itself took the better part of 3 days to actually narrow down–initially, we blamed our ISP, but quickly discounted that in a matter of a few minutes. The modem was the next guilty party to be blamed–I’d had a small problem with this type of modem before, so it wasn’t about to surprise me if I’d be replacing that. A few tests and diagnostics later, nope, modem’s working perfectly fine. Well hell. I was hoping I wouldn’t need to invent money for replacement parts this quick. so now my sights are set entirely on the router. Yes, the router I’d just replaced already last February. We do our usual routine with all the computers in the house save one running wireless, because that’s just how we role. Things should be flying both around the internal network and past it to the greater internet. Things didn’t end up getting out of first gear in most cases.

It made troubleshooting this issue even harder still, as the desktop I primarily use for 90% of my online work when I’m at home has been experiencing its own good attempts at dialup performance on the network. I was initially blaming the router, but during testing I was getting much better performance from the laptop than the desktop, both of which I was testing wirelessly. Yes, the laptop’s definitely a more powerful machine, but that has no baring on internet speeds these days–a dual core processor should be running just as or nearly as fast on a network set up by an OCD geek as a machine running a core i5 or i7. Well, you’d think, anyway. Testing disproved that. So now, I have a theory. A dangerous thing in my hands, but you’ll have that. The mystery of the dying router was partially hidden, or at least masked, by the compounding suspected issue of the desktop’s card tanking in 18 different directions. Nifty, with the tiny exception of not entirely. Fortunately, or not depending on your perspective, that’s the easiest thing to replace–and the cheapest. It was also the first thing I got things moving in the direction of replacing–hi, Dell technical support. Time for you to actually work for me. Considering you’re working because I’m not, and all. So one phone call later, and yes it took giving out my former Dell employee ID, troubleshooting was bypassed and hello, replacement card under warranty.

So now, we have replaced the router. I am replacing the network card in the initial problem machine. The rest of the wireless equipment? Wayyy too new to be causing problems–unless someone really wants me questioning their compitence. The only questionable piece of hardware that has yet to be gone over with a fine-toothed “don’t you dare fall over” comb is the modem. And honestly, it’s only a gigantic questionmark over here because, er, one of those already blew up in my face. The unstable network should now, barring unforseen small technological implosions, only be a myth in the house of geekery. And if it’s not, I know one ISP who’s going to get really, really tired of hearing from me. Mostly because I’m not looking forward to the next installment of “When is a router no longer a router?”.

Old computer is old, and other asorted bits.

I’ve officially managed to date Jessica‘s computer. Its official age, as of right now, is older than dirt. Yesterday was an adventure in the upgrading of RAM. After finally figuring out this thing cannot keep its various periferals attached while it’s being worked on, I got to playing around with a couple 1 GB sticks I punked from Kyle while I was over there. In so doing, I think I did both Jessica and him a favour. Before me, he wasn’t sure if one of his sticks went south on him. That took all of 10 seconds to determine for absolute sure–it’s toast. As for the other? It might as well have been, at least so far as I’m concerned. This machine just plain ain’t supporting. It’s DDR2 RAM, for starters, which apparently this motherboard predates by a couple years. Add to that, I think this thing only goes up to PC2700, which well, do they even make RAM that slow anymore? So that was a fun excuse to throw open the case.

Now, it’s off to a valentine’s get together with a few friends, one of the 80 million things I love about Rochester. Mockery? Snarkery? General geekery? Yeah that’s still coming. As for now? I see food in my near to immediate future. Catch you on the flip.

In which ConfigServer quite possibly breaks WordPress. Oof.

I’ve been dabbling in the more involved server admin business for the past while. One of the things we’ve been experimenting with for the better part of a month is the firewall provided by ConfigServer. It’s halfway decent for what it does, as long as you’re not trying to do anything too involved–like, say, get certain functionality native to WordPress to actually, you know, work. Like, for example, trackback/pingback functionality. So, since we had absolutely nothing else planned whatsoever tonight–hi, oh my god cold, we figured we’d either fix CSF or break Shane‘s blog. Turns out we did neither.

According to ConfigServer’s software, which I have taken to not trusting after our most recent discovery, inbound trafic on all the ports we needed to be open was possible. As was outbound. Except for that tiny little part wherein it sort of wasn’t. That lead to some pretty interesting problems in the neighbourhood of him actually being able to receive trackbacks/pingbacks. Since blogging in general, and WordPress in particular, is primarily focused on the whole community/conversation element of it all, that posed a very small problem. We fiddled off and on with it for a few weeks, and eventually for reasons of trying to scrape together a few dollars, we decided to start the process of migrating him away from that server and to my arangement over here. After breaking things in that department in all kinds of new and interesting–not to mention very very creative–ways, we thought we’d play with seeing if that fixes the outstanding issue of tracking back. Hence, if you hadn’t figured it out, the test post from earlier. And wouldn’t you know, the damn thing up and proved us both idiots. First try, it did exactly what it was supposed to. The only *really* major difference? The server the problem blog’s on isn’t running ConfigServer’s firewall–and won’t be, if I can possibly get away with it. Aside from that? Same server configuration, more or less, with a few extra mostly irrelevant bells and whistles I don’t actually use but hey, they’re cool.

The moral of the storry: If you’re running ConfigServer’s firewall, look for alternatives. If you’re not, keep it that way. It’s bad for you. Stay very, very far away from that program–particularly if you, or anyone you’re hosting/maintaining the server for, plans on running a WordPress blog. They just do not like each other and I think the relationship’s pretty irreparable. Now, the search begins for alternatives.

The catholic school board’s IT department is *not* smarter than an 8th-grader.

From the department of IT Security 101, courtesy the Peterborough Catholic district School Board, comes this real life lesson of what happens when you don’t tripple check your security. you end up hacked by one of your own students.

John Mackle, education director at the Peterborough Victoria Northumberland and Clarington Catholic District School Board, said the Grade 8 pupil at St. Anne’s School in Peterborough’s north end found his way — via his laptop, a piece of downloaded software and the board’s internal network — into a board file server containing provincewide test results.

“To be honest, I don’t know that he would have understood what he was seeing,” Mackle said.

“The information that he was able to see wouldn’t have made a lot of sense to him.”

Mackle said the incident occurred when the server in question, which isn’t located at the school, was turned back on after undergoing a service upgrade.

“We normally have two levels of security,” Mackle said. “In this case, level 1 was turned back on, but level 2 was not. This allowed the boy to gain access.”

Security for all servers has been upgraded in the wake of the incident, he added.

By “upgraded”, does he mean “reenabled”? And, really, just what kind of security do they over at the Peterborough school board consider to be level 1? Inquiring minds want to know. If the system was secured, the kid shouldn’t have been able to access it. On second thought, I’ve come to understand the school board’s definition of secured and the rest of the world’s definition are usually two pretty different things. If given enough time to work at it, most school board security systems–at least up here–could probably be compromised with a minimal amount of effort, if someone with a problem with that school or the board really wanted to.

Let this be a lesson for aspiring IT people. Secure your shit. Twice. And for the love of chese, if you’ve got a system installed, tripple check that it comes up when the server you’re trying to protect does. I should not have to point that out.

A very small note to Windows mobile.

When I try a quick and dirty hack to convince you to send mail through an alternate port, that would be the time for you to decide to send the offending email. Not after the account has been appropriately whiped from the system, and then subsequently reentered. And certainly not after we’ve been dicking with it for nearly 3 hours, not counting time to take a break in order to avoid throwing the offending piece of hardware through the nearest window. Thank you for wasting my time.

No love,
The geek

PS: Hey, Primus? Not cool with the blocking of port 25. Seriously. Let’s try not doing that, shall we? You’re breaking things more than they need to be at the moment. And some of these things don’t take much as it is. Also no love from the geek.

Linux, virtualized. The hard way. Twice.

Every so often, I’ll consider finding some new and creative way to install Gentoo, my Linux distribution of choice. And sometimes, I’ll do it in such a way that it actually doesn’t blow up in my face. I’ve been trying to convince Shane to give it a try, but he hasn’t got an extra machine he can clean out and turn into a test platform. What he did have, though, was an instalation of VMWare and lots of free time on his hands. So it was high past time to shove an OS inside an OS.

The actual instalation process, for the most part, wasn’t a whole lot different from the steps I followed to install it on the laptop. But there were a few subtle differences in what was required. And naturally, they were just tricky enough that the easiest way to implement those differences was to blow the instalation away and start over. So we did, probably two or three times. On the third try, we managed to actually get the thing mostly up and running. By this point, we were very nearly on easy street. So I decided to do the exact same thing locally.

My install required a little bit more creativity, mostly because I was also using it as an excuse at guessing which VM settings would play a little bit nicer with our instalations. I got mine up and running on the fourth try, or thereabouts, and threw the modified settings at the first attempt at a Gentoo install. Now, with both machines up and running and not threatening to explode, we could play.

Shane’s heavily into the whole beta testing thing, so we went on a dependancy hunt to trick out his install with the requirements for at least one game he’s been testing. Then, we threw Gnome at it, and while that took its time installing, we threw a small party. The new and exciting part of all this was over by now–virtual Gentoo plays just as nicely as nonvirtual Gentoo, post-install. So now comes breakage.

I had no idea exactly how hard Gentoo, even in a VM, was to break. Or how easy it was to fix when it did. We’d try this or that nifty little trick, compile something, and watch it fall over. And in about 10 minutes at best, we had the why, the when, the how, and a fix was on its way down. The two things we didn’t intentionally break are apparently fairly common, or at least, simplistic issues–apparently, kernel 2.6.36 is still way, way too knew. As in things that depend on the kernel sources being installed–hello, NVidia drivers–fail quite fantastically at the compile stage. Same with the latest current stable version of Speakup, which escentially meant if we wanted the instalation to talk at us, we weren’t about to be using that kernel version. There’s apparently such thing as *too* bleeding edge. Who knew?

Another potentially kernel-related almost failure isn’t actually what I’d call breakage, but it is kind of annoying–and equally not either of our falt, lucky for us. This is the more common/known/widely experienced issue–when you run certain commands from the console or a remote session, it throws an “Unknown HZ Value!” error. It doesn’t actually break, and I’m assuming the results you get from that command are what you’d expect to get, but the error, or notice if you’d rather, regularly makes an appearance. We traced the problem to Procps, a utility package that contains several system monitoring programs among other things. I was about ready to report it, then saw it was already taken care of–hence the more widely experienced/common-ness of this annoyance. This is not something I’ll be fixing any time soon, but the activity so far as this bug report shows indicates people far more experienced than me with Gentoo, kernel tweeking and all the fun crap that goes with have it well in hand. Or at least are faking it very well. So now, we just sit back and see what else decides to implode.

The install actually went a little easier than I was hoping, if only because hey, I needed an excuse to break things on a more permanent basis. But, oh well. The OS works, on both machines, and any lingering loose ends we can safely reject any and all responsibility for. For my next trick, I’d like to see if I can install MacOS on the VM. I’d be interested in seeing how badly that breaks. In the meantime, time to go play fix the video card. Thank god for caffeine.

I have met satan, and it is CPanel.

I pride myself on being a geek. A very patient geek, even. But even still, the more I read about CPanel, the more I grew to hate it. And then, I got a chance to indirectly work with it. Now, I’ve come to despise it with the passion of a hundred thousand suns.

I started out helping Shane throw together some kind of a fix for a problem he was having with his WordPress installs. Or rather, several small problems that, when lumped together, became one very hugely gigantic ball of oh my god what the hell am I doing. That was well over 3 hours ago. From there, we ended up blowing away the WordPress install, trying our damnedest to get it to reinstall, banging our heads against Apache and Suexec, and generally coming this close to screaming. My poking at Suexec config files, at least those I could find in that not so cleverly disorganized mess CPanel calls a directory structure, told me it should be working the way it’s supposed to. But when WordPress went to do something as simple as generate a config file, it crapped out with permission errors. Okay, this wasn’t how I invisioned spending an evening, but hey, what the hell else was I gonna do?

So I poked around some more, and discovered when CPanel installs Apache by default, it compiles things in a not very Suexec-friendly way. And convincing it to recompile, as I learned tonight, in such a way that it would actually do what we want without puking all over the place first, well, it wasn’t about to happen instantly. Apparently, something within CPanel tells it it’s alright to slap a random file in /etc to prevent Apache from actually being shut down, even in situations wherein it needs to be shut down–such as, for instance, to be recompiled. Finding that file, then finding out what it’s doing there, then finding out if just plain ripping it out would break anything, took a bit of digging. Then, after much hair pulling with both the web and command line interfaces to CPanel, we eventually, finally, managed somehow to explain what it is we were trying to do. Getting to that point, of course, just had to involve a tech support person from the hosting company who wasn’t a whole lot more clued in than we were–par for the course when you’re us. So we decided to take a random shot in the dark and rip out that file, then try desperately to convince CPanel that yes, it was perfectly alright to do what we’re asking it to do.

After about 2.5 hours of screwing with it, we finally have CPanel singing the right tune. It does its thing, eventually recompiling both apache and PHP to build in support for what we want to do–PHP as CGI through Suexec. Great, so now we just pray to god it works. By this time, my brain is pretty much sawdust, and we still have the initial issue I was trying to fix before all this to work out. Craptacular. So we get to doing that, and thank the freaking gods that goes through without a problem–now that we managed to exhaust just about everything we had access to to get to that point.

At the end of all this, I’ve come to a very important–well, to me, anyway–decision. If ever I find myself in a situation where I’m forced to use CPanel, I will not walk, but run terrifiedly screaming in the exact opposite direction as though this guy was after me. Faster, even, as I swear that thing is the software reincarnation of Satan. If you’re even remotely technical, at all, stay the hell away from CPanel. You *will* lose years off your life. And develop a strange craving for alcohol. Speaking of, where’d I put mine?

My moment of tech support failure.

Clearly, I’ve been out of tech support for far, far too long. I’ve been dealing with the services offered by my web host for coming up on 5 years now, so you’d think I’d be very familiar with how their servers work. Clearly, such is not the case. Jess was in the process of sending a post to her blog via email, mostly to make sure it worked from her address, and for the life of us we couldn’t get it to go through. She hadn’t done a whole lot of anything on this computer with her email other than go through it, so we didn’t know until now we were looking at potential complications. It took me not seeing her post in the blog’s email account to figure out that, okay, her account on this machine wasn’t behaving. Everything looked right from their end–which is usually not the case, so now I was momentarily confused. Turns out, when I set up her account several months ago, I had neglected to inform Microsoft Outlook that it’d need to authenticate her in order to be given SMTP access. Oops. So here she is, and me a few minutes later, trying to convince her emailed post to cooperate with the blog, and it was the fault of neither–just a freaking box I forgot to check off a few months ago. Clearly, I fail tech support 101. Quick, somebody revoke my license.

Why open source owns your soul: even the non-coders can fix things.

In the days of Windows and only Windows, the usual routine was find a bug, hit report a problem, kick back and maybe someone would get around to eventually, if you asked really really nice and forked over a hundred, maybe possibly fixing it. If they weren’t busy sucking back a beer or something. There was no real two-way exchange of information, per say–they either fixed it and you didn’t know about it until later, or they ignored it and you didn’t know about it until later if at all. Flash forward to the last week or so.

As I make no secret of, I power this site on WordPress plus about 20 wickedly handy plugins to take care of everything from statistics to adjusting things so folks who come across a 4-year-old link that no longer works can still find the entry they’re looking for at its new location. It was that latter redirect plugin that decided at one point to give me issues. For the record and those curious, if you want something similar for your own site the plugin is Smart 404, and it only works–to my knowledge, anyway–on WordPress. Now, before my year or two of experimenting with that other blogging platform, I had this site running under a different piece of software. That piece of software, still in development, took care of my needs back then with the exception of the whole comment spam thing–but the way it handled links in general was just different enough that when I set this up, and included the old entries from my first attempt at a blog, those links promptly broke. Not horribly, just a slight enough change that Apache threw a page not found error.

WordPress in general is very good about redirecting things within its own isolated environment to where you want to go. So, for example, if you were to go to http://www.the-jdh.com/index.php?post=123, it would redirect you to the appropriate post automatically–and to the appropriate, much more readable URL of that post–with no coaxing from me whatsoever. Kind of wicked nifty cool in an “I’m a lazy tech geek” kind of way. The problem is, there’s no native functionality for redirecting other links, not created by WordPress, to their appropriate wordpress equivalent. Enter the redirection plugin, Smart 404.

When I set it up to do what it was intended to do, though, I ran into another, slightly frustrating, problem. If you were to go to http://www.the-jdh.com/year/month/date/some_post.html, which was the old link structure on the blog, even with the plugin in place you’d get a 404 instead of being redirected to http://www.the-jdh.com/year/month/some-post/, which is one of WordPress’s default structures. Now, if we were talking closed source projects here, I’d of just switched to something else that did a similar thing–I’d have a better chance of seeing the problem fixed, and sooner, by doing that. But instead, it started out entirely in public comments on the blog of the developer of the offending plugin.

The actual conversation was, were it to happen over IM instead of blog comments, very short yet still very effective.

I posted a couple comments over there, pretty much explaining what happens when someone references one of the old, non-working links, and what according to the plugin documentation is supposed to happen. After running a real quick test to get access to exactly what it was the plugin was trying to do, the conversation effectively turned very quickly to something like this.
Dev: Okay, try this line of code and let me know if it breaks.
Me: *copy, paste* Okay, looks like it doesn’t explode. And hey, it does what it’s supposed to now. Who knew?
Him: Awesome. *throws it into CVS*
Me: Hey look, new version. And there’s the fix I tested. Awesome squared.

Yeah, it was literally that easy. And a very awesome reason for why sometimes, being able to actually see the program’s inner workings is a very good thing–you get to escentially debug and test a patch for your own problems, rather than waiting on the software’s tech support department–if they have one–to get around to communicating with the developers, who may or may not then get around to actually diagnosing and fixing the problem. The open source community as a whole gets major props for that. And major props to the Smart 404 developer for being nearly as quick to implement solutions to problems as his users are at finding problems to fix. And huge props to WordPress, because–really, do I need a reason? Now excuse me while I go consider for the thousandth time learning PHP or something.

I take back every bad thing I ever said about SP3. Ever.

I have a long and complicated history with Windows XP’s service pack 3. Mostly, it consists of me installing it and it doing all manner of bad things to the machine it’s installed on–like, for instance, being partially responsible for the temporary breakage of an internet connection. Recently though, I’ve noticed a slightly disturbing trend. Machines older than mine and less stable than mine are taking SP3 with little to no problem and even less headache. And I’ve personally seen it installed on one with plenty of other problems of its own–hello, less than stable IE 8. So there was definitely something out to get me–now I had proof.

After exiling SP3 from my machine for being pretty much a complete and total failure, I’d also a while later gone ahead and got rid of Eset’s Smart Security product for a whole host of other, unrelated reasons I’ll get around to posting at some point in the maybe not too distant future. That fixed a few dozen other slightly irritating, but not ultimately hindering, problems. After seeing SP3 crop up on some of these machines and ultimately not cause mass amounts of destruction, I decided just before I came down here to install it again on mine. I took that opportunity to test IE 8 out on a non-frankenputer as well, but I’ll save that for when I figure out what about the offending machine is making it break. And, surprise of surprises, it didn’t result in extreme amounts of bloodshed, or physical damage to the computer.

So, after much of the getting pissed with Microsoft for making yet more work for me, and after confirming not once, but five times that SP3 did not, in fact, break me severely on install, I officially withdraw any cursing, swearing, or overall snarkish remarks directed at Microsoft on its behalf. Instead, I shall officially aim those remarks at Eset/Nod32, and add them to the 50 billion others I’ve had plenty of time to prepare and direct at the offending antivirus manufacturer. But don’t worry, Microsoft still has much for me to snark about–I still have to figure out in exactly how many pieces they’ve managed to break .net framework on this machine, which may or may not warrant a separate entry. But SP3, at least so far, is not as evil as it looked a few months ago. Good job, MS. Now fix your framework, goddammit.

Because 2 years of “file not found” is long enough.

Every so often, I have such an idiot moment that it takes me forever to realise I was a complete moron. One of those moments happened, sadly enough, during the rebirth of the blog on this domain. For folks who’ve been keeping score, I’ve actually shifted blogging platforms twice–once from Movable Type to LiveJournal, and then from LiveJournal to WordPress. In all that time, while folks could always see the old blog over here, that left a gigantic hole on this site–one that quickly filled up with requests for pages that no longer existed. Enter the moronic that is me.

Being that I deal with computers, the interwebs, and things that make both tick on a regular basis, you’d think I’d of clued in on this a lot sooner than I did. Turns out–and I should have known this–search engines, other websites, random spambots etc don’t actually stop looking for a page just because said page stopped existing in 2008. Nor, for that matter, does anyone actually correct broken links it would appear. And, since until this morning I didn’t even have a clue how to go about doing that, they just kind of sat there returning the standard 404 request.

Fortunately, because the year I was on LiveJournal meant I wasn’t using this domain for it, there’s that much fewer posts I had to worry about correcting. That just left the 600 and change from the old MT install. Three hours on Google, various message boards, and other asorted sites later, I came across what I think might just be the almost right solution for that particular problem. After testing it on a handful of posts that I’ve been able to confirm were tossing back 404 errors, and finding them no longer doing so, I can safely say the blog now works entirely–or virtually so, if nothing else–the way I originally intended to.

The how and the why is semi-technical, though if anyone’s interested in the boring details I’ll be more than happy to elaborate. But, the short version goes something like this. Movable Type, for all its usefulness, had one huge drawback. It built static HTML files. Which, okay, made serving posts etc pretty much amazing. But once you got up to a certain amount of activity–the publishing of new posts and comments–the rebuilding of those static HTML files took about a hundred years. It also didn’t allow for a whole lot of flexibility in how you linked to those files. If you changed the post title and wanted to update the permalink to account for the change, MT didn’t give you much support for redirection to the new URL. You pretty much had to change it manually, then provide the redirection manually. Adding to the complication that is MT’s way of doing things, the directory structure it came up with was something like: http://www.the-jdh.com/2010/06/05/some_post_title_here.html . WordPress, on the other hand, goes more along the lines of: http://www.the-jdh.com/2010/06/some-post-title-here/ . Ignoring the arguments as to which one’s better than the other–I don’t really care to be honest, it presented a small problem post-migration. Problem solved.

A little addition in plugin form to WordPress, and the URL you request from the server suddenly serves a secondary purpose. It gets handled in this way.

  • If the post and/or page requested exists, serve it as per normal.
  • Failing that, scan the current list of posts/pages for a post who’s title matches the keywords available in the URL.
  • If a matching post is located, redirect the browser to that post and hope that’s the one they were looking for.
  • If nothing is found, return the standard 404 page as per usual and get on with the normal routine.
  • If more than one option is found, then, optionally–meaning whenever I get around to implementing it–provide a list of suggested entries similar to what was detected in the URL.
  • If none of those applies, then we have a bigger problem than I thought and I really should consider not tweeking the site while half a mile from no sleep.

Since nothing’s blown up at me during my testing, it’s a pretty safe bet things are at least 90% not broken. Or they’re clever about hiding their brokenness. Now, about that half a mile of sleep thing. Time to go fix that next.

When is a router no longer a router?

When, after roughly 10 years of service and for no apparent reason, it decides instead it likes brick form better. Such is what happened to my router on Monday, resulting in my being, well, hammered with emails and other asorted reading material that it took until tonight to finally get caught up on. I had been using one of the old D-Link routers, back in the day when wireless networking was still pretty much getting off the ground. Specificly, I was using this one–discontinued as of March 2008. I bought the thing in 2000 or 2001 or something, and used it to set up my parents’ first network–also my first experience with networking. And my first, and only–thank freaking God–experience with networking involving Windows ME.

The router, and my entire small network as a result, took a very unplanned nose dive at some point early Monday morning while I was still contemplating that whole being mobile thing. There were, from what I could tell, no warning signs or signs of sluggishness–just randomly snap, toast. Deader than Elvice. Of course, being the geek that I am, that had to encourage some troubleshooting. So when I got done with my running around for the day, I came back and devoted part of my evening to see if I can’t coax at least another 30 seconds of life out of the thing. At least long enough for me to finish the backing up of my laptop so I could finish dealing with another, unrelated technical issue–February is apparently the month for those. Of course, not happening. It was done, and there wasn’t any amount of poking and prodding short of prying the thing open and fiddling with the inner workings of it that was about to make it do anything other than sit there. Which, I might have been inclined to do, if I wasn’t lacking both the right type of screwdriver and the motivation to actually bother with it.

Now, ordinarily, such a situation–router suddenly goes sideways and absolutely no idea the cause, plus absolutely no money to immediately rectify the said situation–might have made me consider finding both motivation and screwdriver. You tend to do things like that when your geekyness is impeded by brokeness. But I was kind of forced to plan ahead about a year or two ago. Another issue cropped up, one that I’d originally thought might have been my router contemplating giving out right there–it was about 9 years old, so having it crap out on me at that point wouldn’t have surprised me. That time though it’d been the modem, which I’d only bought from my ISP, TekSavvy, about a month or two before that. fortunately, that was easier than at the time replacing the router would have been–one phone call, and done. But, knowing that I very likely wouldn’t have much longer before going completely netless if it did turn out to be my router, I’d managed to get online for the 20 minutes required to fork over the money for a spare–this was back when I actually had money to fork over for such things. Three days later, this showed up at my apartment. And a day after that, so did the new modem.

Swapping out the modem solved one connection issue. As a result, the router spent pretty much the last year or so in a box. This includes the 4 months since I’ve moved into the new place. And, on Monday evening, after some internal skepticism as to whether or not the thing would still work after it not being used save a brief testing period when I got it, it became pretty much the center of an otherwise unchanged network. Now, here’s hoping the month of technical issues doesn’t continue into March, and here’s hoping if by some twist of fate–or by some act of someone’s cruel sense of humour–it does, that it leaves this router the hell alone. I’m fresh out of spares, and money to fork over for spares. Anyone feel like donating to the Save a Geek foundation?

In which James discovers, not for the first time, that Rogers is broken.

For a little over a week, I’ve been at my parents’ place keeping an eye on things while they go do the skipping the country thing. A couple days ago, I temporarily expanded my house sitting operation to include my aunt’s place, while they took care of something about 1.5 hours away–someone still had to be there when repair people showed up. I knew I’d be bored to tears sitting there, since they don’t have a computer I can use, or a wireless network I can attach a computer I can use to, assuming I brought one. Fortunately or otherwise, the place still had cell coverage. So, packing as little as possible, plus the phone I finally got my hands on back in November after its logistical issues, I went and spent the morning doing not a whole lot.

I did manage to get a bit of job searching done, not that I found anything worthy of applying for. And thanks to the fact they charge me way too much for a data plan I absolutely have to have with this phone, I was still able to go through a lot of the things I had to go through. When getting around to posting a couple of the things that got posted on here yesterday, though, I discovered the brokenness.

I don’t use any third party applications for maintaining the blog. Mostly because, especially the past month or so, I never know from where I’m going to be writing. It could be from my place, from this machine, over at Jessica’s place in the event I end up there, or wherever. And I very rarely, meaning all of twice, actually wrote and posted something from my phone so installing an application on there didn’t cross my mind. It probably should have.

Trying to log into the site via the Rogers Wireless cellular network proved to be next to impossible. Of course, it being me and my phone being something of a questionable internet usage tool, I suspected it might have been a thing to be tweaked a little in order to get it to work. So I spent the better part of 45 minutes doing that. And googling for things to try that I hadn’t already thought of. After banging my head against that for a bit, I eventually just said screw it and went back to my email. I’d beat the hell out of it when I got back home and didn’t need it in top working condition.

When I did get back to my parents’ place and their sort of half stuck together, but working, wireless network–hey, I can only do so much with a wireless modem from Bell–I figured I’d try to log in via the wifi connection. And, wouldn’t you know, first try it let me in. I tried from the cell network again, and of course it laughed at me.

What’s interesting about it, though, is it doesn’t throw any kind of error at me. Or rather, it doesn’t throw anything at me–it just returns me to the login screen as though I hadn’t given it any information. The logs don’t show my attempts either, which makes me wonder exactly what funky and messed up thing Rogers is doing to me between phone and blog. Of course, googling further for other people having that issue with websites that aren’t this one didn’t answer my question either. Although, I did find several more examples of severe Rogers and Rogers Wireless related brokenness–their website, which I think has only gotten worse, for one. Not a good thing to be reading about when trying to fix an existing problem, Rogers. You might want to look in to that.

I did manage to learn two very valuable pieces of information, though, when doing this. Pieces of information that may have been helpful 2 days ago.

  • The phone isn’t quite as questionable an internet usage tool as I originally thought. The network, however, makes up for that improvement in questionability status.
  • And, the most important lesson to take away from this bit of unexpected geekery. From now on, posts while mobile will be emailed. Starting whenever I get around to configuring such things.