Mephisto 0.8.2 released

Posted by Eric Kidd | 6 comments

Mephisto 0.8.2 is now available on the download page!

Mephisto’s JavaScript is in much better shape, and most of the remaining “tainted string” errors should now be fixed. The default article and comment filter is now Textile (instead of raw HTML), and our gem management has been cleaned up.

Many thanks to the Mephisto contributors brought you this release: Chris Cummer, James McCarthy, Matthias Lüdtke, Sean O’Brien and Gustavo Sales (who wrote the first version of the theme homepage fix).

Thanks also go to Chris Cummer for investigating Mephisto multisite caching issues. For information on setting up multisite, please see Mika Tuupola’s blog post and the thread on the MephistoBlog group. Alternatively, you can disable multisite support in config/initializers/custom.rb.

We’re actively working on a simpler solution for multisite caching. In particular, we’re looking into writing a custom Rack module under Rails 2.3. If you’re interested in helping, please join us on #mephisto. Contributors are always welcome!

A full list of patches appears after the jump.

Mephisto 0.8.1: Drax relaunched

Posted by Eric Kidd | 4 comments

Mephisto is officially back! The 0.8.1 release features 157 patches since the start of the month, and several major improvements, including:

Major kudos go to Isaac Kearse, who submitted 37 patches, and who has a bunch more pending on the new-plugins branch. Thanks go also to Dann Lynn, George Murphy, James McCarthy and Rick Olson for their contributions, and to all the testers on #mephisto.

This is an experimental release. Please back up your database before upgrading to Mephisto 0.8.1. Mephisto still has some bugs and rough edges left over from 0.8, but we decided to get a release out quickly, so that people could take advantage of the security fixes.

If you use Mephisto plugins, please see the recent post on plugin APIs. The plugin situation is a bit messy, and we apologize for your patience while we figure it out.

If you encounter any problems with 0.8.1, please drop by #mephisto. If you’d like to submit patches, please submit a pull request to emk on github. We’d like to make an 0.8.2 release fairly soon, and your help is always welcome.

Thank you for using and contributing to Mephisto!

Mephisto plugin APIs

Posted by Eric Kidd | 0 comments

Mephisto supports several different kinds of plugins, including:

  1. FilteredColumn plugins. These add new <macro:*> forms for use in articles. Two good examples are filtered_column_code_macro and filtered_column_haskell_macro.
  2. Custom Drop classes. These add new commands to Mephisto’s Liquid templates. For example, this drop adds an RSS feed sidebar to a site.
  3. True Mephisto plugins. These plugin extend the actual Mephisto interface. A popular example is mephisto_contact_form.

3 APIs for true Mephisto plugins

Here’s where things get a bit complicated. Mephisto’s plugin API has changed several times. This doesn’t really affect FilteredColumn plugins, or custom drops, but it does mean that “true” Mephisto plugins are only compatible with specific versions of Mephisto.

There isn’t a lot of documentation for any of these 3 incompatible plugin APIs. So I can try to explain the history here, but I may make some mistakes. Thanks go to Sven Fuchs and Isaac Kearse, who explained all this to me. Any remaining errors are my own.

  1. The original plugin API. This was a simple, declarative plugin API used in older versions of Mephisto. It made some plugins extremely easy to write, but it apparently didn’t offer an easy way of defining new controllers. You can find some notes by James Crisp on this API.
  2. Sven Fuchs’ engines-based plugin API. Sven Fuchs overhauled the original API, and based it on Engines. For more details, see the porting notes for this API. You can find this API on Mephisto’s master branch.
  3. Isaac’s Kearse’s new engines-based plugin API. Isaac Kearse is trying to combine the best features of the two earlier APIs. For some example code, see his updated version of the Mephisto feedback plugin. You can find this new plugin API on Mephisto’s new-plugins branch. Ideally, it should be extremely easy to port original-style plugins to this new API.

I’m leaning towards merging Isaac Kearse’s new API to the master branch, but he and I would like to solicit feedback from the Mephisto community first. Do you run lots of Mephisto plugins? Do you know what API they’re based on?

In the long run, we’d like to have an extremely stable plugin API, preferably based on the integrated Engines support in Rails 2.3. But we’re still figuring out how to get there. So thank you for your feedback and advice!

Edge Mephisto supports Rails 2.2

Posted by Eric Kidd | 10 comments

The development version of Mephisto now runs under Rails 2.2.2.

Particular thanks go to Isaac Kearse, who fixed scores of test-case failures and bugs. Thanks also go to James McCarthy and George Murphy for their patches, and to Rick, for his invaluable advice and support. This was a round-the-clock effort: I’d wake up in the morning and find a whole stack of patches waiting to be merged.

Here’s what we still need to do before releasing Mephisto 0.8.1:

  1. We need to finish going through the interface, and fix any regressions that we find.
  2. We need to test Mephisto with Phusion Passenger and other deployment environments.
  3. We need to make sure the plugin system is still working.

If you’d like to check it out, please see the installation instructions for Edge Mephisto. Many thanks to everybody for their help!

Merging bug fixes

Posted by Eric Kidd | 5 comments

Greetings! I’ve been doing some maintenance work on Mephisto. The current development version now supports Ruby 1.8.7 and Rails 2.0.5. The unit tests all pass, and model_stubbing has been ripped out and replaced with machinist. I want to thank Rick Olson, Sven Fuchs and Peter Suschlik for all their help.

There are several things that we should probably do before making a Mephisto 0.8.1 release:

  1. Test the new Mephisto on a variety of different systems.
  2. Merge any bug fixes that people want to get into trunk.
  3. Fix some JavaScript issues with the asset manager.

If you’d like to try out the development version of Mephisto, please back up your database and see the installation notes on my github wiki. Better yet, make a copy of your database and run Mephisto somewhere that won’t interfere with your current site. Remember, this version of Mephisto is development software, and it may break in a variety of exciting ways.

If you’d like to submit bug fixes, please send me a push request on github (or point me at your git repository). This is an excellent time to get your least favorite bugs fixed once and for all.

Thank you for helping out with the development and testing of Mephisto!

Mephisto hits 0.8, moves to GitHub

Posted by courtenay | 22 comments

Mephisto 0.8, “Drax”, is out, and the source is now hosted at our friends, Github.

There are many fixes, rewrites and improvements in the codebase, and development is actively continuing! Rather than talk about what’s new, I’m going to gush about git. We’ll cover what’s new in a future post.

Git, and github, allow for truly distributed development, and is a big deal for Mephisto development – as you can see in this graph of activity:

You can download release 0.8 from tarball or git checkout, or live on the edge.

The best thing about using Github is that you can easily fork Mephisto for yourself, or see what other people are working on and help them out. The idea of an ‘official’ repository becomes murky; the canonical repository in distributed source control is more of a convention.

Applying CPR to Mephisto

Posted by rick | 13 comments

I’ve just added the over eager Mark Dagget to the Mephisto Core Team. He’s the author the open source project RAM (Ruby Asset Manager), as well as Pledgie. His main task is keep Mephisto on life support, starting with adding his unreleased but excellent Exception Notifier plugin.

New Contact Feedback Plugin

Posted by rick | 10 comments

James Crisp wrote a nifty Contact Feedback plugin for Mephisto for the new Thoughtworks Studios site. The plugin looks nice, and fills a common need in Mephisto. Also, the Thoughtworks Studios site is extremely well-done. I had seen it before, but didn’t realize it used Mephisto. Major kudos to James Crisp and Thoughtworks!

For anyone that asks: it looks like the main difference between this, and my own feedback plugin is that mine doesn’t send emails. It stores them in the DB and lets you browse in the admin. Nice since your inbox doesn’t get the spam, but I’ve been finding that I often forget to check it :)

Is Mephisto Dead?

Posted by rick | 32 comments

Is Mephisto dead? I see much more Typo activity recently than Mephisto. It’s the same with most open-source Rails apps. Development is cyclothymic – people get excited in the beginning, then slow down (or completely stop) – probably work on some “for pay” project, then get excited again (when the paid project is completed maybe?), then slow down again and so on. Substruct, Collaboa, Typo, RadRails, Project RIDE-ME, Active Merchant and many others… I don’t see this happening in Java world and I miss the “die hard” Java enthusiasm in the Rails community. —Nikolay Kolev, comments on previous article

Nope, it’s been on hold since the end of 2006. Mephisto has a tiny development team, and we’re both busy trying to launch a web service. We have 0 funding, so we’ve basically been devoting our “OSS project time” (and “sleep time”) towards Lighthouse instead.

I’ve found that most of the ‘successful’ open source projects have some source of real funding. Either there’s a company that needs the product enough to fund/hire the team, or they make enough through custom installs or commercial versions. Other than a handful of small consulting gigs and some donations, Mephisto has been purely a labor of love for us.

What’s going on right now:

  • I’m entertaining the idea of extending to the core team, but I don’t feel there’s been anyone that seems interested in devoting the time.
  • However, I’m thinking seriously of extracting a few things out as “official plugins” and opening up access on those small areas. The current candidate is XML-RPC support.
  • There’s a small 0.7.4 update with a few security issues and annoying bugs fixed
  • There’s an edge version with some notable new features (plugin admin, plugin support for RHTML/HAML templates, and soon: a multi-site admin)
  • Once Lighthouse goes out of beta, we’ll have an official bug tracker.
  • Core team doesn’t haven’t to mean “svn commit access” either. It could also mean “ticket overlord” or something.
  • DNS info is currently being transferred to moniker…

However, Justin and I are committed to keeping Mephisto true to its roots. We’re not going to turn it into another bloated CMS, or a community blogging tool. It’s also not a kickstart to your rails app development. It’s strictly going to remain a kick ass publishing tool. Further features/integration should be done through the power of hyperlinks or APIs (exposed through custom Liquid drops).

Mephisto documentation in the works

Posted by rick | 7 comments

Chris Dwan has been spearheading a full documentation effort for Mephisto. It’s far from complete, but there’s already some basic information filled out to get you started. There’s also a spot to ask those tough questions if you find you need some specific help. Everything is implemented in Stikipad if you’d like to pitch in. However, with the success of the Prototype site (the Prototype core team did a bang-up job), I’m leaning towards eventually moving this to another Mephisto site on this instance.

Mephisto Theme Gallery

Posted by rick | 4 comments

Ben Vinegar and Justin Hernandez recently released the Mephisto Theme Gallery. I’ve you’ve created a theme that’s not listed there, use the provided submission form to add it. It’s nice to see some folks pitching in to help the community out. The authors are eager for suggestions, so let them know if there’s more you’d like to see.

Plugin Spotlight: Article Image Fetchy

Posted by rick | 6 comments

Today I’d like to highlight the mephisto_article_image_fetchy plugin, from the twisted mind of courtenay. It scans the article body for any image tags, creates assets from any remote images, and replace the URLs in the body of the article. (see included image as an example, linked from here).

For any plugin developers, notice how this uses a module and #include_into to extend Article, and the little-known #body_doc method to grab an HTML::Document of the article body. I actually added #body_doc to the filtered_column plugin so that more plugins like this could be made without having to generate the document multiple times.

Improved Url Escaping For Permalinks

Posted by rick | 5 comments

I recently received some code to translate certain non-ascii codes in your article titles into a more URL-friendly permalink. Though, at David Black’s suggestion, I decided to use Iconv instead. Seeing that I’m creating permalinks in several projects now, I’ve extracted this into a new rails plugin: permalink_fu.

Let me know how this works out. Hopefully iconv is available on your platform too. It’s my understanding that it’s in the ruby standard library, and included with the Ruby One-Click Installer for Windows users.

New Asset thumbnailing options available

Posted by rick | 16 comments

I just committed a change to Mephisto that makes Image Science the new default thumbnailer, instead of RMagick. What is Image Science?

ImageScience is a clean and happy Ruby library that generates thumbnails—and kicks the living crap out of RMagick. Oh, and it doesn’t leak memory like a sieve. :)

All I used RMagick for was thumbnailing. It seemed to wreak havoc with your memory, especially on shared hosts, so I commonly recommended disabling RMagick. In a few local tests, I watched the memory jump up to about 90MB from uploading < 1MB of images with RMagick. Yikes. ImageScience tears through them without much of a blip in memory usage.

Course, since no ruby host has ImageScience and FreeImage installed probably, you probably won’t see any benefits. Don’t worry, it should drop back to RMagick if it’s not installed, and should skip thumbnailing altogether if RMagick isn’t installed. You can customize this in environment.rb now too: ASSET_IMAGE_PROCESSOR = :image_science || :rmagick || :none (Only add :image_science, :rmagick, or :none).

Let me know how it works out. Also, I’d try hitting up your hosts and seeing if they’re up for installing FreeImage and ImageScience. I hope so, this covers probably the majority of RMagick usage, which is widely known to cause problems on shared hosts.

More Wonderful Mephisto Sites

Posted by rick | 10 comments

Steve Smith, an accomplished Wordpress hacker, recently tweaked his design and migrated to Mephisto. It’s nice to have another beautiful site in the collective. When Steven first approached Justin and I about making the switch, I worked hard on the backend to make it flexible enough to meet his needs. We finished fleshing out how the archives would work, rewrote the Dispatcher to provide the unique permalinks that Steve uses, and added article tagging. We’re still not done, but orderedlist.com looks fantastic. Great job!

Next on the list is LocusFocus, by Mark Daggett. The site serves as a homepage for the LocusFocus studio, while providing a blog for RAM and his plugins. Another great looking and unique Mephisto site, with some quite interesting photography. Also, check out RAM, Mark’s Ruby Asset Manager. Always nice to see more great OSS rails apps out there.

So, maybe Mephisto has lost that lightweight blog engine feeling. I think it’s evident that we’ve been focusing on writing a kick ass publishing engine and trying to get break away from the standard articles/archives/tags/category blog feel. We’ve worked hard to keep it simple enough to run one of those straightforward blogs if you want, but Mephisto really starts to shine once you start expanding. I’ve also heard rumors of a Mephisto installation hosting several thousand blogs, how cool is that?

Though Justin and I have been taking a bit of a break from Mephisto, we’ll be back in 2007 and we hope to see all you there with us. Happy holidays and all that…

What is Mephisto?

Latest Release

0.8 (Drax)

Community

About Mephisto

Mephisto was baked to golden perfection by Rick Olson(Development) and Justin Palmer(UI/Design) with contributions from a bunch of cool people.

railsmachine
Click here to lend your support to: Support Mephisto!!!! and make a donation at www.pledgie.com !