<?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/"
	>

<channel>
	<title>echolibre blog &#187; innovation</title>
	<atom:link href="http://blog.echolibre.com/category/innovation/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.echolibre.com</link>
	<description></description>
	<pubDate>Tue, 25 May 2010 13:52:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HipHop for PHP, Facebook unveils it&#8217;s magic</title>
		<link>http://blog.echolibre.com/2010/02/hiphop-for-php-facebook-unveils-its-magic/</link>
		<comments>http://blog.echolibre.com/2010/02/hiphop-for-php-facebook-unveils-its-magic/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 18:38:26 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[APC]]></category>

		<category><![CDATA[Facebook]]></category>

		<category><![CDATA[HipHopPHP]]></category>

		<category><![CDATA[LLVM]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[RoadsendPHP]]></category>

		<category><![CDATA[community]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[phc]]></category>

		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=791</guid>
		<description><![CDATA[Facebook Releases HipHop for PHP]]></description>
			<content:encoded><![CDATA[<p>After many days of speculations all around the web about Facebook&#8217;s rewrite of PHP, today Haiping Zhao from the Facebook team has announced &#8220;HipHop for PHP&#8221;. The basic idea of HipHop for PHP is that it turns the code you write in PHP into C++ which then can be turned into machine code.</p>
<p>Even though there are others idea that have tried accomplishing the same goal as HipHop for PHP, I believe it is quite safe to assume that Facebook has a large enough user-base to produce code that is solid enough to run and can run well.</p>
<p>The announcement has been made on the <a title="Facebook HipHop For PHP" href="http://developers.facebook.com/news.php?blog=1&amp;story=358">Facebook blog earlier today</a>, and tonight there is going to be the video tech talk that everybody can watch:</p>
<blockquote><p>This evening we&#8217;re hosting a small group of developers to dive deeper into HipHop for PHP and will be streaming this tech talk live. Check back <a title="Facebook HipHop For PHP" href="http://developers.facebook.com/news.php?blog=1&amp;story=358">here</a> around 7:30pm Pacific time if you&#8217;d like to watch.</p></blockquote>
<p>A few questions come to mind even though we haven&#8217;t seen the code just yet. My main concern though is the one of buffer overflows and the security implications of turning PHP code into C++. As they say on the blog, it took nearly 18 months before having a relatively stable version and 3 developers. This is a very short lapse of time to develop a solution used by so many.</p>
<p>Another interest of mine related to this release is how does it compete with the likes of <a title="phc php compiler" href="http://phpcompiler.org">phc</a> or <a title="Roadsend PHP (raven)" href="http://code.roadsend.com/rphp">roadsend php</a>. If it does at all.</p>
<p>However I have noticed on their blog that Facebook has also developed HPHPi which seems to let you use HipHop but without having to actually compile your code before running it (The concept seems a bit like <a title="PHP APC stat" href="http://ie.php.net/manual/en/apc.configuration.php#ini.apc.stat">APC&#8217;s stat</a> on and off switch from the few lines of description), which seems like a quite interesting idea for the development stages.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/02/hiphop-for-php-facebook-unveils-its-magic/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Speed-Speaking</title>
		<link>http://blog.echolibre.com/2009/11/speed-speaking/</link>
		<comments>http://blog.echolibre.com/2009/11/speed-speaking/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 11:12:45 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[community]]></category>

		<category><![CDATA[conferences]]></category>

		<category><![CDATA[speaking]]></category>

		<category><![CDATA[speedspeaking]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=638</guid>
		<description><![CDATA[Anyone that goes to conferences knows that it&#8217;s nearly always the same people speaking. This is not bad, but this world is vast and the potential amount of decent speakers with very interesting subject and even more knowledgeable ideas is even greater.
In an attempt to identify the reasons why the speakers presence is so repetitive, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Anyone that goes to conferences knows that it&#8217;s nearly always the same people speaking. This is not bad, but this world is vast and the potential amount of decent speakers with very interesting subject and even more knowledgeable ideas is even greater.</p>
<p style="text-align: justify;">In an attempt to identify the reasons why the speakers presence is so repetitive, I nailed it down to the diffidence factor. Today we were discussing about the community on IRC and the issue of low amount of new speakers came up again. So I&#8217;m bringing the idea back up to the surface</p>
<p style="text-align: justify;"><span id="more-638"></span></p>
<p style="text-align: justify;">Many new speakers are scared of coming forward either because they think their ideas are plain bad, they don&#8217;t have enough content, they are scared to speak in front of a large audience or simply don&#8217;t have time to organize a full length session. Lightning-talks were made to try and overcome those issues however the &#8220;speaking in front of an audience&#8221; problem remains and some people need to validate their ideas before throwing themselves on stage in front of a 100 people.</p>
<p style="text-align: justify;">In a breeze of imagination I hereby present to you the idea of &#8220;<strong>speed-speaking</strong>&#8221; which is basically &#8220;speed-dating&#8221; for speakers.</p>
<p>The rules are simple:</p>
<p><img class="alignright size-full wp-image-641" title="speed-speaking" src="http://blog.echolibre.com/wp-content/uploads/2009/11/speed-speaking.png" alt="speed-speaking" width="281" height="401" align="right" /></p>
<ul>
<li>10 tables of different size and shapes (between 6 and 12 seats)</li>
<li>1 new speaker per table (That&#8217;s 10 new speakers)</li>
<li>10 minutes super-lightning talk</li>
<li>2 minutes Q&amp;A per table</li>
<li>1 minute to change table between the 10 minutes</li>
</ul>
<p style="text-align: justify;">This result is more or less a hundred and thirty minutes  (say 2 hours), 10 speakers which get the chance to express their ideas, very simple Q&amp;A, contacts are made, speakers loose their speaking virginity and they get out there, more press coverage for the event (imagine if anyone would put up a simple post about each 10 talks), new speakers and out of those at least 1 has to be a good one that will either come back the next year or become a quality speaker due to the confidence boost and experience he just gained.</p>
<p style="text-align: justify;">What I am looking for with this blog post is to gather your feedback on the idea. Is is something conference organizers would be willing to try? Maybe an <strong>uncon</strong> version? Give me your ideas, changes, thoughts. I&#8217;m sure we can find new quality speakers with this <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/11/speed-speaking/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to build an API in 5 minutes</title>
		<link>http://blog.echolibre.com/2009/10/how-to-build-an-api-in-5-minutes/</link>
		<comments>http://blog.echolibre.com/2009/10/how-to-build-an-api-in-5-minutes/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 15:44:17 +0000</pubDate>
		<dc:creator>Eamon</dc:creator>
		
		<category><![CDATA[API]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Zend Framework]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[web3.0]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=622</guid>
		<description><![CDATA[On Friday evening we quietly announced on twitter a product that we&#8217;ve been working on for the last 10 months. FRAPI is an Open Source API framework that allows you to open up your existing web based application or legacy system to your own or third party developers.
FRAPI handles standard API things like authentication and [...]]]></description>
			<content:encoded><![CDATA[<p>On Friday evening we quietly announced on twitter a product that we&#8217;ve been working on for the last 10 months. <a href="http://www.getfrapi.com">FRAPI is an Open Source API framework</a> that allows you to open up your existing web based application or legacy system to your own or third party developers.</p>
<p>FRAPI handles standard API things like authentication and data formatting, and speeds up the API development process &#8212; like the way ZF or Symfony for PHP, Django for Python, JQuery for JavaScript (or, I suppose even Ruby on Rails ;-p ), does for other technologies.</p>
<p><a title="David Coallier, CTO, echolibre" href="http://www.twitter.com/DavidCoallier">David Coallier</a> put together a quick 5 minute screencast to show you how you can use FRAPI to start building your API.<span id="more-622"></span></p>
<p><object width="480" height="326" data="http://blip.tv/play/AYGk_BoC" type="application/x-shockwave-flash"><param name="src" value="http://blip.tv/play/AYGk_BoC" /><param name="allowfullscreen" value="true" /></object></p>
<p>FRAPI is about to go into closed beta and we already have a nice list of developers building up. If you&#8217;d like to be part of our closed beta release, you can sign up on <a title="FRAPI - An Open Source API Framework" href="http://www.getfrapi.com">getfrapi.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/10/how-to-build-an-api-in-5-minutes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CouchDB, the project, the crowd</title>
		<link>http://blog.echolibre.com/2009/09/couchdb-the-project-the-crowd/</link>
		<comments>http://blog.echolibre.com/2009/09/couchdb-the-project-the-crowd/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 10:04:25 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[couchdb]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[json]]></category>

		<category><![CDATA[databases]]></category>

		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=559</guid>
		<description><![CDATA[There are many decisions involved when using new technologies and new products. Many people will often go for open source software because it&#8217;s free and you can modify the code. To me being &#8220;an open source&#8221; project involves a whole lot more than simply having an opened code base that you can modify and use [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-570 alignright" title="couchdb-logo" src="http://blog.echolibre.com/wp-content/uploads/2009/09/couchdb-logo.png" alt="couchdb-logo" width="125" height="101" align="right" />There are many decisions involved when using new technologies and new products. Many people will often go for open source software because it&#8217;s free and you can modify the code. To me being &#8220;an open source&#8221; project involves a whole lot more than simply having an opened code base that you can modify and use for free, but it also involves a large amount of factors as such as technical documentation, user examples, tools for a software, the community based around a project and the likes of actual response time from developers.</p>
<p>This article is a major Kudos to the <a title="CouchDB" href="http://couchdb.apache.org/">CouchDB</a> developers. In particular I would like to thank <a title="Jan Lenhardt " href="http://jan.prima.de/">Jan Lehnardt</a>, <a title="Paul J. Davis" href="http://www.davispj.com/">Paul J. Davis</a> and <a title="Robert Newton" href="http://github.com/rnewson">Robert Newson</a> from the CouchDB fame. Let me explain why&#8230;</p>
<p><span id="more-559"></span></p>
<p>For all the skeptics (As I was and still am with some concepts) I have to admit that jumping both feet into CouchDB is scary, especially coming from an <a title="RDBMS Wikipedia" href="http://en.wikipedia.org/wiki/Relational_database_management_system">RDBMS</a>-core background. I think in joins, I see relations, I&#8217;m a normalized database person. Coming with the idea that de-normalization can actually be ok if it&#8217;s done correctly was hell for me.</p>
<p>So the first things we did when using Couch was creating databases, until then, in my head, using &#8220;many&#8221; databases was always a big no-no simply because it was making management of connections and everything hectic. However, with CouchDB it&#8217;s a bit different and that&#8217;s a concept that Jan helped me understand and it can indeed be correctly done if planned thoroughly.</p>
<p>After finding myself in many dead-ends after starting CouchDB, the previously mentioned helpers were always there even for the simplest, most ridiculous questions I could have answered myself by re-reading my questions.</p>
<p>Imagine the following scenario where you have a list of documents that have two fields. &#8220;<strong>time</strong>&#8221; and &#8220;<strong>type</strong>&#8220;. the &#8220;<strong>type</strong>&#8221; field can be either &#8220;<strong>love</strong>&#8221; or &#8220;<strong>hate</strong>&#8221; and and &#8220;<strong>time</strong>&#8221; field is a <strong>unix timestamp (php -r &#8216;echo time() . PHP_EOL;&#8217;)</strong>.</p>
<p>We need to create <a title="CouchDB views" href="http://wiki.apache.org/couchdb/Using_Views">views</a> in order to retrieve the data. The first scenario involves counting the amount of types. So how many documents with type &#8220;<strong>love</strong>&#8221; and how many documents (entries) with the field type with value &#8220;<strong>hate</strong>&#8220;.</p>
<p>You will mostly likely have to do a reduce function as well as your view. So using <a title="Futon, getting started couchdb" href="http://wiki.apache.org/couchdb/Getting_started_with_Futon">futon</a> you can create your simple view that&#8217;ll look like such:</p>
<p>View:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>doc<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>doc.<span style="color: #660066;">type</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        emit<span style="color: #009900;">&#40;</span>doc.<span style="color: #660066;">type</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>and your reduce function to look somewhat like:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>key<span style="color: #339933;">,</span> values<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> sum<span style="color: #009900;">&#40;</span>values<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Now Save this as design document &#8220;<strong>example</strong>&#8221; and view name &#8220;<strong>countdocbytype</strong>&#8220;. (See image below)</p>
<p><img class="alignnone size-full wp-image-590" title="couch-view-key1" src="http://blog.echolibre.com/wp-content/uploads/2009/09/couch-view-key1.png" alt="couch-view-key1" width="580" height="94" /></p>
<p>This is all very nice but what does that give you the ability of doing? Remember that &#8220;<strong>WHERE type = &#8216;get&#8217;</strong>&#8221; in SQL? Well now that you saved that view you can effectively search on the key you are returning in your <a title="CouchDB introduction to views" href="http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views">emit()</a> function. In this case you are returning the <strong>doc.type</strong> thus &#8220;<strong>hate</strong>&#8221; or &#8220;<strong>love</strong>&#8221; which means that if you want to get a count of type &#8220;hate&#8221; you will invoke your view as such:</p>
<blockquote><p><em>http://localhost:5984/databasename/_design/example/_view/countdocbytype?group=true&amp;key=&#8221;hate&#8221;</em></p></blockquote>
<p>Remember that this is all JSON lovin&#8217; so the key you are passing has to be JSON encoded (So <em>key=&#8221;<strong>hate</strong>&#8220;</em> instead of key=hate). This view (Query for SQL people) will return a count of entries/documents with the field &#8220;<strong>type</strong>&#8221; that has the value &#8220;<strong>hate</strong>&#8221;</p>
<p>For the second example let&#8217;s introduce a new field in our documents, let&#8217;s name the field &#8220;<strong>phone</strong>&#8221; and it&#8217;ll be &#8220;<strong>iphone</strong>&#8221; and &#8220;<strong>android</strong>&#8220;. Update your documents and put as many &#8220;<strong>iphone</strong>&#8221; and &#8220;<strong>androids</strong>&#8221; as you want. The next example is going to be finding how many people hate iphones (This implies searching for a count of field &#8220;<strong>phone</strong>&#8221; with value &#8220;<strong>iphone</strong>&#8221; and field &#8220;<strong>type</strong>&#8221; with value &#8220;<strong>hate</strong>&#8220;).</p>
<p>Documents updated? Good.</p>
<p>Now let&#8217;s make our view:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>doc<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>doc.<span style="color: #660066;">phone</span> <span style="color: #339933;">&amp;&amp;</span> doc.<span style="color: #660066;">type</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> keys <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>doc.<span style="color: #660066;">phone</span><span style="color: #339933;">,</span> doc.<span style="color: #660066;">type</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        emit<span style="color: #009900;">&#40;</span>keys<span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>and the reduce to return a sum of the values:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>key<span style="color: #339933;">,</span> values<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> sum<span style="color: #009900;">&#40;</span>values<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>In Futon it would look somewhat like:</p>
<p><img class="alignnone size-full wp-image-564" title="couch-view-keys-1" src="http://blog.echolibre.com/wp-content/uploads/2009/09/couch-view-keys-1.png" alt="couch-view-keys-1" width="580" height="97" /></p>
<p>With the results looking like:</p>
<p><img class="alignnone size-full wp-image-565" title="couch-view-keys-result" src="http://blog.echolibre.com/wp-content/uploads/2009/09/couch-view-keys-result.png" alt="couch-view-keys-result" width="578" height="60" /></p>
<p>So now again save it as design &#8220;<strong>example</strong>&#8221; and view name &#8220;<strong>countdocbyphoneandtype</strong>&#8221; and now you can invoke the following URL.</p>
<blockquote><p><em>http://localhost:5984/databasename/_design/example/_view/countdocbyphoneandtype?group=true&amp;key=["iphone", "hate"]</em></p></blockquote>
<p>As you can see, we are passing an array in the &#8220;<strong>key</strong>&#8221; field with the values &#8220;<strong>iphone</strong>&#8221; and &#8220;<strong>hate</strong>&#8220;. This retrieves all the &#8220;<strong>phone</strong>&#8221; fields with value &#8220;<strong>iphone</strong>&#8221; and then from that resultset all the field &#8220;<strong>type</strong>&#8221; with value &#8220;<strong>hate</strong>&#8220;. It gives us the following type of output:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009900;">&#123;</span>
    <span style="color: #0000ff;">&quot;rows&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #0000ff;">&quot;key&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;iphone&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;hate&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">&quot;value&quot;</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">2</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>You now have a query that searches for &#8220;two&#8221; fields in your document.</p>
<p>I strongly suggest to read the wiki and anything related to views if you are remotely interested in using CouchDB as they are going to be your main source of nightmares and happiness. The latter example, was nicely explained to me on the IRC channel even though it was plain black and white on the wiki&#8230; Apparently I just couldn&#8217;t see it clearly enough. There are loads of little things with the views that require user experience instead of wiki reading and the people on the IRC channel have used CouchDB, they&#8217;ll get you by <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Moving on, on top of many exciting upcoming features (as such as continuous replication, bulk inserts, etc.) the project has online documentation, online books for people to read for free (Even though I strongly recommend buying the book), a vibrant IRC channel with the nicest helpers from extensive users to software developers/creators to book authors.</p>
<p>When in need of direction, if you really can&#8217;t find it online or don&#8217;t understand how it&#8217;s explained, you can hop on the IRC channel and get your well formulated questions answered at all times. With a thorough patch review process and code quality insurance,in my opinion, it makes CouchDB a very solid open source project that should be respected and should serve as example for any new software that wants to make it into the open source world.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/09/couchdb-the-project-the-crowd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Announcing CloudSplit</title>
		<link>http://blog.echolibre.com/2009/09/announcing-cloudsplit/</link>
		<comments>http://blog.echolibre.com/2009/09/announcing-cloudsplit/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 13:29:11 +0000</pubDate>
		<dc:creator>Eamon</dc:creator>
		
		<category><![CDATA[CloudSplit]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[innovation]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=522</guid>
		<description><![CDATA[Last night, a simple holding page for a brand new product was quietly put live, and announced through a tweet from Joe Drumgoole. CloudSplit is a service that offers users of cloud computing a realtime view of what&#8217;s happening and how that hits their wallets.
Some of the features in current development include reporting and analysing [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, a simple holding page for a brand new product<a title="CloudSplit - Realtime Cloud Analytics" href="http://cloudsplit.com/"><img title="CloudSplit - Realtime Cloud Analytics" src="http://blog.echolibre.com/wp-content/uploads/2009/09/cloudsplit_logo_200px.png" alt="cloudsplit_logo_200px" width="200" height="46" align="right" /></a> was quietly put live, and announced through a <a title="Twitter: Joe Drumgoole" href="http://twitter.com/jdrumgoole/status/3675242307">tweet</a> from Joe Drumgoole. <a title="CloudSplit - Realtime Cloud Analytics" href="http://cloudsplit.com/">CloudSplit</a> is a service that offers users of cloud computing a realtime view of what&#8217;s happening and how that hits their wallets.</p>
<p>Some of the features in current development include reporting and analysing of activity and spend, setting of alerts to suit a budget, and the service works with Amazon Web Services, with future support for Microsoft Azure.</p>
<p>CloudSplit was founded earlier this summer by echolibre and Joe Drumgoole, and since then we&#8217;ve been working hard on our alpha version, which we&#8217;ll be bringing to <a title="TechCrunch50" href="http://www.techcrunch50.com/2009/">TechCrunch50</a> in a few short weeks.</p>
<p>This stage of development has been real fun as it&#8217;s allowed us to work in PHP, C, Python and we have been putting <a title="CouchDB" href="http://couchdb.apache.org/">CouchDB</a>, <a title="nginx" href="http://nginx.net/">nginx</a> and <a title="Gearman" href="http://gearman.org/">Gearman</a> through their paces <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you&#8217;d like to know when the service is fully launched, let us know on <a title="CloudSplit - Realtime Cloud Analytics" href="http://cloudsplit.com/">CloudSplit.com</a> .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/09/announcing-cloudsplit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Recommended PHP Standards Group</title>
		<link>http://blog.echolibre.com/2009/06/recommended-php-standards-group/</link>
		<comments>http://blog.echolibre.com/2009/06/recommended-php-standards-group/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 15:03:08 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[PEAR]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[innovation]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=426</guid>
		<description><![CDATA[Introduction
A few weeks ago, Helgi and I attended PHP&#124;Tek 2009 in Chicago, as both representatives of echolibre and The PEAR Group.
This post will briefly discuss the formation of a Recommended PHP Standards Group, as put forward by a meeting of PHP developers at the conference. As would be expected, a bit of controversy surrounds this [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>A few weeks ago, Helgi and I attended <a title="PHP Tek" href="http://tek.mtacon.com/" target="_self">PHP|Tek 2009</a> in Chicago, as both representatives of echolibre and <a title="The PEAR Group" href="http://pear.php.net/group/">The PEAR Group</a>.</p>
<p>This post will briefly discuss the formation of a Recommended PHP Standards Group, as put forward by a meeting of PHP developers at the conference. As would be expected, a bit of controversy surrounds this proposal, but my hope would be that it would be accepted and grow within the global PHP community in the coming years.</p>
<p>As posted by <a title="Travis Swicegood's Blog about tek 2009 PHP Standards Group" href="http://short.ie/5w40f3" target="_self">Travis Swicegood</a>, a group of community project representatives came together to discuss naming standards for PHP 5.3 and above. (I would like to take the opportunity to publicly thank the staff of the PHP|Tek conference for providing us with a large meeting room with little more than 2 hours notice).</p>
<h2><span id="more-426"></span></h2>
<h2>So, what&#8217;s this all about?</h2>
<p>With PHP 5.3 being closer to a stable release, the inclusion of namespaces and packaging within projects will take on a whole new meaning for large projects. People representing The PEAR Group (PEAR2), The Zend Framework, Cake PHP, Solar PHP, Agavi and unofficial representatives of Symfony and Phing met together and we discussed standards that could benefit each of the projects and the community in general.</p>
<h3>Attending were</h3>
<ul>
<li><a title="Agavi" href="http://www.agavi.org/">Agavi</a> - <a title="@dzuelke" href="http://twitter.com/dzuelke">David Zülke</a>;</li>
<li><a title="Cake PHP" href="http://cakephp.org/">Cake</a> - <a title="@nateabele" href="http://twitter.com/nateabele">Nate Abele</a>;</li>
<li><a title="The PEAR Group" href="http://pear.php.net/">PEAR</a> - <a title="@saltybeagle" href="http://twitter.com/saltybeagle">Brett Bieber</a>, <a title="@davidcoallier" href="http://twitter.com/davidcoallier">David Coallier</a>, <a title="@h" href="http://twitter.com/h">Helgi Þormar Þorbjörnsson</a>, <a title="@tswicegood" href="http://twitter.com/tswicegood">Travis Swicegood</a>;</li>
<li><a title="Phing" href="http://phing.info/trac/">PhING</a> - <a title="@tswicegood" href="http://twitter.com/tswicegood">Travis Swicegood</a>;</li>
<li><a title="Solar PHP" href="http://solarphp.com/">Solar </a>- <a title="@pmjones" href="http://twitter.com/pmjones">Paul Jones</a>;</li>
<li><a title="Symfony Project" href="http://www.symfony-project.org/">Symfony</a> - <a title="@skoop" href="http://twitter.com/skoop">Stefan Koopmanschap</a>;</li>
<li><a title="Zend Framework" href="http://framework.zend.com/">Zend Framework</a> - <a href="http://weierophinney.net/matthew/ ">Matthew Weier O&#8217;Phinney</a>;</li>
<li> and the always amiable (i.e., at-large community member), <a title="@calevans" href="http://twitter.com/calevans">Cal Evans</a>.</li>
</ul>
<p>Being a PEAR representative with Travis, Helgi and Brett we brought to the table the feedback and problems that we have been facing over the past year and a half with namespacing standards discussions, Matthew Weier O&#8217;Phinney from the Zend Framework brought their issues, same for Agavi, Solar, Cake and Symfony (Stefan is an unofficial representative). We brewed and stormed our issues, brought solutions and came up with a standard for namespacing and package structure.</p>
<h2>Sneak Preview</h2>
<p>Here are a few hints about the standards (<a title="Google Groups Discussions on PHP Standards Group" href="http://short.ie/zs6m32" target="_self">outlined on this page</a>) which cover things like namespace packaging structure, exceptions, abstract class naming, interface naming, and concrete class naming.</p>
<h3>Namespaces</h3>
<p>All packages should be named:<br />
<em> &lt;vendor&gt;\&lt;package_or_component&gt;\&lt;ClassName&gt;</em></p>
<p>Example:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
    namespace pear2\text_diff\Diff<span style="color: #339933;">;</span>
    namespace zend\controller\FrontController<span style="color: #339933;">;</span>
    namespace cake\models\DatabaseModel<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<h3>Exception Naming</h3>
<ul>
<li>All packages must declare at package level Exception (i.e., <em>pear2\text_diff\Exception</em>)</li>
<li> All packages should use <a title="SPL Exceptions" href="http://ie.php.net/manual/en/spl.exceptions.php" target="_self">SPL Exceptions</a> where applicable</li>
</ul>
<p>All of the above mentioned projects consented to this standard as of PHP 5.3. What this means to users and developers is that the barrier for entry from one framework to another becomes greatly reduced and the interoperability of packages between projects is tremendously improved.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/06/recommended-php-standards-group/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Practical JSON Format Standard</title>
		<link>http://blog.echolibre.com/2009/04/practical-json-format-standard/</link>
		<comments>http://blog.echolibre.com/2009/04/practical-json-format-standard/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 16:00:33 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[API]]></category>

		<category><![CDATA[OSS Bar Camp]]></category>

		<category><![CDATA[PHP London]]></category>

		<category><![CDATA[PJSF]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[web3.0]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[json]]></category>

		<category><![CDATA[semantics web]]></category>

		<category><![CDATA[standards]]></category>

		<category><![CDATA[technology]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=339</guid>
		<description><![CDATA[Watch out! The semantic web is on the way, a thought that many (and not just the marketeers) may find daunting . Why? Because system and web app developers that want to take advantage of the semantic web will need to learn a lot of new standards and change the way they work.
I have been [...]]]></description>
			<content:encoded><![CDATA[<p>Watch out! The <em>semantic web</em> is on the way, a thought that many (and not just the marketeers) may find daunting . Why? Because system and web app developers that want to take advantage of the semantic web will need to learn a lot of new standards and change the way they work.</p>
<p>I have been studying and working with web standards (XHTML, RDF, ATOM, RSS) for well over 4 years now, something I am glad of,  because recently something struck me. Conventions are arising, for example DOAP, SKOS and others, that are built on top of the Resource Description Framework otherwise known as <a title="Resource Description Language" href="http://en.wikipedia.org/wiki/RDF" target="_blank">RDF</a>, if they aren&#8217;t, they are usually built on something very similar or related.<span id="more-339"></span></p>
<p>In this blog post I am going to be using the <a title="Friend of a Friend" href="http://www.foaf-project.org/" target="_blank">FOAF</a> standard as an example and base for my proposal. First of all, the Friend Of A Friend standard (FOAF) is a project aimed at creating machine readable pages that describe people. It covers all basis of human interactions and behaviours. From basic profile information - name, mailbox, title, homepage, img, depiction, surname, given name, family name, firstname - to more detailed information as such as web blog, based near, geekcode, publications, etc.  As you can see on their <a title="FOAF specifications 2007" href="http://xmlns.com/foaf/spec/20071002.html" target="_blank">standard description page</a>, it also covers the following personal aspects: Online Account / IM, Projects / Groups and Documents and Images.</p>
<p>For instance, if a web application was to describe me using FOAF it could look something like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foaf:Person</span> <span style="color: #000066;">rdf:about</span>=<span style="color: #ff0000;">&quot;#davidc&quot;</span> <span style="color: #000066;">xmlns:foaf</span>=<span style="color: #ff0000;">&quot;http://xmlns.com/foaf/0.1/&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foaf:name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>David Coallier<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foaf:name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foaf:homepage</span> <span style="color: #000066;">rdf:resource</span>=<span style="color: #ff0000;">&quot;http://echolibre.com&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;foaf:img</span> <span style="color: #000066;">rdf:resource</span>=<span style="color: #ff0000;">&quot;/images/david.jpg&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/foaf:Person<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<h2>The Problem</h2>
<p>Whilst such a standard is clearly easy for a computer to read and does seem a logical fit, it&#8217;s not the easiest for a developer to read. These days, web users are looking for performance, simplicity, ease of use, and so are the developers creating web applications. Considering that XML is heavy to parse using current technologies (Javascript mostly), it makes very little sense for developers to make web applications that are going to be slower due to parsing complex XML nodes. However, <a title="Javascript Object Notation" href="http://json.org" target="_blank">JSON</a> (JavaScript Object Notation) is a lightweight data-interchange format made to carry data over networks with a very small footprint. It has seen massive adoption across the web and is used in widget apps, web apps and various other systems.</p>
<p>As I was talking at <a href="http://blog.echolibre.com/2009/03/slides-from-oss-barcamp/">OSS Bar Camp</a>, something struck me. Developers need a standard. Fact. We need standards for the same reason the industrial revolution had need of machine part standards: to reduce the amount of different solutions to learn in order to achieve the same goal by having everyone do what they do in a standard way. Some may see standards as a way to prevent innovation, I see them as a way to innovate. See &#8220;<a title="W3c Web standards slides/talk" href="http://www.w3.org/2006/Talks/07-ausweb-IH/Slides.pdf" target="_blank">why are web standards important</a>&#8221; by the W3C, a good read.</p>
<p>So, developers need standards. Great, now what currently exists? Development standards (IDE, Documentation, tools, design patterns, unit testing, etc.), Output standards (XHTML, CSS, etc), XML based standards (Namespaces, Schemas, XPath, XQuery, XSLT, DOM, XML Base, RDF(s), etc.), usual web architectural principles, and many more. One thing that is missing though is the standards that allow developers to easily and rapidly work with each other&#8217;s web application.</p>
<p><strong>If &#8220;Web 2.0&#8243; was characterised by the democratisation of content, we feel strongly that the next stage of web evolution, &#8220;Web 3.0&#8243; for want of a better word, will be characterised by the democratisation of data and applications.</strong></p>
<h2>The Solution</h2>
<p>A standard would make that democratisation a little easier. I&#8217;ve decided that I am going to be working on this over the next few months with the help of a few others as such as <a title="Ed Finkler CERIAS Purdue" href="http://www.cerias.purdue.edu/about/people/directory.php?class=staff;id=8" target="_blank">Ed Finkler from the CERIAS</a> (Also the creator of Spaz and all round awesome guy).</p>
<p>So, today I&#8217;m putting forward the need for PJFS - The Practical JSON Format Standard. It will strive to make heavy XML based standards more developer friendly and lighter by creating new, fresh and adapted Practical JSON Formatted Standardized outputs.</p>
<p>For instance, the FOAF example I drew above, is a great example of the need for PJFS. Consider the following from a developers perspective:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="json" style="font-family:monospace;">{
    &quot;Person&quot;: {
        &quot;name&quot;:&quot;David Coallier&quot;,
        &quot;homepage&quot;:&quot;http:\/\/echolibre.com&quot;,
        &quot;img&quot;:&quot;http:\/\/echolibre.com\/images\/david.jpg&quot;
    }
}</pre></td></tr></table></div>

<p>It&#8217;s easy to read but also easy to parse. It&#8217;s fast and reliable. I am well aware of the implications of this post and I do not underestimate the complexity of existing standards. I think each one of them, as complex as they can be, are needed and are something we should all aim to use. However, computers are not completely independent ( just yet!) and the middlemen (developers and users) should not be forgotten.</p>
<p>The implications of JSON formatting standards mean that it&#8217;s adoption will make things easier for developers by reducing the amount of work they have to do, and remove the learning curve on new object structures for every web service the want to use.</p>
<p>The first task I will start working on is a PJFS for micro-blogging web services. The likes of identi.ca have already started in the general direction by &#8220;copying&#8221; the behaviours of the Twitter API, however many other micro-blogging platforms are still very independent and a unified standard could help the tools developers creating more flexible tools that would cover more networks.</p>
<p>So, remember where you heard about PJFS first <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> It&#8217;s there to create standard object names, properties, variables, class members names to JSON elements so that developers can expect something identically formed when requesting JSON information from a webservice.</p>
<p>If you&#8217;d like to be involved leave a comment or catch me on twitter - <a title="David Coallier on Twitter" href="http://twitter.com/davidcoallier">@davidcoallier</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/04/practical-json-format-standard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Slides from OSS BarCamp</title>
		<link>http://blog.echolibre.com/2009/03/slides-from-oss-barcamp/</link>
		<comments>http://blog.echolibre.com/2009/03/slides-from-oss-barcamp/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 15:08:33 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[API]]></category>

		<category><![CDATA[OSS Bar Camp]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[web3.0]]></category>

		<category><![CDATA[architecture]]></category>

		<category><![CDATA[community]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[scaling]]></category>

		<category><![CDATA[semantics]]></category>

		<category><![CDATA[web1.0]]></category>

		<category><![CDATA[web2.0]]></category>

		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=315</guid>
		<description><![CDATA[
This past weekend we went along to Dublin&#8217;s OSS BarCamp. There were some really great talks, Stuart Langridge&#8217;s Javascript presentation was a highlight. Jaime Hemmett&#8217;s talk on using Git for version control was useful and informative. Paul Biggar&#8217;s talk on PHC, the Open Source PHP Compiler, was thought provoking and certainly caused a few grumbles [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-332" title="david_coallier-oss_barcamp" src="http://blog.echolibre.com/wp-content/uploads/2009/03/david_coallier-oss_barcamp.jpg" alt="david_coallier-oss_barcamp" width="625" height="267" /></p>
<p>This past weekend we went along to Dublin&#8217;s OSS BarCamp. There were some really great talks, <a title="Stuart Langridge's Blog" href="http://www.kryogenix.org/days/">Stuart Langridge&#8217;s</a> Javascript presentation was a highlight. <a title="Jaime Hemmett's blog" href="http://jaime.hemmett.org/blog/" target="_blank">Jaime Hemmett&#8217;s</a> talk on using Git for version control was useful and informative. <a title="Paul Biggar" href="https://www.cs.tcd.ie/~pbiggar/">Paul Biggar</a>&#8217;s talk on <a title="PCH - PHP Compiler" href="http://code.google.com/p/phc/">PHC</a>, the Open Source PHP Compiler, was thought provoking and certainly caused a few grumbles from PHP guys like myself in the audience ;). JD and myself managed to catch up with him after and talk through some of his ideas over a drink.<span id="more-315"></span></p>
<p>I also got to give a talk on how APIs will be the cornerstone of the next stage in the evolution of the web - web 3.0 if you will.</p>
<p>This was my first time talking about a subject that didn&#8217;t directly involve PHP.  I&#8217;m planning on doing a similar talk at <a title="BarCamp Belfast" href="http://barcampbelfast.com/">BarCamp Belfast</a> at the end of the month, so if you were present and have suggestions on how my presentation could be improved feel free to leave a comment below.</p>
<p>Andrea Trasatti (@<a title="Andrea Trasatti's Twitter Profile" href="http://twitter.com/andreatrasatti">andreatrasatti</a>) made the valid point that a small company and startup are not the same thing. Also I&#8217;ll have to add a list of successful startups towards the end of the presentation to support my central argument that APIs can extend a customer base and service subscriber network.</p>
<p>So, my slides from the presentation are below, please do let me know what you think. As a company, we were delighted to be able to sponsor the event, and it was great to be able to connect to speakers and attendees alike over a few drinks after the event.<br />
<object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=web3-0-090331051900-phpapp01&amp;stripped_title=get-ready-for-web30-open-up-your-app-1226485" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=web3-0-090331051900-phpapp01&amp;stripped_title=get-ready-for-web30-open-up-your-app-1226485" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/03/slides-from-oss-barcamp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PEAR Strikes again</title>
		<link>http://blog.echolibre.com/2009/03/pear-strikes-again/</link>
		<comments>http://blog.echolibre.com/2009/03/pear-strikes-again/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 16:52:48 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[PEAR]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[industry]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[business]]></category>

		<category><![CDATA[footprintapp]]></category>

		<category><![CDATA[ireland]]></category>

		<category><![CDATA[webstrong]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=186</guid>
		<description><![CDATA[The other company we collaborate with on short.ie has released a private beta of a new application a short while ago. The web application is basically a business collaboration tool that allows someone to keep a consistent tracking over projects and clients, management of tasks, management of documents (online document manager) and much more.
I would [...]]]></description>
			<content:encoded><![CDATA[<p>The other company we collaborate with on <a title="Short.ie social url shortening" href="http://short.ie" target="_blank">short.ie</a> has released a private beta of a new application a short while ago. The web application is basically a business collaboration tool that allows someone to keep a consistent tracking over projects and clients, management of tasks, management of documents (online document manager) and much more.</p>
<p>I would seriously recommend people (<a title="Annoing manager" href="http://tbn3.google.com/images?q=tbn:JDdT6JPRmgp_BM:http://www.sqlservercentral.com/Images/1889.jpg" target="_blank">managers</a>, <a title="Developers" href="http://tbn2.google.com/images?q=tbn:G7ue1Y_GQsVJbM:http://donnabarstow.com/cartoons/wp-content/uploads/2008/07/dilbert.jpg" target="_blank">developers</a>, etc) to look at it and register for the BETA version because having been granted access to test and give feedback, we, as private beta testers, found it really nice, insightful and simple to use.</p>
<p>This web app has a huge potential (internationally) and is developed following a solid architecture. Being strong <a title="PEAR Project" href="http://pear.php.net" target="_blank">PEAR</a> contributors we are of course happy to take a look at what helped the <a title="Footprint app business colaboration" href="http://footprintapp.com" target="_blank">footprintapp.com</a> team achieve such a great product. So I went ahead and asked a few questions to <a title="Iarfhlaith Kelly" href="http://www.iarfhlaith.com/" target="_blank">Iarfhlaith Kelly</a> from <a title="Webstrong" href="http://webstrong.ie" target="_blank">webstrong</a>.</p>
<blockquote><p><strong>Q: How long have you been using PEAR?</strong><br />
<em>A: I dabbled with a few of the PEAR packages back in college (2001-2005). Mostly I used the database abstraction packages like <a title="PEAR::DB database abstraction layer" href="http://pear.php.net/DB" target="_blank">DB</a> and <a title="PEAR::MDB2 database abstraction layer" href="http://pear.php.net/MDB2" target="_blank">MDB2</a>. It was great to use on object oriented approach to interact with a database. After college though, from 2005 onwards, I ventured much deeper into the PEAR packages because as a freelance developer I was getting a lot more requests from clients.</em></p></blockquote>
<blockquote><p><strong>Q: How does PEAR help you in your daily development life?</strong><br />
<em>A: Using PEAR has greatly reduced the amount of code I&#8217;ve needed to write on the &#8216;heavy lifting&#8217; areas of web development. This lets me focus on the flow of the system and spend more time building features that make my app unique, rather then re-inventing the wheel on some of the more common features often needed in most modern web apps.</em></p>
<p><em>Also, because of PEAR&#8217;s command line interface for installing and updating packages (both locally and remotely) it has made maintaining the code packages a lot easier then if I had to download and upgrade each one manually. This saves a lot of time during system upgrades.</em></p></blockquote>
<blockquote><p><strong>Q: What do you use it for (packages you use)</strong><br />
<em>A: Well, like I mentioned before I started off by using DB and MDB2 in college, but once I started using PEAR on client projects I quickly learned about the XML parsing libraries, HTTP requests, MS Excel generation, encryption, authentication, and email. I used a number of key PEAR libraries without which I would still be building it today. These were:</em><br />
<em></em><br />
<em>* <a title="PEAR::Auth_HTTP" href="http://pear.php.net/Auth_HTTP" target="_blank">Auth_HTTP</a> for HTTP based authentication</em><br />
<em> * MDB2 for database abstraction</em><br />
<em></em><br />
<em>The system also communicates with a number of other web services, such as <a title="Amazon s3 cloud storage/authentication" href="http://aws.amazon.com/s3/" target="_blank">Amazon&#8217;s S3 service</a> and authentication services via the <a title="OpenID distributed authentication" href="http://openid.net" target="_blank">OpenID</a> format. To communicate with these, I use:</em><br />
<em></em><br />
<em>* <a title="PEAR::XML_Parser XML Parsing with PEAR" href="http://pear.php.net/XML_Parser" target="_blank">XML_Parser</a> for processing the returned information</em><br />
<em>* <a title="PEAR::HTTP_Request" href="http://pear.php.net/HTTP_Request" target="_blank">HTTP_Request</a> for sending commands and data to the web services</em><br />
<em></em><br />
<em>Because of the standard approach to documentation across all PEAR for these packages allowed me to hit the ground running on new packages.</em></p></blockquote>
<p>This is yet another great experience by PEAR users and we are glad to be helping and best of luck to <a title="Webstrong" href="http://webstrong.ie" target="_blank">webstrong</a> and footprintapp for the future!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/03/pear-strikes-again/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I can haz Spaz!</title>
		<link>http://blog.echolibre.com/2008/12/i-can-haz-spaz/</link>
		<comments>http://blog.echolibre.com/2008/12/i-can-haz-spaz/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 19:52:05 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[echolibre]]></category>

		<category><![CDATA[innovation]]></category>

		<category><![CDATA[twitter]]></category>

		<category><![CDATA[adobe air]]></category>

		<category><![CDATA[client]]></category>

		<category><![CDATA[spaz]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=98</guid>
		<description><![CDATA[
A few days ago we were granted commit access to the kick ass,  award winning Adobe AIR Twitter client Spaz.
We are delighted to be part of another open source project, and one that takes a new and innovative approach to web and desktop development.
The Spaz client is a cross-platform (available on AIR platforms) client that [...]]]></description>
			<content:encoded><![CDATA[<p><img style="padding: 5px;" title="Spaz Twitter Client" src="http://funkatron.com/content/spaz-icon-alpha_256.png" alt="Spaz Twitter Client" width="90" height="90" align="left" /></p>
<p>A few days ago we were granted commit access to the kick ass,  <a title="Award winning spaz" href="http://short.ie/spaz-award-winning" target="_blank">award winning</a> <a title="Adobe AIR" href="http://labs.adobe.com/technologies/air/" target="_blank">Adobe AIR</a> <a title="Spaz Twitter client" href="http://short.ie/55cdqj" target="_blank">Twitter client <em>Spaz</em></a>.</p>
<p>We are delighted to be part of another open source project, and one that takes a new and <a title="Previous article on innovation in times of recession" href="http://short.ie/recession-time-for-innovation" target="_blank">innovative approach</a> to web and desktop development.</p>
<p>The Spaz client is a cross-platform (available on AIR platforms) client that allows people to interact with <a title="Twitter message platform" href="http://twitter.com" target="_blank">Twitter</a> in a whole new way. It&#8217;s great for both regular computer users in it&#8217;s ease of use, and heavy twitter users. For example you have different themes with Spaz but you can also override the CSS design to customise the app&#8217;s appearance.</p>
<p>The application supports markdown, it minimizes to system tray on windows, it has a URL shortening helper, retweet functionality, the ability to add favourites, the ability to delete messages, twitpic support, and much more.</p>
<p>You can of course go directly on <a title="Spaz Twitter client" href="http://funkatron.com/spaz" target="_blank">Spaz&#8217;s website</a> and read more about it and try it out <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2008/12/i-can-haz-spaz/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
