WPtouch: WordPress on iPhone, iPod & Android
I don't usually make a habit of posting about my favorite WordPress plugins but this WPtouch is worth the mention. I was looking to make my blog more iPhone friendly, without making any adjustments to my normal theme and WPtouch gave me exactly what I wanted. To quote their website:
More than just a plugin, WPtouch is an entire theme package for your WordPress website. Modeled after Apple's app store design specs, WPtouch makes your WordPress website load lightning fast on touch mobile devices, show your content beautifully, all while not interfering with your regular theme.
Here's what my blog looks like on my iPhone.

Perhaps I am in the mindset of paying for iPhone apps, but I was surprised that such a useful plugin was free; free as in beer and free as in speech. It's GPL'd. Work it, Ice, Yeahhh.
WordPress Plugin Rerelease: Quick Code -> Dirty Code
Thanks to everyone who has written to me about the name conflict between my WordPress plugin, Quick Code, and David Gwyer's plugin, Quick Code.
I created the Quick Code plugin three and a half years ago so I'm not sure how the conflict happened but I decided to just rename my plugin to Dirty Code. I chose the name primarily because I wasn't feeling very creative this morning and the plugin's code is quick and dirty. Actually, it was originally written in ASP and converted into PHP using asp2php.exe; that's just how nasty it is.
In addition to renaming the plugin, I also cleaned it up a bit and updated it to work with WordPress 2.8. This version has been tested on WordPress versions 2.3-2.8.4.
In case you aren't familiar with the plugin, it was written primarily for bloggers who include a lot of code in their posts. It transforms any code (SQL, CSS, PHP, ASP, etc) between the tags <dirtycode> and </dirtycode> into a good looking div which can disappear or reappear with a click. You can around my blog for examples, or just head to the plugin page @ http://blog.netnerds.net/dirtycode.
Aurgasm.us and The Hott Infinite Scrollage
While visiting one of the best music discovery blogs ever, aurgasm.us, I noticed that the author, Paul Irish, had implemented a really slick Infinite Scroll AJAX technique which smoothly loads the next set(s) of posts without loading a new page.

This blog is awesome and the
author wrote some sweet code.
I was so impressed by the cross-browser compatibility and usability that after checking the copyright and seeing it was GPL'd, I added a slightly modified version of Paul's code to my own blog. I then changed the AJAX loading gif to one that I found @ this ajax gif generator and turned the code into a Wordpress plugin. In talking to Paul, however, I discovered that he and his friend are working on a plug-in too and theirs will actually have options. So I won't be releasing mine but if anyone can't wait until theirs is released, you can download my super simple version here. Your posts must be in the content div (which is generally the case with themes) for this to work. You may also want to remove any Next and Previous prompts.
You can see this plugin in action on the homepage of this blog or at the original source, aurgasm.us.
All Sorts of Stuff
First and foremost, I'd like to wish netnerds.net a happy birthday!

I'm 10!
"NetNerds.net" turned 10 years old on October 22, 2007. I wanted to post that day but I got hacked and didn't want to post again until I fixed the problem. So how did I end up with the name netnerds.net? Well, I called my best friend Jenny and asked for name suggestions for a new computer company I was starting. Almost immediately, she came up with the name "netnerds" and I thought it was fantastic. Netnerds.com was taken and I was "stuck" with .net but as it turns out, I ended up strongly preferring netnerds.net anyway; it just makes more sense.
Being a poor/broke student, I phoned my dad and asked for $70 to register the domain at Internic. He obliged and I jumped on it. Three days later, I kid you not, I had an offer from someone else who wanted to buy the domain name. I refused and he wasn't happy at all -- he bought a similar domain and proceeded to DOS me over the course of the next few years. Recently, I actually found the Conceal Firewall (remember that?) logs for his attacks in 99.
Over the years, I've done so many different things with netnerds. It's been running a combination of SuSE and Windows since 98 or so. Before that, it was hosted at random places but when I moved to California on December 23, 1997, I brought it home with me where it stayed till I started colocating it in 2004. I got an @Home cable modem in early January '98 and started hosting my own DNS, mail, and websites and haven't stopped since. The guy who taught me about running DNS eventually ended up giving himself a rootshell and a backdoor on my little server. As soon as I figured it out, I shut down my crappy 486 Linux machine and purchased the book Practical Unix and Internet Security.

I dove head first in learning all about protecting myself. It's worked decently well; I'm even planning to get my CISSP in January.
So 10 years later, I got hacked again. I don't think it was anything too drastic on the system itself but the web and mySQL passwords seem to be compromised. Like most exploits, it happened because I was running outdated software. I didn't know Wordpress 2.0.2 was so exploitable.
The first strange thing I noticed was that someone created a Wordpress account, even though I explicitly disabled allowing users to create accounts. I logged into my admin panel to find out wtf but I kept getting a "database is out of date" error. Oh poo! So I checked my logs and found some unusual behavior. Dang, Gina. Now I know I'm hacked so what about backups? Well, I had a backup of my entire blog VM from days earlier but for some reason unknown to me, decided to delete it so restoring recent backups were not an option.
I wanted to find out more about the compromise so I replaced my hacked admin files with some old backups and was able to login. I immediately noticed that someone posted a secret entry titled "ris.jpg." I did a locate to find ris.jpg on the filesystem but nothing came up. Eventually, I would find it in /tmp and it looked really nasty. You can see a copy of it here: ris.txt. Notice the password upload calls to nst.void.ru. Ugh. In researching the guy's IP, it turns out it's likely a linkbot from Estonia. This guy got hit by him/it/her too.
I don't like to take any chances so I created a whole new VM from scratch. I exported only the comments and posts from my 3 hosted blogs and recreated everything else. This is why it took 14 or so days to bring the blog back to life. It would have been earlier but I'm still dealing with my RSI shoulder injury that recently and seemingly magically turned into a torn rotator cuff injury. It's going to require surgery so I'll be out of commission in December after I graduate from the University of San Francisco with a BS in IS Yay
. Hopefully I can study for the CISSP during my downtime.
So the lesson I learned, Corey? Keep my stuff up to date, even on Linux. I've now got automatic updates setup in SuSE and I'm signing up for the Wordpress update mailing list. Oh and h0bbel, I did attempt to find a new blogging platform (including Habari) as you know but none were as mature, targeted and functional as WP. Plus, I kind of have to use WordPress, Matt Mullenweg has eateth my chicken-n-shrimp gumbo and stocked my fridge with Pumpkin flavored beer. It's only right


