<?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>baseplane - technology platforms &#187; languages</title>
	<atom:link href="http://baseplane.com/category/languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://baseplane.com</link>
	<description>Technology Platforms, Architecture and Kits for all your codes by Ryan Christensen</description>
	<lastBuildDate>Thu, 12 Nov 2009 05:10:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google Tech Talk on New Go Programming Language</title>
		<link>http://baseplane.com/2009/11/11/google-tech-talk-on-new-go-programming-language/</link>
		<comments>http://baseplane.com/2009/11/11/google-tech-talk-on-new-go-programming-language/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 05:05:50 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=76</guid>
		<description><![CDATA[
Dynamic languages have changed the landscape and their only downfall is speed compared to native languages like C and C++.  C/C++ have had a bit of a resurgence with embedded devices and such sucesses as the iphone and ipod touch.  To get the most out of these devices native is the way to go.  Both [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/rKnDgT73v8s&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/rKnDgT73v8s&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Dynamic languages have changed the landscape and their only downfall is speed compared to native languages like C and C++.  C/C++ have had a bit of a resurgence with embedded devices and such sucesses as the iphone and ipod touch.  To get the most out of these devices native is the way to go.  Both iPhone SDK and Android NDK are native based.  The best games and graphically intensive applications need hardware rendering and the fastest way to get there is native. Larger companies like Google need to take advantage of speed to market and fast execution.  The outcome of that appears to be the <a href="http://golang.org/" target="_self">Go language</a>.</p>
<p>Native applications are more complex to manage, so lots of work like <a href="http://code.google.com/p/unladen-swallow/" target="_blank">Unladen Swallow getting Python running with LLVM</a>, <a href="http://codespeak.net/pypy/dist/pypy/doc/" target="_blank">PyPy</a> and others to make CPython faster.  Google has supported Unladen Swallow.  But a company the size of Google has massive scalability problems to solve, and maybe they are looking to go more native?  The go language is now available from Google and it is deemed &#8220;Python meets C++&#8221;.  Where Apple has Objective-C (which is actually as old as C++) which is a bit more message and event driven, Google has Go which is much like Python and other dynamic languages but much closer to C++ speeds.</p>
<p>We will learn more about Go over time but it looks like it is taking the best of both the dynamic and native/static worlds in programming languages which is a great evolution in technology.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2009/11/11/google-tech-talk-on-new-go-programming-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mono 2.2 Released</title>
		<link>http://baseplane.com/2009/01/16/mono-22-released/</link>
		<comments>http://baseplane.com/2009/01/16/mono-22-released/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 22:23:43 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[unity3d]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=68</guid>
		<description><![CDATA[Mono 2.2 has been released.  Mono is a really great open source version of .NET and it is finding its way into many platforms that need to support multiplatform code such as Unity3D.  
This update brings in some great stuff like routing controllers to use the ASP.NET MVC architecture, csharp inteactive shell and other great [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mono-project.com/news/archive/2009/Jan-13.html" target="_blank">Mono 2.2 has been released</a>.  Mono is a really great open source version of .NET and it is finding its way into many platforms that need to support multiplatform code such as <a href="http://unity3d.com/" target="_blank">Unity3D</a>.  <a href="http://www.mono-project.com/Release_Notes_Mono_2.2" target="_blank"></a></p>
<p><a href="http://www.mono-project.com/Release_Notes_Mono_2.2" target="_blank">This update</a> brings in some great stuff like routing controllers to use the ASP.NET MVC architecture, csharp inteactive shell and other great performance enhancements to an<a href="http://shootout.alioth.debian.org/gp4/csharp.php" target="_blank"> already speedy C#</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2009/01/16/mono-22-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python 3.0 Released</title>
		<link>http://baseplane.com/2008/12/04/python-30-released/</link>
		<comments>http://baseplane.com/2008/12/04/python-30-released/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 09:40:17 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[3]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[market]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python 3000]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=59</guid>
		<description><![CDATA[Python 3000, the mythical creature for all future Python cleanup has been released.  It is breaking in many cases and will take time for all the great python libraries to be up to date but it is released.
Python 2.6 was released not too long ago as an update adding great stuff like simplejson within python.  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.python.org/download/releases/3.0/" target="_blank"><img class="alignright" style="border: 0pt none;" title="http://www.python.org/images/python-logo.gif" src="http://www.python.org/images/python-logo.gif" alt="" width="211" height="71" />Python 3000</a>, the <a href="http://jeremyhylton.blogspot.com/2008/12/python-3000.html" target="_blank">mythical creature for all future Python cleanup</a> has <a href="http://www.python.org/download/releases/3.0/" target="_blank">been released</a>.  It is breaking in many cases and will take time for all the great python libraries to be up to date but it is released.</p>
<p>Python 2.6 was released not too long ago as an update adding great stuff like simplejson within python.  But Python 3000 might be the release that draws lots of usage and programmers new and veteran.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/12/04/python-30-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mono 2.0 Officially Released</title>
		<link>http://baseplane.com/2008/10/06/mono-20-officially-released/</link>
		<comments>http://baseplane.com/2008/10/06/mono-20-officially-released/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 10:40:30 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[baseplane]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[3.0]]></category>
		<category><![CDATA[3.5]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[multi-platform]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=56</guid>
		<description><![CDATA[Mono 2.0 the open source .NET framework has been released.  Mono has made it&#8217;s way into many great systems by now from websites to even 3d engines such as Unity3D. It is great to have a toolkit that is powerful, has a great language set from C# to Boo and that is available on multiple [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mono-project.com/Release_Notes_Mono_2.0" target="_blank">Mono 2.0</a> the open source .NET framework has been released.  Mono has made it&#8217;s way into many great systems by now from websites to even 3d engines such as <a href="http://unity3d.com/" target="_blank">Unity3D</a>. It is great to have a toolkit that is powerful, has a great language set from C# to Boo and that is available on multiple platforms.  From Windows, to *nix to of course Mac OSX built on unix, it all just works.</p>
<p>Having 2.0 solid and complete is a great step to making production apps run off of it.</p>
<h2 style="padding-left: 30px;">Microsoft Compatible APIs</h2>
<ul style="padding-left: 30px;">
<li> ADO.NET 2.0 API for accessing databases.</li>
</ul>
<ul style="padding-left: 30px;">
<li> ASP.NET 2.0 API for developing Web-based applications.</li>
</ul>
<ul style="padding-left: 30px;">
<li> Windows.Forms 2.0 API to create desktop applications.</li>
</ul>
<ul style="padding-left: 30px;">
<li> System.XML 2.0: An API to manipulate XML documents.</li>
</ul>
<ul style="padding-left: 30px;">
<li> System.Core: Provides support for the Language Integrated Query (LINQ).</li>
</ul>
<ul style="padding-left: 30px;">
<li> System.Xml.Linq: Provides a LINQ provider for XML.</li>
</ul>
<ul style="padding-left: 30px;">
<li> System.Drawing 2.0 API: A portable graphics rendering API.</li>
</ul>
<p style="padding-left: 30px;"><a name="Mono_APIs"></a></p>
<h2 style="padding-left: 30px;">Mono APIs</h2>
<ul style="padding-left: 30px;">
<li> Gtk# 2.12: A binding to the Gtk+ 2.12 and GNOME libraries for creating desktop applications on Linux, Windows and MacOS X.</li>
<li> Mono.Cecil: A library to manipulate ECMA CLI files (the native format used for executables and libraries).</li>
<li> Mono.Cairo: A binding to the Cairo Graphics library to produce 2D graphics and render them into a variety of forms (images, windows, postscript and PDF).</li>
<li> Mono&#8217;s SQLite support: a library to create and consume databases created with SQLite.</li>
<li> Mono.Posix: a library to access Linux and Unix specific functionality from your managed application. With both a low-level interface as well as higher level interfaces.</li>
</ul>
<p style="padding-left: 30px;"><a name="Third_Party_APIs_bundled_with_Mono"></a></p>
<h3 style="padding-left: 30px;">Third Party APIs bundled with Mono</h3>
<ul style="padding-left: 30px;">
<li> Extensive support for databases: PostgresSQL, DB2, Oracle, Sybase, SQL server, SQLite and Firebird.</li>
<li> C5 Generics Library: we are bundling the C5 generics collection class library as part of Mono.</li>
</ul>
<p style="padding-left: 30px;"><a name="Compilers"></a></p>
<h2 style="padding-left: 30px;">Compilers</h2>
<p style="padding-left: 30px;">These compilers are part of the Mono 2.0 release:</p>
<ul style="padding-left: 30px;">
<li> C# 3.0 compiler implementation, with full support for LINQ.</li>
<li> Visual Basic 8 compiler.</li>
<li style="padding-left: 30px;"> IL assembler and disassembler and the development toolchain required to create libraries and applications.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/10/06/mono-20-officially-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mono Now Has .NET 3.0 Support and 3.5 Features like LINQ and Expression Trees</title>
		<link>http://baseplane.com/2008/07/25/mono-now-has-net-30-support-and-35-features-like-linq-and-expression-trees/</link>
		<comments>http://baseplane.com/2008/07/25/mono-now-has-net-30-support-and-35-features-like-linq-and-expression-trees/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 07:14:34 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[baseplane]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[market formats]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[3.0]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[platform]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=55</guid>
		<description><![CDATA[Great news!  Mono has made it to .NET 3.0 support and this includes some of the latest stuff like LINQ expressions.
I am pleased to announce that Mono C# compiler (gmcs) has now full C# 3.0 support. Most of the features has been available since Mono 1.2.6 release. However, with the upcoming Mono 2.0 release we [...]]]></description>
			<content:encoded><![CDATA[<p>Great news!  <a href="http://mareksafar.blogspot.com/2008/07/mono-c-compiler-gets-full-c-30-support.html" target="_blank">Mono has made it to .NET 3.0 support</a> and this includes some of the latest stuff like LINQ expressions.</p>
<blockquote><p>I am pleased to announce that Mono C# compiler (gmcs) has now full C# 3.0 support. Most of the features has been available since Mono 1.2.6 release. However, with the upcoming Mono 2.0 release <strong>we will also support complex LINQ expressions and mainly <a href="http://msdn.microsoft.com/en-us/library/bb397951.aspx">expression trees</a> which is fairly overlooked new feature with a lot of potential</strong>.</p>
<p>For anyone interested in compiling and running <a href="http://blogs.msdn.com/lukeh/archive/2007/10/01/taking-linq-to-objects-to-extremes-a-fully-linqified-raytracer.aspx">this</a> LukeH&#8217;s slightly extreme LINQ example I have good news. It compiles on Mono and it runs as fast as on .NET.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/07/25/mono-now-has-net-30-support-and-35-features-like-linq-and-expression-trees/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Restlet RESTful Lightweight Kit for Java</title>
		<link>http://baseplane.com/2008/06/20/restlet-restful-lightweight-kit-for-java/</link>
		<comments>http://baseplane.com/2008/06/20/restlet-restful-lightweight-kit-for-java/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 03:24:36 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[baseplane]]></category>
		<category><![CDATA[formal]]></category>
		<category><![CDATA[generation]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[market formats]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[utility]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jax]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Restlet]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=52</guid>
		<description><![CDATA[Finally rest for all that boilerplate in Java.  At each turn of lots of Java frameworks you are bombarded with layers.  I felt this long ago and see it in the developers eyes that work with Java.  Java can be easy, it can be RESTful and it will make you look sharp.

Lightweight REST framework for [...]]]></description>
			<content:encoded><![CDATA[<p>Finally rest for all that boilerplate in Java.  At each turn of lots of Java frameworks you are bombarded with layers.  I felt this long ago and see it in the developers eyes that work with Java.  Java can be easy, it can be RESTful and it will make you look sharp.</p>
<p style="padding-left: 30px;"><a href="http://www.restlet.org/"><img src="http://farm4.static.flickr.com/3283/2597021628_8bbf4d5baa_o.gif" alt="" width="200" height="71" /></a></p>
<p style="padding-left: 30px;"><a href="http://www.restlet.org/" target="_blank"><strong>Lightweight REST framework for Java</strong></a></p>
<p class="welcome" style="padding-left: 30px;">Do you want to embrace the architecture of the Web and benefit from its simplicity and scalability? Leverage our innovative REST engine and start blending your Web Sites and Web Services into uniform Web Applications!</p>
<p class="welcome">Java is making things more lightweight now with lots of emerging kits that compete with other web ready platforms like Python, Ruby, .NET, PHP etc. After this many years things get bloated and need to be simplified.  I think this will start winning people over in this direction.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/06/20/restlet-restful-lightweight-kit-for-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Common Baseplane Method to Caching &#8212; memcached</title>
		<link>http://baseplane.com/2008/05/27/the-common-baseplane-method-to-caching-memcached/</link>
		<comments>http://baseplane.com/2008/05/27/the-common-baseplane-method-to-caching-memcached/#comments</comments>
		<pubDate>Tue, 27 May 2008 18:11:43 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[baseplane]]></category>
		<category><![CDATA[generation]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rom]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[utility]]></category>
		<category><![CDATA[apis]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[common]]></category>
		<category><![CDATA[layers]]></category>
		<category><![CDATA[memcached]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=51</guid>
		<description><![CDATA[If you have ever worked on a massively high trafficked website, you know that cache is very important to keeping the server count down and being a superhero to your database servers.  Cache can be bad and overly optimized but when you hit a certain threshold, relational databases, databases that are dimension modelled for [...]]]></description>
			<content:encoded><![CDATA[<p>If you have ever worked on a massively high trafficked website, you know that cache is very important to keeping the server count down and being a superhero to your database servers.  Cache can be bad and overly optimized but when you hit a certain threshold, relational databases, databases that are dimension modelled for data warehouse, and even server resources get exhausted.  At that point you have two options, buy more servers, or more likely, cache read data.</p>
<p>Each platform has their own way to do this, but there is a common baseplane way to do caching, yes even in .NET.  That is with memcached.  <strong><a href="http://www.danga.com/memcached/apis.bml" target="_blank">Memcached </a></strong>is a very common and useful tool that makes caching data and cache layers in an application something that can be the same on every platform. The benefit of using memcached is it is open, common and<a href="http://www.danga.com/memcached/apis.bml" target="_blank"> it has APIs for nearly every popular web development platform</a> (and can be wired in easily to platforms that don&#8217;t have their own cache mechanism).  Why write your caching layer specific to a certain platform when you can memcache?</p>
<p>If you write high performance web apps and don&#8217;t memcache, I feel bad for your server budget and your late nights when that ad buy hits or something popular on your site becomes all the rave.</p>
<h2>Perl API</h2>
<p>An object-oriented Perl module can be <a href="http://search.cpan.org/dist/Cache-Memcached/">found on CPAN</a> as <tt>Cache::Memcached</tt> or <a href="http://code.sixapart.com/svn/memcached/trunk/api/perl/"> in Subversion</a> (<a href="http://code.sixapart.com/svn/memcached/trunk/api/perl/ChangeLog">ChangeLog</a>). (GPL/Artistic)</p>
<p>The Perl API takes advantage of the server&#8217;s opaque flag support and sets its &#8220;complex&#8221; flag whenever the object being stored or retrieved isn&#8217;t a plain scalar.  In that case, the <tt>Storable</tt> module is used to freeze and thaw the value automatically going in and out of the memcached.</p>
<p>There is also Cache::Memcached::Fast&#8212;another Perl client written in C, largely compatible with the original Cache::Memcached. Available on CPAN at <a href="http://search.cpan.org/dist/Cache-Memcached-Fast/">http://search.cpan.org/dist/Cache-Memcached-Fast/</a>.</p>
<h2>PHP API</h2>
<p>There are tons of PHP libraries available, in different conditions.  But it now seems there&#8217;s an official one:</p>
<ul>
<li><a href="http://pecl.php.net/package/memcache">PHP PECL memcached client</a> &#8212; official PHP client</li>
</ul>
<h2>Python API</h2>
<p>The Python client we&#8217;d previously released was just a prototype, and we don&#8217;t have regular Python programmers on hand. The folks at Tummy.com have took over maintenance. See <a href="ftp://ftp.tummy.com/pub/python-memcached/">ftp://ftp.tummy.com/pub/python-memcached/</a> for the latest versions.</p>
<h2>Ruby API</h2>
<ul>
<li><a href="http://www.deveiate.org/code/Ruby-MemCache.html">http://www.deveiate.org/code/Ruby-MemCache.html</a></li>
<li>gem install memcache-client</li>
<li><a href="http://blog.evanweaver.com/files/doc/fauna/memcached/">http://blog.evanweaver.com/files/doc/fauna/memcached/</a>. C backed client wrapping libmemcached.</li>
</ul>
<h2>Java API</h2>
<p>A Java API is maintained by <a href="mailto:greg@meetup.com">Greg Whalin</a> from <a href="http://www.meetup.com/">Meetup.com</a>.  You can find that library here:</p>
<ul>
<li><a href="http://www.whalin.com/memcached/">http://www.whalin.com/memcached/</a> &#8212; Java API for memcached</li>
</ul>
<p>An improved Java API maintained by Dustin Sallings is also available. Aggressively optimised, ability to run async, supports binary protocol, etc. See site for details:</p>
<ul>
<li><a href="http://bleu.west.spy.net/%7Edustin/projects/memcached/">http://bleu.west.spy.net/~dustin/projects/memcached/</a> &#8212; Improved Java API for memcached</li>
</ul>
<h2>C# API</h2>
<p>There are multiple C# APIs:</p>
<ul>
<li><a href="https://sourceforge.net/projects/memcacheddotnet/">https://sourceforge.net/projects/memcacheddotnet/</a></li>
<li><a href="http://www.codeplex.com/EnyimMemcached/">http://www.codeplex.com/EnyimMemcached/</a> &#8211; Client developed in .NET 2.0 keeping performance and extensibility in mind. (Supports consistent hashing.)</li>
<li><a href="http://code.google.com/p/beitmemcached/">http://code.google.com/p/beitmemcached/</a> &#8211; Client developed by BeIT with many new features.</li>
</ul>
<h2>C API</h2>
<p>Multiple C libraries for memcached exist:</p>
<ul>
<li><a href="http://www.outoforder.cc/projects/libs/apr_memcache/">apr_memcache</a> by Paul Querna; Apache Software License version 2.0</li>
<li><a href="http://tangent.org/552/libmemcached.html">libmemcached</a> by Brian Aker; BSD license. This is a new library, under heavy development.</li>
<li><a href="http://people.freebsd.org/%7Eseanc/libmemcache/">libmemcache</a> by Sean Chittenden; BSD license. This is the original C library. It is no longer under active development. You should try libmemcached instead.</li>
</ul>
<h2>Postgres API</h2>
<p>The pgmemcache project allows you to access memcache servers from Postgresql Stored Procedures and Triggers.   More details and downloads are available at:</p>
<ul>
<li><a href="http://pgfoundry.org/projects/pgmemcache/">http://pgfoundry.org/projects/pgmemcache/</a></li>
</ul>
<h2>Chicken Scheme</h2>
<ul>
<li><a href="http://chicken.wiki.br/memcached">http://chicken.wiki.br/memcached</a> &#8212; Chicken Scheme library</li>
</ul>
<h2>Lua</h2>
<ul>
<li><a href="http://luamemcached.luaforge.net/">http://luamemcached.luaforge.net/</a> &#8212; Lua library</li>
</ul>
<h2>MySQL API</h2>
<p>The memcache_engine allows memcache to work as a storage engine to MySQL. This means that you can SELECT/UPDATE/INSERTE/DELETE from it as though it is a table in MySQL.</p>
<ul>
<li><a href="http://tangent.org/index.pl?node_id=506">memcache_engine</a></li>
</ul>
<p>A set of MySQL UDFs (user defined functions) to work with memcached using libmemcached.</p>
<ul>
<li><a href="http://tangent.org/586/Memcached_Functions_for_MySQL.html">MySQL UDFs for memcached</a></li>
</ul>
<h2>Protocol</h2>
<p>To write a new client, check out the <a href="http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt">protocol docs</a>.  Be aware that the most important part of the client is the hashing across multiple servers, based on the key, or an optional caller-provided hashing value.  Feel free to join the mailing list (or mail me directly) for help, inclusion in Subversion, and/or a link to your client from this site.</p>
<p>The best part, they support all good platforms and even Lua, and wisely they left out VB.NET, no worries, VB.NET&#8217;ers will never know.  Only kidding&#8230;</p>
<p><strong>Finally, memcached is distributed, most cache layers included with platforms listed above are in process and per machine.  If you are running your code on a webfarm memcached is the only way to go.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/05/27/the-common-baseplane-method-to-caching-memcached/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVC Frameworks for PHP</title>
		<link>http://baseplane.com/2008/05/27/mvc-frameworks-for-php/</link>
		<comments>http://baseplane.com/2008/05/27/mvc-frameworks-for-php/#comments</comments>
		<pubDate>Tue, 27 May 2008 17:56:13 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[languages]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[Akelos]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpdevshell]]></category>
		<category><![CDATA[prado]]></category>
		<category><![CDATA[qphp]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zoop]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=50</guid>
		<description><![CDATA[MVC is all the rave these days with excellent toolkits for all languages that help to define good structure for long term projects and maintenance.  From Django (Python), to Rails (Ruby), Spring (Java), Maverick or Microsoft MVC (.NET/C#/Mono) and last but not least PHP MVC Frameworks.
PHP gets alot of heat mainly because it is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.php.net/downloads.php" target="_blank"><img class="alignright" style="float: right; margin: 10px;" src="http://i81.photobucket.com/albums/j223/drawkbox/php.gif" alt="" width="120" height="67" /></a>MVC is all the rave these days with excellent toolkits for all languages that help to define good structure for long term projects and maintenance.  From <a href="http://www.djangoproject.com/" target="_blank">Django</a> (Python), to <a href="http://www.rubyonrails.org/">Rails </a>(Ruby), <a href="http://www.springframework.org/" target="_blank">Spring </a>(Java), Maverick or <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=38cc4cf1-773a-47e1-8125-ba3369bf54a3&amp;displaylang=en" target="_blank">Microsoft MVC </a>(.NET/C#/Mono) and last but not least PHP MVC Frameworks.</p>
<p>PHP gets alot of heat mainly because it is critical mass and when that happens mediocrity comes in but since PHP5, PHP has really grown to be a great web development toolkit with many frameworks to choose from. But which one do you choose for your development?  <strong>Do you want an MVC, or do you want to piece together an MVC from a template library, model framework and custom controller? </strong></p>
<p>Well if you want to pick an MVC there are some great ones.</p>
<p>There is a <a href="http://www.phpframeworks.com/top-10-php-frameworks/" target="_blank">site that has a decent ranking</a> that is similar to my own likings in PHP frameworks that lists them like this:</p>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">1</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=13">Akelos</a> (avg: 4.4)<br />
</h3>
</div>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">2</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=17">PHPDevShell</a> (avg: 4.3)<br />
</h3>
</div>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">3</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=3">Symfony Project</a> (avg: 4.3)<br />
</h3>
</div>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">4</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=9">CodeIgniter</a> (avg: 4.3)<br />
</h3>
</div>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">5</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=10">Prado</a> (avg: 4.1)<br />
</h3>
</div>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">6</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=7">ZooP</a> (avg: 4)<br />
</h3>
</div>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">7</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=2">CakePHP</a> (avg: 3.9)<br />
</h3>
</div>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">8</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=1">Zend</a> (avg: 3.4)<br />
</h3>
</div>
<div id="lhid_intr">
<h3><span style="color: red; font-size: small;">9</span> <a href="http://www.phpframeworks.com/php-frameworks/index.php?id=18">QPHP</a> (avg: 3)<br />
</h3>
</div>
<p>I have not used QPHP, Zoop, Prado or PHPDevShell but plan on doing reviews of all of them.  I have a simple application that i will be building in the latest versions of each platform to help show highlights, pros, cons and the ins and outs of each.</p>
<p>Why? And why PHP?  I have long been a developer of web sites and applications.  Until around 2005 PHP was not accepted in enterprisey, but this is changing.  Usually .NET, Java, Perl, Python and recently Ruby were the dictated choice of the clients or environments to code in.  But with PHP5 now stable and PHP4 being retired, PHP is a insurgent platform that muscled its way into the web development world in a grassroots effort, from the bottom up.  That takes work and the platform deserves a second look from people that have written it off.</p>
<p>PHP runs many large sites from Facebook, to Digg, to Yahoo and many other platforms even <a href="http://furrier.org/2008/05/19/silicon-valley-rumor-microsoft-to-buy-yahoo-search-and-then-facebook/" target="_blank">Microsoft is trying to buy</a>. PHP might even be responsible for MySQLs meteoric rise to just recently being purchased by Sun.  It is a platform that is being used to build platforms.  It works on any platform, it is low-bar entry and high bar scalability and architecture if using a great framework or architecture (if custom or using an existing framework).</p>
<p>I am an engineer, developer, architect and interactive/game developer, I use the tools for the job no matter what is chosen.  <strong>Any good developer can make a system work even with bad technology but today there isn&#8217;t alot of that going around.  So many great platforms, languages and frameworks, why limit to a certain OS or platform. </strong> Open your horizons and stop specializing yourself out of special skills.  Choose a tool that works on just about anything on the server side and doesn&#8217;t take over servers and take 3 times as long to develop. Try some PHP5 MVC frameworks today.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/05/27/mvc-frameworks-for-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Your .NET Application/Assembly Mono Ready?  Find Out With MoMa</title>
		<link>http://baseplane.com/2008/05/17/is-your-net-applicationassembly-mono-ready-find-out-with-moma/</link>
		<comments>http://baseplane.com/2008/05/17/is-your-net-applicationassembly-mono-ready-find-out-with-moma/#comments</comments>
		<pubDate>Sat, 17 May 2008 20:24:11 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[baseplane]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[market formats]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[2.0.moonlight]]></category>
		<category><![CDATA[moma]]></category>
		<category><![CDATA[mono]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=49</guid>
		<description><![CDATA[Well Mono has finally reached 2.0.  This is great news!  .NET skills now can span *nix, OSX, and Windows platforms.  But is your app or assembly capable of running on Mono?  Find out with MoMa.
Of course this is just a heuristic check and only finds out if your application on the surface has issues [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jpobst.blogspot.com/2008/05/big-finale.html">Well Mono has finally reached 2.0. </a> This is great news!  .NET skills now can span *nix, OSX, and Windows platforms.  But is your app or assembly capable of running on Mono?  Find out with <a href="http://www.mono-project.com/MoMA" target="_blank">MoMa.</a></p>
<p>Of course this is just a heuristic check and only finds out if your application on the surface has issues with running on a mono platform such as calls to p/invoke to windows apis or unsafe code that uses native calls but it is a great place to start.</p>
<p>The <a href="http://www.mono-project.com/MoMA" target="_blank">Mono Migration Analyzer (MoMA) tool helps you identify issues</a> you may have when porting your .Net application to Mono. It helps pinpoint platform specific calls (P/Invoke) and areas that are not yet supported by the Mono project.</p>
<blockquote><p>While MoMA can help show potential issues, there are many complex factors that cannot be covered by a simple tool. MoMA may fail to point out areas that will cause problems, and may point out areas which will not actually be an issue.</p>
<p>Use the results provided as a guide to get you started on porting your application, but remember the true test is actually running your application on Mono.</p>
<p>For a description of the errors that MoMA detects and how to deal with them, see <a title="MoMA - Issue Descriptions" href="http://www.mono-project.com/MoMA_-_Issue_Descriptions">MoMA &#8211; Issue Descriptions</a>.</p></blockquote>
<p>I have recently been really interested in making platforms and applications that aren&#8217;t limited by the OS they are contained in.  Thus mono is a very interesting platform now that it supports 2.0 fully and all the generic goodness to limit boxing/unboxing, common code between .net 2.0 apps (which are pretty much mainstream now) and developing for more of a standard that ensures your apps are portable.</p>
<p>Granted .NET 3.0 and 3.5 (pretty much the same version really with the addition of new frameworks such as WCF, LINQ which is very cool and functional as well as Silverlight) but most places deployed code is still .NET 2.0 and the poor souls working on very constricting .NET 1.0 and 1.1.</p>
<p>Also, recently <a href="http://www.mono-project.com/Moonlight" target="_blank">Moonlight the Mono version of Silverlight</a> has been released for alpha.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/05/17/is-your-net-applicationassembly-mono-ready-find-out-with-moma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baseplane Tool: Tenjin Templating Library (pyTenjin, jsTenjin, phpTenjin, rbTenjin, plTenjin)</title>
		<link>http://baseplane.com/2008/04/07/baseplane-tool-tenjin-templating-library-pytenjin-jstenjin-phptenjin-rbtenjin-pltenjin/</link>
		<comments>http://baseplane.com/2008/04/07/baseplane-tool-tenjin-templating-library-pytenjin-jstenjin-phptenjin-rbtenjin-pltenjin/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 17:17:09 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[baseplane]]></category>
		<category><![CDATA[generation]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[market formats]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[jstenjin]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phptenjin]]></category>
		<category><![CDATA[pltenjin]]></category>
		<category><![CDATA[pytenjin]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rbtenjin]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[tenjin]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=48</guid>
		<description><![CDATA[Tenjin is a great templating library that gets not only cross platform but baseplane ability to make templating very similiar (and FAST) across many languages.    pyTenjin and phpTenjin is currently what I am using but there are executions for Ruby, Perl and Javascript.
Here is a list of the Tenjin Templating engines:

pyTenjin
phpTenjin
rbTenjin
jsTenjin
plTenjin


 Changes
 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kuwata-lab.com/tenjin/" target="_blank">Tenjin is a great templating library </a>that gets not only cross platform but baseplane ability to make templating very similiar (and FAST) across many languages.    pyTenjin and phpTenjin is currently what I am using but there are executions for Ruby, Perl and Javascript.</p>
<p><strong>Here is a list of the Tenjin Templating engines:</strong></p>
<ul>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=201594" target="_blank">pyTenjin</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=201594" target="_blank">phpTenjin</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=201594" target="_blank">rbTenjin</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=201594" target="_blank">jsTenjin</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=201594" target="_blank">plTenjin</a></li>
</ul>
<dl class="dl1">
<dt class="dt1"> Changes</dt>
<dd class="dd1"> (<a href="http://www.kuwata-lab.com/tenjin/pytenjin-CHANGES.txt">Python</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/rbtenjin-CHANGES.txt">Ruby</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/phptenjin-CHANGES.txt">PHP</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/pltenjin-CHANGES.txt">Perl</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/jstenjin-CHANGES.txt">JavaScript</a>) </dd>
<dt class="dt1"> User&#8217;s Guide</dt>
<dd class="dd1"> (<a href="http://www.kuwata-lab.com/tenjin/pytenjin-users-guide.html">Python</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/rbtenjin-users-guide.html">Ruby</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/phptenjin-users-guide.html">PHP</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/pltenjin-users-guide.html">Perl</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/jstenjin-users-guide.html">JavaScript</a>) </dd>
<dt class="dt1"> FAQ</dt>
<dd class="dd1"> (<a href="http://www.kuwata-lab.com/tenjin/pytenjin-faq.html">Python</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/rbtenjin-faq.html">Ruby</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/phptenjin-faq.html">PHP</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/pltenjin-faq.html">Perl</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/jstenjin-faq.html">JavaScript</a>) </dd>
<dt class="dt1"> Examples</dt>
<dd class="dd1"> (<a href="http://www.kuwata-lab.com/tenjin/pytenjin-examples.html">Python</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/rbtenjin-examples.html">Ruby</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/phptenjin-examples.html">PHP</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/pltenjin-examples.html">Perl</a>) 	    (<a href="http://www.kuwata-lab.com/tenjin/jstenjin-examples.html">JavaScript</a>) </dd>
<dt class="dt1"> Presentation</dt>
<dd class="dd1"> <a href="http://www.kuwata-lab.com/presen/LL2007LT.pdf">2007 LL Spirit LightningTalk</a> (full-version) (Japanese)</dd>
</dl>
<p><strong>Here is what the template markup looks like:</strong></p>
<p><strong>This</strong></p>
<pre class="program">&lt;table&gt;
&lt;tbody&gt;
<strong>&lt;?py i = 0 ?&gt;</strong>
<strong>&lt;?py for item in ['&lt;foo&gt;', 'bar&amp;bar', '"baz"']: ?&gt;</strong>
<strong>&lt;?py     i += 1 ?&gt;</strong>
&lt;tr&gt;
&lt;td&gt;<strong>#{item}</strong>&lt;/td&gt;
&lt;td&gt;<strong>${item}</strong>&lt;/td&gt;
&lt;/tr&gt;
<strong>&lt;?py #end ?&gt;</strong>
&lt;tbody&gt;

&lt;/table&gt;</pre>
<p><strong>Produces This</strong></p>
<pre class="terminal">&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;<strong>&lt;foo&gt;</strong>&lt;/td&gt;
&lt;td&gt;<strong>&amp;lt;foo&amp;gt;</strong>&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;<strong>bar&amp;bar</strong>&lt;/td&gt;
&lt;td&gt;<strong>bar&amp;amp;bar</strong>&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;<strong>"baz"</strong>&lt;/td&gt;
&lt;td&gt;<strong>&amp;quot;baz&amp;quot;</strong>&lt;/td&gt;
&lt;/tr&gt;
&lt;tbody&gt;
&lt;/table&gt;</pre>
<p><strong>Here are some speed results</strong></p>
<table class="table1" border="1" cellspacing="0" summary="MacOS X 10.4 Tiger, Intel CoreDuo 1.83GHz, Memory 2GB">
<caption class="caption1"> MacOS X 10.4 Tiger, Intel CoreDuo 1.83GHz, Memory 2GB </caption>
<tbody>
<tr class="tr1">
<th class="th1">Language</th>
<th class="th1">Template Engine</th>
<th class="th1">Test#1(sec)</th>
<th class="th1">Test#2(sec)</th>
</tr>
<tr class="tr1">
<td class="td1" rowspan="8">Python(2.5.1)</td>
<td class="td1"><strong>pyTenjin</strong> (0.6.1)</td>
<td class="td1" align="right"><strong>6.96</strong></td>
<td class="td1" align="right"><strong>5.61</strong></td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://www.cheetahtemplate.org/">Cheetah</a> (2.0)</td>
<td class="td1" align="right">20.36</td>
<td class="td1" align="right">19.82</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://www.djangoproject.com/documentation/templates/">Django</a> (0.9.5)</td>
<td class="td1" align="right">71.33</td>
<td class="td1" align="right">59.80</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://www.djangoproject.com/documentation/templates/">Myghty</a> (1.1)</td>
<td class="td1" align="right">107.88</td>
<td class="td1" align="right">19.30</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://www.kid-templating.org/">Kid</a> (0.9.6)</td>
<td class="td1" align="right">380.24</td>
<td class="td1" align="right">378.96</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://genshi.edgewall.org/">Genshi</a> (0.4.4)</td>
<td class="td1" align="right">560.30</td>
<td class="td1" align="right">271.69</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://www.makotemplates.org/">Mako</a> (0.1.9)</td>
<td class="td1" align="right">17.78</td>
<td class="td1" align="right">13.49</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://webpy.org/templetor">Templetor</a> (web.py 0.22)</td>
<td class="td1" align="right">428.19</td>
<td class="td1" align="right">61.53</td>
</tr>
<tr class="tr1">
<td class="td1" rowspan="3">Ruby(1.8.6)</td>
<td class="td1"><strong>rbTenjin</strong> (0.6.0)</td>
<td class="td1" align="right"><strong>7.34</strong></td>
<td class="td1" align="right"><strong>4.52</strong></td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://modruby.net/en/index.rbx/eruby/whatis.html">eruby</a> (1.0.5)</td>
<td class="td1" align="right">12.29</td>
<td class="td1" align="right">11.53</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/">ERB</a>(def_method) (Ruby1.8.6)</td>
<td class="td1" align="right">36.73</td>
<td class="td1" align="right">5.85</td>
</tr>
<tr class="tr1">
<td class="td1" rowspan="2">PHP(5.2.0)</td>
<td class="td1"><strong>phpTenjin</strong> (0.0.1)</td>
<td class="td1" align="right"><strong>5.39</strong></td>
<td class="td1" align="right"><strong>3.64</strong></td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://smarty.php.net/">Smarty</a> (2.6.18)</td>
<td class="td1" align="right">10.84</td>
<td class="td1" align="right">10.21</td>
</tr>
<tr class="tr1">
<td class="td1" rowspan="3">Perl(5.8.8)</td>
<td class="td1"><strong>plTenjin</strong> (0.0.1)</td>
<td class="td1" align="right"><strong>10.42</strong></td>
<td class="td1" align="right"><strong>5.72</strong></td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://template-toolkit.org/">Template-Toolkit</a>(XS) (2.18)</td>
<td class="td1" align="right">103.58</td>
<td class="td1" align="right">26.30</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://html-template.sourceforge.net/">HTML::Template</a> (2.9)</td>
<td class="td1" align="right">46.70</td>
<td class="td1" align="right">30.21</td>
</tr>
<tr class="tr1">
<td class="td1">JS(spidermonkey)</td>
<td class="td1"><strong>jsTenjin</strong> (0.0.1)</td>
<td class="td1" align="right"><strong>19.00</strong></td>
<td class="td1" align="right"><strong>12.98</strong></td>
</tr>
<tr class="tr1">
<td class="td1">JS(Rhino, JDK5)</td>
<td class="td1"><strong>jsTenjin</strong> (0.0.1)</td>
<td class="td1" align="right"><strong>24.29</strong></td>
<td class="td1" align="right"><strong>19.15</strong></td>
</tr>
<tr class="tr1">
<td class="td1" rowspan="2">Java(JDK5)</td>
<td class="td1"><a href="http://velocity.apache.org/">Velocity</a> (1.4)</td>
<td class="td1" align="right">22.80</td>
<td class="td1" align="right">11.41</td>
</tr>
<tr class="tr1">
<td class="td1"><a href="http://velocity.apache.org/">Velocity</a> (1.5)</td>
<td class="td1" align="right">20.01</td>
<td class="td1" align="right">8.42</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/04/07/baseplane-tool-tenjin-templating-library-pytenjin-jstenjin-phptenjin-rbtenjin-pltenjin/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
