Just discovered a bug in my new anti-spam WordPress plugin that made it impossible for anyone to comment. It’s been fixed, but this, of course, brings to the front the critical need for a proper testing environment!
If you’ve been paying attention to my Akismet counter on the sidebar, you’ve probably noticed the number trending upwards quite rapidly over the last week. Apparently the spambots have found me.
Akismet’s done a superb job of preventing you fine folks from seeing the spam. And WordPress similarly does a superb job of providing a single-click interface to purge all that spam. But I’d really rather not have to be bothered with that.
So I’ve just implemented a quick-and-dirty plugin that uses Tornevall‘s DNSBL service to bar these spambots from posting at all. With any luck none of you will be affected or even notice at all, but do let me know if you find yourself unable to post comments (assuming you have another way of reaching me, that is).
Coincidentally, this is providing a handy lesson in writing WordPress plugins. In the dive-in-headfirst-and-hope-you-can-swim sort of way…
So, I’m going to India. When? Dunno – 3 or 4 weeks, maybe 5. How long? Dunno – 2 weeks? Maybe as much as 4. Why?
Because the company I work for is expanding into the Indian market. We’ve got a potential client, but to give them the best we can we’re working with an Indian development company to branch and then customize our product for them. It’s a great opportunity to expand and grow our product and our company.
I’ll be heading over there to train the developers on our code base and our development practices. Should be fun.
I’ll be in Trivandrum, for those who are curious.
Recently I had a problem: Without going into the “whys” here, I found myself on a Windows XP system needed to parse and serve PHP files in Apache from a network share. Sounds easy enough, right? Unfortunately, the obvious answer didn’t work, and hours of Googling turned up countless suggestions, most of which didn’t work at all. I even found some very detailed step-by-step instructions that turned out to be based upon a premise that doesn’t work at all.
As it turns out, this is a problem with a very simple, yet unobvious, solution, and today I will share it with you. With any luck, Google will start serving up this post to others looking to serve files in Apache on Windows from a network file share. Continue reading
I’m sure you already know Gmail went down today. Well, to be precise, the web interface went down. IMAP, POP3, and the API remained available, however users who hadn’t enabled access for the former 2 options (such as myself) found themselves cut off from all access to their Gmail. Many of us rely on Gmail for our work, so it was more than a nuisance for us. Continue reading
Ever been curious about the history of the Union’s largest state? A local radio station has produced a 50-part series of short spots covering the highlights of our 50-year history as a state to celebrate the bicentennial. It’s a good listen, and they’ve made it available as a podcast.
Shortly after my previous post regarding security through obscurity, I spotted an article on ZDNet detailing a new vulnerability affecting Cisco wireless routers. If not for the reference to “skyjacking” in the title, I would have stopped reading halfway through the article and dismissed the whole thing as nothing more than a spot of sunshine lighting up a “vulnerability” in a network’s obscurity.
I’m a techie. A nerd, if you prefer. When my computers break, I like to fix them. I will spend more hours than most people would consider sane Googling for answers to my current woes rather than take my computer to someone who gets paid to do the same thing (and likely already has, and thus can fix my problem in a fraction of the time).
I’m also a programmer, but at the same time I’m human – that means my code is imperfect. Being that PHP has been my bread-and-butter for the last 5 years or so, and of course the previous sentence’s statement that I’m a fallible programmer, I’ve of course seen this ever-so-famous error message:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /foo/bar.php on line 42
Take note: If you’re providing error messages (and you should be!), make them meaningful to the person reading them!
T_PAAMAYIM_NEKUDOTAYIMs aside, today I was stumped by another cryptic PHP error message. Let me tell you about it. Continue reading
Anyone who has spent any real time dealing with computer systems’ security has heard the phrase, “Security through obscurity is no security at all.” While I won’t make false claims that I’m an expert in the field of computer security, today I will apply common-sense and some basic best practices and explain when this axiom is, in fact, false.
If I had to pick one fault of Linux, it would be that for almost everything, the Linux user is inundated with hundreds of possible solutions. This is both a blessing and a curse – for the veterans, it means that we can pick the tool that most matches how we prefer to operate; for the uninitiated, it means that we’re so overwhelmed with options it’s hard to know where to begin.
One exception is software RAID – there’s really only one option:
mdadm. I can already hear the LVM advocates screaming at me; no, I don’t have any problem with LVM, and in fact I do use it as well – I just see it as filling a different role than
mdadm. I won’t go into the nuances here – just trust me when I say that I use and love both.
There are quite a few how-tos, walkthroughs, and tutorials out there on using
mdadm. None that I found, however, came quite near enough to what I was trying to do on my newest computer system. And even when I did get it figured out, the how-tos I read failed to mention what turned out to be a very critical piece of information, the lack of which almost lead to me destroying my newly-created array.
So without further ado, I will walk you through how I created a storage partition on a RAID 10 array using 4 hard drives (my system boots off of a single, smaller hard drive).