The Future of Lyceum

This discussion began in a post to the Lyceum Users email list.

Lyceum users,

As many of you have surely noticed, Lyceum development has been essentially nonexistent for the last year and a half. The last point release was a bugfix in June 2008, which is still based on the WordPress 2.0.x branch.

For a lot of reasons, I have not had the time to devote to Lyceum that I used to. Additionally, Lyceum’s primary competitor, WordPress MU, has grown into a respectable and consistently-maintained project. While some users still tell me that they find Lyceum easier to install and in various ways more intuitive than MU, it has more-or-less feature parity with Lyceum…

…except, of course, for the database schema. Lyceum’s schema is normalized, MU’s is, roughly speaking, sharded. For massive installations such as WordPress.com, a sharded schema is preferable. A normalized schema is preferable for everyone else. A normalized schema offers advantages in performance, ease of upgrades and administration, and vast opportunities for developing plugins and features which can access the entire set of data in the installation.

“Show me the last 10 posts across all blogs” is impossible in MU without maintaining and accessing a separate, redundant index table at the application layer. In Lyceum, it is trivial and fast, even for thousands of blogs.

Regardless of these advantages, the effort of maintaining Lyceum must be matched by demand. So I find myself at a crossroads, deciding whether to pick the project back up, or let MU be the only option.

If I choose to resume Lyceum development, here are the two initial phases of development:

Phase 1 - simply bring Lyceum up to the current version of WordPress

I have two options for doing this. The first is to continue developing Lyceum as a branch of WordPress. The second, and more likely option, is to start from scratch using the WordPress MU codebase, keeping all of its features and merely normalizing the schema.

Either way, I could get Lyceum back on its feet in 2-4 months of development. And don’t worry: even though the codebase would be wildly changed, there would be a fully-supported upgrade path from previous versions of Lyceum.

After getting the codebase contemporary with WordPress, applying future WordPress updates to Lyceum would be a non-trivial, but relatively straightforward process. I estimate it would take me an upper bounds of 5 hours of work per week.

Phase 2 - add Lyceum-specific features

There are two main types of Lyceum-specific features that I would like to develop. The first are features which simply leverage the normalized schema — template functions, hooks, utility pages, site-wide feeds… all accessing site-wide content and objects in a way that is easy for template and plugin developers to use without having to worry about the complicated denormalized meta-tables of MU, or the mind-bending (yet fully index-covered) four-table JOINS of Lyceum. (Or any sql at all.)

The second are features which evolve Lyceum into a social platform, connecting content, users, and their online publishing presence in an intuitive and ergonomic way.

I could go on and on about even more things I would like to add to Lyceum — the main theme being seamless integration with other platforms, frameworks, and architectures.


I’ll stop here and let you folks respond.

  • What value does Lyceum hold for you today?
  • Did you chose Lyceum over WordPress MU mainly because of the schema?
  • What do you like and dislike about Lyceum?
  • Do you think Lyceum development should continue?

Thanks for any and all feedback, and thanks for using Lyceum!

John

Lyceum 1.0.3

Lyceum 1.0.3 offers a few minor bug fixes.

diff between 1.0.2 and 1.0.3

tickets closed in 1.0.3

Get it via SVN or as a .tar.gz from the downloads page.

Report bugs and feature suggestions on trac.

Get help on the support forums, email lists, or IRC channel.

Lyceum 1.0.2

Today we release Lyceum 1.0.2. Thanks to everyone who reported bugs and provided feedback.

diff between 1.0.1 and 1.0.2

Bugs fixed:

  • Reintegrating some UI elements in the system settings which were removed in 1.0.1
  • Refining the expiration behavior of sessions and session data, which should take care of any remaining instances of the rare but nasty premature token expiration bug

New features:

  • The ability to specify a custom path for keeping file-syste-based php session files (highly recommended on servers running multiple php applications).
  • The ability to activate the experimental db-based session store system (this feature will be fully supported in Lyceum 1.1)
  • Lyceum now identifies itself as Lyceum and not WordPress when pinging blog tracking services such as technorati or weblogs.com
  • Drastically reduced and better organized markup generation for the system admin screens

Please create a new wp-config.php file based on the wp-config-sample.php in this release.

Get it via SVN or as a .tar.gz from the downloads page.

Report bugs and feature suggestions on trac.

Get help on the support forums, email lists, or IRC channel.

Lyceum 1.0.1

Lyceum 1.0.1 is out the door. Thanks to 1.0 users who reported bugs and suggestions.

Bugs that have been fixed include charset specification on the login page, which was crucial for i11n users, placement of the Akismet dialogue box, and a few incorrect links.

A new feature in this release is the ability to specify whether new blogs are populated with an example post and an example page, and what the text of said post and page will be. In addition, if a blog has no posts, now instead of a 404 message, there will be a friendlier message suggesting that the user write their first post (if the user is logged in and has authorship privileges) or visit the portal to see other content on the site. See an example here.

Please note the two new configuration constants in wp-config-sample.php. It is important that you add these to your wp-config.php after upgrading your code.

Get it via SVN or as a .tar.gz from the downloads page.

Report bugs and feature suggestions on trac.

Get help on the support forums, email lists, or IRC channel.

Lyceum mentioned on Web 2.0 TV

My buddy Thomas Tucker was doing interviews for Web 2.0 TV all day at the Innotech trade show, and when interviewing William Hurley made a not-so-subtle reference to Lyceum. Sweet!

If the player isn’t working for you, you can view the video directly here.

Bug fixed in 1.0, and join the lyceum-users list

Lyceum 1.0 has a minor but, for those it affects, nasty bug: link categories cannot be created. This has been fixed with this changeset:

http://source.ibiblio.org/trac/lyceum/changeset/1230

Which will be included in Lyceum 1.0.1, which will be released in a couple weeks.

On that note, I’d like to take this opportunity to point out the value of joining the lyceum-users email list. This bug fix was reported to the lyceum-users list immediately after it was committed. This list is for those who are installing and administrating Lyceum. It is not for, as its name may imply, “end-users” using Lyceum to blog.

Screencast: Installing Lyceum

In the first Lyceum screencast I show how to download, configure, and install Lyceum.

Screenshot of Installing Lyceum screencast

Installing Lyceum (.mov, 8.2MB)

The screencast mentions some directories which need to be writable by the web server. These directories are listed on the wiki.

Lyceum 1.0

We are extremely proud and excited to announce Lyceum 1.0. We’ll be talking more about the larger Lyceum landscape over the next several days. For now, here’s a list of improvements since 0.34:

  • Synchronized with WordPress 2.0.11
  • Even greater plugin and theme compatibility with WordPress
  • Improved and expanded search functionality
  • System-wide Atom feed of blog posts
  • Vastly improved interface for assigning permissions to users
  • More complete set of system-admin tools for managing users and blogs
  • Ability to restrict number of blogs a user can create
  • Refined admin interface layout
  • Refined default portal page
  • Performance optimizations, some of them very significant for large installations
  • Bundled plugins: Creative Commons wpLicense, Lyceumified Akismet
  • Dozens of bug fixes

Get it via SVN or as a .tar.gz from the downloads page.

Report bugs and feature suggestions on trac.

Get help on the support forums, email lists, or IRC channel.

Much thanks to everyone who has contributed to Lyceum over the years. Dozens of code submissions, hundreds of bug submissions and feature suggestions, great conversations on IRC, email, and the forums, have all made Lyceum the powerful tool that it is today.

And we’re just getting started :-D

WordPress 2.3 feature overview

Aaron Brazell of b5media has done a fantastic roundup of the new features in the just-released WordPress 2.3: 10 Things You Need to Know About WordPress 2.3.

Lyceum 1.1 will be parallel with WordPress 2.3, and we can’t wait to have these great features at our disposal.

Lyceum 1.0 Release Candidate 3

It’s been a productive week for Lyceum 1.0. In the time since Release Candidate 2 was announced, we’ve squashed a bunch of bugs, including a particularly nasty one with the help of mod_rewrite guru Justin Turner.

Check it out from subversion, or get a .zip at the bottom of this page. Let us know if you find bugs or have suggestions (how to submit a ticket).