Calendar Software Recommendation?

A friend of mine is looking for a web-based events calendar. He’s got a pretty big list of needs and wants, but here are some of the main ones:

  • Ability to integrate into existing web site (look & feel, events lists on various pages, maybe unified logins, too).
  • Single events, recurring events and floating events (same weekend each year type) plus multiple categories
  • Separate yearly, monthly, biweekly, weekly, and daily calendar views for each calendar
  • Unlimited web calendars on web site for different departments, communities, geographic region, etc.
  • Downloadable calendar data available, methods to include: Outlook, PDA, iCal and vCal
  • Create RSS feeds of upcoming events

I’m afraid that my calendar-fu is pretty weak right now, so I don’t have any recommendations for him. The server will have PHP and MySQL, of course, but another request was for a system that could work with other databases, or even flat files. Anything based around something like ADOdb or PEAR::DB would probably fit that requirement.

The last time I tried to find a PHP calendar app, the one I looked at was pretty primitive. Surely there’s got to be a decent calendar framework out there by now. So, any recommendations? He’s willing to consider reasonably-priced commercial offerings, by the way.

Star Wars: Episode III — Revenge of the Sith

Big family day yesterday. Susan, I, our two kids, Susan’s parents, our friend Kenn and two of his daughters, all went to see Revenge of the Sith (Kenn’s wife, Amanda, and their youngest daughter visited relatives). Due to the size of our group, and the size of the rest of the audience, we wound up sitting about three or four rows from the front of the theater. Not the optimal viewing position, but it worked well enough. It’s pretty easy to get immersed in the film when your entire range of vision is consumed by it.

Verdict? It was great.

Some of the acting could have been better (in particular, except for Mace Windu’s big fight scene, I felt like Samuel L. Jackson was phoning in his performance), but the overall story was what I was hoping for. Without giving out any spoilers, there was lots of action, just enough politics, a tiny bit of romance, several incidents of dismemberment, and plenty of fear, anger, death, betrayal, and angst. Did I mention dismemberment? And a bit of painful disfigurement. That’s why this one is PG-13, you see.

Darth Sidious is sufficiently manipulative and evil. Yoda kicks a suitable amount of butt. Anakin is torn between loyalties to the Jedi, the Republic, and Padme. Obi-Wan is noble. The wookies are big and furry. The lava planet is hot (but at least it’s a dry heat). And we finally get to hear James Earl Jones again.

If you are a Star Wars fan and you don’t like this movie, you’re being too picky, and you need to relax. Have a beer. Or two.

Musical Baton

Thanks to the magic of Technorati and a little bit of ego surfing, I discovered that Mike Papageorge of Fiftyfoureleven passed me a musical baton a couple of days ago, but I missed it until now. I’m not sure how, because I keep up with that site… So, two days late, here are my answers:

Total volume of music files on my computer:
5.6GB. Yes, that’s miniscule, but a lot of my CDs are still boxed up.
The last CD I bought was:
Ray!: Original Motion Picture Soundtrack
Song playing right now:
Orestes, by A Perfect Circle, from Mer de Noms
Five songs I listen to a lot, or that mean a lot to me:
FiveSix (when I finish helping my wife get her blog up) people to whom I’m passing the baton:

WordPress 1.5.1.1 Released

There’s a new minor bugfix release of WordPress, which brings us up to version 1.5.1.1.

Update: In our effort to optimize we made two mistakes in 1.5.1, one related to feeds and one related to trackbacks and pingbacks. We’ve updated the download with 1.5.1.1 which corrects these bugs and a few others.

Visit the WordPress Downloads page for the freshest code.

SpamValve Testers Wanted

I think I’m almost ready to let some other people bang on SpamValve. I want to get a closed group of users to try it out and give me some feedback before I release it to the general public. If you’re interested in testing it, and meet the requirements below, contact me.

Requirements:

  • Requires root access on your server.
  • Currently requires the ‘ipfw’ firewall system (I’m on FreeBSD). But if you think you can modify it to work with ipchains or some other firewall, feel free to give it a try. Familiarity with regular expressions will probably get you through.
  • Perl, with the DBI, Date::Manip, and Config::IniFiles modules.
  • Advanced users only. You must be able to modify this stuff yourself, with minimal assistance from me.

Eventually, I plan to make SpamValve more general, with support for IP filtering systems other than ipfw, perhaps a python version, plugins for various blog systems, and instructions on how to hook it into other services, such as email. Well, actually, I don’t plan on doing all that. I plan to let other coders bang on it, and let them do all the hard work 😉

For a little more information, you can read the prototype README file.

Reinvigorate me

In less than 90 minutes, reinvigorate.net will start accepting signups for the closed beta soft re-launch of their web site stats system. On the one hand, I don’t obsess too much over my stats. But I do like keeping a finger on the pulse of my site. I want to know if my readership is waxing or waning. I want to know what my most popular posts are. I want to know where my hits are coming from.

So, I’ve used a couple of different stats packages over the last few years. I have analog installed on my web server, and I have a cron job that updates stats for several of my sites, daily. I’ve even used a couple of different WordPress plugins that gather stats. But they store their data in the local database, and I found that over time, their tables grew so large that they impacted the performance of my site due to the database performance hit.

Reinvigorate was an external stats service that I used for a couple of years. I found that its simple traffic graphs, referer tracking, and live traffic monitor fit my needs just fine. But it seemed to be a victim of its own success, as the server would occassional have hiccups, and there were never-changing notices of eventual upgrades posted on their site. Then one day, the admins took the service down, promising that it would be back soon.

Months later, it looks like the promised upgrades are finally coming. If I don’t get chosen for the closed beta, I sure hope that the testing goes quickly. I can’t really put my finger on what it is about their service that I liked so much. But maybe when I get to use the new version I’ll be able to figure it out.

WordPress 1.5.1 Released

Hot off the presses is the release of WordPress 1.5.1. There is a Changelog available on the Codex which gives some highlights, a full list of submitted bugfixes on the mosquito bug tracker, and even more pedantic changeset details in the repository.

Here are some of the main new features/fixes that matter to me:

  • Database query optimizations
  • Improved Conditional GET support (I lobbied a lot for this)
  • Fixes for plugin menu hooks
  • Admin UI improvements
  • Extended ping support

One thing that’s neat about the extended ping support: For each server in your “Update Services” list, WordPress will first attempt an extended ping, and if that fails it will fall back to a standard ping (we aren’t the first to do this). In case you aren’t sure what the distinction is, a standard ping just sends your blog’s name and URL. The extended ping also sends your RSS feed URL and can support the idea of separate “home page” and “blog” addresses. And of course, we’ve updated Ping-O-Matic to support extended pings, as well.

SpamValve update

I’ve been pretty busy at work, so I haven’t done much more work on my auto-firewall code in the past couple of days. But it seems to be holding its own pretty well. Normally, over the course of a few days, my comments database accumulates a couple thousand spams (I check it using Chris Davis’ Spam Nuke plugin). But since activating my new system, the spam comments are down to a trickle, maybe 10% of what it used to be.

This is because the system only allows a few attempts from any particular host before it blocks that host completely, eliminating any further attempts. And of course, it’s rare that any of the first few ever show up anyways, because at least 99% of those are caught the standard WordPress graylist/blacklist functions. (Side note: does anyone have any etymological info about the usage of “gray” vs “grey”? Just curious)

I think I’ve decided to name this project “SpamValve”, because it controls the flow of spam much like a valve controls the flow of water from a spigot.