<?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>Matthew Turland &#187; Phergie</title>
	<atom:link href="http://matthewturland.com/tag/phergie/feed/" rel="self" type="application/rss+xml" />
	<link>http://matthewturland.com</link>
	<description></description>
	<lastBuildDate>Sun, 18 Jul 2010 14:29:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Where I’ve Been</title>
		<link>http://matthewturland.com/2010/03/03/where-ive-been/</link>
		<comments>http://matthewturland.com/2010/03/03/where-ive-been/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 03:35:39 +0000</pubDate>
		<dc:creator>Matthew Turland</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Phergie]]></category>

		<guid isPermaLink="false">http://matthewturland.com/?p=230</guid>
		<description><![CDATA[Things have been rather busy in my life recently, even though this blog doesn&#8217;t really reflect that. I thought I&#8217;d take a short post to share with any readers who may have wondered where I&#8217;ve been the past month or so. I changed jobs a few weeks ago and the new one has kept me [...]]]></description>
			<content:encoded><![CDATA[<p>Things have been rather busy in my life recently, even though this blog doesn&#8217;t really reflect that. I thought I&#8217;d take a short post to share with any readers who may have wondered where I&#8217;ve been the past month or so.</p>
<p>I <a title="Matthew Turland » Blog Archive » So Long, Blue Parabola" href="http://matthewturland.com/2010/01/21/so-long-blue-parabola/">changed jobs</a> a few weeks ago and the new one has kept me fairly busy learning processes, writing proposals, and beginning to work on projects. I&#8217;m getting acclimated to actively using <a title="Zend Framework" href="http://framework.zend.com">Zend Framework</a> again, which I&#8217;m enjoying.</p>
<p>I also recently launched <a title="Welcome to Phergie 2.0! — Phergie" href="http://phergie.org/2010/01/31/welcome-to-phergie-2/">Phergie 2.0</a>, which was very well-received. Moving the project over to <a title="elazar's phergie at master - GitHub" href="http://github.com/elazar/phergie/">GitHub</a>, launching the <a title="Phergie — An IRC Bot for PHP 5" href="http://phergie.org/">new project web site</a>, and helping with the first round of bug fixes has kept me busy.</p>
<p>The ball has started rolling on getting my book published again. The ISBN has been obtained, the last round of edits is happening now, and the digital edition should be available for sale before the <a title="PHP Conference — Chicago IL May 18-22 2010 — PHP, MySQL, Linux, Windows, Drupal, WordPress" href="http://tek.phparch.com/">TEK-X</a> conference in May. I&#8217;m hoping to have a few dead tree copies to distribute at the conference.</p>
<p>Speaking of which, I&#8217;ll be <a title="Matthew Turland » Blog Archive » Speaking at tek-X" href="http://matthewturland.com/2010/01/06/speaking-at-tek-x/">speaking at TEK-X</a>, so I&#8217;ve also been working on preparing <a title="Talks | PHP Conference Chicago May 2010 - PHP, MySQL, Linux, Windows, Drupal, WordPress - TEK·X" href="http://tek.phparch.com/talks/#TEKXS11">my presentation</a> on new SPL features in PHP 5.3. I&#8217;m planning on putting my presentation content into (fairly long and embellished) blog post form, so keep an eye out for that.</p>
<p>I&#8217;ve been under the weather with a cold over the past week. I&#8217;ll try to find more time to blog once I&#8217;ve recovered and things have settled down a bit.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewturland.com/2010/03/03/where-ive-been/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Environmental Awareness Quickie</title>
		<link>http://matthewturland.com/2008/07/26/environmental-awareness-quickie/</link>
		<comments>http://matthewturland.com/2008/07/26/environmental-awareness-quickie/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 20:13:48 +0000</pubDate>
		<dc:creator>Matthew Turland</dc:creator>
				<category><![CDATA[Phergie]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I ran into an instance recently where someone was trying to run Phergie in an environment where the exec function was disabled. This causes a warning in the Quit plugin, which uses exec to automatically detect the full path to the PHP CLI binary on non-Windows systems that it will later use that path to [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into an instance recently where someone was trying to run <a href="http://phergie.org" title="Phergie - Trac">Phergie</a> in an environment where the <a href="http://us.php.net/manual/en/function.exec.php" title="PHP: exec - Manual">exec function</a> was disabled. This causes a warning in the <a href="http://trac2.assembla.com/phergie/browser/trunk/Phergie/Plugin/Quit.php" title="/trunk/Phergie/Plugin/Quit.php - Phergie - Trac">Quit plugin</a>, which uses exec to automatically detect the full path to the PHP CLI binary on non-Windows systems that it will later use that path to initiate a new PHP CLI process to &#8220;restart&#8221; the bot.</p>
<p>I realized when I started digging into this issue that I wasn&#8217;t aware of a way to check the PHP configuration to see whether or not a function was disabled, save for using the <a href="http://php.net/ini_get" title="PHP: ini_get - Manual">ini_get</a> function to get the value of the <a href="http://www.php.net/manual/en/features.safe-mode.php#ini.disable-functions" title="PHP: Safe Model - Manual">disable_functions</a> setting and parse it manually.</p>
<p>Thanks to <a href="http://schlueters.de/blog" title="Johannes Schlüter">Johannes Schlüter</a> for cluing me into the fact that the <a href="http://us3.php.net/manual/en/language.oop5.reflection.php#language.oop5.reflection.reflectionfunction" title="PHP: Reflection - Manual">SPL ReflectionFunction class</a> has an isDisabled method, which is exactly what I was looking for. Unfortunately, there&#8217;s no equivalent method in the <a href="http://us3.php.net/manual/en/language.oop5.reflection.php#language.oop5.reflection.reflectionclass" title="PHP: Reflection">SPL ReflectionClass class</a> for the <a href="http://www.php.net/manual/en/features.safe-mode.php#ini.disable-classes" title="PHP: Safe Mode - Manual">disable_classes</a> setting. Thankfully, though, I haven&#8217;t run into a use case for that yet.</p>
<p><strong>Update</strong>: Apparently I inspired Johannes to write <a href="http://schlueters.de/~johannes/php/reflectionclass_isdisabled.diff">a patch to add ReflectionClass::isDisabled()</a>. It most likely won&#8217;t make it in until 5.3.1, but at least the patch is there if you need the feature. Thanks Johannes!</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewturland.com/2008/07/26/environmental-awareness-quickie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Phergie on C7Y Yet Again</title>
		<link>http://matthewturland.com/2008/04/27/phergie-on-c7y-yet-again/</link>
		<comments>http://matthewturland.com/2008/04/27/phergie-on-c7y-yet-again/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 14:30:09 +0000</pubDate>
		<dc:creator>Matthew Turland</dc:creator>
				<category><![CDATA[Phergie]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Podcasts]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[The guys at C7Y really seem to like Phergie. The articles about the Phergie project on C7Y got a brief shout-out in the P3 Podcast for 4/17/08. Thanks for the plug guys! The rest of the podcast was really awesome too. I definitely recommend checking it out.]]></description>
			<content:encoded><![CDATA[<p>The guys at C7Y really seem to like <a title="Phergie" href="http://phergie.org">Phergie</a>. The articles about the Phergie project on C7Y got a brief shout-out in the <a title="Welcome&mdash; php|architect's C7Y, The PHP Community Website" href="http://c7y.phparch.com/c/entry/1/p3,20080417">P3 Podcast</a> for 4/17/08. Thanks for the plug guys! The rest of the podcast was really awesome too. I definitely recommend checking it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewturland.com/2008/04/27/phergie-on-c7y-yet-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Phergie on C7Y Again</title>
		<link>http://matthewturland.com/2008/04/17/phergie-on-c7y-again/</link>
		<comments>http://matthewturland.com/2008/04/17/phergie-on-c7y-again/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 15:42:18 +0000</pubDate>
		<dc:creator>Matthew Turland</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Phergie]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Part two of the two-part article I wrote for C7Y on experiences gleaned from developing the PHP 5 IRC bot Phergie has been posted. Feel free to leave comments in the article&#8217;s forum.]]></description>
			<content:encoded><![CDATA[<p><a title="Welcome&mdash; php|architect's C7Y, The PHP Community Website" href="http://c7y.phparch.com/c/entry/1/art,irc_bots_in_php2">Part two</a> of the two-part article I wrote for <a title="Welcome&mdash; php|architect's C7Y, The PHP Community Website" href="http://c7y.phparch.com">C7Y</a> on experiences gleaned from developing the PHP 5 IRC bot <a title="Phergie - Trac" href="http://phergie.org/">Phergie</a> has been posted. Feel free to leave comments in <a title="c7y - View topic - Reflections on Designing an IRC Bot in PHP, Part 2" href="http://c7y-bb.phparchitect.com//viewtopic.php?f=6&amp;t=1215">the article&#8217;s forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewturland.com/2008/04/17/phergie-on-c7y-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phergie on C7Y</title>
		<link>http://matthewturland.com/2008/04/08/phergie-on-c7y/</link>
		<comments>http://matthewturland.com/2008/04/08/phergie-on-c7y/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 18:30:38 +0000</pubDate>
		<dc:creator>Matthew Turland</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Phergie]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#8217;ve written a two-part article for C7Y on experiences gleaned from developing the PHP 5 IRC bot Phergie. You can check out the C7Y web site for part one and expect part two to appear there next week. Feel free to leave comments in the article&#8217;s forum.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve written a two-part article for C7Y on experiences gleaned from developing the PHP 5 IRC bot <a title="Phergie - Trac" href="http://phergie.org">Phergie</a>. You can check out the <a title="Welcome - php|architect's C7Y, The PHP Community Website" href="http://c7y.phparch.com/">C7Y web site</a> for <a title="Welcome - php|architect's C7Y, The PHP Community Website" href="http://c7y.phparch.com/c/entry/1/art,irc_bots_in_php">part one</a> and expect part two to appear there next week. Feel free to leave comments in <a title="http://c7y-bb.phparchitect.com/viewtopic.php?f=6&amp;t=1211" href="http://c7y-bb.phparchitect.com//viewtopic.php?f=6&amp;t=1211">the article&#8217;s forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewturland.com/2008/04/08/phergie-on-c7y/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Meet Phergie</title>
		<link>http://matthewturland.com/2008/02/21/meet-phergie/</link>
		<comments>http://matthewturland.com/2008/02/21/meet-phergie/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 02:36:36 +0000</pubDate>
		<dc:creator>Matthew Turland</dc:creator>
				<category><![CDATA[Phergie]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ishouldbecoding.com/2008/02/20/meet-phergie/</guid>
		<description><![CDATA[At one point not too long ago, I told Ben Ramsey about an idea I had to write a PECL extension that wrapped the libircclient library in an OO API. Serving as a good catalyst to get me working on the project, he registered it as a SourceForge project and got a good foundation checked [...]]]></description>
			<content:encoded><![CDATA[<p>At one point not too long ago, I told <a href="http://benramsey.com" title="Ben Ramsey">Ben Ramsey</a> about an idea I had to write a <a href="http://pecl.php.net"><acronym title="PHP Extension Community Library">PECL</acronym></a> extension that wrapped the <a href="http://libircclient.sourceforge.net" title="libircclient - a IRC library to create IRC clients">libircclient</a> library in an <acronym title="object-oriented">OO</acronym> <acronym title="Application Programming Interface">API</acronym>. Serving as a good catalyst to get me working on the project, he registered it as a <a href="http://sourceforge.net/projects/ircphpext" title="SourceForge.net: IRC PHP Extension">SourceForge project</a> and got a good foundation checked into SVN. I&#8217;ve managed to make a few small contributions here and there to the code base and ideas for the userland API. Still having limited knowledge of C and the PHP engine, I thought my efforts might be better put toward a project that could use the extension once it was released.</p>
<p>So I decided to try my hand at writing an IRC bot in PHP. Most tutorials I&#8217;d found on the subject barely covered the tip of the iceberg, only showing what anyone with a copy of the PHP manual and the IRC RFC could figure out in the time it took to read the tutorial. Additionally, I could only find two existing packages that were relatively well-developed and outside of an alpha state.</p>
<p>The first was <a href="http://pear.php.net/package/Net_SmartIRC" title="PEAR :: Package :: Net_SmartIRC">PEAR::Net_SmartIRC</a>. It is PHP 4-based (not good considering the upcoming PHP 4 EOL), hasn&#8217;t seen active development in three years, and I don&#8217;t particularly care for the priority system it uses to order event handler execution. The second was <a href="http://phpbots.org" title="PHP-IRC, Modular PHP5 based IRC Bot">PHP-IRC</a>. It is PHP 5-based, has an OO API, and is more full-featured. However, it doesn&#8217;t appear to have seen active development in two years, has no online documentation viewable via a browser, and has a rather paltry plugin selection.</p>
<p>I had toyed with some previous iterations of Phergie, some Python-based and later some PHP-based, before I finally got an API design I was happy with. At the suggestion of a fellow IRC mate on Freenode, I registered the project on <a href="http://assembla.com" title="Accelerating Software Development">Assembla</a> so that it now has a <a href="http://trac2.assembla.com/phergie" title="Phergie - Trac">Trac site</a> as well as an <a href="http://svn2.assembla.com/svn/phergie/">SVN repository</a>. It&#8217;s been through a few releases already and, though there are still <a href="http://trac2.assembla.com/phergie/report/1" title="Active Tickets - Phergie - Trac">plenty of open tickets</a> for improvements and additions, it&#8217;s becoming a fairly well-rounded package. When the PECL extension is released, I will be able to write a driver for Phergie to wrap it and provide an alternative driver to the single streams-based driver that is currently available.</p>
<p>I&#8217;m considering writing an article on my experiences, one that I could potentially pitch to several sources for publishing, either online or in print. It&#8217;s more of a recreational topic than a professional one obviously, given the nature of the usage that IRC sees these days, but I still think it&#8217;s an interesting topic nonetheless and can actually encompass more &#8220;enterprise-level&#8221; solutions than one might realize. So, stay tuned.</p>
<p><b>Update</b>: I completely forgot to throw a shout out to <a href="http://seld.be/notes" alt="Blog - Seld.be">Jordi Boggiano</a> (Seldaek to those of you on <a href="http://freenode.net" alt="Freenode IRC Network">Freenode</a>). Without him, most of the plugins that the project now sports would never have been written. I also neglected to mention that we have an IRC channel on Freenode, #phergie. Feel free to join in on project-related discussions there. Chalk a few up to me being silly enough to trying posting while being sick as a dog.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewturland.com/2008/02/21/meet-phergie/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
