<?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; Open Source</title>
	<atom:link href="http://blog.echolibre.com/category/open-source/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>Switzerland, Microsoft and the JumpInCamp!</title>
		<link>http://blog.echolibre.com/2010/04/switzerland-microsoft-and-the-jumpincamp/</link>
		<comments>http://blog.echolibre.com/2010/04/switzerland-microsoft-and-the-jumpincamp/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 16:13:28 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Azure]]></category>

		<category><![CDATA[Cloud Computing]]></category>

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

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=898</guid>
		<description><![CDATA[As some of you may know from the tweets I&#8217;ve been posting for nearly 3 weeks now, I was invited to attend the very first edition of the JumpInCamp organized by Microsoft in April 2010.
The goal of this camp was to get the European PHP community leaders together and learn about the new products and [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">As some of you may know from the tweets I&#8217;ve been posting for nearly 3 weeks now, I was invited to attend the very first edition of the <a title="Microsoft JumpInCamp" href="http://jumpincamp.com">JumpInCamp</a> organized by Microsoft in April 2010.</p>
<p style="text-align: justify;">The goal of this camp was to get the European PHP community leaders together and learn about the new products and new ideas Microsoft are working on. For those of you who read about the <a title="Microsoft Web Developer Summit" href="http://blog.echolibre.com/2009/12/microsoft-web-developer-summit/">Microsoft web developer summit</a> that took place in Redmond in December 2009 you might think it was the same thing however you would be utterly wrong.</p>
<p style="text-align: justify;">While the camp in Redmond was very informative and we are learnt a great deal of new features coming up with Microsoft, it was vastly different than the <a title="Microsoft JumpInCamp" href="http://jumpincamp.com">JumpinCamp</a> in Zurich where the focus of the camp was to get the developers to interact with the actual Microsoft developers instead of only learning about new features. The point of the JumpinCamp was to get your hands dirty in code so we all got a few hours of lectures, then sat down and worked on either implementing those solutions into our respective Open Source projects or even discussed and raised concerns we might have regarding some of their products.</p>
<p>I thought it might be nice to share some of the projects I&#8217;ve started working on while I was over there and what I had interests in:<br />
<span id="more-898"></span></p>
<h2 style="text-align: justify;">OData</h2>
<p style="text-align: justify;">After meeting with Claudio Caldato, the program manager for the Interoperability team, we went over the <a title="The Open Data Protocol" href="http://odata.org">OData</a> project and after looking at the position of <a title="The Open Data Protocol" href="http://odata.org">OData</a> and it&#8217;s potential, I decided to join the team and start by developing a <a title="PEAR PHP" href="http://pear.php.net">PEAR</a> package that will allow producers to publish valid OData <a title="Atom Pub" href="http://bitworking.org/projects/atom/rfc5023.html">Atom Pub feeds</a> and serve as a base driver for the PHP community (Which could be easily ported to <a title="Zend Framework" href="http://zendframework.com/">Zend Framework</a>, <a title="The Symfony Project" href="http://www.symfony-project.org/">Symfony</a>, <a title="Lithium Rad PHP Framework!" href="http://lithify.me">Lithium</a>, etc.)</p>
<p style="text-align: justify;">Obviously one of the reason for and OData producer package is to be able to make all the Frapi users potential OData producers. Moreover, as some of you know, sometimes I get into rants about web semantics and microformat. When I saw OData I realized that we could potentially bring some microformat standards within OData Atom Pub feeds (Or JSON Feeds).</p>
<p style="text-align: justify;">Another thing that lit me up was the JSON feed. As some of you may have read on this very blog a few months ago I wrote an article about having something called <a title="Practical Json Format Standard" href="http://blog.echolibre.com/2009/04/practical-json-format-standard/">PJSF</a> which basically is the concept or idea of defining a standard format for JSON feeds. When I saw that OData has the ability to generate JSON feeds, I obviously jumped on the occasion of making a difference in the semantics world <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2 style="text-align: justify;">Azure</h2>
<p style="text-align: justify;"><a title="Microsoft Azure" href="http://www.microsoft.com/windowsazure/ ">Azure</a> basically is a platform that offers a flexible, familiar environment for developers to create cloud applications and services. With Windows Azure, you can shorten your time to market and adapt as demand for your service grows.</p>
<p style="text-align: justify;">What does is really mean? Azure is an <strong>all-in-one cloud solution</strong>. Even though the concepts are a bit arduous to grasp, we can all thank <a title="Josh Holmes Blog And Azure Resource" href="http://www.joshholmes.com/blog/">Josh Holmes</a> and <a title="Maarten Balliauw Blog" href="http://blog.maartenballiauw.be">Maarten Balliauw</a> for their essential presence at this camp to help us with all the questions we had and their thorough understanding of their baby (Azure).</p>
<p style="text-align: justify;">Azure was another thing that sprung to my mind for <a title="Frapi Open Source API Framework" href="http://getfrapi.com">Frapi</a>. What if we could get our Frapi customers to be deployed directly into the cloud? Obviously it&#8217;s possible to hack around all the possible Amazon web services and to get somewhat arranged so our customers would be on EC2 servers, however with Azure it seems almost natural to deploy and it&#8217;s clearly made for enterprises.</p>
<h2 style="text-align: justify;">TableStorage</h2>
<p style="text-align: justify;">This is Microsoft&#8217;s very own NoSQL answer. The Table service offers structured storage in the form of tables. It also exposes a REST API for working with tables and the data that they contain.</p>
<p style="text-align: justify;">This one I am still uncertain about. I think I like it, but I&#8217;ll have to work a bit more into finding more information regarding it&#8217;s internals. I really like the idea of their multiple slave replication however with the lack of documentation I could not, right now, take the executive decision of opting for <a title="TableStorage" href="http://msdn.microsoft.com/en-us/library/dd179423%28v=MSDN.10%29.aspx">TableStorage</a> instead of say <a title="CouchDB #nosql document based database" href="http://couchdb.apache.org">CouchDB</a> or <a title="MongoDB" href="http://www.mongodb.org">MongoDB</a>. Nevertheless, the fact that it&#8217;s part of Azure gives it a big +1.</p>
<h2 style="text-align: justify;">Pivot</h2>
<p style="text-align: justify;">Alex is probably one of the coolest guy to hang out with and also has a brilliant product called <a title="Pivot Microsoft" href="http://www.getpivot.com/">Pivot</a>. I couldn&#8217;t tell you much more about Pivot apart from the fact that it&#8217;s a great tool if you want have to analyze large amounts of data with many different criteria. Seriously though, check it out, his demo and seeing it live is simple stunning. He also briefly introduced me to the art of <a title="Microsoft DeepZoom on Wikipedia" href="http://en.wikipedia.org/wiki/Deep_Zoom">DeepZooming</a> and the <a title="Microsoft SeaDragon" href="http://www.seadragon.com">SeaDragon</a> technology</p>
<p style="text-align: justify;">Altogether I suggest you give the <a title="Microsoft Livelabs - seadragon, deepzoom, photosync, pivot" href="http://livelabs.com/">livelabs</a> a look. They are doing some amazing work there!</p>
<h2 style="text-align: justify;">SQL Server</h2>
<p style="text-align: justify;">Even though I haven&#8217;t been into the RDBMS world for quite a while now (Being sucked into #nosql), I used to do quite a bit of SQL Server, in fact I&#8217;m still involved in the SQL Server <a href="http://pear.php.net/MDB2_Driver_sqlsrv">MDB2</a> package and it was nice to finally be able to discuss with a developer of the SQL Server Engine Jason Stowe and the Program Manager of the SQL Server Connectivity with PHP Ashay Chaudhary (Who is now on twitter <a title="Ashay From Microsoft on Twitter" href="http://twitter.com/ashay_c">@ashay_c</a>!) about the status of the SQL Driver in PHP (Or lack thereof) and intensively vent about a few things like the lack of up-to-date PDO SQL Server driver.</p>
<p>Fair play to both the SQL Server guys who have done a brilliant job at the camp helping everyone that needed help as well!</p>
<h2 style="text-align: justify;">WebDeploy</h2>
<p style="text-align: justify;">This is definitely one of the tools I would have like to have 1-2 more days to play with. After a filled in event and work week, I finally managed to get some time to discuss the potential of deploy Frapi on Windows machines with the lovely Faith Allington. After playing for a few hours we had the base of the package however the day was ending and we were going to a lounge. Having our priorities set very straight in conferences, most of us headed out to the bar/lounge and so we didn&#8217;t have time to finish the Frapi <a title="IIS Microsoft WebDeploy" href="http://www.iis.net/download/WebDeploy">WebDeploy</a> implementation. Faith being of good nature gave me her email address and told me we could setup a conference call and keep working on the WebDeploy implementation of Frapi! How about that!</p>
<h2 style="text-align: justify;">Finally</h2>
<p>During this week, not only did I learn loads of stuff about Microsoft product, I also learnt some russian card game which encourages cheating (lovely!), I learnt how to say: &#8220;Ich lebe in einem Pilz!&#8221; and how to play cow-poo-golf. Great Switzerland!</p>
<p style="text-align: justify;">On a more serious note however, I would just like to finish on the usual cheesy note and say thanks to Microsoft and especially <a title="Yuriy Saytsev on Twitter" href="http://twitter.com/yuriy_the_z">Yuriy Zaytsev</a> for organizing, <a title="Josh Homes on Twitter" href="http://twitter.com/joshholmes">Josh Holmes</a> for his general welcoming and helpful attitude, Nicole Zahnd for organizing the flights and hotels perfectly and obviously everyone from the Microsoft team that stayed with us this week and listened to our rants and complaints about their product! Looking forward to next year (wink)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/04/switzerland-microsoft-and-the-jumpincamp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>2009: A Year of Startups, Conferences &#038; Open Source</title>
		<link>http://blog.echolibre.com/2010/01/2009-a-year-of-startups-conferences-and-open-source/</link>
		<comments>http://blog.echolibre.com/2010/01/2009-a-year-of-startups-conferences-and-open-source/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 16:47:23 +0000</pubDate>
		<dc:creator>Eamon</dc:creator>
		
		<category><![CDATA[CloudSplit]]></category>

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

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

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=745</guid>
		<description><![CDATA[A lot has happened in the last 12 months. It being the first day back at work of the New Year, I wanted to write a post about some of the highlights of our first full (calendar) year in business.
Startups
The year started off well enough. We&#8217;d just finished a two month project for Mobivox, a [...]]]></description>
			<content:encoded><![CDATA[<p><em>A lot has happened in the last 12 months. It being the first day back at work of the New Year, I wanted to write a post about some of the highlights of our first full (calendar) year in business.</em></p>
<p><strong>Startups</strong></p>
<p>The year started off well enough. We&#8217;d just finished a two month project for <a title="Mobivox" href="http://www.mobivox.com/" target="_self"><strong>Mobivox</strong></a>, a Canadian VoIP startup. We&#8217;d been building their billing system and integrating it with their VoIP system since our first day of trading in October. The project went well, and Mobivox was later <a title="Mobivox Sold" href="http://www.techcrunch.com/2009/09/25/hotmail-co-founders-new-firm-acquires-a-second-voip-startup-mobivox/">sold to Sabse Technologies</a>, a company founded by <a href="http://www.crunchbase.com/person/sabeer-bhatia">Sabeer Bhatia</a> one of Hotmail&#8217;s Co-Founders.</p>
<p>In early January we decided to shake up our business model a bit. We&#8217;d previously taken the route of web developers / PHP guns for hire. Ireland is a pretty small market, and we found that sufficiently differentiating ourselves from all the other web developers in the country to be no easy task. Given the broadness of the term itself, we decided to focus on our strengths on those that need them the most: startups. We also decided that in order to do this, we&#8217;d need some extra brains.<span id="more-745"></span></p>
<p>David had been working in the Open Source community for number of years, spending a lot of time working on <a title="PHP" href="http://www.php.net" target="_self">PHP</a> and <a title="PEAR" href="http://pear.php.net/">PEAR</a>. Through PEAR he met <a href="http://twitter.com/h">Helgi Þormar Þorbjörnsson</a>, and was convinced he&#8217;d make a great addition to our team. In January, I met with Helgi on Skype and we talked through the possibilities.</p>
<p>By St. Patrick&#8217;s Day, Helgi was working with echolibre. This would mark the end of a difficult quarter for most small Irish businesses. It seemed that many businesses were experiencing difficulty in collecting payment. This was due to a wider knock-on effect whereby everyone seemed to be waiting for invoices to be paid, and could not themselves settle creditors invoices. We too experienced difficulties in this area, but what doesn&#8217;t kill you makes you stronger, eh?</p>
<p>In April, one of our clients appeared on Dragon&#8217;s Den with an app we had built for them called <a title="RentCollectors.ie" href="http://www.rentcollectors.ie" target="_self"><strong>RentCollectors</strong></a>. It&#8217;s a service that allows landlords to outsource and monitor the collection of rent. <strong>RentCollectors has collected almost €2M in thirteen months, </strong>not bad for a difficult economic period.</p>
<p>In April, we started working on <a title="VidCollege" href="http://www.vidcollege.com" target="_self">VidCollege</a>, an app we built in a week. VidCollege was co-founded by <a href="http://twitter.com/seanfee80" target="_self">Sean Fee</a>, himself featured on Dragon&#8217;s Den UK for his other venture, <a title="Look And Taste" href="http://www.lookandtaste.com" target="_self">iFoods / Look And Taste</a>. VidCollege is an web based service that gives third level institutions the ability to provide video access to courses and materials, and offer full accreditation.</p>
<p>The launch of VidCollege was put on hold by Sean and his co-founders, while they decided to focus on the development of a sister web app, called <a title="VidSchool" href="http://www.vidschool.com" target="_self"><strong>VidSchool</strong></a>. This would be a service that creates a new market place for teachers to connect with students seeking extra tuition. This was a two month build, and we worked hard on it over the summer. We were delighted to see it being <a title="VidSchool at TechCrunch50" href="http://eu.techcrunch.com/2009/09/16/techcrunch50-vidschool-lets-the-teachers-teach-in-video/" target="_self">launched and showcased at TechCrunch 50</a> in San Francisco in September.</p>
<p>In May, Helgi was made a partner in our company, bringing to four the number of co-owners in the company.</p>
<p>In June we met with <a href="http://twitter.com/davidmcavinue" target="_self">Dave McAvinue</a> of <a title="Pixel Labs" href="http://www.pixel-lab.ie/" target="_self">Pixel Lab</a>, to talk about their new venture, <a title="Tender3D" href="http://www.tender3d.com/" target="_self"><strong>Tender 3D</strong></a>. He and his team have been supplying high-end 3D models to film, tv, design and engineering sectors over the last number of years and they spotted an opportunity for a web app that effectively created a new market place for 3D work. Tender 3D connects potential buyers with suppliers of 3D animations, models and graphics. It&#8217;s also a project management tool that ties in with the buying process. Tender 3D is supported by Enterprise Ireland, and have a great team behind it. Tender3D will be going into beta shortly, and has already received international attention from the 3D community.</p>
<p>In June we also met with <a href="http://twitter.com/jdrumgoole" target="_self">Joe Drumgoole</a>, to explore an idea he had for controlling the cost of cloud computing. Initially we considered developing this as a side project in our spare time. Given the activity in the cloud computing space in the previous 12 months (and knowing that despite the best of intentions, &#8220;spare time projects&#8221; tend to be slow to develop), we decided to try to secure angel investment. <a title="Ray Nolan on Chruchbase" href="http://www.crunchbase.com/person/ray-nolan-2" target="_self">Ray Nolan</a>, co-founder of <a title="Hostelworld" href="http://www.hostelworld.com" target="_self">Hostelworld</a> and <a title="Ray Nolan in The Irish Times" href="http://www.irishtimes.com/newspaper/finance/2009/1120/1224259174207.html" target="_self">serial technology investor</a> stepped in, and <a title="CloudSplit - Real-time Cloud Analytics" rel="nofollow" href="http://www.cloudsplit.com"><strong>CloudSplit</strong></a><strong> </strong>was born.</p>
<p>CloudSplit is a huge deal for us, and something we&#8217;re very proud to be working on. On a technical level the work has been challenging but fun, and we&#8217;ve made great strides with the software since we started development in August. In September myself and Joe travelled to <a title="CloudSplit at TechCrunch 50" href="http://eu.techcrunch.com/2009/09/16/cloudsplit-arrives-to-monitor-those-expensive-clouds/">TechCrunch 50 to showcase the service</a> and to meet what would become our fledgling user base. CloudSplit is aimed at users of cloud computing, platform-as-a-service offerings such as Amazon Web Services, Rackspace Cloud and Microsoft Azure. It allows them to track the cost of their cloud infrastructure in real-time. CloudSplit has been covered by tech blogs like <a title="CloudSplit on TechCrunch" href="http://eu.techcrunch.com/2009/12/09/leweb-cost-control-for-cloud-computing-from-cloudsplit/">TechCrunch</a>, <a title="CloudSplit on Technorati" href="http://technorati.com/technology/it/article/exclusive-interview-with-david-coallier-of/">Technorati </a>and <a title="CloudSplit on Digital Beat" href="http://digital.venturebeat.com/2009/12/10/stribe-tigerlily-cloudsplit/" target="_self">Digital Beat</a>, as well as the <a title="CloudSplit in the Irish Times" href="http://www.irishtimes.com/newspaper/finance/2009/1127/1224259538757.html" target="_self">Irish Times</a>. In December Joe presented CloudSplit to a <a title="CloudSplit LeWeb presentation" href="http://www.ustream.tv/recorded/2748297" target="_self">live audience of 1,500 and an live streaming audience of 100k at LeWeb</a>, Europe&#8217;s largest web conference.</p>
<p>On a personal note, developing the software behind the only two Irish companies to appear at TechCrunch50 was a massive achievement for our team, something that we&#8217;re very proud of. Working with two entrepreneurs like Sean Fee and Joe Drumgoole has been a real highlight of the last 12 months.</p>
<p>In August we had two new additions to our team. <a href="http://twitter.com/nslater" target="_self">Noah Slater</a>, a Debian packager, well known contributor to Open Source projects such as Apache Couch DB and all-round Python and PHP rockstar, brought his considerable skill and experience in software development to help with the build of Tender 3D and CloudSplit. <a href="http://twitter.com/davidd" target="_self">David Doran</a>, an excellent frontend and PHP developer also came on board and has been working hard on Tender 3D and FRAPI.</p>
<p>echolibre is a distributed company &#8212; our team is spread across Dublin, Cork, London and York. While Helgi and David visit Dublin regularly, and I visit London now and then, it&#8217;s not often that we all find ourselves in the same location. For our company Christmas party, however, all six of us met in Dublin, and for me this was the real highlight of 2009.</p>
<p><strong>Conferences</strong></p>
<p>Helgi, David and myself put in a good number of appearances throughout 2009 at national and international conferences. David talked about APIs at the first <a title="OSS Barcamp" href="http://ossbarcamp.com/">Open Source Software Barcamp</a> in Dublin, in March. OSS Barcamp is made possible by the hard work of <a href="http://www.lczajkowski.com/">Laura Czajkowski</a> and a team of volunteers, and we&#8217;re proud to be a sponsor of each event.</p>
<p>Between May and October Helgi was on the conference trail *a lot*.  He gave talks and held workshops at <a href="http://tek.phparch.com/" target="_self">PHP Tek&#8217;09</a> Chicago in May, <a href="http://phpconference.nl/" target="_self">Dutch PHP Conference</a> Amsterdam in June, <a href="http://en.oreilly.com/oscon2009" target="_self">O&#8217;Reilly OSCON</a> San Jose in July, <a href="http://epicenter.ie/?2009" target="_self">Epicentre</a> Dublin in August and <a href="http://zendcon.com/2009/" target="_self">ZendCon</a> San Jose in October. He also spoke at some smaller events such as PHP London in October.</p>
<p>In October, I spoke about best practices and current trends in Web Development and Startups at Refresh Dublin, part of the <a title="Refreshing Cities" href="http://www.refreshingcities.org/" target="_self">Refreshing Cities</a> movement.</p>
<p>Both Microsoft Ireland and Microsoft UK asked us to attend their Web Developer Summit in December, which was held in their headquarters in Redmond, WA. This was an invite only event, limited to 25 attendees, with David and Helgi representing echolibre. Helgi <a title="Microsoft Web Developer Summit" href="http://blog.echolibre.com/2009/12/microsoft-web-developer-summit/" target="_self">wrote a post</a> a few weeks ago that covered the topics that were discussed. Microsoft have been working hard to make inroads into traditionally non-MS oriented communities such as PHP, in an effort to enhance the performance of their web server (IIS) and cloud (Azure) offerings. From a PHP perspective, any steps taken by Microsoft to engage with the community, to improve performance, reliability and security, and to enhance user experience, is to be applauded.</p>
<p><strong>Open Source Projects</strong></p>
<p>Throughout 2009 we worked hard on our first self-sponsored Open Source prject, <a title="FRAPI - an Open Source API Framework" href="http://www.getfrapi.com" target="_self"><strong>FRAPI</strong></a>. We wanted to build a framework that would be useful for creating APIs, easy to use, and free to the community. We started work on FRAPI early in the year, and by August it was being used in the builds of both CloudSplit and Tender3D. We&#8217;re finalising documentation at the moment, as we want to make sure the widest possible audience can use it from an early stage. For now, you can see a screen cast of how to build an API in five minutes using FRAPI on <a title="Build an API in five minutes with FRAPI" href="http://www.getfrapi.com" target="_self">www.getfrapi.com</a>.</p>
<p>We continued to support PHP and PEAR by making various contributions through code and documentation throughout 2009. We also lent a hand and some code to the Apache Sponsored CouchDB and the Adobe award winning Twitter client, Spaz.</p>
<p><strong>Final Thoughts</strong></p>
<p>One of the things that stood out to me in 2009 was the strength of the web and Open Source communities in Ireland and around the world. Through the conferences we attended, the various meetups and tech events, and through the likes of Twitter and blogs, it was made clear to us that there is real community support out there for anyone willing to engage and give something back. If there was one thing we would encourage anyone reading this to do, it&#8217;s to follow your passion and get involved. So far, this has worked well for us; we&#8217;ve had a year of ups and downs, but the one thing that has always been constant is the community.</p>
<p>Here&#8217;s to 2010 <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/01/2009-a-year-of-startups-conferences-and-open-source/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP Advent 2009: Developers Versus Designers</title>
		<link>http://blog.echolibre.com/2009/12/php-advent-2009-developers-versus-designers/</link>
		<comments>http://blog.echolibre.com/2009/12/php-advent-2009-developers-versus-designers/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 15:04:05 +0000</pubDate>
		<dc:creator>Eamon</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=726</guid>
		<description><![CDATA[Helgi, our lead on R&#38;D has just been published on this years PHP Advent. In this article he looks at how web designers and developers currently interact, and offers some ways to improve the web design and development process.
The full post can be found here.
]]></description>
			<content:encoded><![CDATA[<p>Helgi, our lead on R&amp;D has just been published on this years PHP Advent. In this article he looks at how web designers and developers currently interact, and offers some ways to improve the web design and development process.</p>
<p>The full post can be found <a href="http://phpadvent.org/2009/developers-versus-designers-by-helgi-Þormar-Þorbjörnsson">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/12/php-advent-2009-developers-versus-designers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Memcache and Python, getting started</title>
		<link>http://blog.echolibre.com/2009/11/memcache-and-python-getting-started/</link>
		<comments>http://blog.echolibre.com/2009/11/memcache-and-python-getting-started/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 15:57:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=614</guid>
		<description><![CDATA[
If you have ever used Python and Memcached, you probably have been looking for a library to connect to your Memcached server. And I&#8217;m sure you stumbled on the Tummy.com library which has basically no official online documentation.

Code is the best documentation:
That&#8217;s right&#8230; download the tar.gz file, go to the folder where you downloaded it, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-657" title="python-logo" src="http://blog.echolibre.com/wp-content/uploads/2009/11/python-logo.png" alt="python-logo" width="149" height="148" align="right" /></p>
<p style="text-align: justify;">If you have ever used Python and Memcached, you probably have been looking for a library to connect to your Memcached server. And I&#8217;m sure you stumbled on the <a title="Tummy memcache python library" href="http://www.tummy.com/Community/software/python-memcached/">Tummy.com</a> library which has basically no official online documentation.</p>
<p><span id="more-614"></span></p>
<h2>Code is the best documentation:</h2>
<p style="text-align: justify;">That&#8217;s right&#8230; download the tar.gz file, go to the folder where you downloaded it, extract the content of the archive file, open your favorite editor and read the comments of the memcache.py file. It&#8217;s rough, it&#8217;s ugly, it takes time and it&#8217;s boring, but, it&#8217;s a proven way of doing it. Many nerds and geeks will tell you it&#8217;s the BEST WAY IN THE WORLD!</p>
<p style="text-align: justify;">Sorry, I strongly disagree with that. When you install the library with the likes of apt-get (apt-get install python-memcache) or any other dependency management tool, you are lost because you have no direct code to look at (Unless you are an uber geek and decide to go look at the location of your installed files, grep for memcache and read the .py from there. Of course this is also very inconvenient and very unproductive).</p>
<h2>Don&#8217;t use it at all:</h2>
<p style="text-align: justify;">Google for anything else? Realize that everything seems to be pointing back to that Tummy link&#8230; ohh there are a few other libraries alright, you could use the one from Twisted  or maybe cmemcache which is an interesting one but yet another one that doesn&#8217;t seem to have any documentation.</p>
<h2>Keep digging and get lucky:</h2>
<p style="text-align: justify;">You can keep digging in order to find documentation for that solution you absolutely need and then get lucky and find a link. In the case of Python memcached, if you are lucky enough you find a link on some mysql page&#8230; why? Not quite sure but it&#8217;s there.</p>
<p>You use it and decide to write an article about it, just like I am doing:</p>
<p style="text-align: justify;">Here we go, Python Memcache basic usage, how to install python-memcache (on Ubuntu), how to connect to your memcache server(s), how to add a new key to the cache, how to retrieve data from memcache and how to delete (lazy delete) from memcache.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="system" style="font-family:monospace;">apt-get install python-memcache</pre></td></tr></table></div>

<p>Once everything went ok, you need to test your connection and your memcache server so simply run the python interface:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> memcache
<span style="color: #66cc66;">&gt;&gt;&gt;</span> s = memcache.<span style="color: black;">Client</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;127.0.0.1:11211&quot;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>Of course if your memcache server is on another host and another port, you need to adjust the line above.</p>
<p>So now let&#8217;s test adding data to the server:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> memcache
<span style="color: #66cc66;">&gt;&gt;&gt;</span> s = memcache.<span style="color: black;">Client</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;127.0.0.1:11211&quot;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> s.<span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;name&quot;</span>, <span style="color: #483d8b;">&quot;david&quot;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>Now you have a name set in your memcache server and if you instantiate a new connection, you should be able to retrieve this &#8220;name&#8221; key.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> memcache
<span style="color: #66cc66;">&gt;&gt;&gt;</span> s = memcache.<span style="color: black;">Client</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;127.0.0.1:11211&quot;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> name = s.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;name&quot;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>You should get &#8220;david&#8221; back from that. Here&#8217;s an example on how you could actually use that in a file:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> memcache
<span style="color: #483d8b;">&quot;&quot;&quot;
Example class
&nbsp;
This is simply an example class used for the memcache demonstration
&nbsp;
package: echolibre.examples
&quot;&quot;&quot;</span>
<span style="color: #ff7700;font-weight:bold;">class</span> Example<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;Example of memcache tester&quot;&quot;&quot;</span>
    hostname = <span style="color: #483d8b;">&quot;&quot;</span>
    server   = <span style="color: #483d8b;">&quot;&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, hostname=<span style="color: #483d8b;">&quot;127.0.0.1&quot;</span>, port=<span style="color: #483d8b;">&quot;11211&quot;</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">hostname</span> = <span style="color: #483d8b;">&quot;%s:%s&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>hostname, port<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">server</span>   = memcache.<span style="color: black;">Client</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #008000;">self</span>.<span style="color: black;">hostname</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, key, value, expiry=<span style="color: #ff4500;">900</span><span style="color: black;">&#41;</span>:
        <span style="color: #483d8b;">&quot;&quot;&quot;
        This method is used to set a new value
        in the memcache server.
        &quot;&quot;&quot;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">server</span>.<span style="color: #008000;">set</span><span style="color: black;">&#40;</span>key, value, expiry<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> get<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, key<span style="color: black;">&#41;</span>:
        <span style="color: #483d8b;">&quot;&quot;&quot;
        This method is used to retrieve a value
        from the memcache server
        &quot;&quot;&quot;</span>
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">server</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span>key<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> delete<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, key<span style="color: black;">&#41;</span>:
        <span style="color: #483d8b;">&quot;&quot;&quot;
        This method is used to delete a value from the
        memcached server. Lazy delete
        &quot;&quot;&quot;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">server</span>.<span style="color: black;">delete</span><span style="color: black;">&#40;</span>key<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    sample = Example<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;127.0.0.1&quot;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span>
    sample.<span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;name&quot;</span>, <span style="color: #483d8b;">&quot;david&quot;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span>
    retrieved = sample.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;name&quot;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span>
    <span style="color: #ff7700;font-weight:bold;">print</span> retrieved</pre></td></tr></table></div>

<p>So simply enough you can invoke &#8220;python example.py&#8221; or do something like</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">from</span> example <span style="color: #ff7700;font-weight:bold;">import</span> Example
<span style="color: #66cc66;">&gt;&gt;&gt;</span> e = Example<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;127.0.0.1&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> e.<span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;name&quot;</span>, <span style="color: #483d8b;">&quot;david&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">print</span> e.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;name&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> e.<span style="color: black;">delete</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;name&quot;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p style="text-align: justify;">You are now ready to use memcache from your python code/classes/scripts so I hope you enjoyed this and that it&#8217;ll be useful. I&#8217;ll be posting a second article about the multi delete, multi set, and extended methods that you can&#8217;t find anywhere. In the meantime, they are mine! Mouhahahaha! (evil)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/11/memcache-and-python-getting-started/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>Conferences, conferences, conferences</title>
		<link>http://blog.echolibre.com/2009/07/conferences-conferences-conferences/</link>
		<comments>http://blog.echolibre.com/2009/07/conferences-conferences-conferences/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 10:57:30 +0000</pubDate>
		<dc:creator>Helgi</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=486</guid>
		<description><![CDATA[The last couple of months have been extremely busy for me, to a point where I have not been blogging or participating in open source project nor the local user group to the level I&#8217;d like, but it has been the good kind of busy, where you feel exhausted but very satisfied with one self.
What [...]]]></description>
			<content:encoded><![CDATA[<p>The last couple of months have been extremely busy for me, to a point where I have not been blogging or participating in open source project nor the local user group to the level I&#8217;d like, but it has been the good kind of busy, where you feel exhausted but very satisfied with one self.</p>
<p>What has been keeping me busy? I have presented at 3 conferences (<a href="http://tek.mtacon.com">PHP Tek</a>, <a href="http://www.phpconference.nl">DPC </a>and <a href="http://en.oreilly.com/oscon2009">OSCON</a>), took a week vacation in Iceland with Chris Shiflett and Andrei Z, moved to a new house, work on a very fun but stressful project among other interesting things that have happened.<br />
A rough calculation told me that since mid May, around the time of <a href="http://tek.mtacon.com">PHP Tek</a>, I have been away from my home a total of 38 days, almost 50%, not bad at all!</p>
<p>To touch base quickly on each of the conferences I spoke at:<span id="more-486"></span></p>
<p><a href="http://tek.mtacon.com">PHP Tek</a></p>
<p>Located in Chicago, as it has for the previous years, it was a great conference as always. A very good community presence at the conference, which makes it very enjoyable to attend, both to see quality talks given by some of the best PHP speakers in the world and meet old friends and make some new, the best MTA conference so far.</p>
<p>I gave a whole day tutorial on caching and performance with Scott MacVicar and then gave a talk on frontend caching. Both went over fantastically, a lot of user interaction, my talk was full and the tutorial great fun with loads of people in it.</p>
<p>No doubt the best PHP conference in the states at the moment, a must go to for anyone living close (or even afar)</p>
<p>Tutorial slides</p>
<ol>
<li><a href="http://www.slideshare.net/helgith/caching-for-cash-part-1">http://www.slideshare.net/helgith/caching-for-cash-part-1</a></li>
<li><a href="http://www.slideshare.net/smacvicar/caching-for-cash-benchmarking-and-profiling">http://www.slideshare.net/smacvicar/caching-for-cash-benchmarking-and-profiling</a></li>
<li><a href="http://www.slideshare.net/smacvicar/caching-for-cash-caching">http://www.slideshare.net/smacvicar/caching-for-cash-caching</a></li>
<li><a href="http://www.slideshare.net/helgith/caching-for-cash-part-4">http://www.slideshare.net/helgith/caching-for-cash-part-4</a></li>
</ol>
<p>Talk slides:<br />
<a href="http://www.slideshare.net/helgith/coping-with-cyber-monday">http://www.slideshare.net/helgith/coping-with-cyber-monday</a></p>
<p><a href="http://www.phpconference.nl">Dutch PHP Conference (DPC)</a></p>
<p>As before DPC was held by <a href="http://www.ibuildings.com">Ibuildings</a> in the RAI in the beautiful city of Amsterdam.  DPC seems growing every year I see it and was not suffering from any recession problems this year like many events have, if anything they made things even grander than before.</p>
<p>DPC is to Europe what PHP Tek is to the States, a world class conference with high quality speakers and talks, without losing sight of the community. It&#8217;s one of those conferences where I expect I will go every year for unforeseen time and try to drag along as many friends as possible, great fun!</p>
<p>I gave my Caching for Cash tutorial with Scott MacVicar, where we sold out and the room was so full that people had to stand around or sit on desks way back in the room, we even brought in couple of extra seats.</p>
<p>The tutorial went over very well, our best performance so far! (pun intended)</p>
<p>The slides can be seen at</p>
<ol>
<li><a href="http://www.slideshare.net/helgith/cashing-for-cash-part-1-dpc-2009">http://www.slideshare.net/helgith/cashing-for-cash-part-1-dpc-2009</a></li>
<li><a href="http://www.slideshare.net/smacvicar/caching-for-cash-benchmarking-and-profiling">http://www.slideshare.net/smacvicar/caching-for-cash-benchmarking-and-profiling</a></li>
<li><a href="http://www.slideshare.net/smacvicar/caching-for-cash-caching">http://www.slideshare.net/smacvicar/caching-for-cash-caching</a></li>
<li><a href="http://www.slideshare.net/helgith/caching-for-cash-part-4-dpc-2009">http://www.slideshare.net/helgith/caching-for-cash-part-4-dpc-2009</a></li>
</ol>
<p><a href="http://en.oreilly.com/oscon2009">OSCON</a></p>
<p>This was the first time I go to <a href="http://en.oreilly.com/oscon2009">OSCON</a> so all I have to compare it against are the stories I hear from other people, but there was a problem with basing my expectations on those stories and that was due to the fact <a href="http://en.oreilly.com/oscon2009">OSCON</a> moved from Portland to San Jose, a move a lot of people were not happy with.</p>
<p>I had high hopes but going in I must admit I didn&#8217;t really feel the &#8220;awesomeness&#8221; that a lot of people had been talking about, while a good conference with amazing speakers and good expo, it seemed like a shadow of it&#8217;s former self. It was the first year they had a decline in attandence, 500 less or so, no doubt due to location change.</p>
<p>This being one of the biggest tech conferences in the world, there were very good talks in there, ranging from design to programming to hardwares, it is not to be shuned even tho it changed location and has a higher than average entrance fee. You will always get value for you money and meet great people.</p>
<p>As for what I saw at the conference, I poked my head into random talks about various topics but the one that sits best in my mind is the one Jon Tan gave on &#8220;Grokkin Design&#8221;, great material but due to the fact that OSCON only has 45 minute talks (which I do not understand) he could only touch lightly on the subject.</p>
<p>I gave my &#8220;Website releases made easy with the PEAR installer&#8221;, it went over nicely but suffered from the whole 45 minutes talk problem, where I originally designed this talk to be at least an hour.<br />
Furhter info on my talk can be found at <a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8126">http://en.oreilly.com/oscon2009/public/schedule/detail/8126</a> and the slide can be gotten from here <a href="http://www.slideshare.net/helgith/website-releases-made-easy-with-the-pear-installer-oscon-2009">http://www.slideshare.net/helgith/website-releases-made-easy-with-the-pear-installer-oscon-2009</a></p>
<p>I would like to thank Chris, Sean and Jon for allowing me to crash with them and Andrei for being a fantastic host and taking us all over the place for great food and drinks, it really added that extra spark to a good trip <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Upcoming:</strong></p>
<p>I will also be presenting soon at ZendCon (<a href="http://www.zendcon.com">http://www.zendcon.com</a>) where I will talk about frontend caching and Epicenter in Dublin (<a href="http://www.epicenter.ie">http://www.epicenter.ie</a>) where I will talk about frontend caching  and how to deploy your websites with the PEAR installer.</p>
<p>And hopefully couple of other conferences around the world.</p>
<p>See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/07/conferences-conferences-conferences/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery JSON Autocomplete</title>
		<link>http://blog.echolibre.com/2009/06/jquery-json-autocomplete/</link>
		<comments>http://blog.echolibre.com/2009/06/jquery-json-autocomplete/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 12:14:40 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=444</guid>
		<description><![CDATA[A number of people have asked me over the past few days how should one go about using jQuery Autocomplete but instead of using newline delimiters, with a URL that returns JSON data.
At first, I first had a hack that involved handling the &#8220;keyup&#8221; event myself then sending a request to a JSON URL, and [...]]]></description>
			<content:encoded><![CDATA[<p>A number of people have asked me over the past few days how should one go about using <a title="jQuery Autocomplete plugin" href="http://www.pengoworks.com/workshop/jquery/autocomplete.htm">jQuery Autocomplete</a> but instead of using newline delimiters, with a URL that returns <a title="Javascript Object Notation" href="http://www.json.org">JSON</a> data.</p>
<p>At first, I first had a hack that involved handling the &#8220;<a title="jquery keyup event." href="http://docs.jquery.com/Events/keyup">keyup</a>&#8221; event myself then sending a request to a JSON URL, and then involve the &#8220;autocompleteArray&#8221; method from Autocomplete. It was a mess considering that the autocomplete method is already sending the value of your defined input to the server as a GET parameter. I was repeating the behavior of the function in order to receive a simple JSON array. I was unhappy, and felt it to be a very annoying solution because I wanted to take advantage of the internal caching system of jQuery Autocomplete.</p>
<p>So I decided to give a look at the code and came up with a much cleaner solution. I directly added a JSON option to the Autocomplete. So for anyone interested you can find the patch here: <a title="jQuery Autocomplete JSON Patch" href="http://labs.echolibre.com/jquery/autocomplete/jquery.autocomplete-json.diff">jQuery Autocomplete JSON patch</a>.</p>
<p><span id="more-444"></span></p>
<p>The first step thing you&#8217;ll need is to patch Autocomplete using the patch command (Google patch) and then include the jQuery and Autocomplete JavaScript sources into your code.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.autocomplete.js&quot;&gt;&lt;/script&gt;
&lt;style type=&quot;text/css&quot;&gt;
    @import &quot;jquery.autocomplete.css&quot;;
&lt;/style&gt;</pre></td></tr></table></div>

<p>Once you are done, you need to setup your input field on which the autocomplete calls and function is going to be executed from.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;input type=&quot;text&quot; size=&quot;25&quot; id=&quot;input&quot; /&gt;</pre></td></tr></table></div>

<p>And of course you need to make the event hook to make sure your autocomplete is done but in the hook you need to make sure the new option &#8220;<span style="text-decoration: underline;">json</span>&#8221; is set to <span style="text-decoration: underline;">true</span>. This is how you proceed:</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: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#input'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">autocomplete</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'url.php'</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span>json<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>The complete version should look somewhat like:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
  &lt;head&gt;
   &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
   &lt;style type=&quot;text/css&quot;&gt;
       @import &quot;jquery.autocomplete.css&quot;;
   &lt;/style&gt;
  &lt;/head&gt;
  &lt;body&gt;
   &lt;label for=&quot;input&quot;&gt;Input any text&lt;/label&gt;
   &lt;input type=&quot;text&quot; id=&quot;input&quot; /&gt;
  &lt;/body&gt;
  &lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
  &lt;script type=&quot;text/javascript&quot; src=&quot;jquery.autocomplete.js&quot;&gt;&lt;/script&gt;
  &lt;script type=&quot;text/javascript&quot;&gt;
      $(function() {
          $('#input').autocomplete('url.php', {json: true});
      });
  &lt;/script&gt;
&lt;/html&gt;</pre></td></tr></table></div>

<p>You can even <a title="jQuery Autocomplete JSON example" href="http://labs.echolibre.com/jquery/autocomplete/">try it now if you want</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/06/jquery-json-autocomplete/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>MySQL Meetup Dublin - 24th June 2009</title>
		<link>http://blog.echolibre.com/2009/05/mysql-meetup-dublin-24th-june-2009/</link>
		<comments>http://blog.echolibre.com/2009/05/mysql-meetup-dublin-24th-june-2009/#comments</comments>
		<pubDate>Thu, 28 May 2009 15:31:33 +0000</pubDate>
		<dc:creator>J.D.</dc:creator>
		
		<category><![CDATA[Open Source]]></category>

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=401</guid>
		<description><![CDATA[
1
SELECT tasty FROM beers WHERE cold=&#34;very&#34; AND price=&#34;free&#34; GROUP BY nerds;

A few weeks ago I was talking to Mark Baker from MySQL AB about getting a MySQL meetup happening in Dublin. Meetups currently happen in London, San Fran, etc., and are an opportunity for local MySQL users to meet socially. Mark was very helpful, up [...]]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> tasty <span style="color: #993333; font-weight: bold;">FROM</span> beers <span style="color: #993333; font-weight: bold;">WHERE</span> cold<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;very&quot;</span> <span style="color: #993333; font-weight: bold;">AND</span> price<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;free&quot;</span> <span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> nerds;</pre></td></tr></table></div>

<p><img title="MySQL" src="http://blog.echolibre.com/wp-content/uploads/mysql-167x86.png" alt="MySQL" width="167" height="86" align="right" style="padding-left:10px"/>A few weeks ago I was talking to Mark Baker from <a href="http://www.mysql.com">MySQL AB</a> about getting a MySQL meetup happening in Dublin. Meetups currently happen in London, San Fran, etc., and are an opportunity for local MySQL users to meet socially. Mark was very helpful, up to the point that he&#8217;s offered to fly himself and Ivan Zoratti for the inaugural meetup. They&#8217;ll give us a brief talk on MySQL 5.4, MySQL Cluster v7 and what the future holds for MySQL.</p>
<p>This event is a chance for you to engage in your community by meeting other Dublin web / MySQL developers, learn from shared experiences and to make some nerdy contacts.</p>
<p>The good people in the <b>South William Bar</b> have given us the use of their top floor for this informal event, which kicks off at <b>18:30 </b>on <b>Wednesday 24th June</b>. Places are limited to 25 people. You can reserve your spot on <a title="MySQL Dublin Meetup - 24th June 2009" href="http://mysqldublin.eventbrite.com/">eventbrite</a> <b>for free</b>.</p>
<p>To help with the &#8220;community&#8221; part of it, we&#8217;re going to put some money behind the bar for some nice beers.</p>
<p><b>UPDATE (3rd June 2009) :</b> This happy bunch of MySQL developers have registered to come along. We&#8217;ll be releasing a few more tickets a few days before the meetup.</p>
<p>Barry Alistair, Richard Bowden, Declan Boylan, Rory Browne, Paul Campbell, David Coallier, Ray Cregan, Barry Cronin, Darragh Curran, Stephen Curran, Laura Czajkowski, Bill de hÓra, Andrew Duffy, Ross Duggan, J.D. Fitz.Gerald, Eoghan Gaffney, David Gillen, Daniel Hunt, Piotr Jankowski, Eamon Leonard, Conor McDermottroe, John Moylan, Tomasz Muras, Shane O&#8217;Grady, Paul Phillips, Eduard Raos, Karen Thompson, Neil Turner </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2009/05/mysql-meetup-dublin-24th-june-2009/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
