I just finished setting up a new instance of MediaWiki for an internal department. Everything went fine, the setup was straight forward. Except nobody could edit any pages. Even the front page.
Turns out the default values you get are garbage. Specifically, the memory usage. After enabling error logging (also off by default), I found that if you tried to edit a page, the wiki used up the default of 20Mb and halted, resulting in a blank screen any time you click an edit link on the wiki.
Once I figured this out and cranked up the memory limit, things started working fine. I'm just left wondering why the default settings cause the system to fail "out of the box."
Well here goes another Windows rant. I set up a new Redmine server on the internal network. I also added records for it to our primary and secondary DNS servers. Unfortunately Windows hosts couldn't reach it, or even ping it!
I used nslookup (which I thought was deprecated years ago in favor of dig but apparently not by Microsoft) and sure enough, DNS queries halted at our domain server, which only serves out local DNS (not for the Redmine server). It should have deferred the query to an authoritative DNS server, but it wouldn't until I told it to dump its entire DNS cache.
Windows continued to refuse to resolve the name until I ran a ipconfig /flushdns on each host that exhibited the problem. This should never have happened with a hostname that has never been used before.
Can you say "stupid?"
I've been fighting an install of Ubuntu server on a new rackmount machine all afternoon. I've never used Ubuntu server (I recommend Ubuntu Desktop all the time), but I thought it would be a breeze.
Boy was I wrong. After fighting RAID-1 (which should be simple), and a grub bootloader that just won't install on the master boot record, I just gave up and I'm going to see if it'll run Ubuntu Desktop. I bet it works fine.
While today isn't my birthday, I did get a birthday present:
Yes, it costs hundreds of dollars more than a comparable PC, and yes, it took three weeks to get here (I could have had parts ordered, shipped, and built in 3-4 days), but by golly, it'll look good. Expect many upcoming blog posts about this experience.
For weeks now I've been trying to solve a Cisco router issue for my boss. I've opened tickets with their support staff (in India, by the way) and had many email and phone conversations trying to resolve a network issue. Over the last few weeks we've tried many different configurations and firmware versions on the device.
Originally, we determined a single device (there are four routers involved), the final endpoint, was to blame. We know this because if we replaced it with another cheap off-the-shelf home (wireless) router it worked fine.
Cisco technicians confirmed errors in their 12.4-21(a)JA1 firmware that would cause the behavior we are witnessing. So we downgraded the router. Unfortunately, during our troubleshooting, two intermediate routers were upgraded to the 12.4-21(a)JA1 firmware as well. The result was that our endpoint wireless router, despite having the "correct" firmware now, was still exhibiting the same problem as before, but now for a different reason.
Once we realized this, all the odd problems fit together in one beautiful logical grid. This network issue has been a right bugger, and nothing up until now has made much sense. It's offsite, though, and I won't know for sure if this is the solution until later, but my confidence has never been higher.
This evening while I was out having dinner with some friends, my phone battery died, and so did a key piece of hardware my company relies on. Because my phone went offline, I was not automatically notified about this problem, and the first I knew of it was one of my coworkers waiting for me on my porch when I got home. I was quickly filled in on the problem, and checked my phone to see why I didn't get notified and realized that it was dead, too.
Fortunately, others were able to troubleshoot and solve 95% of the problem before I even got involved! This is a big step, and as much as I hate not being involved, a year ago this problem would have sat unmoving until I fixed it myself. It's great to have redundancy!
Now I just have to dig through these log files and find out why a few services didn't start up as they should…
I'm testing out an opcode cacher (xcache, if you're interested) for this site before deploying it to production servers. It should accelerate my PHP scripts, but only time (and you) can tell. Let me know if things are snappier, if you even notice…
Well you may remember my recent change to comments on this blog. I thought I'd follow up and show you how this has affected the system:

Fortunately, my anti-spam comment measures are capturing what is now getting through, so I think I'll leave it as is for now…
Last Monday I ordered a new computer to use at home. I've been relying on the laptop provided by the company I work for. It's convenient and portable, and has staved off the need for a new computer at home for several years. Unfortunately, Lorien's laptop is small, and my old desktop just doesn't compare (I built it about five years ago) to new machines.
After building several new Intel Core i7 boxes for the office, I really wanted to get my hands on one for home use. They're fast. I needed an upgrade, and so did Lorien.
Now, to top it all off, our company is considering porting our software to run on the Mac platform. With this possibility in the future, as the IT manager I have a serious need to understand how to use a Mac for the first time in my career.
In the interest of killing as many birds with one stone as possible, on Monday I ordered a new iMac with the Core i7 processor. It should be here by the end of the month. Being a Linux/UNIX guy at heart, it's not a tough step to take but I do expect there to be a learning curve. Fortunately, with the recent redecoration of our living room, I have a spot already picked out for it!
Today I welcomed a new SQL admin into the club. The club of royally screwing something up by accident. Because, be honest, you're not really an admin until you've made a really huge mistake and had to get help to fix it.
Brownie points go out for:
- Admitting it quickly
- Saving a screenshot
- Not crying
I've been fighting an error with my PHP installation in Windows with Apache related to loadable extensions. In my error log, I kept getting the errors:
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\Program Files\\PHP\\ext\\php_mssql.dll PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\Program Files\\PHP\\ext\\php_pdo_mssql.dll
Interestingly enough, if I ran PHP through the console, it loaded PDO and mssql just fine, the problem was only with the environment in Apache. Turns out the ntwdblib.dll wasn't being located by Apache. I could probably have added the PHP path to the environment variable PATH, but the easiest solution was to copy the dll to the Windows\System32 directory. A restart of Apache after that cured the problem.
If, like me, you've been using PHP's PDO via the MSSQL driver, be aware that newer versions of PHP do not support MSSQL natively. Microsoft has it's own PHP driver now, or you can use the FreeTDS MSSQL extension, but I strongly recommend just switching to use the provided ODBC and PDO_ODBC extensions and save yourself the trouble. If you're already using PDOs, then you just have to create the object a little differently. For example:
$sql = new PDO("odbc:Driver={SQL Native Client};Server=ip.add.re.ss;Database=dbname;Uid=user;Pwd=password");
That worked for me. Not sure what you can do about the old mssql_guid_string function if you need that, though. I have the FreeTDS lib installed as well and that lets me call it, until I figure out how to do the same thing in ODBC.
Yes, ASP fans, that's a ONE LINE connection to a database. That's all anyone should need!
We won't tell everyone that you're 40. Oops, I just did.
My laptop is in restart purgatory right now after it attempted to install Vista SP 2. I'm at my second reboot and it's still saying Service Pack did not install. Reverting changes. Do not turn off your computer.
This is why people like me have jobs. Thanks, Micro$oft!
Well, that was interesting. I heard from @Enfors that my RSS feed was truncated. Turns out there is a setting for Full Text in RSS feeds that wasn't set. I can only imagine that it was running in default mode, I've been running this blog for over six years now and this is the first time I've heard about it. I supposed I should have subscribed to my own feed
Okay, now that that's fixed, time to figure out Google Wave…
