<?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>Jason Irwin dot Net &#187; Plugins</title>
	<atom:link href="http://j2fi.net/category/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://j2fi.net</link>
	<description>Battling Imaginary Windmills in Japan</description>
	<lastBuildDate>Wed, 28 Jul 2010 05:11:10 +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>New WordPress Plugin &amp; Name Contest!</title>
		<link>http://j2fi.net/2009/08/16/new-wordpress-plugin-name-contest/</link>
		<comments>http://j2fi.net/2009/08/16/new-wordpress-plugin-name-contest/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 09:00:09 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://j2fi.net/?p=1378</guid>
		<description><![CDATA[With the recent number of Fail Whale&#8217;s on Twitter recently, there have been an increasing number of people that are looking to archive their Tweets elsewhere. Aside from the obvious benefit of keeping our messages regardless of what happens to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://j2fi.net/wp-content/uploads/2009/08/twit_page.png"><img class="alignleft size-medium wp-image-1379" style="margin-left: 3px;margin-right: 3px;  float: left; padding: 4px; margin: 0 7px 2px 0;" src="http://j2fi.net/wp-content/uploads/2009/08/twit_page-300x175.png" alt="Twit Page" width="240" height="140" /></a>With the recent number of Fail Whale&#8217;s on Twitter recently, there have been an increasing number of people that are looking to archive their Tweets elsewhere. Aside from the obvious benefit of keeping our messages regardless of what happens to this online service in the future, we can easily make every one of our Tweets easily indexable, searchable, and available via Google, Bing, or any other search tool one might use.  Unfortunately, there haven&#8217;t been very many (easy) ways for us to do this &#8230; until today.</p>
<p>Introducing my latest WordPress plugin, {Insert Name Here}!</p>
<p>Ah, yes &#8230; there&#8217;s no name for it.  That&#8217;s where I&#8217;d like to ask for your help.</p>
<p>You can see this plugin in action on the <a title="Jason Irwin dot Net | Tweets" href="http://j2fi.net/tweets/" target="_self">Tweets page of this site</a>.  It&#8217;s still a work in progress, so you may see it in all sorts of states before the official plugin release in the next few days.  Here are the features that will be functional in the 0.1 release of the plugin:</p>
<ul>
<li>displays X number of Tweets per page for an account</li>
<li>copy every Tweet through API to local database (caching &amp; permanence)</li>
<li>uses your theme&#8217;s style sheets to match visual style</li>
<li>shows personal avatar, Tweet count, followers &amp; following numbers</li>
<li>easy integration into any PHP-based site (especially WordPress)</li>
</ul>
<p>Future releases might include some great functions and features, but I can&#8217;t really think of extra features could be built into the plugin without pulling in other people&#8217;s Tweets for nested conversations.  If you have any ideas or requests, I&#8217;d love to hear them.</p>
<p>The person that suggests the best name will have their site added to the credits of the plugin. Sure, it&#8217;s nothing fancy, but it might result in some more traffic in the long run <img src='http://j2fi.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2009/08/16/new-wordpress-plugin-name-contest/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Did You Survive the BlogRush Trim?</title>
		<link>http://j2fi.net/2007/10/23/did-you-survive-the-blogrush-trim/</link>
		<comments>http://j2fi.net/2007/10/23/did-you-survive-the-blogrush-trim/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 15:00:18 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://j2fi.net/2007/10/23/did-you-survive-the-blogrush-trim/</guid>
		<description><![CDATA[Yesterday I received an email from BlogRush telling me that they had just trimmed 10,000 websites and that j2fi.net had passed their &#8220;strict Quality Guidelines and criteria&#8221;.  Thanks &#8230; I think. I know this site can pass strict quality guidelines [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://j2fi.net/wp-content/uploads/2007/10/water_trickle.jpg" title="Water Trickle"><img src="http://j2fi.net/wp-content/uploads/2007/10/water_trickle.jpg" alt="Water Trickle" align="left" height="244" hspace="5" width="171" /></a>Yesterday I received an email from BlogRush telling me that they had just trimmed 10,000 websites and that j2fi.net had passed their &#8220;strict Quality Guidelines and criteria&#8221;.  Thanks &#8230; I think.</p>
<p>I know this site can pass strict quality guidelines for most online services because I keep it up to date, and it&#8217;s not completely full of garbage (though some posts do leave much to be desired).  They really don&#8217;t need to waste our time and bandwidth by sending an email telling us that we&#8217;ve been approved to use their service or not.  Perhaps I&#8217;m being a bit rough on them, but for all the hype and big-name bloggers, BlogRush has been a massive disappointment.  While I don&#8217;t expect a huge increase in traffic, it&#8217;d be nice if I could get at least one hit a week with these guys.  Heck, I attract more traffic with PayPerPost advertisers checking out my site and the posts they paid for than I get from BlogRush, and their widget is on tens of thousands of sites.</p>
<p>I have given these people almost a full month of prime real-estate on my little website, and they&#8217;ve been given well over 40,000 impressions.  All in all, I&#8217;ve had 3 people come to this site through a BlogRush widget.  Forgive me if I&#8217;m not exactly impressed.</p>
<p>All that said, I&#8217;ve given these people a full month to prove their service to me.  If they cannot give me at least five more hits in the next 48 hours, then their widget comes off the site.  Eight hits per month shouldn&#8217;t be too much to ask for when giving away front-page real-estate.</p>
<p>Have you had any success with this service?  If so, what seems to work for you?  While I certainly aim to have decent subject titles, I will not change the way I write my blogs for a traffic service.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2007/10/23/did-you-survive-the-blogrush-trim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My New Plugin Proves I Still Have Much to Learn About PHP and WordPress</title>
		<link>http://j2fi.net/2007/06/25/my-new-plugin-proves-i-still-have-much-to-learn-about-php-and-wordpress/</link>
		<comments>http://j2fi.net/2007/06/25/my-new-plugin-proves-i-still-have-much-to-learn-about-php-and-wordpress/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 07:00:34 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://j2fi.net/2007/06/25/my-new-plugin-proves-i-still-have-much-to-learn-about-php-and-wordpress/</guid>
		<description><![CDATA[So after several hours of coding, I managed to integrate Google Maps into my sidebar to display the locations of visitors to this site (seen in the sidebar above the SMS area).  In that time I was able to learn [...]]]></description>
			<content:encoded><![CDATA[<p>So after several hours of coding, I managed to integrate Google Maps into my sidebar to display the locations of visitors to this site (seen in the sidebar above the SMS area).  In that time I was able to learn how to build <a target="_blank" href="http://code.google.com/apis/kml/documentation/kml_tut.html" title="Google KML Samples">KML files</a>, integrate it into a <a target="_blank" href="http://www.google.com/apis/maps/documentation/" title="Google Maps API Documentation">Google API</a> class and all sort of neat tricks.  There are just a few little problems with the end result &#8230;</p>
<p>I can&#8217;t relelase it.</p>
<p>Well &#8230; that&#8217;s an incomplete statement.  I can&#8217;t release it without re-writing how it operates to eliminate it&#8217;s dependance on a particular init call.</p>
<p>It seems that in order to make this plugin work, I need to have my body tag look like this: &lt;body onload=&#8221;onLoad()&#8221;&gt;</p>
<p>While this isn&#8217;t a big thing, per se, I can&#8217;t expect users will want to open up their theme&#8217;s header.php file to update this tag accordingly.  I know that it&#8217;s possible to integrate Google Maps into sites without this, but I just haven&#8217;t discovered how.  Such is the price we pay for writing code in .NET for several years.</p>
<p>The primary reason I wanted to write a plugin like this was because I haven&#8217;t been happy with the visitor maps that have been available online.  They all want to call other sites and many of them are either quite slow to load or just plain suck.  By using Google Maps with a specific KML file, the appearance can be controlled and customized as a user sees fit.</p>
<p>One of the things I liked about the <a target="_blank" href="http://www.google.com/analytics/" title="Google Analytics">Google Analytics</a> reports was the Geomap Overlay.  However, after comparing data for a set period, <a target="_blank" href="http://j2fi.net/2007/05/13/analytics-vs-firestats-vs-raw-access-logs/" title="j2fi.net - Analytics vs Firestats vs Raw Access Logs">I was unable to validate the information shown</a>.  If I had this problem when creating reports at work, I would need to go line by line into the data and determine why my results were different.  While Google Analytics can make lots of data look pretty, it can&#8217;t give me the detail that I require (raw IP address logs) to be confident in the data.</p>
<p>Another benefit to pulling this functionality server-side is the potential linking it to <a target="_blank" href="http://firestats.cc/" title="FireStats Home">Omry Yadan&#8217;s FireStats</a>.  I&#8217;ve used this software for a while now and I really like the simplicity of the reporting, as well as the ability to filter the user agents and IP addresses that I feel are bots.  I&#8217;ve also found that this reporting tool comes the closest to the raw access logs provided by my web host.  I can only think of a few features I&#8217;d like to add to this excellent software, and this geomap overlay is one of them.  (The ability to have a custom name appear for known IP addresses would be nice, too).  Once I have the kinks worked out for the home screen, I can then work on integrating it with FireStats.</p>
<p>All this said, there are still a bunch of things that I would want to write into this GeoLocation plugin before releasing it to the public.  We&#8217;ll need a way to filter out IPs and user agents of bots, and I&#8217;d like to give visitors the option to see the map in a larger window (if they&#8217;re really curious about demographics).  Site owners should also have the option to display hit information if they want or not (it looks really bad on there, right now), as well as control the look of the pins.</p>
<p>I tend to have a habit of scope gallop when writing software that I will find personally useful, so hopefully I can make it useful for others, too.  Is this something that others would potentially want on their site?  Should I even worry about making this available or ensuring it will work on something other than WordPress 1.5 to 2.1.x ?</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2007/06/25/my-new-plugin-proves-i-still-have-much-to-learn-about-php-and-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Translating Images?  Whoops!</title>
		<link>http://j2fi.net/2007/06/05/translating-images-whoops/</link>
		<comments>http://j2fi.net/2007/06/05/translating-images-whoops/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 07:00:33 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://j2fi.net/2007/06/05/translating-images-whoops/</guid>
		<description><![CDATA[I&#8217;d like to apologize to everyone who tried to view some of my images or download files from non-English translations of this site, as it appears this functionality has been failing for a little bit of time.  Seeing as how [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to apologize to everyone who tried to view some of my images or download files from non-English translations of this site, as it appears this functionality has been failing for a little bit of time.  Seeing as how more than 70% of my site traffic is not in English, I should have noticed this a few months ago, so I can&#8217;t really give any excuses for my lapse in site management.</p>
<p>All the language translation done on this site is by Altavista&#8217;s BabelFish engine.  When you click on one of the flags in the upper portion of the side-bar, you&#8217;re actually making use of a great little WordPress plugin written by Davide Pozza.  I&#8217;ve been using his <a target="_blank" href="http://www.nothing2hide.net/blog/wp-plugins/wordpress-global-translator-plugin/" title="Nothing 2 Hide - Global Translator">Global Translator </a>plugin since January and it&#8217;s been a great boom for the reach of this website.  What I find absolutely incredible is the number of visitors from countries that I had never imagined accessing this site.</p>
<p>As of June 1, 2007, this site is read in mostly Spanish followed by English.  I&#8217;m really curious to know how well the BabelFish machine translation works.  If you happen to be reading this entry in something other than English, please let me know what you think.</p>
<p>Now, all that said, if you also happen to be using Global Translator and you&#8217;ve noticed that people are having trouble downloading .zip, .rar or other files, here&#8217;s how you can correct the issue.  Everything you need to change is in the translator.php file.  For those who do not want to manually edit the file, you can find a zipped version of the file at the end of this post.</p>
<p>First, we&#8217;ll add a definition to the file.  Shortly after the comment block, you&#8217;ll see several lines that start with the word &#8220;define&#8221;.  They&#8217;ll look something like this:  define(&#8216;FLAG_BAR_BEGIN&#8217;, &#8216;&lt;!&#8211;FLAG_BAR_BEGIN&#8211;&gt;&#8217;);</p>
<p>Add this right afterwards:</p>
<blockquote><p>define(&#8216;EXT_EXCLUDE&#8217;, &#8216;.jpg|.png|.gif|.zip|.rar&#8217;);</p></blockquote>
<p>If you have any other links or file types that also pass language pointers, feel free to add them here.  For exampe, if you have a link such as http://blog.org/ko/images/picture.bmp, you will want to add .bmp to the definition above.</p>
<p>Next, in function gltr_translate find the following line:</p>
<blockquote><p>$line = preg_replace($pattern, $repl, $line);</p></blockquote>
<p>You will want to add a condition around this to make it read:</p>
<blockquote><p>if (strpos($line, EXT_EXCLUDE) &gt; 0) {<br />
  $line = preg_replace($pattern, $repl, $line);<br />
}</p></blockquote>
<p>This will ensure that lines with extensions found in EXT_EXCLUDE are not updated to have a language pointer in place.</p>
<p>Now, all this said, it wouldn&#8217;t be too hard (in theory) to make this something configurable in the Admin screens, but it&#8217;s outside the scope of what I was trying to solve at the moment.</p>
<p>For anyone that hasn&#8217;t tried Davide&#8217;s plugin and would like to offer their site in multiple languages, I&#8217;d strongly recommend <a target="_blank" href="http://www.nothing2hide.net/blog/wp-plugins/wordpress-global-translator-plugin/" title="Nothing 2 Hide - Global Translator">Global Translator</a>.  As of this writing, version 0.6.1 is out, which has support for caching, Google Translation, BabelFish Translation, and a few other great little features.</p>
<p>You can download my <a href="http://j2fi.net/wp-content/uploads/2007/06/translator061.zip" title="Modified Translator.php for Global Translator 0.6.1">edited translator.php file here</a>.</p>
<p>Note:  This file is for Global Translator version 0.6.1.</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2007/06/05/translating-images-whoops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einstein@Home WordPress Plugin</title>
		<link>http://j2fi.net/2007/05/11/einsteinhome-wordpress-plugin/</link>
		<comments>http://j2fi.net/2007/05/11/einsteinhome-wordpress-plugin/#comments</comments>
		<pubDate>Fri, 11 May 2007 07:00:18 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://j2fi.net/2007/05/11/einsteinhome-wordpress-plugin/</guid>
		<description><![CDATA[Okay &#8230; call me cheap, but here&#8217;s yet another BOINC-related plugin.  I&#8217;ve decided that this will be the last stand-alone BOINC Stats plugin I&#8217;ll release, and the next ones will allow users to display any of the projects that are [...]]]></description>
			<content:encoded><![CDATA[<p>Okay &#8230; call me cheap, but here&#8217;s yet another BOINC-related plugin.  I&#8217;ve decided that this will be the last stand-alone BOINC Stats plugin I&#8217;ll release, and the next ones will allow users to display any of the projects that are currently available without using seperate plugins that are pretty much the same.</p>
<p>But enough of that &#8230; on with the release!</p>
<p>Einstein Stats is a WordPress plugin that displays your current <a target="_blank" href="http://einstein.phys.uwm.edu/" title="Einstein@Home Page">Einstein@Home</a> Stats.  This was put together mainly because of the <a target="_blank" href="http://setiathome.berkeley.edu/forum_thread.php?id=39188" title="SETI@Home - Down Time">recent server failure at the BOINC SETI Project</a>.  Since my computers were sitting idle for far too long, I gave them another task.  I must admit &#8230; Einstein is much harder on the processors than SETI ever was.  It takes just over 26 hours for my pair of Dual-Core Xeon&#8217;s to get through a work unit each &#8230; which is almost unheard of with my SETI data.</p>
<p>That said, this plugin is a little light on features.  Currently it will display your total work units, average work units, and team name (if applicable).  In the future, I plan on having a user-configurable option to display other data like number of PCs on the project, pending credit counts, and personal standings.</p>
<p>You can download the most current version of Einstein Stats <a href="http://j2fi.net/wp-content/uploads/2007/05/einstein-stats-01.zip" title="EinsteinStats-0.1">here</a>.</p>
<p><strong>Requirements:</strong></p>
<p>Einstein Stats has been tested on WordPress 2.0.4, 2.0.5, 2.0.7, 2.1, 2.1.3 and 2.2 RC1.</p>
<p><strong>Installation:</strong></p>
<ul>
<li>upload the contents of the zip file to your “wp-content/plugins” directory (be sure to write them to the einstein-stats directory)</li>
<li>go to the “Plugins” main menu and find &#8221;Einstein Stats Display”, then click “Activate”</li>
<li>go to the “Options / Einstein Options” menu and enter your account id, and set the number of hours between stat refreshes</li>
</ul>
<p><strong>Using:</strong></p>
<ul>
<li>modify the theme file where you wish to display your Einstein stats (usually sidebar.php) and type in the following line:</li>
</ul>
<blockquote><p>&lt;php get_emc2_stats(); ?&gt;</p></blockquote>
<p><strong>Uninstallation:</strong></p>
<ul>
<li>go to the “Plugins” main menu and find “Einstein Stats Display”, then click “Deactivate”</li>
<li>delete the files from your “wp-content/plugins” directory</li>
</ul>
<p><strong>Change Log:</strong></p>
<ul>
<li><a href="http://j2fi.net/wp-content/uploads/2007/05/einstein-stats-01.zip" title="EinsteinStats-0.1">0.1 &#8211; Initial Release</a></li>
</ul>
<p><strong>Bug Reports:</strong></p>
<p>As always with initial releases, I’m sure there will be one or two things that I forgot to check.  If you happen to find a bug, please let me know.</p>
<p>Enjoy!</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2007/05/11/einsteinhome-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Making Global Translator 0.6 and FireStats Play Nice</title>
		<link>http://j2fi.net/2007/04/06/making-global-translator-06-and-firestats-play-nice/</link>
		<comments>http://j2fi.net/2007/04/06/making-global-translator-06-and-firestats-play-nice/#comments</comments>
		<pubDate>Sat, 07 Apr 2007 02:00:37 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://j2fi.net/2007/04/06/making-global-translator-06-and-firestats-play-nice/</guid>
		<description><![CDATA[Anyone else tired of Google&#8217;s 403 messages when using previous versions of Davide Pozza&#8217;s Global Translator?  For some weeks I&#8217;ve been noticing a larger number of them than usual, but have lacked the resolve to either write in a caching [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone else tired of Google&#8217;s 403 messages when using previous versions of <a target="_blank" href="http://www.nothing2hide.net/blog/2006/08/20/wordpress-global-translator-plugin/" title="Nothing 2 Hide - Global Translator">Davide Pozza&#8217;s Global Translator</a>?  For some weeks I&#8217;ve been noticing a larger number of them than usual, but have lacked the resolve to either write in a caching mechanism for the translated pages, or change the code to work with <a target="_blank" href="http://babelfish.altavista.com/" title="AltaVista - BabelFish Translation Service">AltaVista&#8217;s BabelFish</a> service.</p>
<p>Luckily, Mr. Pozza decided to do both.</p>
<p>Yesterday Global Translator 0.6-beta was released, and I was interested to know how it would run.  This version comes with support for both Google Translator and BabelFish, and will permit pages to be cached for faster loading.  The only downside to this version was it&#8217;s inability to play nice with <a target="_blank" href="http://firestats.cc/" title="FireStats Home">Omry Yadan&#8217;s FireStats</a>.  But since I really enjoy both of these plugins, I thought that I would make the effort and find a way to make these work together <a target="_blank" href="http://j2fi.net/2007/02/17/wordpress-global-translator-and-firestats/" title="WordPress Global Translator and FireStats">like I had for version 0.4.1</a>.</p>
<p>While testing this I had found two issues would arise if both plugins were active simultaneously.  First, the translation service would receive an address like http://blog.net/http://blog.net/wp-content/firestats/, and second, the Flags Bar would have &#8220;double-language&#8221; links ( http://blog.net/fr/jp/ ) after coming back from translation.  Luckily there was only one function in translator.php that needed to be updated, and these changes are really minor.</p>
<p>In the translate function, change the lines:</p>
<blockquote><p>$url_to_translate = BLOG_HOME . &#8216;/&#8217; . $url;<br />
$resource = build_translation_url(BASE_LANG, $lang, $url_to_translate);</p></blockquote>
<p>to:</p>
<blockquote><p>$url_to_translate = BLOG_HOME . str_replace(&#8216;//&#8217;, &#8221;, &#8216;/&#8217; . preg_replace(LANGS_PATTERN, &#8221;, $_SERVER['REQUEST_URI']));<br />
$resource = build_translation_url(BASE_LANG, $lang, $url_to_translate);</p></blockquote>
<p>Under the line:</p>
<blockquote><p>$fp = @fsockopen($host, $port, $errno, $errstr);</p></blockquote>
<p>add:</p>
<blockquote><p>$rep_url = &#8216;&lt;a href=&#8221;&#8216; . BLOG_HOME;<br />
$repl = &#8216;&lt;a href=&#8221;&#8216; . BLOG_HOME . &#8216;/&#8217; . $lang;</p></blockquote>
<p>Then replace:</p>
<blockquote><p>if (!(strpos($line, FLAG_BAR_BEGIN)===false) &amp;&amp; !(strpos($line, FLAG_BAR_END)===false)) {<br />
  $line = get_flags_bar();<br />
  } else {<br />
  //Clean the links modified by the translation engine<br />
  $line = preg_replace($gt_engine-&gt;get_links_pattern(), $gt_engine-&gt;get_links_replacement(), urldecode ($line)); <br />
 <br />
  $pattern = &#8220;/&lt;a href=\&#8221;" . BLOG_HOME_ESCAPED . &#8220;([^\"]*)\&#8221;[\s|&gt;]{1}/i&#8221;;<br />
  $repl = &#8220;&lt;a href=\&#8221;" . BLOG_HOME . &#8216;/&#8217; . $lang . &#8220;$1\&#8221; &#8220;;<br />
  $line = preg_replace($pattern, $repl, $line);<br />
}</p></blockquote>
<p>with:</p>
<blockquote><p>//Clean the links modified by the translation engine<br />
$line = preg_replace($gt_engine-&gt;get_links_pattern(), $gt_engine-&gt;get_links_replacement(), urldecode ($line));       </p>
<p>if ((strpos($line, &#8216;hreflang=&#8217;))===false) {<br />
  $line = str_replace($rep_url, $repl, $line);<br />
}</p></blockquote>
<p>And you&#8217;re done!</p>
<p>For those of you that don&#8217;t want to go into the code and change a bunch of things, you can <a href="http://j2fi.net/wp-content/uploads/2007/04/translator.zip" title="Modified Translator.php - Global Translator 0.6-beta">download the modified translate.php file here</a>.</p>
<p>One word of caution, though.  It seems that a formatting issue arises on sites that are using some heavy CSS.  Before using this version of the Global Translator plugin, I was using a sweet theme created by <a target="_blank" href="http://theundersigned.net/" title="The Undersigned">miloIIIIVII</a> &#8230; unfortunately, after translation there is quite a bit of header space and I lose the sweet cascading menus.  I haven&#8217;t yet determined if this is from the translation, or something else &#8230; but I&#8217;ll update this post if I can resolve it.</p>
<p>If this works for you, let me know.  I also encourage you to head over to Davide&#8217;s site and let him know that his efforts are appreciated.  These two plugins have proven themselves to be invaluable to me, and hopefully you find them just as useful.</p>
<p>UPDATE:</p>
<p>Davide&#8217;s current release of Global Translator (0.6 Beta5) resolves the issues reported here, making my suggested fixes rather obsolete.  However, I&#8217;d like to thank Davide for all the work he&#8217;s put into this release and I&#8217;m sure that everyone will agree with it&#8217;s superior handling.</p>
<p>One note I would like to re-iterate, though, is that after upgrading to Beta5 you will need to either deactivate/activate the plugin or go to the Global Stats admin page (under options) and clear your cache, then hit &#8220;Save Options&#8221;.  Reason is there is a function that needs to be initialized, and until you refresh the plugin&#8217;s data, your site will show an array error.  This is in the user documentation, but how many of us actually read documents? <img src='http://j2fi.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2007/04/06/making-global-translator-06-and-firestats-play-nice/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Folding@Home WordPress Plugin</title>
		<link>http://j2fi.net/2007/03/23/foldinghome-wordpress-plugin/</link>
		<comments>http://j2fi.net/2007/03/23/foldinghome-wordpress-plugin/#comments</comments>
		<pubDate>Sat, 24 Mar 2007 04:00:07 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://j2fi.net/2007/03/23/foldinghome-wordpress-plugin/</guid>
		<description><![CDATA[I&#8217;ve had a few requests for this in the last 24 hours, so here ya go. Folding@Home is a distributed computing project with the goal of better understanding protein folding, misfolding and related diseases.  I recommend anyone that has some [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a few requests for this in the last 24 hours, so here ya go.</p>
<p><a target="_blank" href="http://folding.stanford.edu/" title="Folding@Home - Stanford Page">Folding@Home</a> is a distributed computing project with the goal of better understanding protein folding, misfolding and related diseases.  I recommend anyone that has some extra clock cycles on their computer to contribute towards this and other worthy distributed computing projects.</p>
<p>Folding@Home Stats is a WordPress plugin that displays just what is promises.  Currently, this plugin will display your total score, overall rank, number of processes completed in the last 50 days, number of processes completed in the last week, and the last time any of your computers reported a complete work unit.</p>
<p>You can download the latest version of Folding@Home Stats <a href="http://j2fi.net/wp-content/uploads/2007/03/folding-stats-01.zip" title="Folding@Home Stats">here</a>.</p>
<p><strong>Requirements:</strong></p>
<p>This plugin has been tested on versions 2.0.4, 2.0.5, 2.0.7 and 2.1.  It should (technically) work on anything from 1.5 up, but I can&#8217;t promise this.  PHP 4.0 to 4.3 or 5.0+ is required.</p>
<p><strong>Installation:</strong></p>
<ul>
<li>upload the contents of the zip file to your “wp-content/plugins” directory (be sure to write them to the folding-stats directory)</li>
<li>ensure your folding-stats directory is writable (required for caching)</li>
<li>go to the “Plugins” main menu and find “Folding@Home Stats”, then click “Activate”</li>
<li>go to the “Options / Folding Options” menu and enter your account id, and set the number of hours between stat refreshes</li>
</ul>
<p><strong>Usage:</strong></p>
<ul>
<li>modify the theme file where you wish to display your SETI stats (usually sidebar.php) and type in the following line:</li>
</ul>
<blockquote><p>&lt;php get_folding_stats(); ?&gt;</p></blockquote>
<p><strong>Uninstallation:</strong></p>
<ul>
<li>go to the “Plugins” main menu and find “Folding@Home Stats”, then click “Deactivate”</li>
<li>delete the files from your “wp-content/plugins” directory</li>
</ul>
<p><strong>Change Log:</strong></p>
<p>0.1 &#8211; <a href="http://j2fi.net/wp-content/uploads/2007/03/folding-stats-01.zip" title="Folding@Home Stats">Initial Release</a></p>
<p>Bug Reports:</p>
<p>As always with initial releases, I’m sure there will be one or two things that I forgot to check.  If you happen to find a bug, please let me know.</p>
<p>Enjoy!</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2007/03/23/foldinghome-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>SETI@Home WordPress Plugin</title>
		<link>http://j2fi.net/2007/03/21/setihome-wordpress-plugin/</link>
		<comments>http://j2fi.net/2007/03/21/setihome-wordpress-plugin/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 05:00:49 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://j2fi.net/2007/03/21/setihome-wordpress-plugin/</guid>
		<description><![CDATA[SETI Stats is a WordPress plugin that displays your current SETI@Home Stats.  This was put together in a short amount of time, so it&#8217;s a little light on the features.  Currently, the plugin will display the total credit and average credit [...]]]></description>
			<content:encoded><![CDATA[<p>SETI Stats is a WordPress plugin that displays your current <a href="http://setiathome.berkeley.edu/">SETI@Home</a> Stats.  This was put together in a short amount of time, so it&#8217;s a little light on the features.  Currently, the plugin will display the total credit and average credit values, as well as your team name (if applicable).</p>
<p>In the future I hope to add the number of units completed and number of computers in use.</p>
<p>You can download SETI Stats <a href="http://j2fi.net/wp-content/uploads/2007/03/seti-stats-02.zip" title="SETI Stats 0.2">here</a>.</p>
<p><strong>Requirements:</strong></p>
<p>SETI Stats has been tested on WordPress 2.0.4, 2.0.5, 2.0.7 and 2.1.</p>
<p><strong>Installation:</strong></p>
<ul>
<li>upload the contents of the zip file to your &#8220;wp-content/plugins&#8221; directory (be sure to write them to the seti-stats directory)</li>
<li>go to the &#8220;Plugins&#8221; main menu and find &#8220;SETI Stats Display&#8221;, then click &#8220;Activate&#8221;</li>
<li>go to the &#8220;Options / SETI Options&#8221; menu and enter your account id, and set the number of hours between stat refreshes</li>
</ul>
<p><strong>Using:</strong></p>
<ul>
<li>modify the theme file where you wish to display your SETI stats (usually sidebar.php) and type in the following line:</li>
</ul>
<blockquote><p><code>&lt;php get_seti_stats(); ?&gt;</code></p></blockquote>
<p><strong>Uninstallation:</strong></p>
<ul>
<li>go to the &#8220;Plugins&#8221; main menu and find &#8220;SETI Stats Display&#8221;, then click &#8220;Deactivate&#8221;</li>
<li>delete the files from your &#8220;wp-content/plugins&#8221; directory</li>
</ul>
<p><strong>Change Log:</strong></p>
<ul>
<li><a href="http://j2fi.net/wp-content/uploads/2007/03/seti-stats-01.zip" title="SETI Stats 0.1">0.1 &#8211; Initial Release</a></li>
<li><a target="_blank" href="http://j2fi.net/wp-content/uploads/2007/03/seti-stats-02.zip" title="0.2 - Added Caching Support">0.2 &#8211; Added Caching Support</a></li>
</ul>
<p><strong>Bug Reports:</strong></p>
<p>As always with initial releases, I&#8217;m sure there will be one or two things that I forgot to check.  If you happen to find a bug, please let me know.</p>
<p>Enjoy!</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2007/03/21/setihome-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WordPress Global Translator and FireStats</title>
		<link>http://j2fi.net/2007/02/17/wordpress-global-translator-and-firestats/</link>
		<comments>http://j2fi.net/2007/02/17/wordpress-global-translator-and-firestats/#comments</comments>
		<pubDate>Sun, 18 Feb 2007 00:00:35 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://j2fi.net/2007/02/17/wordpress-global-translator-and-firestats/</guid>
		<description><![CDATA[ Update:  For those of you interested in getting Global Translator 0.6 to work with FireStats, go here.  I&#8217;ve had several requests from people who use Omry Yadan&#8217;s FireStats and want to use Davide Pozza&#8217;s Global Translator Plugin, as the two [...]]]></description>
			<content:encoded><![CDATA[<p> Update:  For those of you interested in getting Global Translator 0.6 to work with FireStats, <a href="http://j2fi.net/2007/04/06/making-global-translator-06-and-firestats-play-nice/" title="Making Global Translator 0.6 and FireStats Play Nice">go here</a>.</p>
<p> I&#8217;ve had several requests from people who use Omry Yadan&#8217;s <a target="_blank" href="http://firestats.cc/" title="FireStats Home">FireStats </a>and want to use Davide Pozza&#8217;s <a target="_blank" href="http://www.nothing2hide.net/blog/2006/08/20/wordpress-global-translator-plugin/" title="Nothing2Hide -- WordPress Global Translator Plugin">Global Translator Plugin</a>, as the two plugins tend to behave poorly together.  For anyone that hasn&#8217;t used these two together, what happens is the wrong source page is sent to the Google Translation service, and readers receive either a 404 or a white blank page.  This appears to be a mod_rewrite issue that only affects Global Translator.  Luckily, there is a very quick and dirty fix that will resolve the issue.</p>
<p>First off, I&#8217;d like to say that this fix has been tested on both WordPress 2.0.x and 2.1 with FireStats 1.1.0 through to the current 1.1.5 Stable and Global Translator 0.4.1.  I have not updated to the most current version of Global Translator because this one suits my needs just fine.</p>
<p>Now the fun stuff.</p>
<p>There are only two lines that need to be changed in the translator.php file found in your /wp-content/plugins/global-translator/ directory, and in the translate function.</p>
<blockquote><p>$url_to_translate = BLOG_HOME . &#8216;/&#8217; . $url;<br />
should be changed to:<br />
$url_to_translate = preg_replace(&#8216;(it|ko|zh-CN|pt|en|de|fr|ja|es|ar|//)&#8217;, &#8221;, $_SERVER['REQUEST_URI']);</p></blockquote>
<p>And below that:</p>
<blockquote><p>$resource = $translator_base_url . $language . &#8216;&amp;u=&#8217; . $url_to_translate;<br />
should be changed to:<br />
$resource = $translator_base_url . $language . &#8216;&amp;u=&#8217; . BLOG_HOME . $url_to_translate;</p></blockquote>
<p>These changes eliminate the $url variable&#8217;s use from the translate($lang, $url) function, but the second variable should not be removed from the definition.  This is not a complete solution to the matter, but it&#8217;s a quick solution that will work for the majority of sites.</p>
<p>Keep in mind that you need to use &#8220;Date and Name based&#8221; permalinks and your .htaccess file should be updated acccordingly (this is done by WordPress automatically if the appropriate permissions have been granted).  All of this is outlined in the Global Translator instructions, but it&#8217;s a critical component that I&#8217;ve seen missed elsewhere.</p>
<p>For anyone that has not used these plugins, I highly recommend them.  The Global Translator is a great way to help foreign visitors enjoy your site (despite the occasional inaccuracies in machine translation), and FireStats will give you a great idea of where your readers are coming from and what browsers they&#8217;re using.  This last point is important if you are designing sites to be optimized for certain browsers.</p>
<p>If there are any questions with this change, just drop me a line.  I&#8217;ll be sure to offer what help I can.</p>
<p>Update: </p>
<p>As requested, <a href="http://j2fi.net/wp-content/uploads/2007/03/translator.zip" title="Translator.php File">here is the modified translator.php file </a>that I use on this site.  Please note that this is from version 0.4.1 rather than the current release.</p>
<p>Before using this file, please make sure that your site has the &#8220;WordPress should compress articles (gzip) if browsers ask for them)&#8221; checkbox cleared.  This can be found in the Options menu, under Reading, down at the very bottom.  Several users have reported that after this is cleared out, Global Stats will work without fail on their site.</p>
<p>Enjoy,</p>
<hr/>Copyright &copy; 2010 <strong><a href="http://j2fi.net">Jason Irwin dot Net</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@j2fi.net so we can take legal action immediately.<br/><span style="float: right;font-size: 7pt"><a href="http://blog.taragana.com/index.php/archive/wordpress-plugins-provided-by-taraganacom/">Plugin</a> by <a href="http://www.taragana.com/">Taragana</a></span>]]></content:encoded>
			<wfw:commentRss>http://j2fi.net/2007/02/17/wordpress-global-translator-and-firestats/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
