Flash image replacement!

Archive for the ‘Content Management System’ Category

Google Summer of Code 2011 Proposal – Eventpress

Thursday, April 7th, 2011

Eventpress is a proposed event management system which can be unobtrusive and provide a simple event publishing means or be very detailed and create complex nested events which can interact with a community. It borrows inspiration from software such as Autodesk Maya, GIT and redmine. It will be a wordpress plugin, following the trend of bbPress and buddyPress.

The problem I wish to solve is that of creating events which interact with a community. That community could be members of WordPress, bbPress (standalone or plugin), buddyPress or all of the above. By using a highly modular and object oriented structure, an event author can create very simple or very complex events with the same framework.

Maya Hypergraph

Maya's Hypergraph where you can see each node and how they're connected.

The modular framework is inspired by Autodesk Maya. Maya, at the lowest level is a database of nodes. The way information flows though these nodes determines all results in Maya. Similarly, the way information flows though event nodes and their attributes in Eventpress will determine all results in changes to attributes pertaining to a community. Each event node can have a theoretically infinite number of child and parent event nodes. The root node of this system would be the plugin itself.

The simplest event will require 3 attributes – a start time, an end time and a title. An event having a dynamic start and end time (the earliest and latest start time and end time of all it’s child event nodes) will also be an option. Creating an event with just these options allows an event to be visible in the front end but most events will want a few more attributes.

Additional optional attributes could include a permalink to a wordpress post about the event, a location, a list of attending community members and more. These additional modules were inspired by redmine – by only activating the modules needed for each project, there’s much less confusion about where information for simple events should go. There will be obvious attributes such as location and attendees, but also custom attributes that will operate much like custom fields within posts and pages for wordpress.

How this plugin differs from other event managing plugins is what happens when the event completes. Either when the event ends or when it is done collecting dependant information, the attributes of the event interact with members of bbPress, wordpress or buddyPress install (or a unified table with all members). Once all dependant fields are filled, the data is “committed” similar to a GIT “commit” command. After this commit, the changes to the community can be previewed. From this stage, the event administrator can still edit attributes and their values.

Git Up Commands

Git's commit and push commands

Once the results of the event are satisfactory, the “commit” can be “pushed”. Once pushed, the changes can seen on the live front end. These more complex events are ideal for tournament style events, rankings based on event outcomes, election polls and more. Implementing seemingly complex additions to this system like betting pools would only involve the addition of a few more attributes and the participation of the community.

Wish me luck – this is my first Google Summer of Code application and I couldn’t be happier that it’s going to WordPress. Cheers!

WordPress 3.0 passes 3m downloads, plug-ins pass 100m

Wednesday, July 14th, 2010

It’s quite refreshing to see a non-profit opensource project come this far. WordPress has passed every other CMS in popularity and is being adopted as mainstream. Perhaps the best aspect is the acceleration of development as it’s userbase expands. For-profit projects have the ‘luxury’ of playing king of the hill when a product has outdone others. Development can become stagnent, only advancing on a need-to basis from lower end competitors. WordPress being the product of challenge for challenges sake circumvents that effect by it’s very nature. I can not think of a better setup for CMS development.

In the 100-million downloads press release, developer Andrew Nacin confirms his commitment to the WordPress community by announcing coming improvments to plug-in architecture. Improvements will enable seemless upgrades, improve communication between users and plug-in developers and expand plug-in statistics access. See the orginal press release below:

WordPress 3.0 Thelonious passed 3 million downloads yesterday, and today the plugin directory followed suit with a milestone of its own: 100 million downloads.

The WordPress community’s growth over the years has been tremendous, and we want to reinvest in it. So we’re taking the next two months to concentrate on improving WordPress.org. A major part of that will be improving the infrastructure of the plugins directory. More than 10,000 plugins are in the directory, every one of them GPL compatible and free as in both beer and speech. Here’s what we have in mind:

We want to provide developers the tools they need to build the best possible plugins. We’re going to provide better integration with the forums so you can support your users. We’ll make more statistics available to you so you can analyze your user base, and over time we hope to make it easier for you to manage, build, and release localized plugins.

We want to improve how the core software works with your plugin and the plugin directory. We’re going to focus on ensuring seamless upgrades by making the best possible determinations about compatibility, and offer continual improvements to the plugin installer. And we also want to give you a better developer tool set like SVN notifications and improvements to the bug tracker.

We’re also going to experiment with other great ideas to help the community help plugin authors. We want it to be easy for you to offer comments to plugin authors and the community, including user reviews and better feedback. We may experiment with an adoption process for abandoned plugins as a way to revitalize hidden gems in the directory. I’m not sure there is a better way to show how extendable WordPress is and how awesome this community is at the same time.

As Matt said in the 3.0 release announcement, our goal isn’t to make everything perfect all at once. But we think incremental improvements can provide us with a great base for 3.1 and beyond, and for the tens of millions of users, and hundreds of millions of plugin downloads to come.

WordPress Staging Environment In 5 Quick and Dirty Steps

Wednesday, May 12th, 2010

wordpress-staging-quick-and-dirty

The ability to fully simulate your latest creation in a staging environment is what separates the best from the rest. Once endowed with such powers, publishing to a live site just to see how it looks seems about as smart as dipping your finger into boiling water to see if it’s the right temperature. Staging environments are not simple though – they require a unique install of WordPress, a file comparison interface and a bunch of other things. Plug-in’s are a powerful thing but cloning the entire structure of it’s parent is not something plug-ins are capable of. If you run your WordPress install from something other than a server you have full control over, setting up a staging environment is a near impossibility. Most WordPress users don’t run their own server let alone know what “Apache” really is.

There is hope though! Before I took the reigns and built my own server, I ran WordPress on a paid host. Something I didn’t have complete control over. Luckily, you can use WordPress’s “preview” powers to create your own quick and dirty staging environment.

Here’s how!

  1. Log into your FTP and go to [your blog dir]/wp-content/themes/. Copy the directory of your current theme and rename it. Something like “[your current theme]_staging” would make sense.
  2. Log into WordPress with your admin account and go to Appearance > Themes. You’ll see your newly copied staging theme here. Right click on it’s “preview” button and copy the link address. Depending on your browser, this will be “Copy link address” or something similar. You could always right click and see it in properties.
  3. Now, log into your host and create a new sub domain. Most hosts will give you 10 sub domains or unlimited sub domains free. Name your new sub domain something like “staging.[your blog domain].[com/org/net/whatever you use]“
  4. Redirect your new sub domain to your staging theme’s preview link. Paste for the win!
  5. Once your new sub domain is created, visit it in your browser. Looks exactly the same as your normal WordPress site, right? Good!

Now, when you want to edit your theme, overwrite the files in your staging theme folder instead of your “production” theme folder. Visit your staging sub domain and see how it look’s in full screen glory. It even has the built in security of WordPress – you can’t see it unless you’re logged in and have permission to preview themes. Is that quick or what?

Here’s the dirty part. If you want to preview your latest post on your latest theme, you can do that by appending “p=[post ID number]” to the URL. You can get your post ID number by looking at the preview link URL on the edit post page in WordPress. This will only preview that post’s “single” page though. You can’t preview your latest post at the top of your index page until it’s published. There’s also the downsides of having to do things manually. In addition to finding your post id number, when you want to update your production site with your staging files, you have to copy the files from your staging theme folder to your standard theme folder. This is still no harder than copying updated files strait to your production theme though and at least you’re not affecting your live site. Be careful not to overwrite files you didn’t want to and always keep a backup!

The dirtiest part is this – version control. It has none. Lets say you want to see how a new logo image looks. You have to upload that new logo image and change the URL in the <img> tag in the header file of your theme. If you just upload and overwrite the existing logo file, that will affect your “production” site. This is why a true staging environment requires an entirely separate install of WordPress. Like I mentioned – it’s not simple. The setup is no doubt an improvement over having to hit preview and seeing it in a frame or worse – experimenting with your live site.

WordPress wins Overall Best Open Source CMS Award

Monday, November 23rd, 2009

A favorite content management system (CMS) of mine – WordPress, has won the title of Overall Best Open Source CMS Award from the 2009 Open Source CMS Awards. This is no small feat! What this means for wordpress is that it is now considered a full featured CMS and not just a blogging system.

WordPress also recieved 2nd place in Best Open Source PHP CMS, ahead of a very established CMS, Joomla. Since it’s inception, WordPress has grown substantially from a lightweight Blogger like software, to a massive worldwide multi-language effort for a full CMS.

What I personally find it most useful for is 1 click installs, infinite extensibility and stunningly simple user interface. Clients have no issue with maintaining their site and even find the time to add functionality via widgets and plugins by themselves. WordPress truly reflects our mantra of “elegant and effective”. Good job to all creators and contributors!

Open Source CMS Award via WordPress