<?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>Perlblogs &#187; software</title>
	<atom:link href="http://perlblogs.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://perlblogs.com</link>
	<description>Posts from selected Perl bloggers</description>
	<lastBuildDate>Fri, 18 May 2012 19:03:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Looking for a Senior Developer job? TigerLead is Hiring again in West LA</title>
		<link>http://blog.timbunce.org/2011/04/14/looking-for-a-senior-developer-job-tigerlead-is-hiring-again-in-west-la/</link>
		<comments>http://blog.timbunce.org/2011/04/14/looking-for-a-senior-developer-job-tigerlead-is-hiring-again-in-west-la/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 17:50:58 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[jobs]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=486</guid>
		<description><![CDATA[The company I work for, TigerLead.com, has another job opening in West LA: As a Senior Developer, you will be playing a central role in the design, development, and delivery of cutting-edge web applications for one of the most heavily-trafficked network of real estate sites on the web. You will work in a small, collaborative [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#38;blog=2562816&#38;post=486&#38;subd=timbunce&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The company I work for, <a href="http://www.tigerlead.com/">TigerLead.com</a>, has another job  opening in West LA: </p>
<blockquote><p>As a Senior Developer, you will be playing a central role in the design, development, and delivery of cutting-edge web applications for one of the most heavily-trafficked network of real estate sites on the web. You will work in a small, collaborative environment with other seasoned pros and with the direct support of the company&rsquo;s owners and senior management. Your canvas and raw materials include rich data sets totaling several million property listings replenished daily by hundreds of external data feeds. This valuable data and our powerful end-user tools to access it are deployed across several thousand real estate search sites used by more than a million home-buyer leads and growing by 50K+ users each month. The 1M+ leads using our search tools are in turn tracked and cultivated by the several thousand real estate professionals using our management software. This is an outstanding opportunity to see your creations immediately embraced by a large community of users as you work within a creative and supportive environment that is both professional and non-bureaucratic at the same time, offering the positives of a start-up culture without the drama and instability. </p></blockquote>
<p>If that sounds like interesting work to you then take a look at the <a href="http://www.tigerlead.com/jobs/senior-web-developer.html">full job posting</a>.</p>
<p>TigerLead is a lovely company to work for and this is a great opportunity. Highly recommended.</p>
<br />Filed under: <a href='http://blog.timbunce.org/category/tech/software/perl/'>perl</a>, <a href='http://blog.timbunce.org/category/tech/software/'>software</a> Tagged: <a href='http://blog.timbunce.org/tag/jobs/'>jobs</a>, <a href='http://blog.timbunce.org/tag/perl/'>perl</a>, <a href='http://blog.timbunce.org/tag/postgresql/'>postgresql</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/timbunce.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/timbunce.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/timbunce.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/timbunce.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/486/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#038;blog=2562816&%23038;post=486&%23038;subd=timbunce&%23038;ref=&%23038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2011/04/14/looking-for-a-senior-developer-job-tigerlead-is-hiring-again-in-west-la/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://1.gravatar.com/avatar/1cf82705f5ab43c73273ab5d690866b3?s=96&amp;amp;d=identicon&amp;amp;r=G" length="" type="" />
		</item>
		<item>
		<title>java2perl6api – Java to Perl 6 API translation – What, Why, and Whereto</title>
		<link>http://blog.timbunce.org/2010/07/16/java2perl6api-java-to-perl-6-api-tranalation-what-why-and-whereto/</link>
		<comments>http://blog.timbunce.org/2010/07/16/java2perl6api-java-to-perl-6-api-tranalation-what-why-and-whereto/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 17:12:59 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[dbdi]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=460</guid>
		<description><![CDATA[In this post I&#8217;m going to talk about the java2perl6api project. What its goals are, why I think it&#8217;s important, how it relates to a Perl 6 DBI, what exists now, what&#8217;s needs doing, and how you can help. Firstly I&#8217;d like to point out that, funnily enough, I&#8217;m not very familiar with Java or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#38;blog=2562816&#38;post=460&#38;subd=timbunce&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In this post I&#8217;m going to talk about the java2perl6api project. What its goals are, why I think it&#8217;s important, how it relates to a Perl 6 DBI, what exists now, what&#8217;s needs doing, and how you can help.<br />
<span id="more-460"></span></p>
<p>Firstly I&#8217;d like to point out that, funnily enough, I&#8217;m not very familiar with Java or Perl6. It&#8217;s entirely possible that I&#8217;ll make all sorts of errors in the following details. If you spot any do please let me know.</p>
<h2>Background</h2>
<p>The Java language ecosystem is big and mature after years of heavy investment of time and money.</p>
<p>It doesn&#8217;t have a central repository of Open Source modules like CPAN (though <a href="http://en.wikipedia.org/wiki/Apache_Maven">Maven</a> repositories <a href="http://download.java.net/maven/1/">like</a> <a href="http://repo1.maven.org/maven2/">these</a> are similar I guess). It does, however, have a number of mature high quality class libraries, and a very large number of developers familiar with those libraries (more on that below).</p>
<h2>Goals</h2>
<p>The primary goal of the java2perl6api project is to make it easy to create Perl 6 class libraries that <em>mirror</em> Java equivalents. By <em>mirror</em> I mean share the same method names and semantics at a high level (though not at a low-level, more on that below).</p>
<p>Secondary goals are to do that well enough that:</p>
<ul>
<li>the documentation for Java classes can serve as primary the documentation for the corresponding Perl 6 classes. The Perl 6 classes need only document the differences in behavior, which these should be minimal and &#8216;natural&#8217;. The same applies to books describing the Java classes.
</li>
<li>Java developers familiar with the Java classes should feel comfortable working with the corresponding Perl 6 classes.
</li>
<li>and, hopefully, some way can be found to convert test suites for the Java classes into Perl 6 code that&#8217;ll test the corresponding Perl 6 classes. (I appreciate that this is a non-trivial proposition, but there are viable approaches available, like <a href="http://www.xmlvm.org/overview/">xmlvm</a>.) Even if that can&#8217;t be done, extracting and translating tests manually is less work, and more effective, than creating them from scratch for a new API.
</li>
</ul>
<h2>Why?</h2>
<p>Firstly, creating good APIs is hard. Java APIs like <a href="http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/jdbc/">JDBC 3.0</a> and <a href="http://java.sun.com/developer/technicalArticles/javase/nio/">NIO.2</a> are the result of years of professional effort and demanding commercial experience. Why not build on that experience?</p>
<p>I appreciate that Java APIs are often limited by the constraints of the language, such as the lack of closures, and that Perl 6 can probably express any given set of semantics more effectively than Java. My point here is that some Java APIs embody, however inelegantly, years of hard won experience that we can benefit from. I&#8217;d rather make new mistakes than repeat old ones.</p>
<p>Secondly, there are many more Java developers than Perl developers. Many <em>many</em> more if job vacancies are any indication:</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22,%22java+developer%22" alt="job vacancy trends for perl developer and java developer" height="300" width="540" /></p>
<p>I think we&#8217;d be foolish not to try to smooth the path for any Java developers who might be interested in Perl 6. The java2perl6api project is just one small aspect of that.</p>
<p>I really hope someone starts writing a &#8220;Perl 6 for Java Developers&#8221; tutorial. Perl 6 has the potential to become a very popular language<sup><a href="http://blog.timbunce.org/2010/07/16/java2perl6api-java-to-perl-6-api-tranalation-what-why-and-whereto/#1">1</a></sup>. Getting just a tiny percentage of Java developers (and Computer Science majors and their teachers) interested in it could be a big help.</p>
<p>Thirdly, any future DBI for Perl 6 and Parrot needs a much better foundation than the very limited and poorly defined one that <a href="http://search.cpan.org/~timb/DBI-1.611/lib/DBI/DBD.pm">underlies the Perl 5 DBI</a>. I plan to adopt the JDBC 3.0 API <em>and test suite</em> for that <em>internal</em> role. (You could call this a &#8220;Test Suite Driven Strategy&#8221;.) I&#8217;ll talk more about that in a future blog post.</p>
<h2>The History java2perl6api</h2>
<p>I&#8217;ve been kicking around various ideas for integrating Java and Perl6/Parrot for years. I think I first decided to use JDBC as the inspiration for the DBI-to-driver API in 2006.</p>
<p>You may remember back in 2004, around the 10th anniversary of the DBI, the <a href="http://www.perlfoundation.org/">Perl Foundation</a> setup a &#8220;DBI Development Fund&#8221; that people could <a href="http://dbi.perl.org/donate/">donate</a> to. I&#8217;ve never drawn any money from that fund. I want to use it to oil other peoples wheels.</p>
<p>In 2007 <a href="http://news.perlfoundation.org/2007/03/best-practical-sponsors-perl-6.html">Best Practical sponsored Perl 6 Microgrants</a> through the Perl Foundation. I asked if I could piggyback my idea for a Java to Perl 6 API translator onto their microgrant management process but using money from the DBI Development Fund. TPF and Best Practical kindly agreed. I posted a description of the task and Phil Crow volunteered and was <a href="http://news.perlfoundation.org/2007/04/phil-crow-to-create-jdbc-api-f.html">awarded the microgrant</a> in April 2007.</p>
<p>At OSCON in July 2007 I gave lightning talk called &#8220;<a href="http://www.slideshare.net/Tim.Bunce/dbi-for-parrot-and-perl-6-lightning-talk-2007">Database interfaces for open source languages suck</a>&#8221; which explained the rationale for using JDBC as a foundation for the DBI-to-driver API and mentioned Phil&#8217;s java2perl6 project.</p>
<p>Development ground to a halt around the end of 2007 for various reasons. It picked up again for a few months after OSCON 2009 (where I gave a short lightning talk asking for help) then stalled again in October. Partly because we seemed to have hit a limitation with Rakudo and partly because I was focussed on Devel::NYTProf <a href="http://blog.timbunce.org/2009/12/24/nytprof-v3-worth-the-wait/">version 3</a> and then <a href="http://blog.timbunce.org/2010/06/09/nytprof-v4-now-with-string-eval-x-ray-vision/">version 4</a>, which took <em>way</em> more time than I expected.</p>
<p>There&#8217;s life in the project again now. We&#8217;ve dodged the earlier problem, put the <a href="http://github.com/timbunce/java2perl6">code on github</a>, brought it into sync with current <a href="http://rakudo.org/">Rakudo</a> Perl 6 syntax, and generally instilled some momentum.</p>
<h2>The Current java2perl6api</h2>
<p>Let&#8217;s take a look at a simple example.</p>
<p>To generate a perl6 file that mirrors the API of the java.sql.Savepoint class you&#8217;d just execute java2perl6api like this:</p>
<pre style="background-color:#ddd;margin:2em;padding:1em;">$ java2perl6api java.sql.Savepoint
loading java.sql.Savepoint
wrote java/sql/Savepoint.pm6 - interface java.sql.Savepoint
checking java/sql/Savepoint.pm6 - interface java.sql.Savepoint
</pre>
<p>That&#8217;s loaded and parsed the description of the java.sql.Savepoint class (from the <a href="http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/tooldocs/windows/javap.html">javap</a> command), generated a corresponding perl6 module, and run perl6 to validate it.</p>
<p>The generated module (with some whitespace and cruft removed) looks like this:</p>
<pre style="background-color:#ddd;margin:1em;padding:1em;">use v6;
role java::sql::Savepoint {
    method getSavepointId (
    --&gt; Int   #  int
    ) { ... }
    method getSavepointName (
    --&gt; Str   #  java.lang.String
    ) { ... }
};
=begin pod
=head1 Java
  Compiled from "Savepoint.java"
  public interface java.sql.Savepoint{
      public abstract int getSavepointId() throws java.sql.SQLException;
      public abstract java.lang.String getSavepointName() throws java.sql.SQLException;
  }
=end pod
</pre>
<p>The pod section shows the description of the class that javap returned. The java2perl6api utility parsed that <a href="http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/java/concepts/interface.html">Java interface</a> and generated the corresponding <a href="http://perlcabal.org/syn/S14.html#Roles">Perl6 role</a>. The &#8216;java.sql.Savepoint&#8217; has been mapped to &#8216;java::sql::Savepoint&#8217;. The generated methods are stubs using <code>...</code> (the &#8220;yada, yada, yada&#8221; operator). The types int and java.lang.String have been mapped to Int and Str. Because the only types used were built-ins, no type declarations were added.</p>
<p>Currently java2perl6api handles the above plus overloaded methods (which generate <a href="http://perlcabal.org/syn/S12.html#Multisubs_and_Multimethods">multi methods</a>), multiple implements clauses (which generate multiple <a href="http://perlcabal.org/syn/S14.html#Compile-time_Composition">does</a> clauses). There&#8217;s also partial support for class/interface constants (which currently generate exported methods).</p>
<p>The default behavior is to recursively process any Java types referenced by the class which aren&#8217;t mapped to Perl 6 types. So executing <code>java2perl6api java.sql.Connection</code>, for example, will generate 48 Perl 6 modules! (Because <code>java.sql.Connection</code> refers to many types, including <code>java.sql.Array</code> which refers to many types including <code>java.sql.ResultSet</code> which refers to <code>java.net.URL</code> which refers to <code>java.net.Proxy</code> etc. etc.) The <code>--norecurse</code> options disables this behavior.</p>
<p>Normally you&#8217;ll want to use the recursion but instead of letting it drill <em>all</em> the way into the Java types, you would supply your own &#8216;typemap&#8217; specification via an option. That tells java2perl6api which Java types you want to map to which Perl 6 types. So instead of recursing into the <code>java.net.URL</code> type to generate a <code>java/net/URL.pm6</code> file, for example, you can tell java2perl6api to use a specific Perl 6 type. Perhaps just <code>Str</code> for now.</p>
<h2>How this relates to JDBC / DBDI / DBI v2</h2>
<p>I want to start applying java2perl6api to the <a href="http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/jdbc">JDBC</a> classes now to create a &#8220;Database Driver Interface&#8221; or &#8220;DBDI&#8221; for Perl 6.</p>
<p>Starting with the <a href="http://download-llnw.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/sql/DriverManager.html">DriverManager</a> class and the <a href="http://download-llnw.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/sql/Connection.html">Connection</a>  interface I&#8217;ll use java2perl6api to generate corresponding Perl 6 roles with <em>heavy</em> stubbing out of types. Basically anything I don&#8217;t need to think about right now will be mapped to the <code>Any</code> type.</p>
<p>I&#8217;ll start fleshing out some basic implementation logic for each in a Perl 6 class that <a href="http://perlcabal.org/syn/S14.html#Compile-time_Composition">does</a> the corresponding role. I&#8217;ll probably use PostgreSQL as the first driver and the guts of <a href="http://github.com/mberends/MiniDBI/blob/master/lib/MiniDBD/Pg.pm6">MiniDBD::Pg</a> as inspiration.</p>
<p>The first minor milestones will be creating connections, then execute non-selects, then selects then prepared statements. Somewhere along the way I expect they&#8217;ll be a Perl 6 DBDI driver implemented for the <a href="http://blogs.perl.org/users/martin_berends/2010/06/rakudo-perl-6-gets-into-databases.html">Perl 6 MiniDBI project</a>. The next key step would be to start refactoring the code heavily so anyone wanting to implement a new driver should only have to implement the driver specific parts. (There are some JDBC driver toolkits that can provide useful ideas for that.)</p>
<h2>What needs doing</h2>
<p>There&#8217;s a <a href="http://github.com/timbunce/java2perl6/blob/master/TODO">TODO file in the repository</a> that lists the current items that need working on.</p>
<p>One fairly simple item is to add a <code>--prefix</code> option to specify an extra leading name for the generated role. So <code>java.sql.Savepoint</code> with a prefix of <code>DBDI</code> would generate a <code>DBDI::java::sql::Savepoint</code> role.</p>
<p>Another item, less simple but more important, is to automatically discover the values of constants and embed them into the generated file. Probably the best way to do that is to extend <a href="http://github.com/timbunce/java2perl6/blob/master/lib/Java/Javap/javap.grammar">the parser</a> (which uses <a href="http://search.cpan.org/perldoc?Parse::RecDescent">Parse::RecDescent</a>) to parse the verbose-mode output of javap, which includes those details.</p>
<p>There are <a href="http://github.com/timbunce/java2perl6/blob/master/TODO">plenty of others</a>.</p>
<h2>How you can get involved</h2>
<p>Firstly, come and say &#8220;Hi!&#8221; in the <a href="irc://chat.freenode.net/#dbdi">#dbdi</a> IRC channel on irc.freenode.net.</p>
<p>The code is on <a href="http://github.com/timbunce/java2perl6">github</a>. You can get commit access by asking on the <a href="irc://chat.freenode.net/#perl6">#perl6</a> channel.</p>
<p>There&#8217;s also a mailing list at <a href="mailto:dbdi-dev@perl.org">dbdi-dev@perl.org</a> which you can <a href="mailto:dbdi-dev-subscribe@perl.org">subscribe</a> to.</p>
<p>I look forward to hearing from you!</p>
<hr />
<ol>
<li><a name="1"></a><br />
When I say &#8220;Perl 6 has the potential to become a very popular language&#8221; I do so with typical British <a href="http://en.wikipedia.org/wiki/Understatement">Understatement</a>.
</li>
</ol>
<br />Filed under: <a href='http://blog.timbunce.org/category/tech/software/perl/'>perl</a>, <a href='http://blog.timbunce.org/category/tech/software/'>software</a> Tagged: <a href='http://blog.timbunce.org/tag/dbdi/'>dbdi</a>, <a href='http://blog.timbunce.org/tag/java/'>java</a>, <a href='http://blog.timbunce.org/tag/perl/'>perl</a>, <a href='http://blog.timbunce.org/tag/perl6/'>perl6</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/timbunce.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/timbunce.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/timbunce.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/timbunce.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/460/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/460/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/460/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#038;blog=2562816&%23038;post=460&%23038;subd=timbunce&%23038;ref=&%23038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2010/07/16/java2perl6api-java-to-perl-6-api-tranalation-what-why-and-whereto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.indeed.com/trendgraph/jobgraph.png?q=&quot;perl developer&quot;,&quot;java developer&quot;" length="" type="" />
<enclosure url="http://1.gravatar.com/avatar/1cf82705f5ab43c73273ab5d690866b3?s=96&amp;amp;d=identicon&amp;amp;r=G" length="" type="" />
		</item>
		<item>
		<title>Looking for a new job? TigerLead is also Hiring in Ann Arbor MI</title>
		<link>http://blog.timbunce.org/2010/07/02/looking-for-a-new-job-tigerlead-is-also-hiring-in-ann-arbor-mi/</link>
		<comments>http://blog.timbunce.org/2010/07/02/looking-for-a-new-job-tigerlead-is-also-hiring-in-ann-arbor-mi/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 19:41:27 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[jobs]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=443</guid>
		<description><![CDATA[In addition to the job vacancy in West LA, the company I work for, TigerLead.com, has an opening for a &#8220;skilled developer&#8221; in Ann Arbor, Michigan: Our work involves manipulating and warehousing external data feeds and developing web interfaces to create home search tools for prospective buyers and lead management tools for real estate agents. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#38;blog=2562816&#38;post=443&#38;subd=timbunce&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In addition to the <a href="http://blog.timbunce.org/2010/07/02/looking-for-a-new-job-tigerlead-is-hiring-in-west-la/">job vacancy in West LA</a>, the company I work for, <a href="http://www.tigerlead.com/">TigerLead.com</a>, has an opening for a &#8220;skilled developer&#8221; in Ann Arbor, Michigan:</p>
<blockquote><p> Our work involves manipulating and warehousing external data feeds and developing web interfaces to create home search tools for prospective buyers and lead management tools for real estate agents. We&#8217;re looking for a skilled coder to join our small team of talented engineers in Ann Arbor. We hope to find an experienced programmer who is a good fit with our team, well-versed in multiple languages, able to learn quickly and work independently. We work in a Linux environment, and tools and languages we use include Perl, Ruby on Rails, PostgreSQL, and GIT. Perl experience is a significant plus, but your current comfort level with any of these specific tools is less important than overall technical aptitude and ability to learn quickly and fit in well with the current team.</p></blockquote>
<p>That&#8217;s a little thin on details partly because the work is varied. If you think you might be interested, take a look at the <a href="http://annarbor.craigslist.org/eng/1804836163.html">full job posting</a>.</p>
<p>TigerLead is a lovely company to work for and this is a great opportunity. Highly recommended.</p>
<br />Filed under: <a href='http://blog.timbunce.org/category/tech/software/'>software</a> Tagged: <a href='http://blog.timbunce.org/tag/jobs/'>jobs</a>, <a href='http://blog.timbunce.org/tag/perl/'>perl</a>, <a href='http://blog.timbunce.org/tag/postgresql/'>postgresql</a>, <a href='http://blog.timbunce.org/tag/ruby/'>ruby</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/timbunce.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/timbunce.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/timbunce.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/timbunce.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/443/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/443/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/443/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#038;blog=2562816&%23038;post=443&%23038;subd=timbunce&%23038;ref=&%23038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2010/07/02/looking-for-a-new-job-tigerlead-is-also-hiring-in-ann-arbor-mi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://1.gravatar.com/avatar/1cf82705f5ab43c73273ab5d690866b3?s=96&amp;amp;d=identicon&amp;amp;r=G" length="" type="" />
		</item>
		<item>
		<title>Looking for a new job? TigerLead is Hiring in West LA</title>
		<link>http://blog.timbunce.org/2010/07/02/looking-for-a-new-job-tigerlead-is-hiring-in-west-la/</link>
		<comments>http://blog.timbunce.org/2010/07/02/looking-for-a-new-job-tigerlead-is-hiring-in-west-la/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 17:37:22 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[jobs]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=439</guid>
		<description><![CDATA[The company I work for, TigerLead.com, has an opening for a &#8220;skilled coder / database wrangler&#8221;. We&#8217;re looking for a skilled coder / database wrangler to play a key role within our Operations and Engineering teams. The various responsibilities of the job include working with the large databases underlying our real estate search tools, setting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#38;blog=2562816&#38;post=439&#38;subd=timbunce&#38;ref=&#38;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The company I work for, <a href="http://www.tigerlead.com/">TigerLead.com</a>, has an opening for a &#8220;skilled coder / database wrangler&#8221;. </p>
<blockquote><p>We&#8217;re looking for a skilled coder / database wrangler to play a key role within our Operations and Engineering teams. The various responsibilities of the job include working with the large databases underlying our real estate search tools, setting up services for new clients, communicating with clients to evaluate bug reports, troubleshooting technical issues escalated by our client services team, and interfacing with the engineering team on systems maintenance and development. The scope of work that we do involves managing hundreds of external data feeds that feed into in-house databases totaling several million property listings. These listing databases power hundreds of real estate search sites used by more than a million home-buyer leads, who are tracked and cultivated by the thousands of Realtors using our management software. This position is critical to the robustness of these systems.</p></blockquote>
<p>If that sounds like interesting work to you then take a look at the <a href="http://losangeles.craigslist.org/wst/eng/1821042952.html">full job posting</a>.</p>
<p>TigerLead is a lovely company to work for and this is a great opportunity. Highly recommended.</p>
<br />Filed under: <a href='http://blog.timbunce.org/category/tech/software/'>software</a> Tagged: <a href='http://blog.timbunce.org/tag/jobs/'>jobs</a>, <a href='http://blog.timbunce.org/tag/perl/'>perl</a>, <a href='http://blog.timbunce.org/tag/postgresql/'>postgresql</a>, <a href='http://blog.timbunce.org/tag/ruby/'>ruby</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/timbunce.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/timbunce.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/timbunce.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/timbunce.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/439/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#038;blog=2562816&%23038;post=439&%23038;subd=timbunce&%23038;ref=&%23038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2010/07/02/looking-for-a-new-job-tigerlead-is-hiring-in-west-la/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://1.gravatar.com/avatar/1cf82705f5ab43c73273ab5d690866b3?s=96&amp;amp;d=identicon&amp;amp;r=G" length="" type="" />
		</item>
		<item>
		<title>Looking for a better twitter/identi.ca client</title>
		<link>http://feedproxy.google.com/~r/Infotropism/~3/CeUstgu9V4w/</link>
		<comments>http://feedproxy.google.com/~r/Infotropism/~3/CeUstgu9V4w/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 02:42:14 +0000</pubDate>
		<dc:creator>Skud</dc:creator>
				<category><![CDATA[identi.ca]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[statusnet]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://infotrope.net/blog/?p=382</guid>
		<description><![CDATA[I have two Twitter accounts, Skud for personal stuff (since March 2007), and fbase which I manage for work, as community director at Freebase.com.  Each has around 700+ followers, and regularly gets direct messages and @replies.  I actively follow a couple of hundred people as Skud; the fbase account follows a bunch [...]]]></description>
			<content:encoded><![CDATA[<div class='series_toc'></div> <p>I have two <a href="http://twitter.com/">Twitter</a> accounts, <a href="http://twitter.com/Skud">Skud</a> for personal stuff (since March 2007), and <a href="http://twitter.com/fbase">fbase</a> which I manage for work, as community director at <a href="http://freebase.com/">Freebase.com</a>.  Each has around 700+ followers, and regularly gets direct messages and @replies.  I actively follow a couple of hundred people as Skud; the fbase account follows a bunch of people but I only check it occasionally, via the website, so that can be ignored for now.</p>
<p>I also have a <a href="http://identi.ca">identi.ca</a> account as <a href="http://identi.ca/skud">skud</a>.  Many of my open source contacts primarily use identi.ca, and I would like to use it to keep in touch with them.  I&#8217;ve also created a <a href="http://identi.ca/">freebase</a> account on identi.ca.</p>
<p>So, here are my requirements:</p>
<ul>
<li>I want to use a single client to manage all my tweeting and denting without having to login and out.
<li>My desktop environment is OSX.  I would accept a desktop client, or a good web- or browser-based one.  I&#8217;ll consider Linux-based clients running under Parallels, but it&#8217;s a bit of a PITA to set up.
<li>I want to be able to tweet/dent in one place and have it show up in both by default
<li>&#8230; but be able to direct it to just one location if appropriate, on a tweet-by-tweet basis.
<li>I want to minimise accidents where I accidentally tweet something personal on my work account (eek!)
<li>I want to follow people on both services (Twitter and identi.ca) in close-to-realtime, and be able to respond/join conversations/retweet in a timely fashion.
<li>I want notifications of @replies and direct messages on both services, for all my accounts.
<li>I also need to follow various searches in close-to-realtime, mostly to respond in a timely way to people talking about or asking questions about Freebase, but I also like to track mentions of my real name, conferences I&#8217;m attending, etc.
<li>I don&#8217;t absolutely need a highly graphical client, but I do appreciate the way seeing people&#8217;s user icons helps me remember who&#8217;s who.
<li>I don&#8217;t need anything special for mobile use; I have a twitter client on my phone that I&#8217;m sufficiently happy with.
</ul>
<p>Currently I&#8217;m using <a href="http://tweetdeck.com/beta/">Tweetdeck</a>, and it&#8217;s not too bad.  Here&#8217;s my current setup (direct messages removed):</p>
<p><a href="http://infotrope.net/blog/wp-content/uploads/2009/10/tweetdeck.png"><img src="http://infotrope.net/blog/wp-content/uploads/2009/10/tweetdeck-300x182.png" alt="tweetdeck" title="tweetdeck" width="300" height="182" class="aligncenter size-medium wp-image-383" /></a> </p>
<p>As you can see, it&#8217;s kind of out of control!  It spreads across my desktop, and I need to scroll sideways to see everything, even with narrow columns.  Plus, it doesn&#8217;t handle identi.ca, and it doesn&#8217;t give me very good cues to remember whether I&#8217;m tweeting as Skud or fbase, which means I&#8217;ve occasionally made embarrassing blunders.</p>
<p>With regard to UI, I suppose I would like something closer to an email client or feed reader, that allows me to set up folders/tags to manage all the stuff I&#8217;m following, and shows counts of new messages in each folder.  The ability to collapse groups of stuff and see an aggregate count would be ideal; obviously I&#8217;d start by grouping &#8220;personal&#8221; and &#8220;Freebase&#8221;.</p>
<p>The other pretty good client I tried was an early version of <a href="http://www.nambu.com/">Nambu</a>, which had the UI I wanted but unfortunately doesn&#8217;t seem to want to let me login to identi.ca.  Here&#8217;s a screenshot of my setup:</p>
<p><a href="http://infotrope.net/blog/wp-content/uploads/2009/10/nambu.png"><img src="http://infotrope.net/blog/wp-content/uploads/2009/10/nambu-300x295.png" alt="nambu" title="nambu" width="300" height="295" class="aligncenter size-medium wp-image-384" /></a></p>
<p>Downsides: the aforementioned failure to work with identi.ca, and I would prefer a little more flexibility in what I show in my sidebar.  Like, I&#8217;d like to completely hide/ignore &#8220;Home&#8221; for the fbase account or at least automatically mark everything there as read.</p>
<p>I&#8217;m waiting on a beta code for the new version of Nambu and hoping it will work properly with identi.ca, but in the meantime, does anyone have suggestions of what else might work for me?</p>
<p><b>ETA:</b> This is an <i>advanced question</i> I&#8217;m asking here.  Yes I&#8217;ve looked in the <a href="http://status.net/wiki/Apps">obvious places</a>.  I&#8217;m looking for a specific recommendation for a fairly specialised set of requirements here, so unless you know the feature set of a client pretty well, chances are that just mentioning one with which you have only a passing acquaintance is unlikely to be helpful.</p>
 <div class='series_links'> </div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Infotropism?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Infotropism?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Infotropism?i=CeUstgu9V4w:cqsiRUEgNLY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Infotropism?i=CeUstgu9V4w:cqsiRUEgNLY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Infotropism?i=CeUstgu9V4w:cqsiRUEgNLY:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Infotropism/~4/CeUstgu9V4w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://infotrope.net/blog/2009/10/09/looking-for-a-better-twitter-identic-clien/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking for a better twitter/identi.ca client</title>
		<link>http://feedproxy.google.com/~r/Infotropism/~3/CeUstgu9V4w/</link>
		<comments>http://feedproxy.google.com/~r/Infotropism/~3/CeUstgu9V4w/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 02:42:14 +0000</pubDate>
		<dc:creator>Skud</dc:creator>
				<category><![CDATA[51595]]></category>
		<category><![CDATA[identi.ca]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://infotrope.net/blog/?p=382</guid>
		<description><![CDATA[I have two Twitter accounts, Skud for personal stuff (since March 2007), and fbase which I manage for work, as community director at Freebase.com.  Each has around 700+ followers, and regularly gets direct messages and @replies.  I actively follow a couple of hundred people as Skud; the fbase account follows a bunch [...]]]></description>
			<content:encoded><![CDATA[<div class='series_toc'></div> <p>I have two <a href="http://twitter.com/">Twitter</a> accounts, <a href="http://twitter.com/Skud">Skud</a> for personal stuff (since March 2007), and <a href="http://twitter.com/fbase">fbase</a> which I manage for work, as community director at <a href="http://freebase.com/">Freebase.com</a>.  Each has around 700+ followers, and regularly gets direct messages and @replies.  I actively follow a couple of hundred people as Skud; the fbase account follows a bunch of people but I only check it occasionally, via the website, so that can be ignored for now.</p>
<p>I also have a <a href="http://identi.ca">identi.ca</a> account as <a href="http://identi.ca/skud">skud</a>.  Many of my open source contacts primarily use identi.ca, and I would like to use it to keep in touch with them.  I&#8217;ve also created a <a href="http://identi.ca/">freebase</a> account on identi.ca.</p>
<p>So, here are my requirements:</p>
<ul>
<li>I want to use a single client to manage all my tweeting and denting without having to login and out.
<li>My desktop environment is OSX.  I would accept a desktop client, or a good web- or browser-based one.  I&#8217;ll consider Linux-based clients running under Parallels, but it&#8217;s a bit of a PITA to set up.
<li>I want to be able to tweet/dent in one place and have it show up in both by default
<li>&#8230; but be able to direct it to just one location if appropriate, on a tweet-by-tweet basis.
<li>I want to minimise accidents where I accidentally tweet something personal on my work account (eek!)
<li>I want to follow people on both services (Twitter and identi.ca) in close-to-realtime, and be able to respond/join conversations/retweet in a timely fashion.
<li>I want notifications of @replies and direct messages on both services, for all my accounts.
<li>I also need to follow various searches in close-to-realtime, mostly to respond in a timely way to people talking about or asking questions about Freebase, but I also like to track mentions of my real name, conferences I&#8217;m attending, etc.
<li>I don&#8217;t absolutely need a highly graphical client, but I do appreciate the way seeing people&#8217;s user icons helps me remember who&#8217;s who.
<li>I don&#8217;t need anything special for mobile use; I have a twitter client on my phone that I&#8217;m sufficiently happy with.
</ul>
<p>Currently I&#8217;m using <a href="http://tweetdeck.com/beta/">Tweetdeck</a>, and it&#8217;s not too bad.  Here&#8217;s my current setup (direct messages removed):</p>
<p><a href="http://infotrope.net/blog/wp-content/uploads/2009/10/tweetdeck.png"><img src="http://infotrope.net/blog/wp-content/uploads/2009/10/tweetdeck-300x182.png" alt="tweetdeck" title="tweetdeck" width="300" height="182" class="aligncenter size-medium wp-image-383" /></a> </p>
<p>As you can see, it&#8217;s kind of out of control!  It spreads across my desktop, and I need to scroll sideways to see everything, even with narrow columns.  Plus, it doesn&#8217;t handle identi.ca, and it doesn&#8217;t give me very good cues to remember whether I&#8217;m tweeting as Skud or fbase, which means I&#8217;ve occasionally made embarrassing blunders.</p>
<p>With regard to UI, I suppose I would like something closer to an email client or feed reader, that allows me to set up folders/tags to manage all the stuff I&#8217;m following, and shows counts of new messages in each folder.  The ability to collapse groups of stuff and see an aggregate count would be ideal; obviously I&#8217;d start by grouping &#8220;personal&#8221; and &#8220;Freebase&#8221;.</p>
<p>The other pretty good client I tried was an early version of <a href="http://www.nambu.com/">Nambu</a>, which had the UI I wanted but unfortunately doesn&#8217;t seem to want to let me login to identi.ca.  Here&#8217;s a screenshot of my setup:</p>
<p><a href="http://infotrope.net/blog/wp-content/uploads/2009/10/nambu.png"><img src="http://infotrope.net/blog/wp-content/uploads/2009/10/nambu-300x295.png" alt="nambu" title="nambu" width="300" height="295" class="aligncenter size-medium wp-image-384" /></a></p>
<p>Downsides: the aforementioned failure to work with identi.ca, and I would prefer a little more flexibility in what I show in my sidebar.  Like, I&#8217;d like to completely hide/ignore &#8220;Home&#8221; for the fbase account or at least automatically mark everything there as read.</p>
<p>I&#8217;m waiting on a beta code for the new version of Nambu and hoping it will work properly with identi.ca, but in the meantime, does anyone have suggestions of what else might work for me?</p>
 <div class='series_links'> </div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Infotropism?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/Infotropism?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Infotropism?i=CeUstgu9V4w:cqsiRUEgNLY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Infotropism?i=CeUstgu9V4w:cqsiRUEgNLY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Infotropism?a=CeUstgu9V4w:cqsiRUEgNLY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Infotropism?i=CeUstgu9V4w:cqsiRUEgNLY:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Infotropism/~4/CeUstgu9V4w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://infotrope.net/blog/2009/10/09/looking-for-a-better-twitter-identic-clien/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customer Relationship Management (CRM) systems in Perl</title>
		<link>http://blog.timbunce.org/2009/07/06/customer-relationship-management-crm-systems-in-perl/</link>
		<comments>http://blog.timbunce.org/2009/07/06/customer-relationship-management-crm-systems-in-perl/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 15:28:17 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[crm]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=286</guid>
		<description><![CDATA[I&#8217;m looking for a CRM system implemented in Perl. As it turns out, so are the Perl Foundation. So I thought I&#8217;d summarize my interpretation of the comments on that thread, as much for my own benefit as yours, and see if this post flushes out any further information. We&#8217;ll start with the smaller/personal projects [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#38;blog=2562816&#38;post=286&#38;subd=timbunce&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m looking for a CRM system implemented in Perl. As it turns out, <a href="http://news.perlfoundation.org/2008/01/i_need_a_crm_package.html">so are the Perl Foundation</a>.</p>
<p>So I thought I&#8217;d summarize my interpretation of the comments on that thread, as much for my own benefit as yours, and see if this post flushes out any further information.</p>
<p>We&#8217;ll start with the smaller/personal projects and work up from there&#8230;<br />
<span id="more-286"></span></p>
<h2>John Cappiello</h2>
<p>John mentioned that he was working on something. I sent John an email to ask for an update and he said it had &#8220;morphed away from a CRM into something not really overlapping much at all&#8221;.</p>
<h2>Gábor Szabó</h2>
<p>Gábor Szabó mentioned in the thred that he has &#8220;a simple CRM I use in-house that I plan to release as open source one day. It is written in Perl. While it is very minimalistic if you are interested I can show it and we can discuss what additional features TPF might need.&#8221;</p>
<h2><a href="http://www.hiivesystems.com">Affinity</a></h2>
<p>Affinity was mentioned in the thread, but I can&#8217;t find any <a href="http://www.google.com/search?q='open+source'+site:hiivesystems.com">references</a> to it being open source.</p>
<h2><a href="http://www.thinx.ch">CustomX</a></h2>
<p>The web pages are in German, so here&#8217;s a <a href="http://translate.google.com/translate_c?hl=en&amp;sl=de&amp;tl=en&amp;u=http://www.thinx.ch/topic7854/story20752.html&amp;rurl=translate.google.com&amp;usg=ALkJrhiQbWFGGcA08iaAz6pwcweciFno_g">translation to English</a> of their web site, which gets visually mangled in the process, and a much more readable translation of their 2006 <a href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;tl=en&amp;u=http://download.contentx.ch/1/crm_whitepaper.pdf&amp;rurl=translate.google.com">whitepaper</a>.</p>
<p>It&#8217;s available under the Perl Artistic License. The base language is German. I don&#8217;t know what level of internationalization/locaization they support.</p>
<p>They currently use mod_perl v1 and say it&#8217;s &#8220;not tested&#8221; for v2, which seems to suggest a lack of maintenance. Databases supported include Postgres, Oracle, MySQL, and Informix. It&#8217;s extensible via plugins.</p>
<p>I couldn&#8217;t find any indication of a development community.</p>
<h2><a href="http://wice.de/produkt.html">Wice CRM Groupware</a></h2>
<p>Another German CRM system, so here&#8217;s a <a href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;u=http://www.wice.de/">translation</a> of their home page. It&#8217;s in use by <a href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;u=http://www.wice.de/partner.html">a range of companies</a>, and they even have a <a href="http://www.wice.de/20051114_Magazin_mit_Award.pdf">glossy magazine</a> (though it looks like a once-off produced in 2005).</p>
<p>&#8220;Wice is a LAMP system with Linux as operating system, Apache as web and application server, MySQL as the database and the system is developed as an Apache module in mode_perl.&#8221;</p>
<p>&#8220;We have Wice a plugin architecture, which we almost arbitrary adjustments, enhancements and interfaces can be realized [...] There are also numerous standard plugins, such as a web, an integrated CMS, or a Customer Self Service Center.&#8221;</p>
<p>The source code is not &#8216;free&#8217;, however. You get the source code only <a href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;u=http://crm.blogg.de/eintrag.php?id=245">when you licence the software</a>.</p>
<h2><a href="http://donor.com/">Donor.com</a></h2>
<p>&#8220;Our software has been serving non-profits for 30+ years. We have spent the past 5 years wrapping all of our C-based business logic with Perl to expose everything as Web Services (50 modules and 300+ methods so far). Our presentation layers are the WebGUI CMS (also Perl) and a cross-client GUI (Win/OSX/Linux) written in wxPerl. Our systems integrate everything from CRM, inventory management, event tracking, credit card processing, bulk email, direct mail, magazine subscriptions, sponsorships, etc. Almost everything in our system is configurable. We have not yet open-sourced all of our code, but we did just transition our ownership to a new 501(c)3, the DonorWare Foundation, to help facilitate that in the future.&#8221;</p>
<p>Jim Brandt replied to comment in the thread saying &#8220;I got another response from the folks who run donor.com. Turns out they are heavy perl users, so we&#8217;re looking at their system right now to see if it will meet our needs. I&#8217;ll post with more details once we know.&#8221; No news yet.</p>
<p>Josh Berkus expressed some <a href="http://lists.flossfoundations.org/pipermail/foundations-software/Week-of-Mon-20080929/thread.html#22">pros and cons</a> of using donor.com.</p>
<h2>Other Perl CRM Systems?</h2>
<p>What have I missed? Are there any other open source CRM systems out there implemented in Perl?</p>
<hr />
<p>For comparison, here are some details (mostly skimmed from Wikipedia) of open source CRM systems not implemented in perl&#8230;</p>
<h2><a href="http://en.wikipedia.org/wiki/CiviCRM">CiviCRM</a></h2>
<p>Designed to meet the needs of advocacy, non-profit and non-governmental groups. Implemented in PHP. The license for the current version is the GNU AGPL 3.</p>
<p>CiviCRM may be deployed either standalone or alongside Drupal and Joomla! content management systems. Both the Drupal and Joomla! professional associations use CiviCRM. The standalone version is intended to work alongside other CMSs.</p>
<p>CiviCRM is used by many large NGOs including Amnesty International, Creative Commons and the Wikimedia Foundation for their fundraising.</p>
<p>They&#8217;re currently considering a <a href="http://civicrm.org/node/589">new architecture</a>:</p>
<blockquote><p><em>In short, we propose using PHP Doctrine for the ORM layer [...] we propose using thin controllers which speak XML and JSON. All UI is subsequently pushed directly to HTML, JS and jQuery. The controllers and the UI are connected through authenticating RESTful interface.</em></p></blockquote>
<p>Link to the <a href="https://www.ohloh.net/p/civicrm"> CiviCRM project page</a> at Ohloh.net.</p>
<h2><a href="http://en.wikipedia.org/wiki/Vtiger_CRM">vtiger CRM</a></h2>
<p>An open source fork of SugerCRM. Implemented in PHP, initially released in 2003. Seems to be supported by AdventNet, who make a non-open source Java based CRM called Zoho. Licences: vtiger Public License 1.1 and SugarCRM Public License 1.1.2.</p>
<p>Hosted at <a href="http://sourceforge.net/projects/vtigercrm/">sourceforge</a>. Link to <a href="https://www.ohloh.net/p/civicrm"> vtiger project page</a> at Ohloh.net.</p>
<h2><a href="http://www.epesibim.com/">epesi BIM</a></h2>
<p>Implemented in PHP. Links to the developers <a href="http://www.epesi.org/index.php?title=Main_Page">wiki</a>, <a href="http://forum.epesibim.com/">forums</a>, and Ohloh.net <a href="https://www.ohloh.net/p/12690">project page</a>.</p>
<hr />
<p>A search on Ohloh.net for <a href="https://www.ohloh.net/p?q=tag:crm">tag:crm</a> yields 649 projects with the CRM tag!</p>
<p>It turns out that Ohloh is a great way to look for projects. The Analysis Summary on each project page gives a useful overview of some key metrics: &#8220;Large, active development team&#8221;, &#8220;Few source code comments&#8221; etc.</p>
<p>Sorting the list in various ways and taking the projects (other than those above) that appear on the first page of each, gives this list, in no particular order:</p>
<h2><a href="https://www.ohloh.net/p/openerp">OpenERP</a></h2>
<p>&#8220;Python. Formerly known as TinyERP. OpenERP is an Open Source enterprise management software.	It covers and integrates most enterprise needs and processes: accounting, hr, sales, crm, purchase, stock, production, services management, project management, marketing campaign, management by affairs, &#8230; </p>
<p>Once in production, it automates and help you to control all activities: sales triggers manufacturing orders, accounting entries are updated by stock operations, incoming mails are tracked in the system, the integrated document management system helps your team to collaborate, &#8230;&#8221;</p>
<h2><a href="https://www.ohloh.net/p/162">Open For Business Project (Apache OFBiz)</a></h2>
<p>Java. &#8220;The Open For Business Project is a set of tools and enterprise applications including ERP, CRM, e-commerce, SCM, MRP, and CMMS/EAM. It uses a service oriented and events driven architecture and tools to automate all aspects of application development and maintenance.&#8221;</p>
<h2><a href="https://www.ohloh.net/p/omnierp">Omni ERP</a></h2>
<p>Python. &#8220;Omni ERP is an innovative business application platform; it is completely based in open source technologies and brings a whole new level of modularity and flexibility to the business solutions environment.<br />
It uses a new approach combining new software engineering techniques like plugin based architecture, inversion of control and aspect oriented programming with a refreshing new RIA UI to bring a new level of experience to the SME market&#8221;</p>
<h2><a href="https://www.ohloh.net/p/adempiere">ADempiere</a></h2>
<p>Java. &#8220;ADempiere Business Suite ERP/CRM/MFG/SCM/POS done the Bazaar way in an open and unabated fashion. Focus is on the Community that includes Subject Matter Specialists, Implementors and End-Users. We are a community fork of Compiere&#8221;</p>
<h2><a href="https://www.ohloh.net/p/erp5">ERP5</a></h2>
<p>Python. &#8220;ERP5 is a full featured high end Open Source / Libre Software solution published under GPL license and used for mission critial ERP / CRM / MRP / SCM / PDM applications by industrial organisations and government agencies.</p>
<p>It is distributed to linux community via packages for numerous distributions (Mandriva, Debian, Ubuntu,&#8230;) and a dedicated Live CD.&#8221;</p>
<h2><a href="https://www.ohloh.net/p/jfire">JFire</a></h2>
<p>Java. &#8220;JFire is an ERP, CRM, eBusiness, and SCM/SRM solution for business enterprises. It uses JavaEE, JDO, and Eclipse RCP, and is designed to be highly customizable. It is a complete and extensible solution that fulfills business needs like user management, online trade with business partners, points of sale, various distribution channels forming a distribution network, store management, etc.&#8221;</p>
<h2><a href="https://www.ohloh.net/p/5550">CK-ERP</a></h2>
<p>PHP. &#8220;CK-ERP is an open source accounting / MRP / ERP / CRM system that runs on top of multiple middlewares. It provides accounting and back office functionalities to SMEs and utilizes the underlying middleware to administer accounts/groups.</p>
<p>It comprises 22 modules &#8211; Administration, Multilingual Facility, Contact Management, Customer Relationship, Customer Self Service, Vendor Relationship, Material Requirement Planning, Warehouse, Inventory, Service, Accounting Ledger, Bank Reconciliation, Accounts Payable, Accounts Receivable, Purchase Order, Sales Order, Quotation, POS for Cashier, POS for Manager, Human Resources, Staff Self Service and Payroll.</p>
<p>Operating platform can either be LAMP or LAPP. Backend database engine can be anyone of MySQL, PostgreSQL and SQLite&#8221;. Oddly, their home page says &#8220;minimal documentation will be made available to users of CK-ERP&#8221; and their <a href="http://ck-erp.net/xoops/htdocs/modules/content/index.php?id=7">roadmap</a> is old.</p>
<h2><a href="https://www.ohloh.net/p/5061">Blue ERP</a></h2>
<p>PHP. &#8220;Blue ERP is an open source, web based ERP application. Its goal is to provide a flexible and user friendly interface that can work out of the box and be modified to suit specific needs easily.</p>
<p>The main goals of the projects are:* provide a feature full ERP application<br />
* be open in licence and in spirit &#8211; in blue ERP everything is open, especially the development<br />
* be user friendly by providing adequate documentation and assistance to users to encourage widespread adoption&#8221;</p>
<h2><a href="https://www.ohloh.net/p/5613">OTRS::ITSM</a></h2>
<p>After all the PHP systems, it&#8217;s nice to find one implemented in Perl! Though the description suggests it&#8217;s geared towards the needs of an IT Service organization.</p>
<p>&#8220;ITIL compliant Open Source IT Service Management Solution (ITSM). Requires the OTRS (Open Ticket Request System) framework.</p>
<p>Besides all OTRS features, new ones include Incident, Problem and Configuration Management, integrated Configuration Management Data Base; process spanning Communication management: within the IT Service organization, towards Customers/Users/Management and Suppliers/Providers; powerfull statistical features for (Trend-)Analysis, key figured Reporting, ITSM-Planning/-Controlling; flexible configuration, customizing and expandability regarding your individual requirements.&#8221;</p>
<hr />
<p>[That's quite enough "CRM" systems! Ed.]</p>
<br />Posted in software Tagged: crm, open source, perl, php <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&blog=2562816&post=286&subd=timbunce&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2009/07/06/customer-relationship-management-crm-systems-in-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://1.gravatar.com/avatar/1cf82705f5ab43c73273ab5d690866b3?s=96&amp;amp;d=identicon&amp;amp;r=G" length="" type="" />
		</item>
		<item>
		<title>Fixing the POD synopsis in OSX – take 2 (perldoc, nroff and UTF-8)</title>
		<link>http://blog.timbunce.org/2009/05/19/fixing-the-pod-synopsis-in-osx-take-2-perldoc-nroff-and-utf-8/</link>
		<comments>http://blog.timbunce.org/2009/05/19/fixing-the-pod-synopsis-in-osx-take-2-perldoc-nroff-and-utf-8/#comments</comments>
		<pubDate>Tue, 19 May 2009 22:52:57 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=273</guid>
		<description><![CDATA[Ever copied and pasted a chunk from perldoc output and found you were getting mysterious errors from perl? I have. I&#8217;ve learnt to rewrite the &#8216;-&#8217; characters because although they look like &#8216;-&#8217; characters they&#8217;re really a unicode HYPHEN: U+2010. Some other chars get mangled too, but that&#8217;s the most frequent problem for me. So [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#38;blog=2562816&#38;post=273&#38;subd=timbunce&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Ever copied and pasted a chunk from perldoc output and found you were getting mysterious errors from perl? I have.</p>
<p>I&#8217;ve learnt to rewrite the &#8216;-&#8217; characters because although they look like &#8216;-&#8217; characters they&#8217;re really a unicode HYPHEN: U+2010. Some other chars get mangled too, but that&#8217;s the most frequent problem for me.</p>
<p>So I was delighted to see a blog post by marcus ramberg called <a href="http://marcus.nordaaker.com/2009/05/fixing-the-pod-synopsis-in-osx/">Fixing the POD synopsis in OSX</a> wherein he fingers nroff as being the problem and gives a simple solution:</p>
<blockquote><p><code>alias perldoc='perldoc -t'</code></p></blockquote>
<p>Trouble is using perldoc -t means you loose the nice bold text that nroff gives you. So I went digging&#8230;</p>
<p>It seems the problem only affects people using UTF-8 and that nroff has a -T option that lets you specify an output encoding to use. So if perldoc ran &#8216;nroff -Tascii&#8217; instead of plain &#8216;nroff&#8217; that would avoid the hypen problem and let us keep the bold text.</p>
<p>It turns out that perldoc has an option to specify the nroff command to use, so the solution is simple:</p>
<blockquote><p><code>alias perldoc="perldoc -n 'nroff -Tascii'"</code></p></blockquote>
<p>This is, of course, still a hack. My main worry is that pod docs using non-ascii characters may get mangled. A much better fix would be to arrange for the ascii characters to not get mapped to unicode at all. So I went digging again&#8230;</p>
<p>nroff calls <code>groff -m tty-char ...</code> and tty-char refers to a tty-char.tmac file that defines the character mappings. The groff man pages point me to groff_tmac man pages which tell me I can get groff to look for .tmac files elsewhere by passing a -Mdir option or setting the GROFF_TMAC_PATH environment variable.</p>
<p>I looked at the default file, /usr/share/groff/1.19.2/tmac/tty-char.tmac on my Mac, and&#8230; decided it was time to go to sleep! The formatting is probably simple enough but I&#8217;m out of tuits.</p>
<p>So, what&#8217;s needed is for someone to determine what change is needed to the tty-char.tmac file, or the files it refers to, to avoid unwanted conversions to unicode. Then put a modified file into a directory and either add a -Mdir option to the nroff alias above, or set the GROFF_TMAC_PATH environment variable. Setting the env var has the benefit of &#8216;fixing&#8217; all the man pages.</p>
<p>So, anyone want to dig deeper? (For all I know the solution can already be found on google&#8230;)</p>
<br />Posted in software Tagged: unicode <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/273/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&blog=2562816&post=273&subd=timbunce&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2009/05/19/fixing-the-pod-synopsis-in-osx-take-2-perldoc-nroff-and-utf-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TIOBE Index is being gamed</title>
		<link>http://blog.timbunce.org/2009/05/17/tiobe-index-is-being-gamed/</link>
		<comments>http://blog.timbunce.org/2009/05/17/tiobe-index-is-being-gamed/#comments</comments>
		<pubDate>Sun, 17 May 2009 23:35:19 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[language]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=270</guid>
		<description><![CDATA[It is sad, but inevitable, that the TIOBE index of programming language &#8220;popularity&#8221; (sic) would be gamed. Once you start measuring something, and advertising the results, people with an interest in particular outcomes naturally start to look for ways to influence those results. (It&#8217;s the Observer Effect writ large.) The fact that TIOBE&#8217;s methodology, which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#38;blog=2562816&#38;post=270&#38;subd=timbunce&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<p>It is sad, but inevitable, that the <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE index</a> of programming language &#8220;popularity&#8221; (sic) would be gamed.</p>
<p>Once you start measuring something, and advertising the results, people with an interest in particular outcomes naturally start to look for ways to influence those results. (It&#8217;s the <a href="http://en.wikipedia.org/wiki/Observer_effect_(physics)">Observer Effect</a> writ large.)</p>
<p>The fact that TIOBE&#8217;s methodology, which I&#8217;ve discussed previously <a href="http://blog.timbunce.org/2008/04/12/tiobe-or-not-tiobe-lies-damned-lies-and-statistics/">here</a> and <a href="http://blog.timbunce.org/2008/04/20/tiobe-or-not-tiobe-an-update/">here</a>, is simplistic makes it particularly open to gaming. Anyone, or any community, with access to many web pages can simply add the magic phrase &#8220;<em>foo</em> programming&#8221;, where <em>foo</em> is their language of choice, to get counted.</p>
<p>And it seems that&#8217;s exactly what the Delphi community did at the end of 2008<sup><a href="http://blog.timbunce.org/2009/05/17/tiobe-index-is-being-gamed/#1">1</a></sup>. They <a href="http://www.delphi.org/2008/10/the-many-faces-of-delphi/">made</a> a <a href="http://www.delphi.org/2008/10/delphi-keeps-climbing/">concerted</a> <a href="http://www.delphi.org/2008/10/delphi-language-of-the-year-2008/">effort</a> and it seems to have paid off. (I&#8217;d be very interested in hearing about similar behaviour in other language communities.)</p>
<p>Is that behaviour gaming? The author of the post who exhorted is readers to &#8220;<em>Update your Delphi related blog or site to say Delphi programming on every page in visible text (update the template). Stand up and be counted. You can make a difference!</em>&#8221; doesn&#8217;t seem to think so, as he also said &#8220;<em>I am not suggesting we game the system, just that we help TCPI get an accurate count.</em>&#8220;</p>
<p>An accurate count of <em>what</em>, exactly? That&#8217;s always been the fundamental question with TIOBE. It should be obvious that most web pages that talk about &#8220;delphi programming&#8221; wouldn&#8217;t actually contain the phrase &#8220;delphi programming&#8221;. The same applies to every other language. That&#8217;s the paradox at the heart of the TIOBE Index. And yet, somehow, TIOBE seem to think that counting pages containing the phrase &#8220;delphi programming&#8221; lets them claim that:</p>
<blockquote><p><em>The ratings are based on the number of skilled engineers world-wide, courses and third party vendors.</em></p></blockquote>
<p>Eh? How can they possibly defend that claim? Certainly their documented <a href="http://www.tiobe.com/content/paperinfo/tpci/tpci_definition.htm">definition</a> doesn&#8217;t support it, or even mention it.</p>
<p>I presume they&#8217;re thinking that CV&#8217;s, job postings, and adverts are most likely to contain the magic phrase. It should be obvious, again, that the number of CV&#8217;s, job postings, and adverts referring to a given programming language would naturally only be a small fraction of the total web pages referring to the language. (And only distantly related to the &#8220;popularity&#8221; of a language.) Yet that &#8220;small fraction&#8221; is what TIOBE measure and make bold claims about.</p>
<p>The fact that TIOBE is making a comparison based on a small fraction makes it even more troubling that TIOBE CEO Paul Jansen appears to support language communities changing their pages to include the magic &#8220;<em>foo</em> programming&#8221; phrase. In an email quoted on <a href="http://www.delphi.org/2008/10/delphi-language-of-the-year-2008/">delphi.org</a> he says:</p>
<blockquote><p> For your information, I think your action has already some effect. Tonight’s run shows that Delphi is #8 at this moment. There is a realistic chance that Delphi will become “TIOBE’s Language of the Year 2008″</p></blockquote>
<p>He&#8217;s endorsing the <em>artificial insertion</em> of the magic phrase. Clearly this distorts the TIOBE index in favour of language communities that infect as many pages as possible with the magic phrase.</p>
<p>That sure seems like an invitation to game the system! It&#8217;s likely to lead to other language communities doing the same, and so to further devaluation of the TIOBE Index.</p>
<p>(For alternatives to TIOBE you could look at sites like <a href="http://www.langpop.com/">http://www.langpop.com/</a>, James Robson&#8217;s <a href="http://lui.arbingersys.com/index.html">Language Usage Indicators</a>, or my popular <a href="http://blog.timbunce.org/2008/02/12/comparative-language-job-trend-graphs/">comparison of job trends</a> blog post with &#8216;live&#8217; graphs.)</p>
<p>I have, on a couple of <a href="http://blog.timbunce.org/2008/04/28/this-is-a-perl-blog-too-at-least-partly/">occasions</a>, used the phrase &#8220;perl programming&#8221; in blog posts for my own amusement, and linked it to my original <a href="http://blog.timbunce.org/2008/04/12/tiobe-or-not-tiobe-lies-damned-lies-and-statistics/">TIOBE or not TIOBE – “Lies, damned lies, and statistics”</a> post. I haven&#8217;t suggested that others do the same. TIOBE&#8217;s endorsement of artificial insertion changes that. Now it seems like we&#8217;re going to get a dumb &#8220;race to the bottom&#8221; to see which language community controls the most web pages.</p>
<p>If, as a result, the TIOBE Index is affected significantly, then I simply hope they&#8217;ll drop their pretentious claims and state clearly exactly what they&#8217;re counting, how they&#8217;re doing it, and what it <em>means</em>: not much.</p>
<hr />
<p><a name="1">1.</a> Many thanks to <a href="http://transfixedbutnotdead.com/">Barry Walsh</a> for his <a href="http://transfixedbutnotdead.com/2009/05/17/perl-blogs/">blog post</a> that alerted me to this.</p>
<br />Posted in software Tagged: language <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/270/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/270/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/270/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&blog=2562816&post=270&subd=timbunce&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2009/05/17/tiobe-index-is-being-gamed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crouching Tiger</title>
		<link>http://blog.timbunce.org/2008/12/17/crouching-tiger/</link>
		<comments>http://blog.timbunce.org/2008/12/17/crouching-tiger/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 12:31:37 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[dashprofiler]]></category>
		<category><![CDATA[gofer]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[nytprof]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[tigerlead]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=213</guid>
		<description><![CDATA[After almost exactly two years working for Shopzilla I&#8217;ve moved on.
I&#8217;ve enjoyed my time with Shopzilla, met some great people, and worked on some challenging problems. I&#8217;m especially grateful to them for giving me the opportunity to develop and release some very useful Open Source software: Gofer, DashProfiler, and especially NYTProf v2.
When I started with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&#38;blog=2562816&#38;post=213&#38;subd=timbunce&#38;ref=&#38;feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After almost exactly two years working for Shopzilla I&#8217;ve moved on.</p>
<p>I&#8217;ve enjoyed my time with Shopzilla, met some great people, and worked on some challenging problems. I&#8217;m especially grateful to them for giving me the opportunity to develop and release some very useful Open Source software: <a href="http://search.cpan.org/perldoc?DBD::Gofer">Gofer</a>, <a href="http://search.cpan.org/perldoc?DashProfiler">DashProfiler</a>, and especially <a href="http://search.cpan.org/perldoc?Devel::NYTProf">NYTProf v2</a>.</p>
<p>When I started with ValueClick back in 1999 it was a small company. Over the years I was with them it grew rapidly, both from within and via mergers. When I left in 2006 it had become a very large company. For me Shopzilla was always a very large company.</p>
<p>I <em>really</em> like to make a significant positive impact where I work. I believe I did that at ValueClick and Shopzilla, but it&#8217;s always easier at a smaller company. There&#8217;s far less inertia to overcome.</p>
<p>So I&#8217;m delighted to be working now at a small company with a great team, product, technology, approach, and growth: <a href="http://tigerlead.com/">TigerLead.com</a></p>
<p>I&#8217;m not keen on job titles, but I needed to put <em>something</em> on my <a href="http://www.linkedin.com/in/timbunce">LinkedIn profile</a>. After <a href="http://putthingsoff.com/dont-use-these-job-titles/">exploring</a> <a href="http://positivesharing.com/2007/12/who-cares-about-your-job-title-tell-me-what-you-do/">some</a> <a href="http://www.bullshitjob.com/titles.html">options</a> I settled on &#8220;Entropy Minimizer&#8221;!</p>
<p>I&#8217;m also delighted to be working with the <a href="http://www.postgresql.org/">PostgreSQL</a> database, at last, as I&#8217;ve not had a chance to work with it before. (Although I used to be good at tuning <a href="http://en.wikipedia.org/wiki/INGRES">Ingres</a>, the distant forerunner of PostgreSQL, back in the days when RDBMS were novel and we thought a 50MHz cpu was fast.)</p>
Posted in life, software Tagged: dashprofiler, gofer, nytprof, postgresql, tigerlead <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&blog=2562816&post=213&subd=timbunce&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2008/12/17/crouching-tiger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

