## Resurrecting ancient CD-ROMs with VirtualBox and Windows Virtual PC

I have a stack of old CD-ROMs from projects ranging from 1995-2003. I wanted to save a few of them to add to a portfolio of projects, before the projects were lost forever. It's ironic - back in the olden days of multimedia, we burned fancy new CD-ROMs that were sold as “100 year archive medium” - costing \$30 or more per disk back then, and we figured it was money well spent. [Read More]

## blocking distributed botnet attacks against WordPress (multisite)

I checked the Activity Monitor page ((using an old version of the WPMUDev Blog Activity plugin)) for UCalgaryBlogs this morning, and noticed that there had been several thousand attempts by people (or "people") to login using the usernames "admin" (the default WordPress admin account, which isn't what's used on UCalgaryBlogs) and "siteadmin" (which is the username for our server - scripts must have sniffed it from blog posts on the main site…) [Read More]

## how to repair all tables in all databases on a mysql server

This comes in handy, and I have to google it every time I need it ((usually coming up with the top-voted answer for a question posted to stackoverflow.com)) ((actually, I use DuckDuckGo, so I get the tip inline in the search results…)). So, here's a copy for reference later… mysqlcheck --repair --use-frm --all-databases Run it as root, with MySQL running. It'll repair every table in every database. Give it time to chew for awhile. [Read More]

## syncing Desktop across multiple computers

I treat my Desktop as "stuff I'm working on right now" and file things away into project folders after I'm done actually working on them. I also use 3 different computers, and a couple of iOS devices. How to sync this active-work area across all? This would work with any other file sync tool ((I recently gave up on OwnCloud for a bit because it was just too funky to trust 100% with my active working files, because it gets confused with browser-based wifi authentication and self destructs when it encounters this. [Read More]

## debugging the text editor in sharepoint

tl dr; run IE in 32-bit mode. Seriously. I know. That's what I said, too. I've been using Sharepoint 2007 ((yeah. I know. not a fan of Sharepoint either. but it currently pays my mortgage, so I suck it up and use it.)) ((also, yes, we're running software that's 5 years old. it's kind of a pattern we have on campus. we're working to update it, hopefully soon, but yeah… our version of Blackboard is about 6 years old, too…)) with my group, to share information about groups and projects on campus. [Read More]

I noticed a rather severe spike in CPU usage on my Mediatemple server, and dug in to see what was causing it. For an hour, someone was hammering the login form for my blog, accounting for 98% of all CPU usage for my account during the "attack". That's not OK (I have lots of CPU/bandwidth left, but it's silly to leave a login form exposed to some kind of sustained script-kiddie " [Read More]

## Easy server monitoring script

I manage or monitor a few servers, and it's a good idea to keep an eye on how they're holding up. The Linux uptime command is all I need - show me how long the server's been up (or if it's cycled recently - power hiccup?), and CPU load averages. I just whipped up a dead-simple solution to let me embed the uptime reports from the servers into my retro homepage. [Read More]

## stopping splogs - the nuclear option

I've been battling sploggers on UCalgaryBlogs continually. I just finished marking about 50 users/blogs as spam - that's since yesterday afternoon. I could easily stop the problem outright by requiring people to use an @ucalgary.ca email address to create a site, but that goes against the possibility of anonymity, and many (most!) students don't use their campus email addresses. I currently run [Bad Behavior](http://www.bad-behavior.ioerror.us/), as well as [ReCaptcha](http://www.google.com/recaptcha). They stop the automated splog creation scripts, but there seem to be a LOT of people employed around the world to manually enter forms in order to get around captcha and anti-spam/splog techniques. [Read More]