<?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>GravyTea</title>
	<atom:link href="http://www.gravytea.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gravytea.com</link>
	<description>You won't escape it</description>
	<pubDate>Wed, 19 Aug 2009 23:03:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wolfram&#124;Alpha: GravyTea 4% of your daily protein needs</title>
		<link>http://www.gravytea.com/blog/wolframalpha-gravytea-4-of-your-daily-protein-needs/</link>
		<comments>http://www.gravytea.com/blog/wolframalpha-gravytea-4-of-your-daily-protein-needs/#comments</comments>
		<pubDate>Sun, 17 May 2009 21:15:29 +0000</pubDate>
		<dc:creator>Florian</dc:creator>
		
		<category><![CDATA[Blog]]></category>

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

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

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

		<guid isPermaLink="false">http://www.gravytea.com/?p=162</guid>
		<description><![CDATA[Wolfram&#124;Alpha, the latest über-ambitious project from Stephen Wolfram can not only tell you what&#8217;s the answer to life, the universe and everything, it also gives very insightful information about this blog:


]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wolframalpha.com">Wolfram|Alpha</a>, the latest über-ambitious project from Stephen Wolfram can not only tell you what&#8217;s the <a href="http://www64.wolframalpha.com/input/?i=answer+to+life,+the+universe,+and+everything">answer to life, the universe and everything</a>, it also gives very insightful information about this blog:</p>
<p><img src="http://www.gravytea.com/wordpress/wp-content/wolfram-gravytea.gif" alt="wolfram gravytea" /></p>
<p><img src="http://www.gravytea.com/wordpress/wp-content/wolfram-gravytea2.gif" alt="wolfram gravytea" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gravytea.com/blog/wolframalpha-gravytea-4-of-your-daily-protein-needs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>First demo of Ariane, a JS pathfinder</title>
		<link>http://www.gravytea.com/projects/ariane-pathfinder-first-demo/</link>
		<comments>http://www.gravytea.com/projects/ariane-pathfinder-first-demo/#comments</comments>
		<pubDate>Sat, 16 May 2009 16:55:18 +0000</pubDate>
		<dc:creator>Florian</dc:creator>
		
		<category><![CDATA[Projects]]></category>

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

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

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

		<guid isPermaLink="false">http://www.gravytea.com/?p=152</guid>
		<description><![CDATA[Here is the first demo of Ariane, my JavaScript pathfinding tool.
What is a pathfinder?
Well, I&#8217;m currently making an awesome JavaScript game. In this game, the engine will have to handle the movements of dozens of characters on a map. Now, if I want these creatures to act in a realistic way, there is a bunch [...]]]></description>
			<content:encoded><![CDATA[<p>Here is the <strong><a href="http://www.gravytea.com/labs/ariane/">first demo of Ariane</a></strong>, my JavaScript pathfinding tool.</p>
<p><strong>What is a pathfinder?</strong><br />
Well, I&#8217;m currently making an awesome JavaScript game. In this game, the engine will have to handle the movements of dozens of characters on a map. Now, if I want these creatures to act in a realistic way, there is a bunch of thing I need to simulate to make them believable.</p>
<p>First, they should be able to think, or at least give the impression that they are thinking. This includes the ability to solve philosophical questions such as: should I run frantically to the player and try to eat his brain, <em>or</em> should I not? (spoiler: yes. zombies.)</p>
<p>But now that the decision has been taken, our creature needs to actually find a way to the player. This is trickier than it looks, and this is Ariane&#8217;s job, called pathfinding (another tool is under construction for the decision-making part).</p>
<p>The simplest way to solve this problem would be for our creature to move directly toward the player, and to try to go around any eventual obstacle. While this solution could be adequate for an undead, there are situations where a bit more intelligence is expected.</p>
<p><strong>So how do we solve this problem?</strong><br />
We&#8217;re going to use what is called <a href="http://en.wikipedia.org/wiki/A*_search_algorithm">the A* algorithm</a> (pronounced &#8220;A star&#8221;). This magic formula allows us to find a shortest path from point A to point B on our map, avoiding any obstacles in the way.</p>
<p>Below is a cool animation from Wikipedia on this subject.<br />
<img src="http://upload.wikimedia.org/wikipedia/commons/5/5d/AstarExample.gif" alt="a* algorithm" /></p>
<p>Ok, I didn&#8217;t understand it either.</p>
<p>More seriously, Ariane uses an efficient implementation of this algorithm to quickly compute any reasonably-long path. I&#8217;ve also implemented two useful features: parallel processing (multiple characters can &#8220;think&#8221; at the same time) and path priorities (eg to make enemies on the player field of view more reactive than the one far away).</p>
<p><strong>What am I seeing in <a href="http://www.gravytea.com/labs/ariane/">the demo</a>?</strong><br />
Here we ask Ariane to compute two paths: from the top left to bottom right (in blue), and from the bottom left to the top right (in green). The points appearing on the map are the locations being analyzed. </p>
<p>The paths are avoidings both the red walls and the grey noise to simulate a life-like situation (the noise could represents trees in a forest, or rocks for example).</p>
<p>The computation may seem slow. The reason is that the map displayed is a scaled down version of the actual game map. The idea is to find a path on a small map - which is faster, and then to scale it up to the real size. The scale being x15, the game map in the demo would be 6000&#215;6000 px.</p>
<p><strong>More info on pathfinding</strong><br />
If you&#8217;re interested in learning more about pathfinding, here are the two main resources from which I&#8217;ve learned everything: <a href="http://www.gamedev.net/reference/articles/article2003.asp">this article from GameDev.net</a> is an excellent introduction on the subject, and <a href="http://theory.stanford.edu/~amitp/GameProgramming/">Amit&#8217;s A* pages</a> are also a very good reference, although more advanced.</p>
<p><strong>Can I use Ariane for my personnal project?</strong><br />
Yes, sure, go ahead. I don&#8217;t know what kind of license would be appropriate, but I just want you to link to this site if you use it. Be aware however that this is only an unstable early version. Plus, <a href="http://www.gravytea.com/labs/ariane/ariane.js">the source</a> isn&#8217;t commented yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gravytea.com/projects/ariane-pathfinder-first-demo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Just an idea: Elastic Page?</title>
		<link>http://www.gravytea.com/blog/elastic-page/</link>
		<comments>http://www.gravytea.com/blog/elastic-page/#comments</comments>
		<pubDate>Thu, 14 May 2009 22:39:03 +0000</pubDate>
		<dc:creator>Florian</dc:creator>
		
		<category><![CDATA[Blog]]></category>

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

		<category><![CDATA[just an idea]]></category>

		<guid isPermaLink="false">http://www.gravytea.com/?p=141</guid>
		<description><![CDATA[I just wanted to give a quick try at this idea: if you scroll at the bottom of this page, you should see a &#8220;bouncing&#8221; effect (like the one on iPhone). Below is some random content to make the page longer.
Sed id velit in eros tincidunt volutpat ac quis est. Donec imperdiet commodo diam, ut [...]]]></description>
			<content:encoded><![CDATA[<p>I just wanted to give a quick try at this idea: if you scroll at the bottom of this page, you should see a &#8220;bouncing&#8221; effect (like the one on iPhone). Below is some random content to make the page longer.</p>
<p><em>Sed id velit in eros tincidunt volutpat ac quis est. Donec imperdiet commodo diam, ut vulputate nisi lacinia sed. Curabitur posuere tortor ornare mauris iaculis a condimentum sapien porttitor. Suspendisse magna tellus, accumsan at commodo at, aliquet sit amet nisl. Donec orci leo, condimentum nec facilisis sit amet, convallis in eros. Suspendisse suscipit laoreet ullamcorper. Suspendisse nisi purus, faucibus at venenatis eget, aliquam sit amet massa. Sed pretium quam sit amet mi congue non euismod libero rhoncus. Nam semper tincidunt nisl pretium posuere. Nam et nibh risus, ac cursus tortor. Nam elit nunc, mollis blandit ultricies eu, hendrerit faucibus orci. Vivamus molestie hendrerit hendrerit. Aenean nec augue quam. Cras diam purus, consequat vitae posuere eget, pulvinar non ipsum. Praesent cursus pellentesque elementum. Suspendisse semper, magna a ultrices aliquam, ipsum libero bibendum elit, eget molestie diam purus nec est. Quisque pellentesque nulla id dui vehicula a pulvinar magna pellentesque. In quis magna turpis, molestie bibendum sem.</em></p>
<p><script type="text/javascript" src="http://www.gravytea.com/wordpress/wp-content/mootools.js"></script><br />
<script type="text/javascript" src="http://www.gravytea.com/wordpress/wp-content/elastic.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gravytea.com/blog/elastic-page/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Canvas Cheat Sheet</title>
		<link>http://www.gravytea.com/blog/canvas-cheat-sheet/</link>
		<comments>http://www.gravytea.com/blog/canvas-cheat-sheet/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 12:16:34 +0000</pubDate>
		<dc:creator>Florian</dc:creator>
		
		<category><![CDATA[Blog]]></category>

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

		<category><![CDATA[cheat sheet]]></category>

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

		<guid isPermaLink="false">http://www.gravytea.com/?p=93</guid>
		<description><![CDATA[Good news for everyone having fun with HTLM5 canvas element: the prolific Jacob Seidelin (from Nihilogic) has put together a very nice cheat sheet:

&#8220;The information is pretty much just a copy of what is found in the WHATWG specs, just condensed and hopefully a bit easier to read. There are virtually no explanations, however, and [...]]]></description>
			<content:encoded><![CDATA[<p>Good news for everyone having fun with HTLM5 <em>canvas</em> element: the prolific Jacob Seidelin (from <a href="http://blog.nihilogic.dk/">Nihilogic</a>) has put together a very nice cheat sheet:</p>
<p><img src="http://www.gravytea.com/wordpress/wp-content/canvas-sheet3.png" alt="canvas cheat sheet" title="Canvas cheat sheet: a very useful reference" width="604" height="100" class="alignnone size-full wp-image-110" style="border: 1px solid silver; padding: 2px" /></p>
<blockquote><p>&#8220;The information is pretty much just a copy of what is found in the WHATWG specs, just condensed and hopefully a bit easier to read. There are virtually no explanations, however, and no examples other than some graphics for compositing values and a few other things (the appearance of which is very much inspired by those found in Mozilla&#8217;s examples). So, it&#8217;s basically just a listing of the attributes and methods of the canvas element and the 2d drawing context.&#8221;</p></blockquote>
<p><a href="http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html">Get it here</a> (direct link to <a href="http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.png">PNG</a>, <a href="http://www.nihilogic.dk/labs/canvas_sheet/HTML5_Canvas_Cheat_Sheet.pdf">PDF</a> versions).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gravytea.com/blog/canvas-cheat-sheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MooFm: Last.fm data at your fingertips</title>
		<link>http://www.gravytea.com/projects/introducing-moofm/</link>
		<comments>http://www.gravytea.com/projects/introducing-moofm/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 01:06:05 +0000</pubDate>
		<dc:creator>Florian</dc:creator>
		
		<category><![CDATA[Projects]]></category>

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

		<category><![CDATA[last.fm]]></category>

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

		<guid isPermaLink="false">http://www.gravytea.com/?p=35</guid>
		<description><![CDATA[I came accross some very neat Last.fm stats visualizations some times ago, and wanted to try out some ideas in JavaScript (probably with Processing.js).
I couldn&#8217;t find any efficient way to use their API from JS, so I made MooFm&#8230;
What is MooFm?
MooFm is a little (&#60;5Ko) MooTools plugin making access to these data as easy as [...]]]></description>
			<content:encoded><![CDATA[<p>I came accross <a href="http://www.leebyron.com/what/lastfm/">some</a> <a href="http://lastgraph.aeracode.org/">very</a> <a href="http://sixdegrees.hu/last.fm/index.html">neat</a> Last.fm stats visualizations some times ago, and wanted to try out some ideas in JavaScript (probably with <a href="http://ejohn.org/blog/processingjs/">Processing.js</a>).<br />
I couldn&#8217;t find any efficient way to use their API from JS, so I made MooFm&#8230;</p>
<p><strong>What is MooFm?</strong><br />
MooFm is a little (&lt;5Ko) <a href="http://mootools.net/docs/">MooTools</a> plugin making access to these data as easy as it can be.<br />
It allows you to get the stats asynchronously without having to deal with query concatenation or Ajax calls.</p>
<p><strong>How do I use it?</strong><br />
Let&#8217;s say we want to get the most popular album of <em>Nirvana</em>. Taking a look at the last.fm API guide, we find the documentation for the <a href="http://www.last.fm/api/show?service=287">artist.getTopAlbums</a> method.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// just give MooFm your API key...</span>
<span style="color: #003366; font-weight: bold;">var</span> moofm <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> MooFm<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'b25b959554ed76058ac220b7b2e0a026'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> callback <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>resp<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #006600; font-style: italic;">// will output &quot;Nevermind&quot;</span>
   <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>resp.<span style="color: #660066;">topalbums</span>.<span style="color: #660066;">album</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// methods' name and params are the same as in last.fm doc</span>
moofm.<span style="color: #660066;">artist</span>.<span style="color: #660066;">getTopAlbums</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">'artist'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'Nirvana'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> callback<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Couldn&#8217;t be simpler, right? All <a href="http://www.last.fm/api/intro">Last.fm readonly methods</a> are accessible this way. </p>
<p><strong>Getting started</strong><br />
To get started you&#8217;ll need a recent version of <a href="http://mootools.net/download">MooTools</a> (obviously), the <a href="http://www.gravytea.com/download/moofm.js">MooFm.js</a> library and <a href="http://www.gravytea.com/download/proxy.php.txt">its proxy</a>.<br />
Now get an <a href="http://www.last.fm/api/account">API key</a> (free), and you&#8217;re good to go.</p>
<p><strong>Demo</strong><br />
Here is a <a href="http://www.gravytea.com/labs/moofm-demo">little demo</a> I put together to show the plugin&#8217;s potential.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gravytea.com/projects/introducing-moofm/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Français ?</title>
		<link>http://www.gravytea.com/uncategorized/francais/</link>
		<comments>http://www.gravytea.com/uncategorized/francais/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 21:43:27 +0000</pubDate>
		<dc:creator>Florian</dc:creator>
		
		<category><![CDATA[Français]]></category>

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

		<guid isPermaLink="false">http://www.gravytea.com/?p=26</guid>
		<description><![CDATA[Bonjour amis francophones. Après longues hésitations, c&#8217;est dans le langue de Shakespeare que je rédigerai ce blog, entre autres pour des raisons d&#8217;audience.
Si vous n&#8217;êtes pas à l&#8217;aise en anglais, vous trouverez la liste des quelques articles en français sur cette page. Il s&#8217;agit en fait des news concernant les projets exclusivement francophones.
Pour le reste, [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour amis francophones. Après longues hésitations, c&#8217;est dans le langue de Shakespeare que je rédigerai ce blog, entre autres pour des raisons d&#8217;audience.</p>
<p>Si vous n&#8217;êtes pas à l&#8217;aise en anglais, vous trouverez la liste des quelques articles en français sur <a href="../../category/francais">cette page</a>. Il s&#8217;agit en fait des news concernant les projets exclusivement francophones.<br />
Pour le reste, vous pouvez utilisez une traduction automatique telle que <a href="http://translate.google.com/translate?u=http%3A%2F%2Fwww.gravytea.com%2F&#038;langpair=en%7Cfr&#038;hl=fr&#038;ie=UTF8">celle de Google</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gravytea.com/uncategorized/francais/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MetaCoding: Hello World!</title>
		<link>http://www.gravytea.com/projects/metacoding-hello-world/</link>
		<comments>http://www.gravytea.com/projects/metacoding-hello-world/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 19:55:14 +0000</pubDate>
		<dc:creator>Florian</dc:creator>
		
		<category><![CDATA[Projects]]></category>

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

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

		<guid isPermaLink="false">http://localhost/GravyTea/?p=21</guid>
		<description><![CDATA[Unfortunately this project has been aborted. You can still see a limited demo of our work here. Don&#8217;t hesitate to contact us if you have any interest in this project.
A year ago a friend came up with a brilliant idea: making an online IDE, where developpers could write and compile their code from their browser.
As [...]]]></description>
			<content:encoded><![CDATA[<p><em>Unfortunately this project has been <a href="http://www.gravytea.com/labs/metacoding/">aborted</a>. You can still see a <a href="http://www.gravytea.com/labs/metacoding/Editor/Demo.htm">limited demo of our work here</a>. Don&#8217;t hesitate to contact us if you have any interest in this project.</em></p>
<p>A year ago a friend came up with a brilliant idea: making an <strong>online IDE</strong>, where developpers could write and compile their code from their browser.<br />
As first year students, this was a pretty ambitious project. But we realized, when imagining the potential of such a web application, that it&#8217;d probably be worth trying. My friend was getting along pretty well with the .NET Framework, and I already had some solid notions of JavaScript, so we put ourselves to the task. After months of hard work, we&#8217;ve finally release a first version of our work.</p>
<h2><strong>Why should I use it?</strong></h2>
<p>The concept of <em>online IDE</em> may looks strange : does anyone really needs a web-based application to program? It&#8217;s often useful to have access to your mails or to your calendar when you&#8217;re not on a computer of your own (say, at a library/university). But how often do you find yourself in need for a compiler, but unable to use or install Vim or Emacs?</p>
<p><strong>Beginners</strong> are one answer to this question. Our website allow anyone to make his first step in the programming world in the easiest way possible: no installation needed, a simple interface, and yet the possibility to experiment with a lot of languages.</p>
<h2><strong>Social Programming</strong></h2>
<p>But our true potential lays in the fact that we are <strong>online</strong>. Here are some of the exciting features we are working on to take advantage of this position:</p>
<p><strong>Live Help: </strong>we&#8217;re planning on implementing a chat in our interface (àla Gmail). It would allow you to communicate with another member of your team or with a public room, to ask questions or organize you work.</p>
<p><strong>Shared Snippets:</strong> users will be able to create and share pieces of code, which would  then be rated by the community. Anyone (or any member of your team, if you want to keep your snippet private) would then be able to use it at will.<br />
The idea in the long term is to generate a complete snippet library, flexible and easily searchable.</p>
<p><strong>CVS Integration:</strong> CVS allows you to keep your files up to date even if you&#8217;re working in a large team. It will also allow you to use MetaCoding seamlessly: just commit your files and the online copy of your project on our server will be updated.</p>
<p>As a conclusion MetaCoding&#8217;s goal is to <strong>complement</strong> your current editor, giving you access to different kind of tools. You can code under Visual Studio, and open your project on our website if you&#8217;re stuck with a bug and need help, for example.</p>
<h2><strong>Still in early Beta&#8230;</strong></h2>
<p>Well, as you would have noticed none of these fancy features is implemented yet. The current version is only a skeleton of what we want MetaCoding to be.<br />
So what do we need know? Time and above all, feedbacks. We need to know what you, developers, think about our service and what you&#8217;d like to see and not to see.</p>
<p><del datetime="2009-03-06T13:33:04+00:00">If you&#8217;re interested in this project, you can access <a href="#">this demo</a> to get a glimpse of the interface. To try the compiler, you&#8217;ll need to <a href="#">register</a> (it&#8217;s quick) in order to create a real project.</del></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gravytea.com/projects/metacoding-hello-world/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
