<?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</title>
	<atom:link href="http://blog.echolibre.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.echolibre.com</link>
	<description></description>
	<pubDate>Mon, 25 Apr 2011 20:44:15 +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>LIKE conditions with Zend_Db_Select</title>
		<link>http://blog.echolibre.com/2010/08/sql-where-like-with-zend_db_select/</link>
		<comments>http://blog.echolibre.com/2010/08/sql-where-like-with-zend_db_select/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 09:38:46 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=993</guid>
		<description><![CDATA[Despite all the implications of using LIKE in MySQL, sometimes it&#8217;s quite useful for a proof-of-concept to be able to use it.
Even though this is a rather trivial example, I hope it will be of help to whoever is wondering how to use a LIKE in a where using a Zend_Db_Select::where() or Zend_Db_Select::orWhere() and did [...]]]></description>
			<content:encoded><![CDATA[<p>Despite all the implications of using LIKE in MySQL, sometimes it&#8217;s quite useful for a <em>proof-of-concept</em> to be able to use it.</p>
<p>Even though this is a rather trivial example, I hope it will be of help to whoever is wondering how to use a LIKE in a where using a <a title="Zend Framework Database DB Select Where" href="http://framework.zend.com/manual/en/zend.db.select.html#zend.db.select.building.where">Zend_Db_Select::where()</a> or Zend_Db_Select::orWhere() and did not manage to find decent documentation about it.</p>
<p><span id="more-993"></span></p>
<script src="http://gist.github.com/534198.js"></script>
<p>As you can see, we bind a parameter to the <em>where()</em> method using the <strong>?</strong> symbol, then when assigning the value of this parameter — second parameter — we append the wildcard character <strong>%</strong>. The new binded parameter value is then <em>string%</em> and which gets quoted and executed giving you the expected output.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/08/sql-where-like-with-zend_db_select/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Want your own Cloud API?</title>
		<link>http://blog.echolibre.com/2010/08/want-your-own-cloud-api/</link>
		<comments>http://blog.echolibre.com/2010/08/want-your-own-cloud-api/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 15:41:12 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[API]]></category>

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

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

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

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

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

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

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

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

		<category><![CDATA[php-fpm]]></category>

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=969</guid>
		<description><![CDATA[Ever considered developing a RESTful API? Ever wondered what is FRAPI and how it works? Well apart from reading the frameworks&#8217;s website, there was no real way to assess FRAPI as a RESTful API Framework — Not until recently.
In order to ease adoption and make it more accessible for people to evaluate FRAPI, we&#8217;ve put [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignnone size-thumbnail wp-image-979" style="margin: 15px;" title="logo_aws" src="http://blog.echolibre.com/wp-content/uploads/2010/08/logo_aws-150x60.gif" alt="logo_aws" width="150" height="60" align="left" />Ever considered developing a RESTful API? Ever wondered what is FRAPI and how it works? Well apart from reading <a title="FRAPI RESTful API Framework" href="http://getfrapi.com">the frameworks&#8217;s website</a>, there was no real way to assess FRAPI as a RESTful API Framework — Not until recently.</p>
<p style="text-align: justify;">In order to ease adoption and make it more accessible for people to evaluate FRAPI, we&#8217;ve put an <a title="Custom Amazon AMIs" href="http://alestic.com">Amazon AMI</a> together. This AMI comes pre-installed with <a title="Linux Lucid 10.04 LTS" href="http://releases.ubuntu.com/lucid/">Linux Lucid Lynx (Ubuntu 10.04 LTS)</a>, <a title="NGINX Webserver" href="http://nginx.org">NGINX</a> as the webserver, <a title="Advanced Caching server Memcached" href="http://memcached.org/">Memcached</a> — (And no, <a title="Memcached Funny site idea" href="http://twitter.com/preinheimer/statuses/20653198709">port 11211 isn&#8217;t opened</a> to the public), <a title="PHP FPM" href="http://php-fpm.org/">PHP5-FPM</a>, <a title="PHP APC Caching" href="http://php.net/apc">APC</a> and obviously FRAPI.</p>
<p style="text-align: justify;">If you&#8217;d like to give this public AMI a spin, just go to Amazon&#8217;s instance management section, click on &#8220;Launch Instance, go to community AMIs, and search for : &#8220;ami-0adf2f63&#8243; . Once you found it, click on &#8220;Select&#8221; (And make sure to select Port HTTP (80) when asked about which ports to open).<br />
<span id="more-969"></span></p>
<h2>It&#8217;s running, now what?</h2>
<p style="text-align: justify;">You can go directly to the AMI&#8217;s host name in a browser and you will get FRAPI&#8217;s default invalid action error, or you can follow these steps to customise it a bit more.</p>
<p style="text-align: justify;">Now that you see your new shiny FRAPI-AMI instance running in your management console, you have a few options:</p>
<p style="text-align: justify;"><strong>First option is</strong>: Find the &#8220;Public DNS&#8221; and the &#8220;Public IP Address&#8221; of the instance you just launched and point your domain-name&#8217;s DNS to the IP you found — Your domains could be: api.mydomain.com and admin.api.mydomain.com</p>
<p style="text-align: justify;"><strong>Second Option is</strong>: If you do not currently hold a domain name for your API, edit your <em>/etc/hosts</em> file (Or the equivalent in your OS) to have an entry that points to the IP of your instance</p>
<blockquote>
<p style="text-align: justify; padding-left: 30px;">10.0.0.1 api.mydomain.com admin.api.mydomain.com.</p>
</blockquote>
<p style="text-align: justify;">Once you are done with either Option 1 or Option 2, you&#8217;ll need to connect to your instance over SSH (<em>ssh ubuntu@hostname-of-the-instance -i your-amazon-cert.pem</em>). Upon connection, you&#8217;ll be greeted with a welcome screen giving you some information about FRAPI and the server&#8217;s software : <script src="http://gist.github.com/515503.js"></script></p>
<p style="text-align: justify;">Once you are connected, make sure to &#8220;<em>sudo su</em>&#8221; and then edit the files that are in <em>/home/ubuntu/sites/</em>. The only thing you have to modify in those files are the &#8220;<strong>server_name</strong>&#8221; details. Put either your domain name or your made up domain name that is setup in your <em>/etc/hosts</em> file. The end result should be an admin file with something that contains something along the lines of <script src="http://gist.github.com/515519.js"></script></p>
<p style="text-align: justify;">and an api configuration file that contains</p>
<p style="text-align: justify;"><script src="http://gist.github.com/515520.js"></script></p>
<p style="text-align: justify;">Don&#8217;t give up, you are nearly there, now you have to run : &#8220;<em>/etc/init.d/nginx restart &amp;&amp; /etc/init.d/php5-fpm restart</em>&#8221; and you are done.</p>
<p style="text-align: justify;">If you go to the api.mydomain.com in your browser you should now see FRAPI&#8217;s default invalid action XML error. If you go to admin.api.mydomain.com you should be able to login with the username &#8220;admin&#8221; and password &#8220;password&#8221; — Hint: You should go to the &#8220;<strong>configurations -&gt; users</strong>&#8221; section and modify that password.</p>
<h2>I want to code something!</h2>
<p style="text-align: justify;">SSH into your instance, and go to<em> /home/ubuntu/development/custom/Actions</em>, you will see all your API Controllers there and you can follow the steps here <a title="Creating Actions in FRAPI" href="http://wiki.github.com/frapi/frapi/creating-actions">http://wiki.github.com/frapi/frapi/creating-actions</a> (In our case, the generated files go into <em>/home/ubuntu/development/custom/Actions</em>)</p>
<p style="text-align: justify;">To get accustomed you can start playing with <a title="Testing1 Frapi ACTION" href="http://github.com/frapi/frapi/blob/master/src/frapi/custom/Action/Testing1.php">Testing1.php</a> and <a title="Testing2 Frapi ACTION" href="http://github.com/frapi/frapi/blob/master/src/frapi/custom/Action/Testing2.php">Testing2.php</a></p>
<p style="text-align: justify;">Don&#8217;t hesitate to jump on <a title="FRAPI IRC Channel" href="irc://frapi@irc.freenode.org">IRC</a> or on the <a title="FRAPI mailing list." href="http://groups.google.com/group/frapi-general">mailing list</a> and ask questions!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/08/want-your-own-cloud-api/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Stuart Chaney - Dublin Web Summit</title>
		<link>http://blog.echolibre.com/2010/06/stuart-chaney-dublin-web-summit/</link>
		<comments>http://blog.echolibre.com/2010/06/stuart-chaney-dublin-web-summit/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 20:42:11 +0000</pubDate>
		<dc:creator>Eamon</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.echolibre.com/?p=1006</guid>
		<description><![CDATA[One of the highlights for me at yesterday&#8217;s Dublin Web Summit was Ruby developer Stuart Chaney&#8217;s awesome talk on migrating existing web apps to the cloud. Check out his github for the datacore project which covers some of the methods he went through.
]]></description>
			<content:encoded><![CDATA[<p>One of the highlights for me at yesterday&#8217;s Dublin Web Summit was Ruby developer <a href="http://github.com/stuartchaney">Stuart Chaney</a>&#8217;s awesome talk on migrating existing web apps to the cloud. Check out his github for the datacore project which covers some of the methods he went through.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/06/stuart-chaney-dublin-web-summit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHPTek 2010, FRAPI release party!</title>
		<link>http://blog.echolibre.com/2010/05/phptek-2010-frapi-release-party/</link>
		<comments>http://blog.echolibre.com/2010/05/phptek-2010-frapi-release-party/#comments</comments>
		<pubDate>Tue, 25 May 2010 12:13:04 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=954</guid>
		<description><![CDATA[ Last week Helgi and I had the humongous chance and honour to fly to the &#8220;windy city&#8221; to PHP Tek 2010. For a change however, the purpose of this trip was not to give a talk at #tekx but to announce the open source release of a little something we&#8217;ve been cooking up for [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-full wp-image-957" style="margin: 15px;" title="tekx" src="http://blog.echolibre.com/wp-content/uploads/2010/05/tekx.png" alt="tekx" width="90" height="90" align="left" /> Last week <a href="http://twitter.com/h">Helgi</a> and <a href="http://twitter.com/davidcoallier">I</a> had the humongous chance and honour to fly to the &#8220;windy city&#8221; to <a title="PHP Tek 2010 Conference" href="http://tek.phparch.com/ ">PHP Tek 2010</a>. For a change however, the purpose of this trip was not to give a talk at <a title="PHP Tek 2010 on Twitter" href="http://search.twitter.com/search?q=tekx">#tekx</a> but to announce the open source release of a little something we&#8217;ve been cooking up for a while.</p>
<p style="text-align: justify;">After flying from Dublin (me) and London (Helgi) finally reached Chicago and met up with the PHP Tek crowd. After discussing details with <a title="Marco Tabini from MTA" href="http://blog.tabini.ca/">Marco Tabini</a>, we organized a little event to announce our long awaited RESTful API Framework <a title="Frapi Open Source API Framework" href="http://getfrapi.com">FRAPI</a>.</p>
<p style="text-align: justify;"><span id="more-954"></span></p>
<p style="text-align: justify;">The party was loud and fun. People chatted, asked a bunch of questions, complained, encouraged us and thanked us. We even turned around and made a live demo with no preparation whatsoever and, believe it or not, there were no bugs during the demo <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: justify;">The future is looking very bright for FRAPI which has attracted a <a title="FRAPI on Twitter" href="http://search.twitter.com/search?q=frapi">LOT</a> of attention over the past few days and we are looking forward for even more in the coming weeks. Even though there&#8217;s still some work to do in terms of documentation and a few things I would like to see changed, I have to admit that FRAPI is in a somewhat cool place right now with the upcoming *any-cache* compatibility (Which means that it will run on windows &#8212; wincache) will make it even more interesting. Currently FRAPI only supports APC but this is soon going to be fixed giving FRAPI the ability to run on the likes of Windows Azure and any other platform supported by the caching mechanism.</p>
<p style="text-align: justify;">If you feel like trying out FRAPI, you are more than welcomed to visit <a title="Frapi Open Source API Framework" href="http://getfrapi.com">http://getfrapi.com</a> and start right away by either downloading FRAPI or forking us on the spot.</p>
<p style="text-align: justify;">I would like to thank everyone at <a title="PHP Architect MTA Press" href="http://phparch.com">php|architect</a> who have been very helpful and also a big thanks to the sales department in the <a title="Sheraton Express O'Hare" href="http://www.starwoodhotels.com/sheraton/property/overview/index.html?propertyID=40">Sheraton Gateway Suites O&#8217;Hare</a> who have been the most helpful (In fact it may be the most helpful sales team I&#8217;ve come across in many years!)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/05/phptek-2010-frapi-release-party/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Frapi API Tester</title>
		<link>http://blog.echolibre.com/2010/04/frapi-api-tester/</link>
		<comments>http://blog.echolibre.com/2010/04/frapi-api-tester/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 17:04:44 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[frapi]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=928</guid>
		<description><![CDATA[Lately I&#8217;ve noticed that more and more service seem to include API testing in their list of services. For instance this week at Chirp, Twitter announced their development console available on dev.twitter.com which gives you the ability to test the API without really having to write any code just yet.
This feature is also well known [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Lately I&#8217;ve noticed that more and more service seem to include API testing in their list of services. For instance this week at <a title="Chirp Twitter Developer Conference" href="http://chirp.twitter.com">Chirp</a>, Twitter announced their development console available on <a title="Twitter Developers" href="http://dev.twitter.com">dev.twitter.com</a> which gives you the ability to test the API without really having to write any code just yet.</p>
<p style="text-align: justify;">This feature is also well known for people using <a title="HURL Your URL" href="http://hurl.it">Hurl</a> which is a website that you can use to make HTTP requests and test your API responses. Also on OSX there&#8217;s the <a title="OSX HTTP Client Tool" href="http://ditchnet.org/httpclient/">HTTP Client</a> Tool which does more or less the same as the ones above.</p>
<p>Another company that announced this feature this week was <a title="Apigee API analytics" href="http://apigee.com">Apigee</a>:</p>
<blockquote><p>Use the <a title="Apigee API Console" href="http://app.apigee.com/console">API Console</a> to review an API&#8217;s structure, experiment with the endpoint, and review the request and response messages. We&#8217;re launching with support for Twitter APIs and are adding more soon</p></blockquote>
<p style="text-align: justify;">Apigee is basically an analytics tool for your API. It allows you to track requests, users, errors, etc. So for them, implementing the API tester is something that makes sense as they provide statistics for you API, if you notice an error, you should be able to just test the API call and see if you can reproduce from within Apigee.</p>
<p style="text-align: justify;"><span id="more-928"></span>All those companies do really cool things, however now I&#8217;d like to talk about ourselves a bit here. In Frapi we&#8217;ve had a similar feature for quite some time now in order to help our own developers testing and debugging their API. Here&#8217;s a little introductory video on  how to create an action and test it from within Frapi.</p>
<p><object width="500" height="400" data="http://vimeo.com/moogaloop.swf?clip_id=10982778&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="align" value="center" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=10982778&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /></object></p>
<p><a href="http://vimeo.com/10982778">Frapi API Tester</a> from <a href="http://vimeo.com/user1282026">David Coallier</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p style="text-align: justify;">Obviously <a title="Frapi Open Source API Framework" href="http://getfrapi.com">Frapi</a> is on the verge of getting released to the public and we are really eager to get it out. That sort of feature is the reason why we built Frapi <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> To make your lives easier when developing APIs. What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/04/frapi-api-tester/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Go the right way with WonderProxy</title>
		<link>http://blog.echolibre.com/2010/04/go-the-right-way-with-wonderproxy/</link>
		<comments>http://blog.echolibre.com/2010/04/go-the-right-way-with-wonderproxy/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 17:11:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[PEAR]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=910</guid>
		<description><![CDATA[As the web grows, we developers have to write applications that are not location centric but rather develop applications that can be viewed by anyone around the world. Any developer that had to write such software probably has used GeoIP and has encountered issues when the time came to test their application. The only real [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="size-full wp-image-917" style="margin: 15px;" title="WonderProxy" src="http://blog.echolibre.com/wp-content/uploads/2010/04/wp1.png" alt="WonderProxy" width="210" height="66" align="left" />As the web grows, we developers have to write applications that are not location centric but rather develop applications that can be viewed by anyone around the world. Any developer that had to write such software probably has used <a title="GeoIP Maxmind Database" href="http://maxmind.com">GeoIP</a> and has encountered issues when the time came to test their application. The only real way to test your application, without setting up servers around the world, is to assume that your code works and that the GeoIP database is working correctly.</p>
<p style="text-align: justify;"><span id="more-910"></span></p>
<p style="text-align: justify;">This is obviously a flaw in the quality &amp; assurance of your product because you can absolutely never assume that your code works correctly. However, if you have tests to prove that your code works fine, then you are entitled to make such pretentious claim.</p>
<p style="text-align: justify;">If you don&#8217;t understand what I mean, consider the following example:</p>
<blockquote><p>On the <a title="PEAR PHP" href="http://pear.php.net/">PEAR</a> website we now have mirrors that automatically detect where you are coming from and direct you towards the closest mirror for downloading packages.</p></blockquote>
<p>The only way we had to test this feature was to ask someone say in Germany to test if he was being redirected to the German mirror and so on. This has obvious implications and it makes it impossible to automate tests.</p>
<p style="text-align: justify;">That was until <a title="WonderProxy Website" href="http://wonderproxy.com/?src=davidrocks">WonderProxy</a> came along. WonderProxy provides you with HTTP proxies around the world or precisely:</p>
<blockquote><p>WonderProxy provides HTTP proxies around the world to help you test GeoIP web applications. This paid service makes testing and re-testing applications from around the world fast and easy</p></blockquote>
<p style="text-align: justify;">Basically WonderProxy allows you to connect from anywhere in the world. This means that you could easily write automated tests and verify where your site is sending you or you could test the template that is being used, or whichever scenario you might have to test.</p>
<p>Paul from WonderProxy offered PEAR a free WonderProxy account to test whichever feature we wanted to test, and so I hereby would like to thank him and his really nifty service.</p>
<p>Go on! <a title="WonderProxy" href="http://wonderproxy.com/?src=davidrocks">TRY IT</a>! <a title="WonderProxy Website" href="http://wonderproxy.com/?src=davidrocks">GO</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/04/go-the-right-way-with-wonderproxy/feed/</wfw:commentRss>
		</item>
		<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>The Capsule CRM API and PHP</title>
		<link>http://blog.echolibre.com/2010/04/the-capsule-crm-api-and-php/</link>
		<comments>http://blog.echolibre.com/2010/04/the-capsule-crm-api-and-php/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 15:02:23 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[API]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=881</guid>
		<description><![CDATA[Introduction
At echolibre we&#8217;ve been trying to organize our sales and customer relationship in a more efficient way as the company customer base is getting larger and larger. That&#8217;s natural process for any growing company. In order to help us organize how we do everything related to customers (Sales, Leads, Relationships, etc) we are giving Capsule [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p style="text-align: justify;">At echolibre we&#8217;ve been trying to organize our sales and customer relationship in a more efficient way as the company customer base is getting larger and larger. That&#8217;s natural process for any growing company. In order to help us organize how we do everything related to customers (Sales, Leads, Relationships, etc) we are giving <a title="Capsule CRM" href="http://capsulecrm.com">Capsule CRM</a> a good run.</p>
<p style="text-align: justify;"><a title="Capsule CRM" href="http://capsulecrm.com">Capsule CRM</a> is basically a nice CRM tool that takes the boring part out of CRM&#8217;ing. Moreover (And the whole reason of this blog post), it has an <a title="Capsule CRM API" href="http://capsulecrm.com/help/page/api_gettingstarted">API</a> and as you all know, <a title="Frapi" href="http://getfrapi.com">we LOVE APIs</a>.</p>
<p style="text-align: justify;">Therefore, we realized that we needed to integrate Capsule with some online services we have and so we built a <a title="PHP Language" href="http://php.net">PHP</a> wrapper for their API to give developers the ability to place requests and use the web service as they wish using PHP</p>
<p style="text-align: justify;"><a title="Services_Capsule PEAR Proposal PEPr" href="http://pear.php.net/pepr/pepr-proposal-show.php?id=629">Services_Capsule</a> is now being proposed to <a title="PEAR PHP" href="http://pear.php.net">PEAR</a> however you can already get the code from <a title="Services_Capsule on Github" href="http://github.com/davidcoallier/Services_Capsule">http://github.com/davidcoallier/Services_Capsule</a> and start using it. The lack of end-user documentation may be the greatest lack in the package right now so I figured it might be good to post a few usage examples in a post.</p>
<h2><span id="more-881"></span>Meat</h2>
<p style="text-align: justify;">So once you installed the Services_Capsule (Or for now cloned the repo and pointed your include_path to the repo-checkout) you&#8217;ll probably want to see how to use it. Even though the code has a list of examples, it might be best to show you a real world example:</p>
<script src="http://gist.github.com/351863.js"></script>
<p>Be sure to watch the examples directory as examples will make their way through there in the coming days.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/04/the-capsule-crm-api-and-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Heard about the JumpInCamp?</title>
		<link>http://blog.echolibre.com/2010/02/heard-about-the-jumpincamp/</link>
		<comments>http://blog.echolibre.com/2010/02/heard-about-the-jumpincamp/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 02:09:57 +0000</pubDate>
		<dc:creator>David</dc:creator>
		
		<category><![CDATA[Cloud Computing]]></category>

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

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

		<category><![CDATA[.net]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=870</guid>
		<description><![CDATA[As many of you know, Helgi Thormar and I have been exchanging with Microsoft for a while now trying to give what we can in order to help them improve their open source approaches and ideas.
Last summer we were invited to Seattle for the Microsoft Web Developer Summit (Which was a blast thanks to Microsoft) [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you know, Helgi Thormar and I have been exchanging with Microsoft for a while now trying to give what we can in order to help them improve their open source approaches and ideas.</p>
<p>Last summer we were invited to Seattle for the <a title="Microsoft Web Developer Summit" href="http://blog.echolibre.com/2009/12/microsoft-web-developer-summit/">Microsoft Web Developer Summit</a> (Which was a blast thanks to Microsoft) and as soon as we came back to Europe, I got a call from Yuri from Microsoft who wanted to organize some kind of workshop/camp/developer summit for European developers and Microsoft altogether.<span id="more-870"></span></p>
<p>After having a phone chat and a few weeks planning, Yuri came back to me with an invite to the JumpIn! camp which is, in Microsoft&#8217;s words:</p>
<blockquote><p><span style="font-family: Tahoma; font-size: x-small;"><strong>The JumpInCamp</strong> is designed primarily for open-source application  developers who are interested in increasing their skills in a range  of specific areas. Here they will be able to experiment with ways of  combining open-source technologies with Microsoft products to optimize  applications</span></p></blockquote>
<p>Obviously there&#8217;s a tad too much marketing in there, however the point is that Microsoft is inviting 25 developers from across Europe to exchange and learn about, sorry to say, but AWESUMSAUCE things like Azure and a bunch of other cool features Microsoft has been working on.</p>
<p>So listen to me now European web developers, go to <a title="Microsoft JumpInCamp" href="http://jumpincamp.com/">http://jumpincamp.com/</a>, signup, set your application and join Helgi, me and a bunch of other open source enthusiasts in Zurich in April for a great craíc and to meet with some interesting people <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/2010/02/heard-about-the-jumpincamp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Guest Post: Ben Chapman’s week of code (Part II)</title>
		<link>http://blog.echolibre.com/2010/02/guest-post-ben-chapman%e2%80%99s-week-of-code-part-ii/</link>
		<comments>http://blog.echolibre.com/2010/02/guest-post-ben-chapman%e2%80%99s-week-of-code-part-ii/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 18:25:04 +0000</pubDate>
		<dc:creator>Eamon</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

		<guid isPermaLink="false">http://blog.echolibre.com/?p=855</guid>
		<description><![CDATA[This is an UPDATE post by Ben Chapman, a 5th year student in Scoil Mhuire Clane, who has been with us for the past week on work experience. (Original post here)
Well, I&#8217;ve been working on my project for the week and here&#8217;s the update that you were promised! (And stick with the post, there&#8217;s a live demo!) I haven&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<h2>This is an UPDATE post by <a title="Ben Chapman on Twitter" href="http://twitter.com/thejetset" target="_self">Ben Chapman</a>, a 5th year student in <em>Scoil Mhuire Clane</em>, who has been with us for the past week on work experience. (Original post <a href="http://blog.echolibre.com/2010/02/guest-post-ben-chapmans-week-of-code/">here</a>)</h2>
<p>Well, I&#8217;ve been working on my project for the week and here&#8217;s the update that you were promised! (And stick with the post, there&#8217;s a live demo!) I haven&#8217;t gotten as far as I had hoped but I have learnt a lot whilst here. See the previous post for more on that and what I had planned.</p>
<p><span id="more-855"></span><br />
<strong>Monday</strong><br />
<span style="font-weight: normal;">I sat down with Eamon and planned out exactly what the app would do, the users and roles, and what out of that I could get done in the week. I spent the remainder of the day planning each of the &#8220;actions&#8221;, &#8220;roles&#8221; and &#8220;resources&#8221; my app would have so that I could write the app much better and understand what would be going on in it. On that day I really got a sense of object-oriented programming that I hadn&#8217;t before, mostly thanks to David and Helgi for helping me with it and finding my feet with Zend Framework and understanding the concepts behind OOP. </span></p>
<p><strong>Tuesday</strong><br />
I got started with the code. Much of this day was taken up with looking up various things in the Zend documentation and trying to understand how it worked. Despite the ton of reading I had to do to find out how to make Zend do what I wanted I got a lot of the core features for the model done like adding, viewing and listing resources. The main thing I learnt was how to use Zend_Db which is a critical component to most apps using Zend since the database contains all that info!</p>
<p><strong>Wednesday</strong><br />
I coded the remainder of the models and started on creating the interfaces and forms. The theme I was lucky to get off <em> <a href="http://themeforest.net/">ThemeForest</a></em> so I just dropped in the default code from Zend_Layout and that was that. Then I learnt that you really should add users before models because I had one fun time trying to add it in retrospectively using Zend_Auth and Zend_Acl.</p>
<p><strong>Thursday</strong><br />
I just finished the journal and resource components and rounded them off. I learnt that you really should make sure your revision control is working before you screw up your code by deleting an entire library that you have no backup of. (Doh!)</p>
<p><strong>Friday</strong><br />
Today, I finished the prototype of the app, all the components started behaving and working together. I cleaned up the user system so the Zend_Acl worked to the best of it&#8217;s potential and rewrote the library that had I deleted by accident on Thursday. I learnt that when under pressure I code faster and that you should really, <em>really</em> plan out and code the user system first before any other components. Also libraries are better the second time you code them!</p>
<p>Here&#8217;s some screenshots and a live demo for you to try out! I still have not decided on a name, so I&#8217;m just going with Project X for now <img src='http://blog.echolibre.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img class="alignnone size-full wp-image-859" title="dash" src="http://blog.echolibre.com/wp-content/uploads/2010/02/dash.png" alt="dash" width="624" height="260" /></p>
<p><img class="alignnone size-full wp-image-860" title="admin" src="http://blog.echolibre.com/wp-content/uploads/2010/02/admin.png" alt="admin" width="624" height="278" /></p>
<p>You can play around with what I&#8217;ve been working on here: <a href="http://projectx.teachmetothink.com/">http://projectx.teachmetothink.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.echolibre.com/2010/02/guest-post-ben-chapman%e2%80%99s-week-of-code-part-ii/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

