<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <title>Mephisto - Home</title>
  <id>tag:mephistoblog.com,2009:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  
  <link href="http://mephistoblog.com/" rel="alternate" type="text/html" />
  <updated>2009-02-07T14:19:17Z</updated>
  <link rel="self" href="http://feeds.feedburner.com/mephisto" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry xml:base="http://mephistoblog.com/">
    <author>
      <name>Eric Kidd</name>
    </author>
    <id>tag:mephistoblog.com,2009-02-07:4598</id>
    <published>2009-02-07T14:16:00Z</published>
    <updated>2009-02-07T14:19:17Z</updated>
    <category term="Mephisto" />
    <category term="Releases" />
    <link href="http://mephistoblog.com/2009/2/7/mephisto-0-8-2-released" rel="alternate" type="text/html" />
    <title>Mephisto 0.8.2 released</title>
<summary type="html">&lt;p&gt;Mephisto 0.8.2 is now available &lt;a href="/download"&gt;on the download page&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;p&gt;Thanks also go to Chris Cummer for investigating Mephisto multisite caching issues. For information on setting up multisite, please see &lt;a href="http://www.appelsiini.net/2007/6/mephisto-multiple-site-config"&gt;
Mika Tuupola’s blog post&lt;/a&gt; and &lt;a href="http://groups.google.com/group/MephistoBlog/browse_thread/thread/983b2c2929c2657c"&gt;the thread on the MephistoBlog group&lt;/a&gt;. Alternatively, you can disable multisite support in &lt;code&gt;config/initializers/custom.rb&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;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 &lt;code&gt;#mephisto&lt;/code&gt;. Contributors are always welcome!&lt;/p&gt;

&lt;p&gt;A full list of patches appears after the jump.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;Mephisto 0.8.2 is now available &lt;a href="/download"&gt;on the download page&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;p&gt;Thanks also go to Chris Cummer for investigating Mephisto multisite caching issues. For information on setting up multisite, please see &lt;a href="http://www.appelsiini.net/2007/6/mephisto-multiple-site-config"&gt;
Mika Tuupola’s blog post&lt;/a&gt; and &lt;a href="http://groups.google.com/group/MephistoBlog/browse_thread/thread/983b2c2929c2657c"&gt;the thread on the MephistoBlog group&lt;/a&gt;. Alternatively, you can disable multisite support in &lt;code&gt;config/initializers/custom.rb&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;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 &lt;code&gt;#mephisto&lt;/code&gt;. Contributors are always welcome!&lt;/p&gt;

&lt;p&gt;A full list of patches appears after the jump.&lt;/p&gt;
&lt;p&gt;Chris Cummer (2):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixes ‘attempted to output tainted string’ error when rendering email address for mailto&lt;/li&gt;
&lt;li&gt;Changed user login to send user to admin section on succesful login instead of the blog homepage since users have the ability to post to the blog&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eric Kidd (23):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unbundle tzinfo gem&lt;/li&gt;
&lt;li&gt;Fix theme controller bugs&lt;/li&gt;
&lt;li&gt;Change default comment filter to Textile&lt;/li&gt;
&lt;li&gt;Change default user article filter to Textile&lt;/li&gt;
&lt;li&gt;Rename *.rhtml files to *.html.erb&lt;/li&gt;
&lt;li&gt;Rename *.rxml files to *.xml.builder&lt;/li&gt;
&lt;li&gt;Modernize rjs: admin/articles&lt;/li&gt;
&lt;li&gt;Added some notes about fixing JavaScript&lt;/li&gt;
&lt;li&gt;Begin updating to latest Prototype&lt;/li&gt;
&lt;li&gt;JavaScript: Fix asset search&lt;/li&gt;
&lt;li&gt;JavaScript: Fix authenticity_token problems&lt;/li&gt;
&lt;li&gt;JavaScript: Rename admin/assets/*.js -&gt; *.js.rjs&lt;/li&gt;
&lt;li&gt;Remove RSpec StoryRunner files&lt;/li&gt;
&lt;li&gt;Write login integration tests using Webrat&lt;/li&gt;
&lt;li&gt;Add integration test for “reset password”&lt;/li&gt;
&lt;li&gt;Upgrade to interim release of Webrat from github&lt;/li&gt;
&lt;li&gt;Add version numbers to config.gem statements&lt;/li&gt;
&lt;li&gt;Allow newer versions of these gems&lt;/li&gt;
&lt;li&gt;Add TODO item for explaining how to make Unicode work&lt;/li&gt;
&lt;li&gt;Merge branch ‘master’ of git://github.com/technoweenie/mephisto&lt;/li&gt;
&lt;li&gt;Merge branch ‘master’ of git://github.com/mat/mephisto&lt;/li&gt;
&lt;li&gt;Require test gems in development environment, not test&lt;/li&gt;
&lt;li&gt;Fix display of theme homepage links&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;James McCarthy (2):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;escaped link in _page.html.erb&lt;/li&gt;
&lt;li&gt;Added some brackets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Matthias Lüdtke (4):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed typo.&lt;/li&gt;
&lt;li&gt;Moved test gems from environment.rb to environments/test.rb.&lt;/li&gt;
&lt;li&gt;Added missing config.gem ‘ruby-debug’ to environments/test.rb.&lt;/li&gt;
&lt;li&gt;Added info: install test gems before testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sean O’Brien (1):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing tainted string in cache listing&lt;/li&gt;
&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>rick</name>
    </author>
    <id>tag:mephistoblog.com,2009-01-03:4515</id>
    <published>2009-01-03T19:33:00Z</published>
    <updated>2009-01-03T19:40:03Z</updated>
    <link href="http://mephistoblog.com/2009/1/3/integrating-mint-and-mephisto" rel="alternate" type="text/html" />
    <title>Integrating Mint and Mephisto</title>
<content type="html">
            &lt;p&gt;John Nunemaker, &lt;a href="http://www.rubyinside.com/top-ruby-blogger-of-2008-john-nunemaker-1410.html"&gt;top ruby blogger of 2008&lt;/a&gt;, just posted about &lt;a href="http://railstips.org"&gt;RailsTips.org&lt;/a&gt;’s &lt;a href="http://railstips.org/2009/1/3/look-at-the-size-of-my-footer"&gt;awesomely expanded footer&lt;/a&gt;.  If you click through to the full post, you’ll see his custom plugin pulling the most popular articles from his &lt;a href="http://haveamint.com/"&gt;Mint stats&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>Eric Kidd</name>
    </author>
    <id>tag:mephistoblog.com,2008-12-21:2124</id>
    <published>2008-12-21T02:56:00Z</published>
    <updated>2008-12-21T02:58:44Z</updated>
    <category term="Experimental" />
    <category term="Mephisto" />
    <category term="Releases" />
    <link href="http://mephistoblog.com/2008/12/21/mephisto-0-8-1-drax-relaunched" rel="alternate" type="text/html" />
    <title>Mephisto 0.8.1: Drax relaunched</title>
<content type="html">
            &lt;p&gt;&lt;/p&gt;

&lt;p&gt;Mephisto is officially back! The &lt;a href="http://mephistoblog.com/download"&gt;0.8.1 release&lt;/a&gt; features 157 patches since the start of the month, and several major improvements, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mephistoblog.com/2008/12/7/edge-mephisto-supports-rails-2-2"&gt;Support for Rails 2.2.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Unit tests at 100%.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mephistoblog.com/2008/12/21/mephisto-security-advisory"&gt;A major security audit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Major kudos go to Isaac Kearse, who submitted 37 patches, and who has a bunch more pending on the &lt;a href="http://mephistoblog.com/2008/12/20/mephisto-plugin-apis"&gt;new-plugins branch&lt;/a&gt;. Thanks go also to Dann Lynn, George Murphy, James McCarthy and Rick Olson for their contributions, and to all the testers on &lt;code&gt;#mephisto&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is an experimental release. &lt;strong&gt;Please back up your database before upgrading to Mephisto 0.8.1.&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;If you use Mephisto plugins, please see &lt;a href="http://mephistoblog.com/2008/12/20/mephisto-plugin-apis"&gt;the recent post on plugin APIs&lt;/a&gt;. The plugin situation is a bit messy, and we apologize for your patience while we figure it out.&lt;/p&gt;

&lt;p&gt;If you encounter any problems with 0.8.1, please drop by &lt;code&gt;#mephisto&lt;/code&gt;. If you’d like to submit patches, please submit a pull request to &lt;a href="http://github.com/emk/"&gt;emk&lt;/a&gt; on github. We’d like to make an 0.8.2 release fairly soon, and your help is always welcome. &lt;/p&gt;

&lt;p&gt;Thank you for using and contributing to Mephisto!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>Eric Kidd</name>
    </author>
    <id>tag:mephistoblog.com,2008-12-21:2123</id>
    <published>2008-12-21T02:24:00Z</published>
    <updated>2008-12-21T02:27:21Z</updated>
    <link href="http://mephistoblog.com/2008/12/21/mephisto-security-advisory" rel="alternate" type="text/html" />
    <title>Mephisto security advisory</title>
<content type="html">
            &lt;p&gt;Many web applications suffer from security vulnerabilities, including &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;XSS&lt;/a&gt; attacks, &lt;a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery"&gt;CSRF&lt;/a&gt; attacks, and &lt;a href="http://guides.rubyonrails.org/security.html"&gt;a whole catalog of other stuff&lt;/a&gt;. A typical vulnerability will give an attacker full administrative access to a site.&lt;/p&gt;

&lt;p&gt;Rails applications actually tend to have above-average security, thanks to tools like &lt;code&gt;protect_from_forgery&lt;/code&gt;. (In fact, quite of few of these tools are actually based on work by Mephisto’s own Rick Olson.) But unfortunately, Mephisto has been around a long time, and it predates many of the excellent Rails security tools.&lt;/p&gt;

&lt;p&gt;So the Mephisto team sat down with the excellent &lt;a href="http://guides.rubyonrails.org/security.html"&gt;Ruby on Rails security guide&lt;/a&gt;, and we started auditing Mephisto for security holes.&lt;/p&gt;

&lt;p&gt;Our goal: &lt;b&gt;Protect against attackers who don’t have access to &lt;code&gt;/admin&lt;/code&gt;.&lt;/b&gt; Attackers who &lt;i&gt;do&lt;/i&gt; have legitimate access to &lt;code&gt;/admin&lt;/code&gt; can launch XSS attacks in a variety of hard-to-prevent ways, so we’re going to trust them not to be too sneaky for the time being.&lt;/p&gt;

&lt;p&gt;So far, we’ve found and fixed quite a few issues. You can find a list at the end of this article.&lt;/p&gt;

&lt;h2&gt;Updating your Mephisto site&lt;/h2&gt;

&lt;p&gt;You can &lt;a href="http://mephistoblog.com/download"&gt;download Mephisto 0.8.1&lt;/a&gt;. We recommend &lt;b&gt;making a backup of your Mephisto database&lt;/b&gt; before installing it. You’ll also want to hang onto your &lt;code&gt;themes&lt;/code&gt; and &lt;code&gt;public/assets&lt;/code&gt; directories.&lt;/p&gt;

&lt;p&gt;If you have Mephisto plugins, please see the &lt;a href="http://mephistoblog.com/2008/12/20/mephisto-plugin-apis"&gt;earlier article on plugin APIs&lt;/a&gt;. If you Mephisto is old enough, you may have better luck porting your plugins to the &lt;code&gt;new-plugins&lt;/code&gt; branch, which also has a full set of security patches.&lt;/p&gt;

&lt;h2&gt;Our auditing philosophy&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;If it looks suspicious, fix it.&lt;/li&gt;
&lt;li&gt;Prefer “brute force” solutions that protect against an entire class of attacks to solutions that require line-by-line auditing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The OpenBSD team has an excellent security record, largely because they don’t wait to fix things until somebody actually finds a security hole. Instead, they dig through their code and &lt;i&gt;fix bugs&lt;/i&gt;. If a bug looks even remotely suspicious, they assume that there’s probably some way to exploit it.&lt;/p&gt;

&lt;p&gt;Similarly, whenever possible, we try not rely on the correctness of every view and controller. It’s too easy to leave out an &lt;code&gt;h(...)&lt;/code&gt; call in some view. So we prefer “brute force” solutions whenever possible. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We have a &lt;a href="http://github.com/emk/safe_erb/tree/master"&gt;forked version of Shinya Kasatani’s safe_erb&lt;/a&gt; that runs under Rails 2.2 and tries to detect missing &lt;code&gt;h(...)&lt;/code&gt; calls. This helps protect against XSS attacks.&lt;/li&gt;
&lt;li&gt;We make &lt;a href="http://github.com/emk/mephisto/commit/c500bf8e05c250d02672c30d079a0bdeb66f0569"&gt;all our model objects default to “read only” during GET requests&lt;/a&gt;. This helps protect against CSRF attacks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Some of the things we’ve fixed so far&lt;/h2&gt;

&lt;p&gt;Here’s an incomplete list of the security problems we’ve fixed so far.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Mephisto session secret is generated for each site, and no longer stored in &lt;code&gt;config/environment.rb&lt;/code&gt;. This prevents attackers from forging session cookies and gaining full administrative access to any Mephisto site. (&lt;a href="http://github.com/emk/mephisto/commit/d558ba11e393b1bd444039d535aad3f9853e2592"&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;We’ve enabled &lt;code&gt;protect_against_forgery&lt;/code&gt; for the accounts controller and for all the administrative controllers. This helps prevent CSRF attacks, which can be used by hostile sites to perform administrative actions. (&lt;a href="http://github.com/emk/mephisto/commit/dd9f41d2d4f168281b2e4eca12a525065b999f61"&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;We’ve upgraded to the latest Rails HTML sanitizer. This helps prevent XSS attacks, which can be used by attackers to steal cookies and gain administrative access. (&lt;a href="http://github.com/emk/mephisto/commit/d2c8c8e3aee4c222c645f0b7b493799ffd826bc3"&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;We’ve inserted quite a few &lt;code&gt;h(...)&lt;/code&gt; calls to help prevent XSS attacks. Most of these were only available to users with &lt;code&gt;/admin&lt;/code&gt; access, however. (&lt;a href="http://github.com/emk/mephisto/commit/a83309dbc833ce1ef255ac65275ba498115d1040"&gt;commit&lt;/a&gt;) (&lt;a href="http://github.com/emk/mephisto/commit/7a20455fab59441d15e261172aa9fac109eb3893"&gt;commit&lt;/a&gt;) (and many more)&lt;/li&gt;
&lt;li&gt;We replaced many regexes of the form &lt;code&gt;/^...$/&lt;/code&gt; with regexes of the form &lt;code&gt;/\A...\z/&lt;/code&gt;. Among other things, this change fixed a nasty XSS attack that could be exploited simply by posting a comment. (&lt;a href="http://github.com/emk/mephisto/commit/c8c4bcc772301abcee6735466df93b60291878aa"&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;We fixed a tricky XSS attack against the comment error form. (&lt;a href="http://github.com/emk/mephisto/commit/b7cb8221e066cb55884bf941e1b421ccf6082404"&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;We fixed a potential issue with empty or nil login tokens. I don’t know whether there was any way to exploit this. (&lt;a href="http://github.com/emk/mephisto/commit/64eff7f46ab8191d1dd766f7746f3a52d31fd7b3"&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;We made records read-only by default during GET requests, helping to protect against CSRF attacks. (&lt;a href="http://github.com/emk/mephisto/commit/c500bf8e05c250d02672c30d079a0bdeb66f0569"&gt;commit&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We also added patches to help protect against session fixation, &lt;code&gt;&amp;lt;img src=... /&amp;gt;&lt;/code&gt;-based CSRF attacks, and a number of other possible issues. And since Mephisto now supports Rails 2.2.2, you can also take advantage of the latest Rails security fixes, too.&lt;/p&gt;

&lt;p&gt;One debugging tip: If you see an error like &lt;i&gt;ActionView::TemplateError (attempted to output tainted string)&lt;/i&gt;, you’ve run afoul of SafeERB and you probably need to insert an &lt;code&gt;h(...)&lt;/code&gt; somewhere. Don’t hesitate to ask for help on &lt;code&gt;#mephisto&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Many thanks go to Isaac Kearse, Dan Lynn, Rick Olson and Courtenay Gasking for fixing regressions introduced by the security patches, and to the folks on &lt;code&gt;#mephisto&lt;/code&gt; for testing and bug reports!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>Eric Kidd</name>
    </author>
    <id>tag:mephistoblog.com,2008-12-20:2122</id>
    <published>2008-12-20T23:25:00Z</published>
    <updated>2008-12-20T23:28:04Z</updated>
    <category term="Add-Ons" />
    <category term="Experimental" />
    <category term="Mephisto" />
    <link href="http://mephistoblog.com/2008/12/20/mephisto-plugin-apis" rel="alternate" type="text/html" />
    <title>Mephisto plugin APIs</title>
<content type="html">
            &lt;p&gt;Mephisto supports several different kinds of plugins, including:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;FilteredColumn plugins.&lt;/b&gt; These add new &lt;code&gt;&amp;lt;macro:*&amp;gt;&lt;/code&gt; forms for use in articles. Two good examples are &lt;a href="http://github.com/emk/mephisto/tree/master/vendor/plugins/filtered_column_code_macro"&gt;filtered_column_code_macro&lt;/a&gt; and &lt;a href="http://github.com/emk/filtered_column_haskell_macro/tree/master"&gt;filtered_column_haskell_macro&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Custom Drop classes.&lt;/b&gt; These add new commands to Mephisto’s Liquid templates. For example, &lt;a href="http://github.com/tsykoduk/mephisto_feedreader/tree/master/lib"&gt;this drop&lt;/a&gt; adds an RSS feed sidebar to a site.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;True Mephisto plugins.&lt;/b&gt; These plugin extend the actual Mephisto interface. A popular example is &lt;a href="http://jamescrisp.blogspot.com/2007/03/contact-feedback-form-plugin-for.html"&gt;mephisto_contact_form&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;3 APIs for true Mephisto plugins&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;b&gt;The original plugin API.&lt;/b&gt; 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 &lt;a href="http://jamescrisp.blogspot.com/2007/04/tips-for-developing-mephisto-plugins.html"&gt;some notes by James Crisp on this API&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Sven Fuchs’ engines-based plugin API.&lt;/b&gt; Sven Fuchs overhauled the original API, and based it on &lt;a href="http://rails-engines.org/"&gt;Engines&lt;/a&gt;. For more details, see the &lt;a href="http://jamescrisp.org/2008/08/25/migrating-mephisto-plugins-to-drax-08/"&gt;porting notes for this API&lt;/a&gt;. You can find this API on &lt;a href="http://github.com/emk/mephisto/tree/master"&gt;Mephisto’s &lt;code&gt;master&lt;/code&gt; branch&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Isaac’s Kearse’s new engines-based plugin API.&lt;/b&gt; Isaac Kearse is trying to combine the best features of the two earlier APIs. For some example code, see &lt;a href="http://github.com/emk/mephisto/tree/new-plugins/vendor/plugins/mephisto_feedback"&gt;his updated version of the Mephisto feedback plugin&lt;/a&gt;. You can find this new plugin API on &lt;a href="http://github.com/emk/mephisto/tree/new-plugins"&gt;Mephisto’s &lt;code&gt;new-plugins&lt;/code&gt; branch&lt;/a&gt;. Ideally, it should be extremely easy to port original-style plugins to this new API.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;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?&lt;/p&gt;

&lt;p&gt;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!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>Eric Kidd</name>
    </author>
    <id>tag:mephistoblog.com,2008-12-07:2107</id>
    <published>2008-12-07T14:22:00Z</published>
    <updated>2008-12-07T14:24:09Z</updated>
    <category term="Experimental" />
    <category term="Mephisto" />
    <link href="http://mephistoblog.com/2008/12/7/edge-mephisto-supports-rails-2-2" rel="alternate" type="text/html" />
    <title>Edge Mephisto supports Rails 2.2</title>
<content type="html">
            &lt;p&gt;The &lt;a href="http://github.com/emk/mephisto/wikis"&gt;development version of Mephisto&lt;/a&gt; now runs under Rails 2.2.2.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://github.com/emk/mephisto/network"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s what we still need to do before releasing Mephisto 0.8.1:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We need to finish going through the interface, and fix any regressions that we find.&lt;/li&gt;
&lt;li&gt;We need to test Mephisto with &lt;a href="http://www.modrails.com/"&gt;Phusion Passenger&lt;/a&gt; and other deployment environments.&lt;/li&gt;
&lt;li&gt;We need to make sure the plugin system is still working.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you’d like to check it out, please see the &lt;a href="http://github.com/emk/mephisto/wikis"&gt;installation instructions for Edge Mephisto&lt;/a&gt;. Many thanks to everybody for their help!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>Eric Kidd</name>
    </author>
    <id>tag:mephistoblog.com,2008-12-03:2101</id>
    <published>2008-12-03T22:02:00Z</published>
    <updated>2008-12-04T00:08:19Z</updated>
    <category term="Experimental" />
    <category term="Mephisto" />
    <link href="http://mephistoblog.com/2008/12/3/merging-bug-fixes" rel="alternate" type="text/html" />
    <title>Merging bug fixes</title>
<content type="html">
            &lt;p&gt;Greetings! I’ve been &lt;a href="http://github.com/emk/mephisto/tree/master"&gt;doing some maintenance work&lt;/a&gt; on Mephisto. The current development version now supports Ruby 1.8.7 and Rails 2.0.5. The unit tests all pass, and &lt;code&gt;model_stubbing&lt;/code&gt; has been ripped out and replaced with &lt;a href="http://github.com/notahat/machinist/tree/master"&gt;machinist&lt;/a&gt;. I want to thank Rick Olson, Sven Fuchs and Peter Suschlik for all their help.&lt;/p&gt;

&lt;p&gt;There are several things that we should probably do before making a Mephisto 0.8.1 release:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test the new Mephisto on a variety of different systems.&lt;/li&gt;
&lt;li&gt;Merge any bug fixes that people want to get into trunk.&lt;/li&gt;
&lt;li&gt;Fix some JavaScript issues with the asset manager.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you’d like to try out the development version of Mephisto, please &lt;em&gt;back up your database&lt;/em&gt; and see the &lt;a href="http://github.com/emk/mephisto/wikis"&gt;installation notes on my github wiki&lt;/a&gt;. 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Thank you for helping out with the development and testing of Mephisto!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>courtenay</name>
    </author>
    <id>tag:mephistoblog.com,2008-04-18:1919</id>
    <published>2008-04-18T19:18:00Z</published>
    <updated>2008-04-18T19:34:15Z</updated>
    <category term="Mephisto" />
    <category term="Releases" />
    <link href="http://mephistoblog.com/2008/4/18/mephisto-hits-0-8-moves-to-github" rel="alternate" type="text/html" />
    <title>Mephisto hits 0.8, moves to GitHub</title>
<content type="html">
            &lt;p&gt;&lt;/p&gt;

&lt;p&gt;Mephisto 0.8, “Drax”, is out, and the source is now hosted at our friends, Github.  &lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;You can download &lt;a href="http://github.com/halorgium/mephisto/commits/rel-0.8"&gt;release 0.8&lt;/a&gt; from tarball or git checkout, or &lt;a href="http://github.com/technoweenie/mephisto/tree/master"&gt;live on the edge&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>rick</name>
    </author>
    <id>tag:mephistoblog.com,2007-10-16:1700</id>
    <published>2007-10-16T11:05:00Z</published>
    <updated>2007-10-16T11:14:26Z</updated>
    <category term="Tips &amp; Tricks" />
    <link href="http://mephistoblog.com/2007/10/16/creating-a-mephisto-theme-using-liquid" rel="alternate" type="text/html" />
    <title>Creating a Mephisto Theme Using Liquid</title>
<content type="html">
            &lt;p&gt;Jon Baker wrote a great article on &lt;a href="http://www.clockobj.co.uk/2007/10/10/creating-a-mephisto-theme-using-liquid"&gt;creating Mephisto themes&lt;/a&gt;.  There’s also a nifty &lt;a href="http://george.southernohio.net/2007/10/10/liquid-for-mephisto-cheatsheet"&gt;Liquid for Mephisto &lt;span class="caps"&gt;PDF&lt;/span&gt; cheatsheet&lt;/a&gt; by George that was released on the same day.&lt;/p&gt;


	&lt;p&gt;Finally, who posted as &lt;a href="http://youtube.com/watch?v=lBOEbxG5uTc"&gt;Dr Acula&lt;/a&gt; in the previous post?  &lt;a href="http://technoweenie.tumblr.com/post/15781811"&gt;Totally awesome…&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>rick</name>
    </author>
    <id>tag:mephistoblog.com,2007-08-30:1628</id>
    <published>2007-08-30T18:38:00Z</published>
    <updated>2007-08-30T18:48:16Z</updated>
    <category term="Mephisto" />
    <link href="http://mephistoblog.com/2007/8/30/applying-cpr-to-mephisto" rel="alternate" type="text/html" />
    <title>Applying CPR to Mephisto</title>
<content type="html">
            &lt;p&gt;I’ve just added the &lt;a href="http://www.locusfoc.us/2007/8/30/mephisto-to-the-core"&gt;over eager&lt;/a&gt; &lt;a href="http://www.locusfoc.us/"&gt;Mark Dagget&lt;/a&gt; to the Mephisto Core Team.  He’s the author the open source project &lt;a href="http://www.locusfoc.us/ram"&gt;&lt;span class="caps"&gt;RAM&lt;/span&gt;&lt;/a&gt; (Ruby Asset Manager), as well as &lt;a href="http://pledgie.com/"&gt;Pledgie&lt;/a&gt;.  His main task is keep Mephisto on life support, starting with adding his unreleased but excellent Exception Notifier plugin.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>rick</name>
    </author>
    <id>tag:mephistoblog.com,2007-06-15:1510</id>
    <published>2007-06-15T18:18:00Z</published>
    <updated>2007-06-15T22:07:04Z</updated>
    <link href="http://mephistoblog.com/2007/6/15/large-mephisto-deployment" rel="alternate" type="text/html" />
    <title>Large Mephisto Deployment</title>
<content type="html">
            &lt;p class="left-asset"&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;I’m not sure how many other large sites use Mephisto, but I managed to deploy it to &lt;a href="http://the-leaky-cauldron.org/"&gt;the-leaky-cauldron.org&lt;/a&gt; the other day (after lots of heavy modding to get things like polls and article ratings working). Leaky gets about 3 million unique visitors a month – and with 9,000 articles and over 300,000 comments (not all of which have converted yet) I thought I’d let you know. —&lt;a href="http://groups.google.com/group/MephistoBlog/browse_thread/thread/b1df7496755480d8"&gt;Mephisto group message&lt;/a&gt; by Nick Poulden.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;I’m not sure, but I think that’s one of the largest Mephisto installations around.  Great job, Nick Poulden!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>rick</name>
    </author>
    <id>tag:mephistoblog.com,2007-03-29:1079</id>
    <published>2007-03-29T15:39:00Z</published>
    <updated>2007-03-29T15:49:53Z</updated>
    <category term="Encounters" />
    <category term="Mephisto" />
    <category term="Tips &amp; Tricks" />
    <link href="http://mephistoblog.com/2007/3/29/new-contact-feedback-plugin" rel="alternate" type="text/html" />
    <title>New Contact Feedback Plugin</title>
<content type="html">
            &lt;p&gt;James Crisp wrote a nifty &lt;a href="http://jamescrisp.blogspot.com/2007/03/contact-feedback-form-plugin-for.html"&gt;Contact Feedback plugin&lt;/a&gt; for Mephisto for the new &lt;a href="http://studios.thoughtworks.com/"&gt;Thoughtworks Studios&lt;/a&gt; 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!&lt;/p&gt;


	&lt;p&gt;For anyone that asks: it looks like the main difference between this, and &lt;a href="http://svn.techno-weenie.net/projects/mephisto/plugins/mephisto_feedback/"&gt;my own feedback plugin&lt;/a&gt; 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 :)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>rick</name>
    </author>
    <id>tag:mephistoblog.com,2007-03-22:991</id>
    <published>2007-03-22T06:02:00Z</published>
    <updated>2007-03-22T06:03:15Z</updated>
    <category term="Mephisto" />
    <link href="http://mephistoblog.com/2007/3/22/is-mephisto-dead" rel="alternate" type="text/html" />
    <title>Is Mephisto Dead?</title>
<content type="html">
            &lt;blockquote&gt;
		&lt;p&gt;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 &lt;span class="caps"&gt;RIDE&lt;/span&gt;-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, &lt;a href="http://mephistoblog.com/2007/3/20/globalizing-mephisto#comments"&gt;comments on previous article&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;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.&lt;/p&gt;


	&lt;p&gt;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.&lt;/p&gt;


	&lt;p&gt;What’s going on &lt;strong&gt;right now&lt;/strong&gt;:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;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.  &lt;/li&gt;
		&lt;li&gt;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 &lt;span class="caps"&gt;XML&lt;/span&gt;-RPC support.&lt;/li&gt;
		&lt;li&gt;There’s a small 0.7.4 update with a few security issues and &lt;a href="http://svn.techno-weenie.net/projects/mephisto/branches/stable-0.7/CHANGELOG"&gt;annoying bugs fixed&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;There’s an edge version with some notable new features (plugin admin, plugin support for &lt;span class="caps"&gt;RHTML&lt;/span&gt;/HAML templates, and soon: a multi-site admin)&lt;/li&gt;
		&lt;li&gt;Once Lighthouse goes out of beta, we’ll have an official bug tracker.&lt;/li&gt;
		&lt;li&gt;Core team doesn’t haven’t to mean “svn commit access” either.  It could also mean “ticket overlord” or something.&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;DNS&lt;/span&gt; info is currently being transferred to moniker…&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;However, Justin and I are committed to keeping Mephisto true to its roots.  We’re not going to turn it into another bloated &lt;span class="caps"&gt;CMS&lt;/span&gt;, or a community blogging tool.  It’s also not a kickstart to your rails app development.  It’s strictly going to remain a &lt;strong&gt;kick ass publishing tool&lt;/strong&gt;.  Further features/integration should be done through the power of hyperlinks or APIs (exposed through custom Liquid drops).&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>rick</name>
    </author>
    <id>tag:mephistoblog.com,2007-03-20:980</id>
    <published>2007-03-20T13:46:00Z</published>
    <updated>2007-03-20T13:50:35Z</updated>
    <category term="Encounters" />
    <link href="http://mephistoblog.com/2007/3/20/globalizing-mephisto" rel="alternate" type="text/html" />
    <title>Globalizing Mephisto</title>
<content type="html">
            &lt;p&gt;Saimon has posted a &lt;a href="http://rubyforge.org/projects/sidirodromos"&gt;mephisto_i18n plugin&lt;/a&gt;, as well as the first part of a &lt;a href="http://www.webtypes.com/2007/03/18/globalizing-mephisto"&gt;companion tutorial&lt;/a&gt; for &lt;a href="http://globalize-rails.org/"&gt;globalizing&lt;/a&gt; your Mephisto site.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://mephistoblog.com/">
    <author>
      <name>rick</name>
    </author>
    <id>tag:mephistoblog.com,2007-03-20:979</id>
    <published>2007-03-20T13:04:00Z</published>
    <updated>2007-03-20T13:16:15Z</updated>
    <link href="http://mephistoblog.com/2007/3/20/new-mephisto-theme-gallery" rel="alternate" type="text/html" />
    <title>New Mephisto Theme Gallery</title>
<content type="html">
            &lt;p&gt;&lt;a href="http://blog.nanorails.com/"&gt;Pascal&lt;/a&gt; just unleashed another &lt;a href="http://mephisto-themes.nanorails.com/gallery"&gt;Mephisto Theme Gallery&lt;/a&gt;, with a nice new theme ported from Wordpress: &lt;a href="http://cutline.tubetorial.com/"&gt;Cutline&lt;/a&gt; (side note: it’d be nice if we could link to themes directly somehow).&lt;/p&gt;


	&lt;p&gt;One neat feature is that Pascal provides some of the themes in alternate formats, such as &lt;span class="caps"&gt;RHTML&lt;/span&gt;, Erubis, and &lt;a href="http://haml.hamptoncatlin.com/"&gt;&lt;span class="caps"&gt;HAML&lt;/span&gt;&lt;/a&gt;.  He took a bit of encouragement from me and managed to refactor the Liquid support in the edge version of Mephisto.  It now supports custom template renderers in the form of plugins, with renderers for (you guess it, true believer!) &lt;span class="caps"&gt;RHTML&lt;/span&gt;, Erubis, and &lt;span class="caps"&gt;HAML&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;On another note, one of the few &lt;em&gt;original&lt;/em&gt; Mephisto themes, &lt;a href="http://evil.che.lu/2006/8/15/skittlish"&gt;Skittlish&lt;/a&gt;, gets a &lt;a href="http://journal.barleyhut.com/the-skittlish-theme-for-wordpress/"&gt;Wordpress makeover&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
</feed>
