De-commissioning old Content Management System

Notes from De-commissioning old Content Management System: The MungenetEngine. The engine has rendered 10 million image views and 2.5 million page views from handcoded MySQL and PHP.

  1. “coding” in PHP feels wrong, wrong, wrong. A little dirty. After 6 months, I feel I should be writing in C#, IronPython; at least something decent. Not PHP. It’s too lose. Like Visual Basic. Sadly, this will probably the last time I use PHP for a significant amount of time as I move to CLR/DLR style languages and platforms.
  2. The code to complete the transition was a mere 138 lines of PHP; referencing some opensource XML-RPC libraries (to insert blog entries over the wire), and 2110 lines in the base library that acts as the old engine.
  3. Turning off http://twitter.com/nickhodge for a few days helped productivity. Also working at home during the shenanigans of APEC 2007 helped productivity, too.  I also stopped being as responsive on email, voicemail etc to get some good “focus” time to get this happening.
  4. The code I am putting out to pasture was largely written in 2001-2. Small pieces were tweaked through 2002-7. It has survived PHP 4.0.x to 5.2.x pretty unscathed. http://nickhodge.com/mn8/section/23/ details the history and philosophy of the self-written and maintained CMS.
  5. WordPress is not the final step. It is just a good time to move a platform I transition to other places in the future, somewhere in the cloud.
  6. As Joel Pobar says, “having no policy on cache is a memory leak”. In my instance, the smartness of a cache for production use to reduce hits on MySQL resulted in a bug that took 45 minutes to track down. Not as a memory leak, just unexpected behavior.
  7. Strategy: get images from the database into a fixed file system under http://media.nickhodge.com/. As per the wise guidance of UncleMike, this futureproofs my data. A part of the strategy is to move the rss feeds to a local feed system as I am not trusting feedburner and feedjumbler for stats right now.
  8. Rendered pages: best thing to do is “wrap” what is content with markers, render the page via CURL, and persist what is wrapped into the WordPress CMS. The how came to me in an afternoon nana nap. Conscious brain was on hold, and the real smarts came to the fore. 
  9. Regular Expressions. Why-oh-why where they invented to make my brain explode? Thankfully, the intarwebs helps.
  10. A shim of the MungenetEngine will remain in place to “301” old URLs to new URLs. Full page rendering and image/binary rendering will be turned off. Therefore, the import mode will not be WordPress RSS style import. Using http://www.dentedreality.com.au/bloggerapi/ to post via XML-RPC
  11. Mangling dates, and doing hand-crafted fixes to my WordPress XML-RPC (note: this is patched for 2.3, evidently) took some hours.
  12. There are 761 blog entries prior to transition.  From an earlier blog transition on August 8th 2006, the count was 371. There have been 390 entries since. Post transition, there are now 940 posts.
  13. Raw transfer complete at 6:50pm 5th September 2007.
  14. To complete: neater classification of the new entries.

3 thoughts on “De-commissioning old Content Management System”

  1. I like the new site Nick 🙂 Very clean.

    On the topic of PHP, I think it just goes to show that success is not as tied to the language or platform as much as us geeks like to assume. WordPress is just a great product irrespective of what it is written in.

    Also, you should grab the plug-in to allow users to be notified by email when a comment is made on a post they have commented on. I’ve found it valuable in building some sense of community (old posts with 30 comments get one more and the whole conversation starts again as all the original posters where notified if they opted in).

    Check it out here: http://dev.wp-plugins.org/wiki/SubscribeToComments

    – JD

  2. JD

    Thanks. HTML/CSS is Ambient Glow Theme.

    I agree that it’s not about PHP; it’s about the platform: and ability to extend that platform. That is why Windows, MacOS X, Photoshop (and list goes on) with APIs succeed.

    SubscribeToComments installed.

    Nick

Comments are closed.