<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>BeeBuzz</title>
	
	<link>http://beebole.com/blog</link>
	<description>The voice of BeeBole</description>
	<pubDate>Thu, 13 Nov 2008 06:59:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<image><link>http://beebole.com</link><url>http://beebole.com/logo/Logo_BeeBole_web.png</url><title>BeeBole</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Beebuzz" type="application/rss+xml" /><feedburner:emailServiceId>1705720</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>PURE Is Working With The JavaScript Framework Prototype</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/451520445/</link>
		<comments>http://beebole.com/blog/2008/11/13/pure-is-working-with-the-javascript-framework-prototype/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 06:59:02 +0000</pubDate>
		<dc:creator>Mic</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[PURE]]></category>

		<category><![CDATA[DOMAssistant]]></category>

		<category><![CDATA[JavaScript Framework]]></category>

		<category><![CDATA[JavaScript Template]]></category>

		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=455</guid>
		<description><![CDATA[Thanks to the contribution of Carlos Saltos and Borja Vazquez our JavaScript Template Engine PURE is now working with the JavaScript Framework Prototype
The code is not in the master repository yet, but you can get it in the branch of PURE created by Carlos.
They are also working on the MooTools support.
With the announcement of the [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to the contribution of Carlos Saltos and Borja Vazquez our <a href="http://beebole.com/pure/javascript-template-engine.html" target="_blank">JavaScript Template Engine PURE</a> is now working with the <a href="http://www.prototypejs.org/" target="_blank" rel="nofollow">JavaScript Framework Prototype</a></p>
<p>The code is not in the master repository yet, but you can get it in the <a href="http://github.com/csaltos/pure/tree/master" target="_blank" rel="nofollow">branch of PURE</a> created by Carlos.</p>
<p>They are also working on the <a href="http://mootools.net/" target="_blank" rel="nofollow">MooTools</a> support.</p>
<p>With the announcement of the <a href="http://beebole.com/blog/2008/10/02/our-javascript-template-pure-becomes-cross-library/" target="_blank" rel="nofollow">DOMAssistant support</a> a few weeks ago, and jQuery initially, it is now three JavaScript libraries that are supported.</p>
<p><a href="http://feeds.feedburner.com/Beebuzz" target="_blank" rel="nofollow">Stay tuned</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=9HljN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=9HljN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=xKS5n"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=xKS5n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=vAikN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=vAikN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=sKyOn"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=sKyOn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=1QWAn"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=1QWAn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=sSl2N"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=sSl2N" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=thhBN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=thhBN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/451520445" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/11/13/pure-is-working-with-the-javascript-framework-prototype/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/11/13/pure-is-working-with-the-javascript-framework-prototype/</feedburner:origLink></item>
		<item>
		<title>Ruby Like Notation #{ … } To Mix Strings And Variables</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/444066269/</link>
		<comments>http://beebole.com/blog/2008/11/06/ruby-like-notation-to-mix-strings-and-variables/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 06:56:52 +0000</pubDate>
		<dc:creator>Mic</dc:creator>
		
		<category><![CDATA[PURE]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=445</guid>
		<description><![CDATA[New feature for our JavaScript template engine PURE
From revision 1.7 on, there is a new shortcut available to concatenate strings.
We’ll take a similar HTML as our basic  Hello World example:
&#60;div&#62;
&#160;&#160;&#160;&#160;Hello &#60;span&#62;World&#60;/span&#62;
&#60;/div&#62;

Now we remove the “Hello ” string:
&#60;div&#62;
&#160;&#160;&#160;&#160;&#60;span&#62;World&#60;/span&#62;
&#60;/div&#62;

Here is the JSON we’ll use to render this HTML:
var json = { "name": "Mary" }

And now the [...]]]></description>
			<content:encoded><![CDATA[<p>New feature for our <a href="http://beebole.com/pure/javascript-template-engine.html" target="_blank">JavaScript template engine PURE</a></p>
<p>From revision 1.7 on, there is a new shortcut available to concatenate strings.</p>
<p>We’ll take a similar HTML as our basic <a href="http://github.com/pure/pure/wikis/basic-hello-who" target="_blank" rel="nofollow"> Hello World</a> example:</p>
<div style="margin: 15px 0pt 5px; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>&lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Hello &lt;span&gt;World&lt;/span&gt;<br />
&lt;/div&gt;<br />
</code></div>
<p>Now we remove the “Hello ” string:</p>
<div style="margin: 15px 0pt 5px; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>&lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;span&gt;World&lt;/span&gt;<br />
&lt;/div&gt;<br />
</code></div>
<p>Here is the JSON we’ll use to render this HTML:</p>
<div style="margin: 15px 0pt 5px; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>var json = { "name": "Mary" }<br />
</code></div>
<p>And now the directive that will link them both:</p>
<div style="margin: 15px 0pt 5px; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>var dir = { "span": "Hello #{name}"}<br />
</code></div>
<p>Direct assignation continues to work.</p>
<p>For more information and examples, visit the dedicated <a href="http://github.com/pure/pure/wikis/the-ruby-like-notation-to-mix-strings-and-variables" rel="nofollow" target="_blank">Wiki page</a></p>
<p><a title="Subscribe to BeeBuzz" href="http://feeds.feedburner.com/Beebuzz" target="_blank" rel="nofollow">Stay tuned</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=FY0PN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=FY0PN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=a1Ttn"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=a1Ttn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=N1aSN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=N1aSN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=n58En"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=n58En" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=x9WQn"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=x9WQn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=lkb7N"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=lkb7N" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=KcMyN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=KcMyN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/444066269" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/11/06/ruby-like-notation-to-mix-strings-and-variables/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/11/06/ruby-like-notation-to-mix-strings-and-variables/</feedburner:origLink></item>
		<item>
		<title>BeeLit Becomes BeeBole</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/439863028/</link>
		<comments>http://beebole.com/blog/2008/11/02/beelit-becomes-beebole/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 10:46:58 +0000</pubDate>
		<dc:creator>Yves</dc:creator>
		
		<category><![CDATA[BeeBole]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=433</guid>
		<description><![CDATA[In an attempt to simplify the environment we plan to create around our first solution (including time tracking, expense management, invoicing and the related reporting tools), we decided to regroup everything we are producing now and will produce in the future under our company name BeeBole.
The main changes are the following:

The name BeeLit will disappear.


The [...]]]></description>
			<content:encoded><![CDATA[<p>In an attempt to simplify the environment we plan to create around our first solution (including time tracking, expense management, invoicing and the related reporting tools), we decided to regroup everything we are producing now and will produce in the future under our company name BeeBole.</p>
<p>The main changes are the following:</p>
<ul>
<li>The name BeeLit will disappear.</li>
</ul>
<ul>
<li>The website beelit.com has been moved to the URL <a title="BeeBole" href="http://beebole.com" target="_blank">http://beebole.com</a>. If you are trying to access beelit.com, you will automatically be redirected to beebole.com. Be sure to update your bookmark!</li>
</ul>
<ul>
<li>The mailing list that helps you keeping track of the coming beta has been renamed into BeeBole Newsletter. There are no impacts for those who are already following us (Click <a title="Subscribe to BeeBole" rel="lyteframe" rev="width: 550px; height: 520px; scrolling: no;" href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1939747&amp;amp;loc=en_US">here</a> to subscribe, it takes 10 seconds).</li>
</ul>
<p><a title="Subscribe to BeeBuzz" href="http://feeds.feedburner.com/Beebuzz" target="_blank" rel="nofollow">Stay tuned</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=xbBUN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=xbBUN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=u5dAn"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=u5dAn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=bxJnN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=bxJnN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=ZU7Wn"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=ZU7Wn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=nSp3n"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=nSp3n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=JGCHN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=JGCHN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=7nHyN"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=7nHyN" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/439863028" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/11/02/beelit-becomes-beebole/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/11/02/beelit-becomes-beebole/</feedburner:origLink></item>
		<item>
		<title>Tips Section For Our JavaScript Template Engine</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/433288385/</link>
		<comments>http://beebole.com/blog/2008/10/27/tips-section-for-our-javascript-template-engine/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 06:51:34 +0000</pubDate>
		<dc:creator>Yves</dc:creator>
		
		<category><![CDATA[PURE]]></category>

		<category><![CDATA[JavaScript Data Binding]]></category>

		<category><![CDATA[JavaScript Template Engine]]></category>

		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=422</guid>
		<description><![CDATA[We have just created a tips section on the PURE Wiki. The given information should help you in your day-to-day use of PURE
All your own tips are more than welcome. Just  send us an email with what you’ve got.
And to end this post on really good news, Douglas Crockford, the man behind JSON, just [...]]]></description>
			<content:encoded><![CDATA[<p>We have just created a <a href="http://github.com/pure/pure/wikis/tips" rel="nofollow" target="_blank">tips section</a> on the PURE Wiki. The given information should help you in your day-to-day use of <a href="http://beebole.com/pure/javascript-template-engine.html" target="_blank">PURE</a></p>
<p>All your own tips are more than welcome. Just  <a href="mailto:info@beebole.com?subject=[PURE]">send us an email</a> with what you’ve got.</p>
<p>And to end this post on really good news, Douglas Crockford, the man behind JSON, just added PURE on <a href="http://json.org/" rel="nofollow" target="_blank">JSON.org</a> main page.</p>
<p><a href="http://feeds.feedburner.com/Beebuzz" rel="nofollow" target="_blank">Stay Tuned</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=FHGAM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=FHGAM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=xyVNm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=xyVNm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=R1YiM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=R1YiM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=RTobm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=RTobm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=eDJrm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=eDJrm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=kxxpM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=kxxpM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=bGIQM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=bGIQM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/433288385" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/10/27/tips-section-for-our-javascript-template-engine/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/10/27/tips-section-for-our-javascript-template-engine/</feedburner:origLink></item>
		<item>
		<title>Video Tutorial To Start Developing Web Applications on Erlang</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/426229431/</link>
		<comments>http://beebole.com/blog/2008/10/20/tutorial-web-application-erlang/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 09:01:28 +0000</pubDate>
		<dc:creator>Hughes</dc:creator>
		
		<category><![CDATA[Erlang]]></category>

		<category><![CDATA[Mochiweb]]></category>

		<category><![CDATA[Web Application]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=387</guid>
		<description><![CDATA[Please find hereunder a video tutorial highlighting the key points of developing a JSON based web application with Erlang and Mochiweb.
Note that, for best performances (HD Definition), you have to directly go to the Vimeo website where the video is stored and watch it in full screen mode.
You may want to download the video. In [...]]]></description>
			<content:encoded><![CDATA[<p>Please find hereunder a video tutorial highlighting the key points of developing a JSON based web application with Erlang and Mochiweb.</p>
<p>Note that, for best performances (HD Definition), you have to directly go to the Vimeo website where the video is stored and watch it in full screen mode.</p>
<p>You may want to download the video. In that case, you will have to follow the instructions at the bottom of the video page on the Vimeo website.</p>
<p>Click on the image below to go the the video page.</p>
<p style="text-align: center;"><a href="http://www.vimeo.com/2007411" target="_blank"><img class="size-medium wp-image-400 aligncenter" title="stickyNotes" src="http://beebole.com/blog/wp-content/uploads/2008/10/web-application-erlang.jpg" alt="Go to the video page" width="450" height="253" /></a></p>
<p>The purpose of all this, aside from arousing your curiosity, is to provide you with a getting started pack and allow you to go a step further in the Erlang web application sphere.</p>
<p>I invite you to download the example application (as illustrated in the video <a href="http://beebole.com/ressources/stickyNotes.zip">stickyNotes.zip</a>) in order for you to understand all the pieces of the puzzle and to venture behind the scene.</p>
<p>Just keep in mind that stickyNotes is a one shot application that I&#8217;ve developed from scratch with the unique aim of illustrating the video example.</p>
<p>Having said that, any comment or suggestion is always welcome, especially about &#8217;struct.erl&#8217;, a module that I&#8217;ve created when I was learning the language in order to play with the tree structure resulting from the mochijson2 decode function.</p>
<p>We are using it in our mainstream development and I&#8217;m still wondering if I might have missed something important with regard to the Erlang distro or Mochiweb itself.</p>
<p>In order to install this stuff on your system and <a href="http://beebole.com/blog/2008/09/25/how-to-quickly-set-up-ubuntu-804-loaded-with-erlang-mochiweb-and-nginx/" target="_blank">assuming that Erlang is properly setup on your box</a>, just follow these steps:</p>
<p>1) Download stickyNotes and extract the archive in your home directory:</p>
<p><a href="http://beebole.com/ressources/stickyNotes.zip">stickyNotes.zip</a></p>
<p>2) cd to stickyNotes dir and compile the code :</p>
<div style="margin: 15px 0pt 5px; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>make clean &amp;&amp; make</code></div>
<p>3) Start the application and initialize the db from the Erlang console (only once)</p>
<div style="margin: 15px 0pt 5px; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>./start-dev.sh</code><br />
<code>stickydb:reset().</code></div>
<p>4) Browse the following address 127.0.0.1:8000</p>
<p>Super easy isn&#8217;t ?</p>
<p>Enjoy</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=X2BhM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=X2BhM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=OTeOm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=OTeOm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=j5AoM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=j5AoM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=8wFpm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=8wFpm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=je21m"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=je21m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=HmlUM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=HmlUM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=CIs7M"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=CIs7M" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/426229431" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/10/20/tutorial-web-application-erlang/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/10/20/tutorial-web-application-erlang/</feedburner:origLink></item>
		<item>
		<title>London Calling - FOWA 2008</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/414588212/</link>
		<comments>http://beebole.com/blog/2008/10/08/london-calling-fowa-2008/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 07:33:29 +0000</pubDate>
		<dc:creator>Yves</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[event]]></category>

		<category><![CDATA[FOWA]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=381</guid>
		<description><![CDATA[Early tomorrow, we will be leaving Brussels to attend the Future of Web Apps event in London.
The event is one of the major event in the apps industry in Europe.
Well known names are joining the party: Mark Zuckerberg from Facebook, Kevin Rose from Digg and many others.
Just leave a comment if you plan to attend [...]]]></description>
			<content:encoded><![CDATA[<p>Early tomorrow, we will be leaving Brussels to attend the <a rel="nofollow" href="http://london2008.futureofwebapps.com/" target="_blank">Future of Web Apps</a> event in London.</p>
<p>The event is one of the major event in the apps industry in Europe.</p>
<p>Well known names are joining the party: Mark Zuckerberg from Facebook, Kevin Rose from Digg and many others.</p>
<p>Just leave a comment if you plan to attend the event and we might try to meet each other.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=XgcdM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=XgcdM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=IQZJm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=IQZJm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=ypvJM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=ypvJM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=KxJVm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=KxJVm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=sa3km"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=sa3km" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=wHq0M"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=wHq0M" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=OV9UM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=OV9UM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/414588212" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/10/08/london-calling-fowa-2008/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/10/08/london-calling-fowa-2008/</feedburner:origLink></item>
		<item>
		<title>Are Online Ads The Easy Way To Donate ?</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/413635470/</link>
		<comments>http://beebole.com/blog/2008/10/07/are-online-ads-the-easy-way-to-donate/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 09:17:08 +0000</pubDate>
		<dc:creator>Yves</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Donate]]></category>

		<category><![CDATA[Google Ads]]></category>

		<category><![CDATA[Pledgie]]></category>

		<category><![CDATA[Promotion]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=375</guid>
		<description><![CDATA[When we redesigned the PURE website, we’ve had intense debates about adding ads or not on the main page.
I was against it mainly because when you give something Open Source, you give it for free and shouldn’t expect any financial returns.
However, I had nothing against donations.
Using ads as an easy way to donate got me [...]]]></description>
			<content:encoded><![CDATA[<p>When we redesigned the <a href="http://beebole.com/pure/" target="_blank">PURE website</a>, we’ve had intense debates about adding ads or not on the main page.</p>
<p>I was against it mainly because when you give something Open Source, you give it for free and shouldn’t expect any financial returns.</p>
<p>However, I had nothing against donations.</p>
<p>Using ads as an easy way to donate got me convinced.</p>
<p>When you click on the ads, you don’t need to take your credit card out of your wallet but money goes to the provider.</p>
<p>Still, the reality is different. 35000 visits later, the amount of money raised thanks to the ads reaches 15$.</p>
<p>Are we the only one doing this for projects we like ?</p>
<p>At least, Seth Godin, a well-known marketer, <a rel="nofollow" href="http://sethgodin.typepad.com/seths_blog/2008/08/ads-are-the-new.html" target="_blank">thinks the same way</a></p>
<p>But in the long term, it can only corrupt the ads system.</p>
<p>And, as Google prevents you to <a rel="nofollow" href="https://www.google.com/adsense/support/bin/answer.py?answer=48182&amp;sourceid=aso&amp;subid=ww-ww-et-resourcestab&amp;medium=link" target="_blank">encourage clicks</a>, it is maybe something for Donation Sites like <a rel="nofollow" href="http://www.pledgie.com/" target="_blank">Pledgie</a> to look into, a one click support badge.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=FUdbM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=FUdbM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=AiMAm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=AiMAm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=Zm1HM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=Zm1HM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=xORAm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=xORAm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=6iDxm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=6iDxm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=EMDXM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=EMDXM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=vE2gM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=vE2gM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/413635470" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/10/07/are-online-ads-the-easy-way-to-donate/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/10/07/are-online-ads-the-easy-way-to-donate/</feedburner:origLink></item>
		<item>
		<title>Our JavaScript Template (PURE) Becomes Cross-Library</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/409008290/</link>
		<comments>http://beebole.com/blog/2008/10/02/our-javascript-template-pure-becomes-cross-library/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 07:04:36 +0000</pubDate>
		<dc:creator>Yves</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[PURE]]></category>

		<category><![CDATA[Cross-library]]></category>

		<category><![CDATA[DOMAssistant]]></category>

		<category><![CDATA[JavaScript Template Engine]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=368</guid>
		<description><![CDATA[We started the development of PURE with the clear goal of developing a cross-library JavaScript template engine.
Since we are using jQuery as our main JS library in the development of our BeeLit solution, it was obvious to start with this one.
Today, we are happy to announce that PURE has moved another step closer to our [...]]]></description>
			<content:encoded><![CDATA[<p>We started the development of <a href="http://beebole.com/pure/" target="_blank">PURE</a> with the clear goal of developing a cross-library JavaScript template engine.</p>
<p>Since we are using jQuery as our main JS library in the development of our <a href="http://beelit.com/" target="_blank">BeeLit</a> solution, it was obvious to start with this one.</p>
<p>Today, we are happy to announce that PURE has moved another step closer to our initial goal as it now also works with <a rel="nofollow" href="http://www.domassistant.com/" target="_blank">DOMAssistant</a>.</p>
<p>I must say, we haven’t really played a big role here. Everything started with a simple <a rel="nofollow" href="http://groups.google.com/group/domassistant/browse_thread/thread/162af574a82c5323" target="_blank">message on the DOMAssistant discussion group</a></p>
<p>Lim Cheng Hong (one of the three developers behind the library) took the challenge in his hands and made the 6 examples of our <a href="http://beebole.com/pure/getting_started.html" target="_blank">Getting Started page</a> working with DOMAssistant in just two days.</p>
<p>You can discover those 6 examples with the DOMAssistant library <a rel="nofollow" href="http://www.domassistant.com/demos/pure/docs/allExamples.html" target="_blank">here</a></p>
<p>So thank you Lim Cheng Hong and thanks to the DOMAssistant team.</p>
<p>We will soon update our wiki and the PURE website with those new examples.</p>
<p>The next steps will be to port PURE on Prototype, MooTools and Dojo.</p>
<p>If you are ready to get your hands dirty with those adaptations, your help will be more than welcome.</p>
<p><a href="http://feeds.feedburner.com/Beebuzz" target="_blank" rel="nofollow">Stay tuned</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=kS2mM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=kS2mM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=6JO5m"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=6JO5m" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=y7WUM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=y7WUM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=s6Gjm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=s6Gjm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=qBbvm"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=qBbvm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=GuuTM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=GuuTM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=XZPGM"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=XZPGM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/409008290" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/10/02/our-javascript-template-pure-becomes-cross-library/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/10/02/our-javascript-template-pure-becomes-cross-library/</feedburner:origLink></item>
		<item>
		<title>Web Application on Erlang: Configure Nginx with Mochiweb</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/407138110/</link>
		<comments>http://beebole.com/blog/2008/09/30/web-application-on-erlang-configure-nginx-with-mochiweb/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 10:13:44 +0000</pubDate>
		<dc:creator>Hughes</dc:creator>
		
		<category><![CDATA[Erlang]]></category>

		<category><![CDATA[HTTP Server]]></category>

		<category><![CDATA[Nginx]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=327</guid>
		<description><![CDATA[My previous post, the first of our series dedicated to the Erlang world, was definitively getting too long,  so here is the second chapter of this marvelous article.
I&#8217;ll assume that you have successfully installed Erlang and Mochiweb and deployed your first small tiny app.
When it comes to deliver static content at lightning speed and [...]]]></description>
			<content:encoded><![CDATA[<p>My previous post, the first of our series dedicated to the Erlang world, was definitively getting too long,  so here is the second chapter of this marvelous article.</p>
<p>I&#8217;ll assume that <a href="http://beebole.com/blog/2008/09/25/how-to-quickly-set-up-ubuntu-804-loaded-with-erlang-mochiweb-and-nginx/" target="_blank">you have successfully installed Erlang and Mochiweb</a> and deployed your first small tiny app.</p>
<p>When it comes to deliver static content at lightning speed and do reverse proxy job, there is one name : <a rel="nofollow" href="http://nginx.net/" target="_blank">Nginx</a>, the <a rel="nofollow" href="http://sysoev.ru/en/" target="_blank">Igor Sysoev</a> high-performance HTTP server.</p>
<p>It plays well with ssl and in the last dev version you can even find an interesting module for uploading files, nothing less &#8230; we will probably tell you more about that in the series.</p>
<p>Nginx is really turning itself into a real handy swiss knife.</p>
<h2>Step 0 - SSL packages check</h2>
<p>So let&#8217;s start by ensuring that the ssl packages are already installed on your box :</p>
<div style="margin: 15px 0 5px 0; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code><span style="color:#555">foo@bar:~$</span> sudo apt-get install openssl libssl-dev</code></div>
<h2>Step 1 - Install Nginx</h2>
<p>Now, we are ready to download, compile and install Nginx.</p>
<p>Here, we want to install the last stable version (0.6.32).</p>
<div style="margin: 15px 0 5px 0; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code><span style="color:#555">foo@bar:~$</span> sudo apt-get build-dep nginx<br />
<span style="color:#555">foo@bar:~$</span> wget http://sysoev.ru/nginx/nginx-0.6.32.tar.gz<br />
<span style="color:#555">foo@bar:~$</span> tar -zxvf nginx-0.6.32.tar.gz<br />
<span style="color:#555">foo@bar:~$</span> cd nginx-0.6.32<br />
<span style="color:#555">foo@bar:~/nginx-0.6.32$</span> ./configure &#8211;with-http_ssl_module<br />
<span style="color:#555">foo@bar:~/nginx-0.6.32$</span> make &amp;&amp; sudo make install</code></div>
<p>Done.</p>
<h2>Step 2 - Nginx configuration</h2>
<p>We do have now to tell Nginx what to proxy, in our case http://my_server_name:8000 (in the <a href="http://beebole.com/blog/2008/09/25/how-to-quickly-set-up-ubuntu-804-loaded-with-erlang-mochiweb-and-nginx/" target="_blank">previous post</a>, remember?)</p>
<p>You can find the Nginx configuration file, nginx.conf, under /usr/local/nginx/conf/.</p>
<p>Here is a working example one :</p>
<p><a rel="nofollow" href="http://friendpaste.com/eFxpfwah" target="_blank">Discover the code in Friendpaste</a></p>
<pre style="margin: 15px 0 5px 0; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;" lang="javascript">
user www-data;

worker_processes  4;
...

http {
    include       mime.types;
    ...

    upstream mochiweb {
        server my_server_name:8000;
    }

    server {
        listen       80;
        server_name  my_server_name;

        ...

        location / {
            root   path_to_myapp/myapp/priv/www;
            index  index.html index.htm;
            ...

            if (!-f $request_filename) {
                proxy_pass http://mochiweb;
                break;
            }

        }

    }

}</pre>
<h2>Step 3 - Start, Stop Nginx</h2>
<p>Finally, we are going to tell Ubuntu how to start and stop the server.</p>
<p>Just create a new file named &#8216;nginx&#8217; in /etc/init.d and paste the content of this link:</p>
<p><a rel="nofollow" href="http://friendpaste.com/HNyzR7YF" target="_blank">Discover the code in Friendpaste</a></p>
<div style="margin: 15px 0 5px 0; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code><span style="color:#555">foo@bar:~/nginx-0.6.32$</span> cd /etc/init.d<br />
<span style="color:#555">foo@bar:~/etc/init.d$</span> sudo vi nginx</code></div>
<p><span style="font-size:small; font-style:italic">Above, for those of you who are not in love with vi, you can use nano instead: <strong>sudo nano nginx</strong></span></p>
<div style="margin: 15px 0 5px 0; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code><span style="color:#555">foo@bar:~/etc/init.d$</span> sudo chmod +x nginx<br />
<span style="color:#555">foo@bar:~/etc/init.d$</span> sudo update-rc.d nginx defaults<br />
<span style="color:#555">foo@bar:~/etc/init.d$</span> sudo ./nginx start</code></div>
<p>Cool, you have now a working reverse proxy.</p>
<div style="margin: 15px 0 5px 0; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code><span style="color:#555">foo@bar:~/etc/init.d$</span> cd ~/myapp<br />
<span style="color:#555">foo@bar:~/myapp$</span> ./start-dev.sh</code></div>
<p>Browse this link http://my_server_name</p>
<p>Peace!</p>
<p>As a reminder, the next points we will discuss are:</p>
<ul>
<li>The basic configuration of Postfix (mail)</li>
<li>The use of Imagemagick to create dynamically a captcha for your application</li>
<li>The configuration of Bind9 in order to play with the url CNAME</li>
</ul>
<p>So, <a rel="nofollow" href="http://feeds.feedburner.com/Beebuzz" target="_blank">stay tuned</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=5M5NL"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=5M5NL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=iIP3l"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=iIP3l" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=LF0VL"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=LF0VL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=YLXbl"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=YLXbl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=mN1zl"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=mN1zl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=XOV0L"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=XOV0L" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=ez39L"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=ez39L" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/407138110" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/09/30/web-application-on-erlang-configure-nginx-with-mochiweb/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/09/30/web-application-on-erlang-configure-nginx-with-mochiweb/</feedburner:origLink></item>
		<item>
		<title>How To Quickly Set Up Ubuntu 8.04 loaded with Erlang, Mochiweb and Nginx</title>
		<link>http://feeds.feedburner.com/~r/Beebuzz/~3/402216436/</link>
		<comments>http://beebole.com/blog/2008/09/25/how-to-quickly-set-up-ubuntu-804-loaded-with-erlang-mochiweb-and-nginx/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 09:54:50 +0000</pubDate>
		<dc:creator>Hughes</dc:creator>
		
		<category><![CDATA[Erlang]]></category>

		<category><![CDATA[Mochiweb]]></category>

		<category><![CDATA[Nginx]]></category>

		<category><![CDATA[Set up]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://beebole.com/blog/?p=226</guid>
		<description><![CDATA[Let&#8217;s say you want to give a try to Erlang (Discover our post about Why Erlang?) for your next web development project and you want to be up and running as quickly as possible&#8230; you just landed smoothly in the right place.
This post is the starting point of a series of posts in which I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say you want to give a try to Erlang (Discover our post about <a title="Why Erlang" href="http://beebole.com/blog/2008/07/24/why-erlang/" target="_blank">Why Erlang?</a>) for your next web development project and you want to be up and running as quickly as possible&#8230; you just landed smoothly in the right place.</p>
<p>This post is the starting point of a series of posts in which I&#8217;m going to provide you with all the commands you&#8217;ll need to set up an <a title="Ubuntu" rel="nofollow" href="http://www.ubuntu.com/" target="_blank">Ubuntu 8.04</a> server loaded with Erlang, Mochiweb proxied by Nginx.</p>
<p>In the same series, I&#8217;ll also cover:</p>
<ul>
<li>The basic configuration of <a title="Postfix" rel="nofollow" href="http://www.postfix.org/" target="_blank">Postfix</a> (mail)</li>
</ul>
<ul>
<li>The use of <a title="ImageMagick" rel="nofollow" href="http://www.imagemagick.org/script/index.php" target="_blank">Imagemagick</a> to create dynamically a captcha for your application</li>
</ul>
<ul>
<li>The configuration of <a title="Bind9" rel="nofollow" href="http://www.bind9.net/" target="_blank">Bind9</a> in order to play with the url CNAME</li>
</ul>
<p>The goal here is not to set up an hardened production server with all the optimizations and security niceties in head (I definitively want to avoid a &#8216;Why not Gentoo, or Slackware, or Debian, or FreeBSD, &#8230;?&#8217;,  I love them all).</p>
<p>No, it&#8217;s all about being able to quickly set up a test server and/or your dev machine in order to dive directly in the development typhoon. And, I must say, Ubuntu(*) is a king at this task.<br />
<em><br />
(*) from a dev point of view, having your dev machine installed with the same OS that your test server is running is definitively a big plus.</em></p>
<p>You&#8217;ve just rent a cheap box from your web host provider, done a fresh Ubuntu 8.04 server installation and  you are currently ssh logged in as root &#8230; yes, yes, you have done all those things.  (In the case you are setting up your desktop machine you can go directly to point 3)</p>
<p>So let&#8217;s start!</p>
<h2>Step 0 - Upgrade</h2>
<p><em>We ensure with this step that our package sources and our installation is up to date.</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>root@bar:~$ apt-get update<br />
root@bar:~$ apt-get clean<br />
root@bar:~$ apt-get upgrade</code></div>
<h2>Step 1 - Denyhosts</h2>
<p><em>We install <a title="Denyhosts" rel="nofollow" href="http://denyhosts.sourceforge.net/" target="_blank">Denyhosts</a>, a Python script used to prevent brute force hacking of our SSH server.</em></p>
<p><em>Also, we set <strong>RESET_ON_SUCCESS = yes</strong> in order to avoid being blocked because we reached the max attempt value.</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>root@bar:~$ apt-get install denyhosts<br />
root@bar:~$ vi /etc/denyhosts.conf</code></p>
<p><code style="color:blue; font-size:80%;">/RESET_ON_SUCCESS [enter]<br />
i</code></p>
<p><code style="color:green">RESET_ON_SUCCESS = yes</code></p>
<p><code style="color:blue; font-size:80%;">[esc]<br />
:wq</code></div>
<p><span id="more-226"></span></p>
<h2>Step 2 - A new sudoer + reboot</h2>
<p><em>We add a new user and grant him the ability to use the sudo command.</em></p>
<p><em>A first and unique reboot (we don&#8217;t need to do that &#8230; but I&#8217;m used to reboot my system at least once in order to check that everything is properly set up after a clean install).</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>root@bar:~$ adduser foo</code></p>
<p><code>root@bar:~$ apt-get install sudo<br />
root@bar:~$ visudo</code></p>
<p><code style="color:green">foo ALL=(ALL) ALL</code></p>
<p><code>root@bar:~$ reboot</code></div>
<p><em>We log in with the user we have just created:</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;"><code>ssh foo@bar</code></div>
<h2>Step 3 - Some useful packages</h2>
<p><em>Installation of the GNU C and C++ compiler, the &#8216;make&#8217; utility, svn and Git.</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~$ sudo apt-get install build-essential subversion git-core</code></div>
<h2>Step 4 - Erlang</h2>
<p><em>Building the last Erlang release from source.</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~$ sudo apt-get build-dep erlang </code><br />
<code>foo@bar:~$ sudo apt-get install java-gcj-compat java-gcj-compat-dev</code></p>
<p><code>foo@bar:~$ wget http://www.erlang.org/download/otp_src_R12B-4.tar.gz</code></p>
<p><code>foo@bar:~$ tar zxvf otp_src_R12B-4.tar.gz</code><br />
<code>foo@bar:~$ cd otp_src_R12B-4</code><br />
<code>foo@bar:~/otp_src_R12B-4$ ./configure</code><br />
<code>foo@bar:~/otp_src_R12B-4$ make &amp;&amp; sudo make install</code></p>
<p><code>foo@bar:~/otp_src_R12B-4$ erl</code></p>
<p><code style="font-size: 10px">Eshell V5.6.4  (abort with ^G)<br />
1&gt;</code><strong><code style="font-size: 10px">init:stop().</code></strong></div>
<h2>Step 5 - Mochiweb</h2>
<p><em>UPDATE, Octobre 20th 2008: Read and view more about installing Mochiweb and creating a first Erlang Web application on our <a href="http://beebole.com/blog/2008/10/20/tutorial-web-application-erlang/" target="_blank">video</a></em></p>
<p><em>Here, we install Mochiweb and we create our first app skeleton &#8230; Tataaaan</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~$ svn checkout http://mochiweb.googlecode.com/svn/trunk/ mochiweb</code></p>
<p><code>foo@bar:~$ cd mochiweb</code><br />
<code>foo@bar:~/mochiweb$ make</code><br />
<code>foo@bar:~/mochiweb$ chmod +x scripts/new_mochiweb.erl</code><br />
<code>foo@bar:~/mochiweb$ ./scripts/new_mochiweb.erl myapp ../.</code><br />
<code>foo@bar:~/mochiweb$ cd ../myapp</code><br />
<code>foo@bar:~/myapp$ make</code><br />
<code>foo@bar:~/myapp$ ./start-dev.sh</code></p>
</div>
<p><em>Launch your favorite browser and check this address : http://bar:8000, where bar is the ip adress or the name of your server/desktop.</em></p>
<p><em>You should see:</em></p>
<p><code>MochiWeb running.</code></p>
<p><strong>Well Done, </strong><em>you have an ultra fast ligthweight webapp server up and running !</em></p>
<h2>Step 6 - Some getting started hints</h2>
<p><strong><span style="text-decoration: underline;">Where do I start coding ?</span></strong><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~/myapp/src$ vi myapp_web.erl</code></div>
<p><em>In the main loop you will find a case testing the GET and the POST method.</p>
<p>Just add the &#8216;congrat&#8217; part.</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>loop(Req, DocRoot) -&gt;</code><br />
<code>&nbsp;"/" ++ Path = Req:get(path),</code><br />
<code>&nbsp;case Req:get(method) of</code><br />
<code>&nbsp;&nbsp;Method when Method =:= 'GET'; Method =:= 'HEAD' -&gt;</code><br />
<code>&nbsp;&nbsp;&nbsp;case Path of</code></p>
<p><code style="font-weight:bold;">&nbsp;&nbsp;&nbsp;&nbsp;"congrat" -&gt;</code><br />
<code style="font-weight:bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Req:ok({"text/html", [],["&lt;h1&gt;Congratulation&lt;/h1&gt;"]});</code></p>
<p><code>&nbsp;&nbsp;&nbsp;&nbsp;_ -&gt;</code><br />
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Req:serve_file(Path, DocRoot)</code><br />
<code>&nbsp;&nbsp;&nbsp;&nbsp;end;</code><br />
<code>&nbsp;&nbsp;'POST' -&gt;</code><br />
<code>&nbsp;&nbsp;&nbsp;case Path of</code><br />
<code>&nbsp;&nbsp;&nbsp;&nbsp;_ -></code><br />
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Req:not_found()</code><br />
<code>&nbsp;&nbsp;&nbsp;end;</code><br />
<code>&nbsp;&nbsp;_ -></code><br />
<code>&nbsp;&nbsp;&nbsp;&nbsp;Req:respond({501, [], []})</code><br />
<code>&nbsp;end.</code>
</div>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~/myapp/src$ cd ..</code><br />
<code>foo@bar:~/myapp$ make</code><br />
﻿<code>foo@bar:~/myapp$ ./start-dev.sh</code></div>
<p><em>Launch the browser you want to live with and travel to this url: http://bar:8000/congrat, where bar is the ip adress or the name of your server/desktop.</em></p>
<p><em>In this module, I&#8217;m used to limit the code to the functions related to Req, the mochiweb_request module;</em></p>
<p><em>Here are a few more:</em></p>
<p>Req:get_cookie_value(&#8221;myCookie&#8221;)<br />
Req:parse_qs() (parse the query string)<br />
Req:parse_post() (parse the posted data)</p>
<p><strong><span style="text-decoration: underline;">How do I start Mnesia with my app?</span></strong><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~/myapp/src$ vi myapp.erl</code></p>
<p><code>%% @spec start() -&gt; ok</code><br />
<code>%% @doc Start the myapp server.</code><br />
<code>start() -&gt;</code><br />
<code>&nbsp;myapp_deps:ensure(),</code></p>
<p><code>&nbsp;ensure_started(crypto),</code><br />
<code style="font-weight:bold;">&nbsp;ensure_started(mnesia),</code><br />
<code>&nbsp;application:start(myapp).</code></p>
<p><code>%% @spec stop() -&gt; ok</code><br />
<code>%% @doc Stop the myapp server.</code><br />
<code>stop() -&gt;</code><br />
<code>&nbsp;Res = application:stop(myapp),</code><br />
<code style="font-weight:bold;">&nbsp;application:stop(mnesia),</code><br />
<code>&nbsp;application:stop(crypto),</code><br />
<code>&nbsp;Res.</code></div>
<p><em>Edit your start script in order to specify the db location</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~/myapp$ vi start-dev.sh </code></p>
<p><code>exec erl ... </code><code style="font-weight:bold;">-mnesia dir '"/path_to_your_db/myapp_dev"' ...</code></div>
<p><strong><span style="text-decoration: underline;">How do I start my app silently in background ?</span></strong></p>
<p><em>Launch Erlang with the -detached flag (start erl without a controlling terminal)</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~/myapp$ vi start-dev.sh</code></p>
<p><code>exec erl ... </code><code style="font-weight:bold;">$1</code></div>
<p><em>You can now pass the -detached argument to your start script like this:</em><br />
<br/></p>
<div style="margin: 5px 0pt; padding: 5px 0pt 5px 5px; width: 100%; background-color: #e2e2e2; color: #222222;">
<code>foo@bar:~/myapp$ ./start-dev.sh -detached</code></div>
<p><strong><span style="text-decoration: underline;">Mochiweb is coming with a handy set of modules</span></strong></p>
<p><em>Have a look at the source of mochiweb_request, mochiweb_cookies, mochinum, mochijson2, mochihex, &#8230;</em></p>
<p><em>In the next post, I&#8217;ll finish this basic install with the <a href="http://beebole.com/blog/2008/09/30/web-application-on-erlang-configure-nginx-with-mochiweb/">configuration of Nginx</a> and I&#8217;ll provide you with a small JSON app example.</em></p>
<p><br/><br />
<strong>NOTE :</strong> The post has been updated on the 08/10/2008 to match the new Erlang release number</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Beebuzz?a=h6YiL"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=h6YiL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=CiWzl"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=CiWzl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=IWzXL"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=IWzXL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=eLeWl"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=eLeWl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=Pd1Ll"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=Pd1Ll" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=fsVTL"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=fsVTL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Beebuzz?a=ZBHJL"><img src="http://feeds.feedburner.com/~f/Beebuzz?i=ZBHJL" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Beebuzz/~4/402216436" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://beebole.com/blog/2008/09/25/how-to-quickly-set-up-ubuntu-804-loaded-with-erlang-mochiweb-and-nginx/feed/</wfw:commentRss>
		<feedburner:origLink>http://beebole.com/blog/2008/09/25/how-to-quickly-set-up-ubuntu-804-loaded-with-erlang-mochiweb-and-nginx/</feedburner:origLink></item>
	</channel>
</rss>
