<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Schadenfreude &#187; mephisto</title>
	<atom:link href="http://www.ralree.com/tag/mephisto/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ralree.com</link>
	<description>Malicious enjoyment derived from observing someone else's misfortune</description>
	<lastBuildDate>Sun, 28 Feb 2010 04:18:37 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Using Vimpress</title>
		<link>http://www.ralree.com/2009/02/28/test-post-using-vimpress/</link>
		<comments>http://www.ralree.com/2009/02/28/test-post-using-vimpress/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 21:34:32 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[awesome]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[posting]]></category>
		<category><![CDATA[typo]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[vimpress]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xmlrpc]]></category>

		<guid isPermaLink="false">http://www.ralree.com/2009/02/28/test-post-using-vimpress/</guid>
		<description><![CDATA[I&#8217;m regaining some functionality I haven&#8217;t had for a long time today.  Back in the old days, I used to use [Flog](http://www.ralree.com/2006/09/02/changing-up-the-flogging/&#8221;) to post to Typo, but that all went away with Mephisto (I couldn&#8217;t get XMLRPC to work properly).  So, I&#8217;m trying [Vimpress](http://friggeri.net/blog/2007/07/13/vimpress).  Hopefully, I won&#8217;t need to hack together Ultimate [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m regaining some functionality I haven&#8217;t had for a long time today.  Back in the old days, I used to use [Flog](http://www.ralree.com/2006/09/02/changing-up-the-flogging/&#8221;) to post to Typo, but that all went away with Mephisto (I couldn&#8217;t get XMLRPC to work properly).  So, I&#8217;m trying [Vimpress](http://friggeri.net/blog/2007/07/13/vimpress).  Hopefully, I won&#8217;t need to hack together Ultimate Tag Warrior into Wordpress 2.8 to get tagging from vim to work.</p>
<p>##Update<br />
It looks like it&#8217;s working, as a matter of fact.  I installed the [Markdown for Wordpress and bbpress](http://mitcho.com/code/) plugin, and immediately my post was fixed up with nice new syntax.  Tags work without any additional plugins using Wordpress 2.8.  Go Vimpress!</p>
<p>##Update 2<br />
As you can probably see on the sidebar, I added a vimpress repository to GitHub, since it was lacking one before.  You can now use vimpress simply by performing a <code>git clone git://github.com/hank/vimpress.git .vim</code>.  I went ahead and patched it with the custom slug options mentioned in the main vimpress site&#8217;s comments.  Both versions are available as [tags on GitHub](http://github.com/hank/vimpress/downloads).</p>
<p>##Update 3<br />
I happened to get to wonder how secure XML-RPC was, so I did a nice little wireshark packet capture, and lo-and-behold, there was my password in plaintext HTTP.  I was aghast &#8211; why couldn&#8217;t they do a little HTTP-Digest authentication or something at least?  Anyway, after researching what people think of this, and finding only past vulnerabilities in Wordpress, not complaints that it&#8217;s just a **bad idea to use insecure XML-RPC for blog posting**, I tried putting an <b>s</b> in front of my HTTP.  Guess what &#8211; ***It Worked!***  I have to give props to Python for having that all built in.</p>
<p>So now, thanks to Site5&#8217;s free-to-use server certificates, I can now use XML-RPC securely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2009/02/28/test-post-using-vimpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Photoslice in Bluecloth and Mephisto</title>
		<link>http://www.ralree.com/2008/01/05/photoslice-in-bluecloth-and-mephisto/</link>
		<comments>http://www.ralree.com/2008/01/05/photoslice-in-bluecloth-and-mephisto/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 21:49:00 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bluecloth]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2008/01/06/photoslice-in-bluecloth-and-mephisto</guid>
		<description><![CDATA[So, I found this today, and it is awesome.  I wanted it in Bluecloth so I could use it in Mephisto.  Here&#8217;s how.
First, I needed to make it so I could still do normal images, but turn on coolness if I want.  Here&#8217;s the goal I came up with for the grammar:

[![](thumburl.jpg)](imageurl.jpg [...]]]></description>
			<content:encoded><![CDATA[<p>So, I found <a href="http://www.photoslice.net/guide/">this</a> today, and it is awesome.  I wanted it in Bluecloth so I could use it in Mephisto.  Here&#8217;s how.</p>
<p>First, I needed to make it so I could still do normal images, but turn on coolness if I want.  Here&#8217;s the goal I came up with for the grammar:</p>
<pre><code>
[![](thumburl.jpg)](imageurl.jpg "Scrolly Text at top" "photoslice")
</code></pre>
<p>Here&#8217;s the first test, with a single image:</p>
<p><a href="http://ralree.com/assets/2008/1/5/foshizzlepowell.jpg" title="Colin Powell Loves you" rel="photoslice"><img src="http://ralree.com/assets/2008/1/5/foshizzlepowell_thumb.jpg" alt=""/></a></p>
<p>And now a set with a namespace:</p>
<p><a href="http://ralree.com/assets/2008/1/5/ninjabeg.jpg" title="Ninjas killed his family.  Poor guy..." rel="photoslice.bluecloth"><img src="http://ralree.com/assets/2008/1/5/ninjabeg_thumb.jpg" alt=""/></a><br />
<a href="http://ralree.com/assets/2008/1/5/South_Park_Zach.jpg" title="Zach used to look like this." rel="photoslice.bluecloth"><img src="http://ralree.com/assets/2008/1/5/South_Park_Zach_thumb.jpg" alt=""/></a><br />
<a href="http://ralree.com/assets/2008/1/5/South_Park_Hank.jpg" title="I used to look like this." rel="photoslice.bluecloth"><img src="http://ralree.com/assets/2008/1/5/South_Park_Hank_thumb.jpg" alt=""/></a></p>
<p>I did it by simply modifying the regex and image url parsing function in BlueCloth like so:</p>
<div class="CodeRay">
<div class="code">
<pre>
  <span class="co">InlineLinkRegex</span> = <span class="rx"><span class="dl">%r{</span><span class="k">
    </span><span class="ch">\(</span><span class="k">            # Literal paren
      [ ]*        # Zero or more spaces
      &lt;?(.+?)&gt;?     # URI = $1
      [ ]*        # Zero or more spaces

      (?:         # title
        ([</span><span class="ch">\&quot;</span><span class="ch">\'</span><span class="k">])    # Opening quote char = $2
        (.*?)     # Title = $3
        </span><span class="ch">\2</span><span class="k">        # Matching quote char
      )?          # Title is optional
      [ ]*        # Zero or more spaces
      (?:         # rel
        ([</span><span class="ch">\&quot;</span><span class="ch">\'</span><span class="k">])    # Opening quote char = $2
        (.*?)     # rel = $5
        </span><span class="ch">\4</span><span class="k">        # Matching quote char
      )?          # rel is optional
    </span><span class="ch">\)</span><span class="k">
    </span><span class="dl">}</span><span class="mod">x</span></span>

    <span class="c"># and later...</span>

        <span class="c"># ...or for an inline style second part</span>
        <span class="r">elsif</span> <span class="iv">@scanner</span>.scan( <span class="co">InlineLinkRegex</span> )
          url = <span class="iv">@scanner</span>[<span class="i">1</span>]
          title = <span class="iv">@scanner</span>[<span class="i">3</span>]
          rel = <span class="iv">@scanner</span>[<span class="i">5</span>]
          <span class="iv">@log</span>.debug <span class="s"><span class="dl">&quot;</span><span class="k">  Found an inline link to %p</span><span class="dl">&quot;</span></span> % url

          text += <span class="s"><span class="dl">%{</span><span class="k">&lt;a href=&quot;%s&quot;</span><span class="dl">}</span></span> % escape_md( url )
          <span class="r">if</span> title
            title.gsub!( <span class="rx"><span class="dl">/</span><span class="k">&quot;</span><span class="dl">/</span></span>, <span class="s"><span class="dl">&quot;</span><span class="k">&amp;quot;</span><span class="dl">&quot;</span></span> )
            text += <span class="s"><span class="dl">%{</span><span class="k"> title=&quot;%s&quot;</span><span class="dl">}</span></span> % escape_md( title )
          <span class="r">end</span>
          <span class="r">if</span> rel
            rel.gsub!( <span class="rx"><span class="dl">/</span><span class="k">&quot;</span><span class="dl">/</span></span>, <span class="s"><span class="dl">&quot;</span><span class="k">&amp;quot;</span><span class="dl">&quot;</span></span> )
            text += <span class="s"><span class="dl">%{</span><span class="k"> rel=&quot;%s&quot;</span><span class="dl">}</span></span> % escape_md( rel )
          <span class="r">end</span>
</pre>
</div>
</div>
<p>I also added the following to my Mephisto theme layout, in the head section:</p>
<pre><code>
   &lt;!-- Photoslice --&gt;
   &lt;link rel="stylesheet" type="text/css" href="/javascripts/photoslice/style.css" /&gt;
   {{ "photoslice/functions.js" | javascript }}
</code></pre>
<p>Once again, Ruby is awesome.  And so is Markdown.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2008/01/05/photoslice-in-bluecloth-and-mephisto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracking my workouts on cool charts</title>
		<link>http://www.ralree.com/2007/11/06/tracking-my-workouts-on-cool-charts/</link>
		<comments>http://www.ralree.com/2007/11/06/tracking-my-workouts-on-cool-charts/#comments</comments>
		<pubDate>Tue, 06 Nov 2007 05:15:00 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[exercise]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[health]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2007/11/17/tracking-my-workouts-on-cool-charts</guid>
		<description><![CDATA[
I decided today that I wanted to track my calories burned per day on a nice line graph.  I did it, and I think I will continue.  The total is automatically calculated by the PHP data source.  This was made using my Mephisto Plugin for Open Flash Charts.
]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="660" height="300" id="graph46523" align="middle"><param name="allowScriptAccess" value="always" /><param name="movie" value="/open-flash-chart.swf?width=660 &amp;height=300 &amp;data=%2Fcharts%2F2007-11-06-workouts.php" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><embed src="/open-flash-chart.swf?width=660&amp;height=300&amp;data=%2Fcharts%2F2007-11-06-workouts.php" quality="high" bgcolor="#FFFFFF" width="660" height="300" name="open-flash-chart" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></p>
<p>I decided today that I wanted to track my calories burned per day on a nice line graph.  I did it, and I think I will continue.  The total is automatically calculated by the PHP data source.  This was made using my <a href="http://ralree.info/2007/10/22/flash-chart-testing">Mephisto Plugin for Open Flash Charts</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2007/11/06/tracking-my-workouts-on-cool-charts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Mephisto Post Pinger List</title>
		<link>http://www.ralree.com/2007/10/06/new-mephisto-post-pinger-list/</link>
		<comments>http://www.ralree.com/2007/10/06/new-mephisto-post-pinger-list/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 17:06:00 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2007/10/13/new-mephisto-post-pinger-list</guid>
		<description><![CDATA[Today I found a nice ping list for Wordpress.  I decided to put it into my copy of the Mephisto Post Pinger plugin.  I&#8217;m not sure if it works yet, but this post will give it a good test. 
            
Today I [...]]]></description>
			<content:encoded><![CDATA[<p>Today I found a nice <a href="http://www.kpebiz.com/archives/top-89-ping-list-for-pinging-on-wordpress/">ping list</a> for Wordpress.  I decided to put it into my copy of the <a href="http://hasno.info/2006/11/11/mephisto-plugins">Mephisto Post Pinger plugin</a>.  I&#8217;m not sure if it works yet, but this post will give it a good test. </p>
<p>            <span id="more-3916"></span></p>
<p>Today I found a nice <a href="http://www.kpebiz.com/archives/top-89-ping-list-for-pinging-on-wordpress/">ping list</a> for Wordpress.  I decided to put it into my copy of the <a href="http://hasno.info/2006/11/11/mephisto-plugins">Mephisto Post Pinger plugin</a>.  I&#8217;m not sure if it works yet, but this post will give it a good test. </p>
<p>You can get the <a href="http://ralree.info/assets/2007/10/6/config.rb">file</a>, or just use this:</p>
<pre><code>
ArticlePingObserver::SERVICES = [

  { :url =&gt; "http://rpc.pingomatic.com/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://rpc.weblogs.com/pingSiteForm", :type =&gt; :rest },

  { :url =&gt; "http://pingomatic.com/ping/", :type =&gt; :weblogs_get, :extras =&gt; [ "chk_weblogscom=on&#038;chk_blogs=on&#038;chk_technorati=on&#038;chk_feedburner=on&#038;chk_syndic8=on&#038;chk_newsgator=on&#038;chk_feedster=on&#038;chk_myyahoo=on&#038;chk_pubsubcom=on&#038;chk_blogdigger=on&#038;chk_blogrolling=on&#038;chk_blogstreet=on&#038;chk_moreover=on&#038;chk_weblogalot=on&#038;chk_icerocket=on&#038;chk_newsisfree=on&#038;chk_topicexchange=on" ] },

  { :url =&gt; "http://rpc.technorati.com/rpc/ping", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.syndic8.com/xmlrpc.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://rpc.icerocket.com:10080", :type =&gt; :xmlrpc },

  { :url =&gt; "http://rubycorner.com/ping/xmlrpc/e49ac4608c88606f75486e6da3da34de6527622a", :type =&gt; :xmlrpc, :category =&gt; 'ruby' },

  { :url =&gt; "http://rubylicio.us/ping/xmlrpc", :type =&gt; :xmlrpc, :category =&gt; 'ruby' },

  { :url =&gt; "http://1470.net/api/ping", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.a2b.cc/setloc/bp.a2b", :type =&gt; :xmlrpc },

  { :url =&gt; "http://api.feedster.com/ping", :type =&gt; :xmlrpc },

  { :url =&gt; "http://api.moreover.com/RPC2", :type =&gt; :xmlrpc },

  { :url =&gt; "http://api.moreover.com/ping", :type =&gt; :xmlrpc },

  { :url =&gt; "http://api.my.yahoo.com/RPC2", :type =&gt; :xmlrpc },

  { :url =&gt; "http://api.my.yahoo.com/rss/ping", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.bitacoles.net/ping.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://bitacoras.net/ping", :type =&gt; :xmlrpc },

  { :url =&gt; "http://blogdb.jp/xmlrpc", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.blogdigger.com/RPC2", :type =&gt; :xmlrpc },

  { :url =&gt; "http://blogmatcher.com/u.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.blogoole.com/ping/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.blogoon.net/ping/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.blogpeople.net/servlet/weblogUpdates", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.blogroots.com/tb_populi.blog?id=1", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.blogshares.com/rpc.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.blogsnow.com/ping", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.blogstreet.com/xrbin/xmlrpc.cgi", :type =&gt; :xmlrpc },

  { :url =&gt; "http://blog.goo.ne.jp/XMLRPC", :type =&gt; :xmlrpc },

  { :url =&gt; "http://bulkfeeds.net/rpc", :type =&gt; :xmlrpc },

  { :url =&gt; "http://coreblog.org/ping/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.lasermemory.com/lsrpc/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://mod-pubsub.org/kn_apps/blogchatt", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.mod-pubsub.org/kn_apps/blogchatter/ping.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.newsisfree.com/xmlrpctest.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.amagle.com/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.bitacoras.com", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.blo.gs/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.bloggers.jp/rpc/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.blogmura.jp/rpc/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.cocolog-nifty.com/xmlrpc", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.exblog.jp/xmlrpc", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.feedburner.com", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.myblog.jp", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.rootblog.com/rpc.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.weblogalot.com/rpc.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://ping.weblogs.se/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://pingoat.com/goat/RPC2", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.popdex.com/addsite.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://rcs.datashed.net/RPC2/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://rpc.blogbuzzmachine.com/RPC2", :type =&gt; :xmlrpc },

  { :url =&gt; "http://rpc.blogrolling.com/pinger/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://rpc.weblogs.com/RPC2", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.snipsnap.org/RPC2", :type =&gt; :xmlrpc },

  { :url =&gt; "http://trackback.bakeinu.jp/bakeping.php", :type =&gt; :xmlrpc },

  { :url =&gt; "http://topicexchange.com/RPC2", :type =&gt; :xmlrpc },

  { :url =&gt; "http://www.weblogues.com/RPC/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://xping.pubsub.com/ping/", :type =&gt; :xmlrpc },

  { :url =&gt; "http://xmlrpc.blogg.de/", :type =&gt; :xmlrpc },

]

</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2007/10/06/new-mephisto-post-pinger-list/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash Video Player for Mephisto</title>
		<link>http://www.ralree.com/2007/08/13/flash-video-player-for-mephisto/</link>
		<comments>http://www.ralree.com/2007/08/13/flash-video-player-for-mephisto/#comments</comments>
		<pubDate>Mon, 13 Aug 2007 02:50:00 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[alex]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2007/10/13/flash-video-player-for-mephisto</guid>
		<description><![CDATA[So I made this awesome filter for Mephisto that allows you to easily embed flash videos in your post.  May require tweaking if using a non-standard URL root.

It&#8217;s as simple as this:

&#60;macro:flash&#62;/assets/2007/8/13/party.flv&#60;/macro:flash&#62;

Or, you can make it complicated:

&#60;macro:flash width="640" height="480"&#62;/assets/2007/8/13/party.flv&#60;/macro:flash&#62;

Which ends up like this:

Installation
Install it from your mephisto directory:

./script/plugin install -x https://modzer0.cs.uaf.edu/repos/hank/code/rails/mephisto/filtered_column_flash_video

Voila! Firebreathing!
]]></description>
			<content:encoded><![CDATA[<p>So I made this awesome filter for Mephisto that allows you to easily embed flash videos in your post.  May require tweaking if using a non-standard URL root.</p>
<p><embed src="/flash_player/flvplayer.swf" width="400" height="400" type="application/x-shockwave-flash"    pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="file=/assets/2007/8/13/party.flv&#038;displayheight=400&#038;displaywidth=400"/></p>
<p>It&#8217;s as simple as this:</p>
<pre><code>
&lt;macro:flash&gt;/assets/2007/8/13/party.flv&lt;/macro:flash&gt;
</code></pre>
<p>Or, you can make it complicated:</p>
<pre><code>
&lt;macro:flash width="640" height="480"&gt;/assets/2007/8/13/party.flv&lt;/macro:flash&gt;
</code></pre>
<p>Which ends up like this:<br />
<embed src="/flash_player/flvplayer.swf" width="640" height="480" type="application/x-shockwave-flash"    pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="file=/assets/2007/8/13/party.flv&#038;displayheight=480&#038;displaywidth=640"/></p>
<h1>Installation</h1>
<p>Install it from your mephisto directory:</p>
<pre><code>
./script/plugin install -x https://modzer0.cs.uaf.edu/repos/hank/code/rails/mephisto/filtered_column_flash_video
</code></pre>
<p><strong>Voila!</strong> Firebreathing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2007/08/13/flash-video-player-for-mephisto/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mephisto Post Pinging Improvement</title>
		<link>http://www.ralree.com/2007/08/11/mephisto-post-pinging-improvement/</link>
		<comments>http://www.ralree.com/2007/08/11/mephisto-post-pinging-improvement/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 15:47:00 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2007/10/27/mephisto-post-pinging-improvement</guid>
		<description><![CDATA[So, the post pinger plugin was pretty awesome, but it was pinging RubyCorner and Rubylicious when it shouldn’t have.  I made it tag-based so it checks a category of feed URL and decides whether the tag matches the category.  Right now, I’ve only implemented it for the ruby tag since that’s all I [...]]]></description>
			<content:encoded><![CDATA[<p>So, the <a href="http://hasno.info/2006/12/24/feedreader-and-post-pinger-updates">post pinger plugin</a> was pretty awesome, but it was pinging <a href="http://rubycorner.com/">RubyCorner</a> and <a href="http://rubylicio.us/">Rubylicious</a> when it shouldn’t have.  I made it tag-based so it checks a category of feed URL and decides whether the tag matches the category.  Right now, I’ve only implemented it for the <strong>ruby</strong> tag since that’s all I should need for these two services.</p>
<div class="CodeRay">
<div class="code">
<pre><code>
<span class="co">ArticlePingObserver</span>::<span class="co">SERVICES</span> = [
  { <span class="sy">:url</span> =&gt; <span class="s"><span class="dl">"</span><span class="k">http://rpc.pingomatic.com/</span><span class="dl">"</span></span>, <span class="sy">:type</span> =&gt; <span class="sy">:xmlrpc</span> },
  { <span class="sy">:url</span> =&gt; <span class="s"><span class="dl">"</span><span class="k">http://rpc.weblogs.com/pingSiteForm</span><span class="dl">"</span></span>, <span class="sy">:type</span> =&gt; <span class="sy">:rest</span> },
  { <span class="sy">:url</span> =&gt; <span class="s"><span class="dl">"</span><span class="k">http://pingomatic.com/ping/</span><span class="dl">"</span></span>, <span class="sy">:type</span> =&gt; <span class="sy">:weblogs_get</span>, <span class="sy">:extras</span> =&gt; [ <span class="s"><span class="dl">"</span><span class="k">chk_weblogscom=on&amp;chk_blogs=on&amp;chk_technorati=on&amp;chk_feedburner=on&amp;chk_syndic8=on&amp;chk_newsgator=on&amp;chk_feedster=on&amp;chk_myyahoo=on&amp;chk_pubsubcom=on&amp;chk_blogdigger=on&amp;chk_blogrolling=on&amp;chk_blogstreet=on&amp;chk_moreover=on&amp;chk_weblogalot=on&amp;chk_icerocket=on&amp;chk_newsisfree=on&amp;chk_topicexchange=on</span><span class="dl">"</span></span> ] },
  { <span class="sy">:url</span> =&gt; <span class="s"><span class="dl">"</span><span class="k">http://rpc.technorati.com/rpc/ping</span><span class="dl">"</span></span>, <span class="sy">:type</span> =&gt; <span class="sy">:xmlrpc</span> },
  { <span class="sy">:url</span> =&gt; <span class="s"><span class="dl">"</span><span class="k">http://ping.syndic8.com/xmlrpc.php</span><span class="dl">"</span></span>, <span class="sy">:type</span> =&gt; <span class="sy">:xmlrpc</span> },
  { <span class="sy">:url</span> =&gt; <span class="s"><span class="dl">"</span><span class="k">http://rubycorner.com/ping/xmlrpc/e49ac4608c88606f75486e6da3da34de6527622a</span><span class="dl">"</span></span>, <span class="sy">:type</span> =&gt; <span class="sy">:xmlrpc</span>, <span class="sy">:category</span> =&gt; <span class="s"><span class="dl">'</span><span class="k">ruby</span><span class="dl">'</span></span> },
  { <span class="sy">:url</span> =&gt; <span class="s"><span class="dl">"</span><span class="k">http://rubylicio.us/ping/xmlrpc</span><span class="dl">"</span></span>, <span class="sy">:type</span> =&gt; <span class="sy">:xmlrpc</span>, <span class="sy">:category</span> =&gt; <span class="s"><span class="dl">'</span><span class="k">ruby</span><span class="dl">'</span></span> }
}
</code></pre>
</div>
</div>
<p>There’s the array of services.  Now the magic:</p>
<div class="CodeRay">
<div class="code">
<pre><code>
    <span class="co">SERVICES</span>.each <span class="r">do</span> |sinfo|
      <span class="r">if</span> sinfo[<span class="sy">:category</span>] == <span class="s"><span class="dl">"</span><span class="k">ruby</span><span class="dl">"</span></span>
        <span class="r">next</span> <span class="r">unless</span> article.tags(<span class="pc">true</span>).collect{|t|t[<span class="sy">:name</span>]}.join(<span class="s"><span class="dl">"</span><span class="k"> </span><span class="dl">"</span></span>) =~ <span class="rx"><span class="dl">/</span><span class="ch">\b</span><span class="k">ruby</span><span class="ch">\b</span><span class="dl">/</span></span>
      <span class="r">end</span></code></pre>
</div>
</div>
<p>Very simple.  It should work on the basis of the service categories and the tags.  We’ll see.  Hopefully this post will end up on RubyCorner.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2007/08/11/mephisto-post-pinging-improvement/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Test of XMLRPC in Mephisto</title>
		<link>http://www.ralree.com/2007/04/24/test-of-xmlrpc-in-mephisto/</link>
		<comments>http://www.ralree.com/2007/04/24/test-of-xmlrpc-in-mephisto/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 06:57:47 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[xmlrpc]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2007/10/13/test-of-xmlrpc-in-mephisto</guid>
		<description><![CDATA[This is a simple test of flog with Mephisto.
]]></description>
			<content:encoded><![CDATA[<p>This is a simple test of flog with Mephisto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2007/04/24/test-of-xmlrpc-in-mephisto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mephisto Comment Notification Mod</title>
		<link>http://www.ralree.com/2007/03/19/mephisto-comment-notification-mod/</link>
		<comments>http://www.ralree.com/2007/03/19/mephisto-comment-notification-mod/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 19:35:00 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2007/10/13/mephisto-comment-notification-mod</guid>
		<description><![CDATA[I wanted to be able to click a link in my email to see the comment it talked about.  So, I modified Luke Redpath&#8217;s Comment Notification Plugin to give that to me.  First, I had to do some script/console action:

&#62;&#62; s = Site.find_first
=&#62; #&#60;Site:0xb747e014 @attributes={"current_theme_path"=&#62;"wibbish-mephisto",#...
#...
&#62;&#62; s.host='www.ralree.info'
=&#62; "www.ralree.info"
&#62;&#62; s.save
=&#62; true
&#62;&#62; quit

Next, I did a [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to be able to click a link in my email to see the comment it talked about.  So, I modified <a href="http://hasno.info/2006/11/11/mephisto-plugins">Luke Redpath&#8217;s Comment Notification Plugin</a> to give that to me.  First, I had to do some <code>script/console</code> action:</p>
<pre><code>
&gt;&gt; s = Site.find_first
=&gt; #&lt;Site:0xb747e014 @attributes={"current_theme_path"=&gt;"wibbish-mephisto",#...
#...
&gt;&gt; s.host='www.ralree.info'
=&gt; "www.ralree.info"
&gt;&gt; s.save
=&gt; true
&gt;&gt; quit
</code></pre>
<p>Next, I did a small model modification:</p>
<pre><code>
# app/models/article.rb, in the public section
  def full_external_link
    ["http://", site.host, full_permalink].join("")
  end
</code></pre>
<p>And a slight test:</p>
<pre><code>
Loading production environment.
&gt;&gt; Article.find_first.full_external_link
=&gt; "http://www.ralree.info/2006/5/21/first-post-what-to-say"
</code></pre>
<p><strong>Perfect!</strong></p>
<p>Then, I just modified the view for the email a bit:</p>
<pre><code>
# vendor/plugins/mephisto_comment_notification/lib/views/
# comment_notifier/comment_notification.rhtml
A new comment has been posted on your blog for the article '&lt;%= @comment.article.title %&gt;' by &lt;%= @comment.author %&gt; (&lt;%= @comment.author_email %&gt;):
&lt;%= @comment.article.full_external_link %&gt;

The commenter IP address is &lt;%= @comment.author_ip %&gt;.

Here is the comment that was posted:

"&lt;%= @comment.body %&gt;"

This notification was sent using the Mephisto Comment notification plugin by Luke Redpath.

http://opensource.agileevolved.com/svn/root/rails_plugins/mephisto_comment_notification/trunk

Modified awesomely by Erik Gregg (http://www.ralree.info)
</code></pre>
<p>And it&#8217;s magic!  It totally works!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2007/03/19/mephisto-comment-notification-mod/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing Mephisto Post Pinger Plugin</title>
		<link>http://www.ralree.com/2007/03/02/fixing-mephisto-post-pinger-plugin/</link>
		<comments>http://www.ralree.com/2007/03/02/fixing-mephisto-post-pinger-plugin/#comments</comments>
		<pubDate>Fri, 02 Mar 2007 17:56:00 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2007/10/13/fixing-mephisto-post-pinger-plugin</guid>
		<description><![CDATA[I wanted some places to get pinged when I posted.  I used the mephisto_post_ping plugin, I simply changed the directory structure and class definition around:
Directory Structure

./lib/article_ping_observer.rb
./lib/mephisto_plugins/post_ping.rb
./lib/config.rb
./README
./init.rb

File Changes
init.rb



# $Id$
require 'mephisto_plugins/post_ping'
ActiveRecord::Base.observers &#60;&#60; :article_ping_observer



plugin.rb



module Mephisto
  module Plugins
    class PostPinger &#60; Mephisto::Plugin
      author 'Mark Guzman'
     [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted some places to get pinged when I posted.  I used the <a href="http://hasno.info/2006/11/11/mephisto-plugins"><code>mephisto_post_ping</code></a> plugin, I simply changed the directory structure and class definition around:</p>
<h2>Directory Structure</h2>
<pre><code>
./lib/article_ping_observer.rb
./lib/mephisto_plugins/post_ping.rb
./lib/config.rb
./README
./init.rb
</code></pre>
<h2>File Changes</h2>
<h3>init.rb</h3>
<div class="CodeRay">
<div class="code">
<pre><code>
<span class="c"># $Id$</span>
require <span class="s"><span class="dl">'</span><span class="k">mephisto_plugins/post_ping</span><span class="dl">'</span></span>
<span class="co">ActiveRecord</span>::<span class="co">Base</span>.observers &lt;&lt; <span class="sy">:article_ping_observer</span>
</code></pre>
</div>
</div>
<h3>plugin.rb</h3>
<div class="CodeRay">
<div class="code">
<pre><code>
<span class="r">module</span> <span class="cl">Mephisto</span>
  <span class="r">module</span> <span class="cl">Plugins</span>
    <span class="r">class</span> <span class="cl">PostPinger</span> &lt; <span class="co">Mephisto</span>::<span class="co">Plugin</span>
      author <span class="s"><span class="dl">'</span><span class="k">Mark Guzman</span><span class="dl">'</span></span>
      version <span class="s"><span class="dl">'</span><span class="k">$Rev: 82 $</span><span class="dl">'</span></span>.gsub( <span class="s"><span class="dl">&quot;</span><span class="k">Rev: </span><span class="dl">&quot;</span></span>, <span class="s"><span class="dl">&quot;</span><span class="dl">&quot;</span></span> )
      notes <span class="s"><span class="dl">&quot;</span><span class="k">Send Weblogs Pings when articles are published</span><span class="dl">&quot;</span></span>
      homepage <span class="s"><span class="dl">&quot;</span><span class="k">http://hasno.info/2006/11/11/mephisto-plugins</span><span class="dl">&quot;</span></span>

      <span class="r">class</span> <span class="cl">Schema</span> &lt; <span class="co">ActiveRecord</span>::<span class="co">Migration</span>
        <span class="r">def</span> <span class="pc">self</span>.install
        <span class="r">end</span>

        <span class="r">def</span> <span class="pc">self</span>.uninstall
        <span class="r">end</span>
      <span class="r">end</span>

    <span class="r">end</span>
  <span class="r">end</span>
<span class="r">end</span>
</code></pre>
</div>
</div>
<p>That&#8217;s all I changed.  This is my first post since the change, so I&#8217;ll see if it works.  If not, at least Mephisto doesn&#8217;t blow up on startup.</p>
<h2>Results</h2>
<p>Well,</p>
<pre><code>
unable to send xmlrpc weblog ping -&gt; http://www.ralree.info
unable to send xmlrpc weblog ping -&gt; http://www.ralree.info
unable to send xmlrpc weblog ping -&gt; http://www.ralree.info
unable to send xmlrpc weblog ping -&gt; http://www.ralree.info
</code></pre>
<p>Seems like a couple might have worked.  I&#8217;ll keep working on it.  But, at least it gets called.</p>
<p><img src="http://ralree.info/assets/2007/3/2/pinger_plugin.png" alt="RubyCorner worked!"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2007/03/02/fixing-mephisto-post-pinger-plugin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to make a Mephisto Plugin</title>
		<link>http://www.ralree.com/2007/02/26/how-to-make-a-mephisto-plugin/</link>
		<comments>http://www.ralree.com/2007/02/26/how-to-make-a-mephisto-plugin/#comments</comments>
		<pubDate>Mon, 26 Feb 2007 00:29:00 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[mephisto]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.ralree.info/2007/10/13/how-to-make-a-mephisto-plugin</guid>
		<description><![CDATA[So, I figured I might as well provide a quick tutorial on how to make Mephisto Plugins currently.  Many of the old plugins are broken, so there needs to be a resurgence of plugin development.  Here&#8217;s the basic structure of the Tag Cloud plugin:

mephisto_tag_cloud
 - init.rb README
 - lib
   - mephisto_plugins
 [...]]]></description>
			<content:encoded><![CDATA[<p>So, I figured I might as well provide a quick tutorial on how to make Mephisto Plugins currently.  Many of the old plugins are broken, so there needs to be a resurgence of plugin development.  Here&#8217;s the basic structure of the <a href="/2007/2/25/mephisto-tag-cloud-plugin">Tag Cloud plugin</a>:</p>
<pre><code>
mephisto_tag_cloud
 - init.rb README
 - lib
   - mephisto_plugins
     - tag_cloud.rb
</code></pre>
<p>As you can see, the structure is very simple.  Here&#8217;s my code for <strong>init.rb</strong></p>
<div class="CodeRay">
<div class="code">
<pre><code>
<span class="co">Liquid</span>::<span class="co">Template</span>.register_filter(<span class="co">MephistoPlugins</span>::<span class="co">TagCloud</span>)
</code></pre>
</div>
</div>
<p>That&#8217;s it!  No <code>require</code> or anything!  Next, I edited <strong>lib/mephisto_plugins/tag_cloud.rb</strong>:</p>
<div class="CodeRay">
<div class="code">
<pre><code>
<span class="r">module</span> <span class="cl">MephistoPlugins</span>
  <span class="r">module</span> <span class="cl">TagCloud</span>
    <span class="r">def</span> <span class="fu">size_tag</span>(tag, largest = <span class="i">2</span>)
      size = (<span class="co">Tag</span>.find_by_name(tag).taggings(<span class="pc">true</span>).length + <span class="i">18</span>).to_f / <span class="i">18</span>
      size = largest <span class="r">if</span> size &gt; largest
      <span class="s"><span class="dl">&quot;</span><span class="k">&lt;span style='font-size: </span><span class="il"><span class="dl">#{</span>size<span class="dl">}</span></span><span class="k">em'&gt;&lt;a href='/tags/</span><span class="il"><span class="dl">#{</span>tag<span class="dl">}</span></span><span class="k">'&gt;</span><span class="il"><span class="dl">#{</span>tag<span class="dl">}</span></span><span class="k">&lt;/a&gt;&lt;/span&gt;</span><span class="dl">&quot;</span></span>
    <span class="r">end</span>
  <span class="r">end</span>
<span class="r">end</span>
</code></pre>
</div>
</div>
<p>Holy crap that barely any code at all!  So, the moral of the story is that it&#8217;s very easy to make the plugins once you figure out what to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ralree.com/2007/02/26/how-to-make-a-mephisto-plugin/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.461 seconds -->
