<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>by Leandro Milmanda Perez</title>
	<atom:link href="http://www.lemil.com.ar/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lemil.com.ar/blog</link>
	<description>about software, robotics an trends.</description>
	<lastBuildDate>Thu, 22 Apr 2010 01:52:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Reviewing Google&#8217;s 03D, a 3D engine for browsers in Javascript.</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/10/review-of-googles-03d-a-3d-engine-for-browser-in-javascript/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/10/review-of-googles-03d-a-3d-engine-for-browser-in-javascript/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 15:14:34 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[03d]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/?p=93</guid>
		<description><![CDATA[Hi!, if you followed my latest tweets you may know that I am taking a look to this new tech from Google that was presented on this latest IO convention. This API allows you to create and manipulate 2D and 3D models using only javascript. What is also interesting is the underlying tech around 03d [...]]]></description>
			<content:encoded><![CDATA[<p>Hi!, if you followed my <a href="http://www.twitter.com/lemil">latest tweets</a> you may know that I am taking a look to this new tech from <a href="http://www.google.com">Google</a> that was presented on this latest IO convention. This API allows you to create and manipulate 2D and 3D models using only javascript. What is also interesting is the underlying tech around 03d that is able to  access openGL and Direct3D. Models can be imported from sources as <a href="http://sketchup.google.com/">SketchUp</a>, <a href="http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&amp;id=13577897">Maya</a>, <a href="http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&amp;id=13567410">Max</a> exporting those to <a href="http://collada.org">COLLADA</a>. More details <a href="http://code.google.com/apis/o3d/docs/techoverview.html">here</a>.</p>
<p><img class="aligncenter" title="O3D Stack" src="http://code.google.com/apis/o3d/images/O3DSoftwareStack.png" alt="" width="420" height="370" /></p>
<p>Also has a complete set of common 3D stuff like shapes, simple objects, textures, particle emiters, cameras, lights, video in 3d, etc. The API is available on their <a href="http://code.google.com/apis/o3d/">web site</a>.</p>
<p>An interesting example that came with the API,  is the trends example. Originally it show the earth with a beam (like the sun) coming out form random places over the surface. I changed that beam to a particle emitter and put a sequence of images of the profile of a location aware (fake) social network. Basically, it shows now who is where in the world (watch the video).</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://www.youtube.com/v/a7fqR9MDaZo&amp;hl=en&amp;fs=1&amp;" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/a7fqR9MDaZo&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/a7fqR9MDaZo&amp;hl=en&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true" data="http://www.youtube.com/v/a7fqR9MDaZo&amp;hl=en&amp;fs=1&amp;"></embed></object></p>
<p>Another great example is a GAME I&#8217;ve found, a kind of wonder boy style called <a href="http://blog.largeanimal.com/demo/">Infinite journey</a> form LargeAnimal.</p>
<p>That&#8217;s all for now, next time I will be posting more of my work. Appreciate any comment, Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/10/review-of-googles-03d-a-3d-engine-for-browser-in-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finite State Machine Utility en Javascript para PureMVC.</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/10/finite-state-machine-utility-en-javascript-para-puremvc/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/10/finite-state-machine-utility-en-javascript-para-puremvc/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 20:19:48 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[statemachines]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/index.php/2009/10/finite-state-machine-utility-en-javascript-para-puremvc/</guid>
		<description><![CDATA[Hello Folks!, I am working again to contribute with a sequel of my previous work about finite state machines implementation framework. This time I am working to mashup a FSM into the pureMVC framework in Javscript. I&#8217;ve used the FSM utility in AS# and I loved it since the first time, but I was kinda [...]]]></description>
			<content:encoded><![CDATA[<p>Hello Folks!, I am working again to contribute with a sequel of my previous work about finite state machines implementation framework. This time I am working to mashup a FSM into the pureMVC framework in Javscript. I&#8217;ve used the FSM utility in AS# and I loved it since the first time, but I was kinda shocked, when I realized that this utility was not available on Javascript. Since I&#8217;m a JS, PureMVC and FSM fan I am working hard to make a neat port of this, available soon to the PureMVC dev community.</p>
<p>Cheers!, and don&#8217;t be shy and write comments below!. *this time I will read them all, promise!.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/10/finite-state-machine-utility-en-javascript-para-puremvc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Where has all the fun gone?</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/05/where-has-all-the-fun-gone/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/05/where-has-all-the-fun-gone/#comments</comments>
		<pubDate>Mon, 25 May 2009 22:32:06 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[Social Networks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[opensocial]]></category>
		<category><![CDATA[trends]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/?p=82</guid>
		<description><![CDATA[Guess you remember in the times of the dot-com bubble , when b2c titans like e-bay and amazon, were supposed to kill traditional commerce and visionary people predicted they will own or be part of the majority of our daily shopping.
I used to spend a couple of hours a week  in sites like eBay, Amazon [...]]]></description>
			<content:encoded><![CDATA[<p>Guess you remember in the times of the <a href="http://en.wikipedia.org/wiki/Dot-com_bubble" target="_blank">dot-com bubble</a> , when b2c titans like e-bay and amazon, were supposed to kill traditional commerce and visionary people predicted they will own or be part of the majority of our daily shopping.</p>
<p>I used to spend a couple of hours a week  in sites like eBay, Amazon or MercadoLibre trying to find interesting stuff, sharing content and reading comments. .. Did that last phrase sounded familiar to you?,  that&#8217;s the same thing we still do, more days and hours a week in such sites as Facebook, mySpace, etc, etc?. Apparently, instead of spending money in things we barely need, now we spend more time (= less money) reading stuff, comments / tweets, pols, playing online, etc. This slow decay could be associated to several factors like international crisis, inefficient search, new competitors (mercadolibre (AR), craiglist, olx, and so&#8230;), among others, but at the end the Real and simple reason is that is not fun anymore.</p>
<p style="text-align: center;"><object width="425" height="344" data="http://www.youtube.com/v/h7oq26R6Kak&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/h7oq26R6Kak&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>Over the years <a href="http://www.lemil.com.ar/blog/index.php/2009/04/trends-social-networking-in-argentina/" target="_blank">we changed the way we use and have fun with internet, </a>and fastest connections allow us to get more content, streamings, and realtime communications. Finally facts of our daily life and history became reflected and published.</p>
<p>This is a rank that describes the average user behaviour for US on 2004.</p>
<p style="text-align: center;"><img class="alignnone" src="http://www.techcrunch.com/wp-content/uploads/2009/05/top-us-props-2004.png" alt="" width="519" height="527" /></p>
<p>And this is for the year 2006</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.techcrunch.com/wp-content/uploads/2009/05/where-people-spend-time.jpg" alt="" width="650" height="319" /></p>
<p>As a verification to my point I mashed up a couple of trends graphics, showing a comparison about searched terms in ecommerce and social. (source: <a href="http://www.google.com/trends">google trends</a>)</p>
<h2>- Argentina</h2>
<p style="text-align: center;"><img class="aligncenter" title="Trends for Argentina" src="http://www.google.com/trends/viz?q=ebay,+mercado+libre,+facebook,+twitter&amp;date=2008&amp;geo=ar&amp;graph=weekly_img&amp;sort=0&amp;sa=Ncebook%2C+twitter&amp;ctab=0&amp;geo=ar&amp;geor=all&amp;date=2008&amp;sort=0" alt="" width="580" height="260" /></p>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #4684ee;"><strong>ebay</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="4">
<tbody>
<tr>
<td style="display: block;" bgcolor="#4684ee"></td>
</tr>
</tbody>
</table>
</td>
<td><span>1.00</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #dc3912;"><strong>mercado libre</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="70">
<tbody>
<tr>
<td style="display: block;" bgcolor="#dc3912"></td>
</tr>
</tbody>
</table>
</td>
<td><span>17.0</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #ff9900;"><strong>facebook</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="65">
<tbody>
<tr>
<td style="display: block;" bgcolor="#ff9900"></td>
</tr>
</tbody>
</table>
</td>
<td><span>16.0</span></td>
</tr>
</tbody>
</table>
<table style="display: inline; height: 24px;" border="0" width="20">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #008000;"><strong>twitter</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="1">
<tbody>
<tr>
<td style="display: block;" bgcolor="#008000"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0</span></td>
</tr>
</tbody>
</table>
<p style="text-align: left;">Here, in Argentina,  Mercadolibre.com (local ebay and ex affiliated to them), was crushed by facebook before october 08.</p>
<h2>- All regions</h2>
<p style="text-align: left;"><img class="aligncenter" title="All regions" src="http://www.google.com/trends/viz?q=ebay,+mercado+libre,+facebook,+twitter&amp;date=2008&amp;geo=all&amp;graph=weekly_img&amp;sort=0&amp;sa=N" alt="" width="580" height="260" /></p>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #4684ee;"><strong>ebay</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="40">
<tbody>
<tr>
<td style="display: block;" bgcolor="#4684ee"></td>
</tr>
</tbody>
</table>
</td>
<td><span>1.00</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #dc3912;"><strong>mercado libre</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="1">
<tbody>
<tr>
<td style="display: block;" bgcolor="#dc3912"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.04</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #ff9900;"><strong>facebook</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="70">
<tbody>
<tr>
<td style="display: block;" bgcolor="#ff9900"></td>
</tr>
</tbody>
</table>
</td>
<td><span>1.74</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #008000;"><strong>twitter</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="1">
<tbody>
<tr>
<td style="display: block;" bgcolor="#008000"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.02</span></td>
</tr>
</tbody>
</table>
<p style="text-align: center;">Same thing for all reagions 6 month before.</p>
<p style="text-align: center;">
<p style="text-align: left;">Leandro.</p>
<address style="text-align: left;"> </address>
<address style="text-align: left;">Sources: </address>
<address style="text-align: left;">- Google Trends . http://www.google.com/trends</address>
<address style="text-align: left;">- Tech Crunch . http://www.techcrunch.com/2009/05/23/how-facebook-myspace-and-youtube-killed-ebay/ (great article)<br />
</address>
<p style="text-align: left;">
<a href="http://technorati.com/claim/bndwnkftm4" rel="me">Technorati Profile</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/05/where-has-all-the-fun-gone/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Trends &#8211; Whois who in Social Networking [Trends]</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/05/trends-whois-who-in-social-networking-trends/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/05/trends-whois-who-in-social-networking-trends/#comments</comments>
		<pubDate>Sun, 03 May 2009 15:44:04 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[Social Networks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[hi5]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[opensocial]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/?p=77</guid>
		<description><![CDATA[Nowadays twitter seems to be in everybody&#8217;s mouth, (meanwhile we try to image another idea to monetize all that traffic). A year ago Facebook changed the way we use the web and it gathered people around the world in a 200.000.000 user community.  Today, using google trends, did a chart explaining what people is searching [...]]]></description>
			<content:encoded><![CDATA[<p>Nowadays twitter seems to be in everybody&#8217;s mouth, (meanwhile we try to image another idea to monetize all that traffic). A year ago Facebook changed the way we use the web and it gathered people around the world in a <a href="http://blog.facebook.com/blog.php?post=72353897130" target="_blank">200.000.000</a> user community.  Today, using google trends, did a chart explaining what people is searching on social networking.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.google.com/trends/viz?q=facebook,+twitter,+myspace,+hi5,+google&amp;date=ytd&amp;geo=all&amp;graph=weekly_img&amp;sort=0&amp;sa=N" alt="" width="580" height="260" /></p>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #4684ee;"><strong>facebook</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="70">
<tbody>
<tr>
<td style="display: block;" bgcolor="#4684ee"></td>
</tr>
</tbody>
</table>
</td>
<td><span>1.00</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #dc3912;"><strong>twitter</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="1">
<tbody>
<tr>
<td style="display: block;" bgcolor="#dc3912"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.01</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #ff9900;"><strong>myspace</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="22">
<tbody>
<tr>
<td style="display: block;" bgcolor="#ff9900"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.32</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #008000;"><strong>hi5</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="14">
<tbody>
<tr>
<td style="display: block;" bgcolor="#008000"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.20</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #4942cc;"><strong>google</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="39">
<tbody>
<tr>
<td style="display: block;" bgcolor="#4942cc"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.57</span></td>
</tr>
</tbody>
</table>
<p>If you pay attentio to the chart in the lower part shows how &#8220;news about&#8221; twitter eclipsed any other thing on the web, at  least for a couple of days (<a href="http://twitter.com/aplusk" target="_blank">the kutner effect</a>).</p>
<p>Cheers!</p>
<p>Leandro Milmanda Perez</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/05/trends-whois-who-in-social-networking-trends/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Trends &#8211; Social networking in Argentina</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/04/trends-social-networking-in-argentina/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/04/trends-social-networking-in-argentina/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 23:41:34 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[Social Networks]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[opensocial]]></category>
		<category><![CDATA[trends]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/?p=71</guid>
		<description><![CDATA[Since a few month ago we changed the way we use Internet in Argentina. Remember the g&#8217;ood old days when we use to send mails, see La Nacion.com or Ole.com.ar, and may be the most &#8220;trendies&#8221; watch videos on you tube. Now (only a few month later) all of us is on facebook, tagging pictures, [...]]]></description>
			<content:encoded><![CDATA[<p>Since a few month ago we changed the way we use Internet in Argentina. Remember the g&#8217;ood old days when we use to send mails, see La Nacion.com or Ole.com.ar, and may be the most &#8220;trendies&#8221; watch videos on you tube. Now (only a few month later) all of us is on facebook, tagging pictures, sending wall messages, researching friends of friends, even Moms got there!.  And is you are wandering about how popular in comparison to other sites it became I charted , thanks to google trends.</p>
<p style="text-align: left;"><img class="aligncenter" title="Google trends - Social(facebook) vs traditional searchs." src="http://www.google.com/trends/viz?q=facebook,+taringa,+la+nacion,+clarin,+sexo&amp;date=ytd&amp;geo=ar&amp;graph=weekly_img&amp;sort=0&amp;sa=N" alt="" width="580" height="260" /></p>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #4684ee;"><strong>facebook</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="58">
<tbody>
<tr>
<td style="display: block;" bgcolor="#4684ee"></td>
</tr>
</tbody>
</table>
</td>
<td><span>1.00</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #dc3912;"><strong>taringa</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="44">
<tbody>
<tr>
<td style="display: block;" bgcolor="#dc3912"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.76</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #ff9900;"><strong>la nacion</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="25">
<tbody>
<tr>
<td style="display: block;" bgcolor="#ff9900"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.44</span></td>
</tr>
</tbody>
</table>
<table style="display: inline;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #008000;"><strong>clarin</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="70">
<tbody>
<tr>
<td style="display: block;" bgcolor="#008000"></td>
</tr>
</tbody>
</table>
</td>
<td><span>1.20</span></td>
</tr>
</tbody>
</table>
<table style="display: inline; text-align: center;" border="0">
<tbody>
<tr>
<td style="padding: 0pt; white-space: nowrap;"><span style="color: #4942cc;"><strong>sexo</strong> </span></td>
<td>
<table class="bar" style="height: 4px;" border="0" cellspacing="0" width="36">
<tbody>
<tr>
<td style="display: block;" bgcolor="#4942cc"></td>
</tr>
</tbody>
</table>
</td>
<td><span>0.62</span></td>
</tr>
</tbody>
</table>
<p>Something changed, we did? I guess&#8230;. the use of social network is here for good.</p>
<p>If you are interested in being part of social networks or want to build your,  own leave your comments or contact <a title="contact me" href="http://www.lemil.com.ar/blog/index.php/about/" target="_blank">me</a>.</p>
<p>by Leandro Milanda Perez.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/04/trends-social-networking-in-argentina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java @ Google App Engine</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/04/java-google-app-engine/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/04/java-google-app-engine/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 01:19:34 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[App Engine]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/index.php/2009/04/java-google-app-engine/</guid>
		<description><![CDATA[

As I twitted last week I am testing an early version of Google&#8217;s App Engine in Java flavor. If you never got the chance to try it, or you are just curious about it, I wrote a few tutorials about how to do regular things, including: java patters, servlets, data access, etc.
Use this command to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://code.google.com/appengine/images/appengine_lowres.jpg" alt="" width="142" height="109" /><img class="alignright" src="http://www.gstatic.com/codesite/ph/images/defaultlogo.png" alt="" width="48" height="48" /></p>
<p style="text-align: center;"><a href="http://code.google.com"><img class="aligncenter" title="Google Code" src="http://www.gstatic.com/codesite/ph/images/code_sm.png" alt="" width="153" height="55" /></a></p>
<p>As I twitted last week I am testing an early version of Google&#8217;s App Engine in Java flavor. If you never got the chance to try it, or you are just curious about it, I wrote a few tutorials about how to do regular things, including: java patters, servlets, data access, etc.</p>
<p>Use this command to anonymously check out the latest project source code:</p>
<div class="bubble_wrapper">
<div class="pmeta_bubble_bg">
<div class="box-inner"><tt># Non-members may check out a read-only working copy anonymously over HTTP.</tt><br />
<tt id="checkoutcmd">svn checkout <strong><em>http</em></strong>://gae-java-tutorial1.googlecode.com/svn/trunk/ gae-java-tutorial1-read-only</tt></div>
</div>
</div>
<p><strong>Example 1</strong> &#8211; Using DataStore nad JPA</p>
<p>I created a POJO calle SimplePojo and stored un DS using JPA. Below is a copy of the persistance.xml file I am using&#8230;</p>
<pre style="background-color:#f0f0f0; border-top: 1 solid #c0c0c0; border-right: 1 solid #c0c0c0; border-left: 1 solid #c0c0c0; border-bottom: 1 solid #c0c0c0; border: 1 solid #c0c0c0; padding-left: 30px;"><span style="color: #000080;">&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"&gt;

    &lt;persistence-unit name="transactions-optional"&gt;
        &lt;provider&gt;org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider&lt;/provider&gt;
        &lt;class&gt;com.gae.tutorial.pojo.SimplePojo&lt;/class&gt;
        &lt;properties&gt;
            &lt;property name="datanucleus.NontransactionalRead" value="true"/&gt;
            &lt;property name="datanucleus.NontransactionalWrite" value="true"/&gt;
            &lt;property name="datanucleus.ConnectionURL" value="appengine"/&gt;
        &lt;/properties&gt;
    &lt;/persistence-unit&gt;
&lt;/persistence&gt;</span></pre>
<p>Note the the hardcoded appengie value from the connection URL. Below the Poj file&#8230;</p>
<div style=" background-color:#f0f0f0; border-top: 1 solid #c0c0c0; border-right: 1 solid #c0c0c0; border-left: 1 solid #c0c0c0; border-bottom: 1 solid #c0c0c0; border: 1 solid #c0c0c0; padding-left: 30px;">
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.jdo.annotations.Column;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.Entity;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.GeneratedValue;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.GenerationType;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.Id;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.NamedQueries;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.NamedQuery;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">import javax.persistence.Table;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">
</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">@Entity</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">@Table(name = "simple_pojo")</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">@NamedQueries( {</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    @NamedQuery(name = "getLast", query = "SELECT p FROM SimplePojo p ORDER BY p.id DESC")</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">})</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">
</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">public class SimplePojo {</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">
    @Id</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    @GeneratedValue(generator="generador",strategy=GenerationType.IDENTITY)</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    @Column(name="ID")</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    private Long id;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    </span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    @Column(name="VALOR")</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    private String valor;</span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    </span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    </span></pre>
<pre style="background-color:#f0f0f0;padding-left: 30px;"><span style="color: #000080;">    public Long getId() {</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">        return id;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">    }</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">
    public void setId(Long id) {</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">        this.id = id;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">    }</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">
    public String getValor() {</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">        return valor;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">    }</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">
    public void setValor(String valor) {</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">        this.valor = valor;</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">    }</span></pre>
<pre style="padding-left: 30px;"><span style="color: #000080;">}</span></pre>
</div>
<p>To fully understand this example I recommend you to checkout the SVN source repo and open it on eclipse. One important thing is that you need to install the App Engine SDK for Java and the eclipse plugins from App Engine too.</p>
<p>Also recommend you to get an account and start uusing it.!</p>
<p>Cheers!</p>
<p>Leandro.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/04/java-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Wordpress @ iPhone</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/04/wordpress-iphone/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/04/wordpress-iphone/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 01:33:51 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[tools]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/index.php/2009/04/wordpress-iphone/</guid>
		<description><![CDATA[
Wow!, Ive just discovered this WP app for iPhone and it is amazing! Definitelly a Must Have!
( http://iphone.wordpress.org/)


]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="wp" src="http://itghelp.commons.yale.edu/images/Icon-wordpress.jpg" alt="wordpress" width="50" height="50" /></p>
<p style="text-align: center;">Wow!, Ive just discovered this WP app for iPhone and it is amazing! Definitelly a Must Have!</p>
<p style="text-align: center;">( <a href="http://iphone.wordpress.org/" target="_blank">http://iphone.wordpress.org/</a>)</p>
<p style="text-align: center;"><embed src="http://v.wordpress.com/4L5ozJyJ" type="application/x-shockwave-flash" width="400" height="224" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/04/wordpress-iphone/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fault tolerance on comodity clusters..</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/03/fault-tolerance-on-comodity-clusters/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/03/fault-tolerance-on-comodity-clusters/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 11:48:18 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[hadoop]]></category>
		<category><![CDATA[hammer]]></category>
		<category><![CDATA[parallel]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/?p=53</guid>
		<description><![CDATA[Ive been doing some research on this latelly and I found some interesting videos I want to share with you&#8230;
This video demonstrates how it works on a real cluster, while disks are being disconnected.
Lemil.-

]]></description>
			<content:encoded><![CDATA[<p>Ive been doing some research on this latelly and I found some interesting videos I want to share with you&#8230;</p>
<p><a href="http://www.youtube.com/watch?v=xYGSiUfK-DE&amp;eurl=http%3A%2F%2Fwww.silobreaker.com%2FShowWidget.aspx%3Fcontrol%3DVideoFeed%26QF0FromDate%3D2009-02-18%26QF1FreetextSearchStrings%3Dhadoo&amp;feature=player_embedded">This video</a> demonstrates how it works on a real cluster, while disks are being disconnected.<br />
Lemil.-</p>
<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/MertszOktiw&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/MertszOktiw&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/03/fault-tolerance-on-comodity-clusters/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Socialsite, an opensource social network.</title>
		<link>http://www.lemil.com.ar/blog/index.php/2009/03/socialsite-an-opensource-social-network/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2009/03/socialsite-an-opensource-social-network/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 11:15:58 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/?p=48</guid>
		<description><![CDATA[
Hi!, today I m going to taught you about this new project called Socialsite.
What&#8217;s Socialsite ( https://socialsite.dev.java.net/)?
It is an open source software made by sun,  that implements 2 things, an Opensocial (www.opensocial.org) container that render your favorite OS gadgets (Google gadgets too), and also has it own social graph Db and gadgets to manage invitations, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="https://socialsite.dev.java.net/images/use.gif" alt="" width="96" height="96" /><img class="alignnone" src="https://socialsite.dev.java.net/images/discover.gif" alt="" width="96" height="96" /><img class="alignnone" src="https://socialsite.dev.java.net/images/extend.gif" alt="" width="96" height="96" /><img class="alignnone" src="https://glassfish-theme.dev.java.net/logo.gif" alt="" width="107" height="86" /></p>
<p><span>Hi!, today I m going to taught you about this new project called <span>Socialsite</span>.</span></p>
<p>What&#8217;s Socialsite (<a title="https://socialsite.dev.java.net/" href="https://socialsite.dev.java.net/" target="_blank"><span> https://<span>socialsite</span>.<span>dev</span>.java.net/</span></a>)?</p>
<p><span>It is an open source software made by sun,  that implements 2 things, an <span>Opensocial</span> (</span><a title="www.opensocial.org" href="http://www.opensocial.org" target="_blank">www.opensocial.org</a>) container that render your favorite OS gadgets (Google gadgets too), and also has it own social graph Db and gadgets to manage invitations, relationships, messaging, groups, profiles, like any other social network.</p>
<p>What techs power Social Networks ?</p>
<p>I&#8217;ll give you <a href="https://socialsite.dev.java.net/socialsite-j1-2008.pdf" target="_blank">this link</a><span>, its a <span>pdf</span> with a lot of new techs around social networking. </span></p>
<p>What am I doing with SS ?</p>
<p>I am doing a few things&#8230;</p>
<p>- I am doing implementations of SS for the first time. This software is new, Ive been working with this since very early releases.</p>
<p><span>- Make it production ready. We are looking forward open these implementations to massive audience (2 to 5 million users around the globe).</span></p>
<p><span>- Turn it <span>Jboss</span> ready!. Since this soft came from an open source project from Sun <span>Microsystems</span>, (they did it great!),  it was built using Sun&#8217;s Stack (Java, JPA, (Derby, yes Derby &#8230; <span>MySql</span> came later), and <span>Glassfish</span>). Since the company I am working for its using <span>Jboss</span> (I am personally a kind of fan of <span>Jboss</span> stack) as it main deployment server, I could not resist to make my own implementation of SS for that platform. </span></p>
<p>- J2EE deploymet, Ejb3 ready!.</p>
<p><span>- A lot of new features. I built a few new features like notifications i18n, job manager, support for images (previously stored on <span>BLOBs</span>), Notification services, Gmail integration services, etc. Also we (the team) cleaned all the reported bugs (and new ones <img src='http://www.lemil.com.ar/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</span></p>
<p>- Cluster ready!. I made also a few tunnings and scripts that allow you to run SS in HA clusters, and setted up distribued caches, farming services, nodes, etc.</p>
<p>- Oracle 10g ready!.</p>
<p><span>- We also did a lot of stuff just for this <span>impl</span>, but those details I cannot tell. ( may be in a later post <img src='http://www.lemil.com.ar/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </span></p>
<p>I will continue posting some news about this project and related, &#8230;to keep in touch, any comments, below.</p>
<p>Cheers!</p>
<p>Lemil.-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2009/03/socialsite-an-opensource-social-network/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>State machines for &#8216;javascript&#8217;</title>
		<link>http://www.lemil.com.ar/blog/index.php/2008/12/state-machines-for-javascript/</link>
		<comments>http://www.lemil.com.ar/blog/index.php/2008/12/state-machines-for-javascript/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 18:48:59 +0000</pubDate>
		<dc:creator>lemil</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[clousure]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[maquina]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[state machine]]></category>

		<guid isPermaLink="false">http://www.lemil.com.ar/blog/?p=23</guid>
		<description><![CDATA[Today I am presenting a (yet) small but usefull framework to use in ajax clients that I build and use &#8230;

  
 
What is Maquina?
Maquina is a petri net runtime implementation for Javascript and other languages like AS3 and java (work in progress). 
 
Why do I need a state machine ?
Finite state machines have long been used as [...]]]></description>
			<content:encoded><![CDATA[<p>Today I am presenting a (yet) small but usefull framework to use in ajax clients that I build and use &#8230;</p>
<div>
<h1 style="text-align: justify; "><strong><a href="http://www.lemil.com.ar/blog/wp-content/uploads/2008/12/gears.gif"><img class="size-full wp-image-25 alignright" title="maquina gears" src="http://www.lemil.com.ar/blog/wp-content/uploads/2008/12/gears.gif" alt="maquina logo" width="48" height="48" /></a>  </p>
<p></strong> </h1>
<h3>What is Maquina?</h3>
<p class="MsoNormal">Maquina is a petri net runtime implementation for Javascript and other languages like AS3 and java (work in progress). </p>
<p class="MsoNormal"> </p>
<h3>Why do I need a state machine ?</h3>
<p class="MsoNormal">Finite state machines have long been used as an organizing principle for designing and implementing complex behavior in event-driven programs, such as network adapters and compilers. Now, programmable Web browsers have opened a new event-driven environment to a new generation of applications. Browser-based applications, popularized by Ajax, are becoming more complex. Designers and implementers can benefit from the discipline and structure that finite state machines offer. In this article, you, learn how to use a finite state machine to design complex behavior for a simple Web widget &#8212; an animated tooltip that fades into and out of view. (read more = http://www.ibm.com/developerworks/library/wa-finitemach1/ ).</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<h3>How it Works&#8230;</h3>
<p class="MsoNormal"><span> This plugin controls the lifecycle of an input form. To implement it, the changes described below, should be done in the existing application.</span></p>
<p class="MsoNormal"><span>  </span></p>
<p class="MsoNormal"><em><span>1 &#8211; Add Scripting libraries…</span></em></p>
<p class="MsoNormal"> </p>
<div style="background-color: #f7f7f7; border: 1px solid #c0c0c0">
<p class="MsoNormal"><span>&lt;!&#8211; Maquina Core &#8211;&gt;</span></p>
<p class="MsoNormal"><span>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;../../maquina.js&#8221;&gt;&lt;/script&gt;</span></p>
<p class="MsoNormal"><span>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;../../plugins/form/plugin.js&#8221;&gt;&lt;/script&gt;</span></p>
<p class="MsoNormal"><span>&lt;!&#8211; this example uses prototype lib &#8211;&gt;</span></p>
<p class="MsoNormal"><span>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;http://www.prototypejs.org/assets/2008/1/25/prototype-.6.0.2.js&#8221;&gt;&lt;/script&gt;</span></p>
</div>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>(*) yes, we use prototype.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><em><span>2 &#8211; Create a form in HTML <span> </span>…</span></em></p>
<p class="MsoNormal"><span> </span></p>
<p> </p>
<div style="background-color: #f7f7f7; border: 1px solid #c0c0c0">
<p class="MsoNormal"><span>&lt;div class=&#8221;widget_form&#8221;&gt;</span></p>
<p class="MsoNormal"><span><span>            </span>&lt;div id=&#8221;form1_flash_state&#8221; &gt;&lt;/div&gt;</span></p>
<p class="MsoNormal"><span><span>            </span>&lt;form id=&#8217;form1_form&#8217; name=&#8217;form1_form&#8217; &gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;h3&gt;Maquina Form Test&lt;/h3&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;div id=&#8221;form1_widget_message_top&#8221; class=&#8221;widget_message&#8221;&gt;&lt;/div&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;label for=&#8221;fullname&#8221;&gt;FullName&lt;/label&gt;</span></p>
<p class="MsoNormal"><span>                        &lt;input type=&#8221;text&#8221; name=&#8221;fullname&#8221; id=&#8221;fullname&#8221;</span></p>
<p class="MsoNormal"><span>                                    onkeyup<strong>=&#8221;maquina.plugins.form.handleFormEvent(&#8216;form1&#8242;,&#8217;change&#8217;)&#8221;</strong>/&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;br /&gt;&lt;br /&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;label for=&#8221;Description&#8221;&gt;Description&lt;/label&gt;</span></p>
<p class="MsoNormal"><span>                       &lt;input type=&#8221;text&#8221; name=&#8221;description&#8221; id=&#8221;description&#8221;</span></p>
<p class="MsoNormal"><span>                                    oneyup=&#8221;maquina.plugins.form.handleFormEvent(&#8216;form1&#8242;,&#8217;change&#8217;)&#8221;/&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;br /&gt;&lt;br /&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;label for=&#8221;Age&#8221;&gt;Age&lt;/label&gt;</span></p>
<p class="MsoNormal"><span>                       &lt;select name=&#8221;age&#8221; </span></p>
<p class="MsoNormal"><span>                                onchange=<strong>&#8220;maquina.plugins.form.handleFormEvent(&#8216;form1&#8242;,&#8217;change&#8217;)&#8221;<span> </span></strong>&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;option value=&#8221;20-30&#8243;&gt;20-30&lt;/option&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;option value=&#8221;30-40&#8243;&gt;30-40&lt;/option&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;/select&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;br /&gt;&lt;br /&gt;</span></p>
<p class="MsoNormal"><span>                        &lt;div id=&#8221;form1_widget_message_footer&#8221; class=&#8221;widget_message&#8221;&gt;&lt;/div&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;br /&gt;</span></p>
<p class="MsoNormal"><span><span>                        </span>&lt;div id=&#8221;form1_widget_button_bar&#8221; class=&#8221;widget_button_bar&#8221;&gt;&lt;/div&gt;</span></p>
<p class="MsoNormal"><span><span>            </span>&lt;/form&gt;</span></p>
<p class="MsoNormal"><span>&lt;/div&gt;</span></p>
</div>
<p> </p>
<p class="MsoNormal"><span>  </span></p>
<p class="MsoNormal"><span>(*) The tags<span>  </span>with “class=widget_message” show validation and app messages.</span></p>
<p class="MsoNormal"><span>(**) Note that there is no button bar in the form neither action property in the form tag. Everything is going to be managed by the plugin.</span></p>
<p class="MsoNormal"><span>(***) Note in bold are the triggers to the dirty state. Include this on every single input element that is going to trigger a change of state.</span></p>
<p class="MsoNormal"><span>  </span></p>
<p class="MsoNormal"><em><span>3 &#8211; Initialize the form….</span></em></p>
<p> </p>
<p class="MsoNormal"><span> </span></p>
<div style="background-color: #f7f7f7; border: 1px solid #c0c0c0">
<p class="MsoNormal"><span>&lt;script type=&#8221;text/javascript&#8221;&gt;</span></p>
<p class="MsoNormal"><span>var base_url = &#8220;http://localhost/maquina/ports/javascript/1.0/src/trunk/examples&#8221;;</span></p>
<p class="MsoNormal"><span>/* Initialize</span></p>
<p class="MsoNormal"><span><span> </span>* execute this function when ever you want to inititalize the state machine</span></p>
<p class="MsoNormal"><span><span> </span>**/</span></p>
<p class="MsoNormal"><span>function initialize()</span></p>
<p class="MsoNormal"><span>{</span></p>
<p class="MsoNormal"><span><span>            </span>try {</span></p>
<p class="MsoNormal"><span><span>                        </span><strong><span>//(Optional) Just a loggin function included in maquina</span></strong></span></p>
<p class="MsoNormal"><span><span>            </span><span>            </span>consolelog(&#8220;initialize form1&#8243;);</span></p>
<p class="MsoNormal"><span><span>                        </span><strong><span>//This is to insert the button bar in the placeholder</span></strong></span></p>
<p class="MsoNormal"><span><span>            </span><span>           </span>maquina.plugins.form.renderFormCommandBar(&#8220;form1&#8243;);</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span><span>                        </span><strong><span>//Create a context (model) that the state machine is going to use.</span></strong></span></p>
<p class="MsoNormal"><span><span>            </span><span>            </span>var context1 = [];</span></p>
<p class="MsoNormal"><span><span>            </span><span>            </span>context1["graph"] =<span>  </span>new maquina.plugins.form.graph(); <strong><span>//this is the default behaviour</span></strong></span></p>
<p class="MsoNormal"><span><span>            </span><span>            </span>context1["ajax"] = [];</span></p>
<p class="MsoNormal"><span><span>            </span><span>            </span>context1.ajax["url"] = &#8220;form_plugin_backend.php&#8221;;<span> </span><strong><span>//Put here the action url</span></strong></span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span><span>            </span>maquina.createStateMachine(&#8220;form1&#8243;, context1);</span></p>
<p class="MsoNormal"><span><span>            </span><span>           </span></span></p>
<p class="MsoNormal"><span><span>            </span>} catch(e) {</span></p>
<p class="MsoNormal"><span><span>                        </span>console.error(&#8220;Error at initialize! : &#8221; + e.message);</span></p>
<p class="MsoNormal"><span><span>            </span>}</span></p>
<p class="MsoNormal"><span>}</span></p>
<p class="MsoNormal"><span>//Trigger this on page Load</span></p>
<p class="MsoNormal"><span>window.onload = function() {</span></p>
<p class="MsoNormal"><span><span>            </span>consolelog(&#8220;initialize()&#8221;);</span></p>
<p class="MsoNormal"><span><span>            </span>initialize();</span></p>
<p class="MsoNormal"><span>}</span></p>
<p class="MsoNormal"><span>&lt;/script&gt;</span></p>
</div>
<p class="MsoNormal"><em><span> </span></em></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><em><span>4 &#8211; (Oprtional) you can use your own validation function in javascript…</span></em></p>
<p class="MsoNormal"><span> </span></p>
<div style="background-color: #f7f7f7; border: 1px solid #c0c0c0">
<p class="MsoNormal"><span>function validate_miform(context){</span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span>var form = context["elements"]["form"];</span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span>// You can retrieve any value stored in the context.</span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span>ar projID = context["projID"];</span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span>var divID = context["divID"];</span></p>
<p class="MsoNormal"><span><span>       </span></span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span><span>         </span><span>   </span>var err = new Array();</span></p>
<p class="MsoNormal"><span><span>        </span><span>    </span>err['haserrors'] = false;</span></p>
<p class="MsoNormal"><span><span>   </span><span>        </span></span></p>
<p class="MsoNormal"><span><span>        </span><span>    </span>if(ifEmpty($(&#8216;notes_0&#8242;).value))</span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span>{</span></p>
<p class="MsoNormal"><span><span>           <span>    </span><span>        <span> </span>//Append your error message to the correct tag (see error model below)</span></span></span></p>
<p class="MsoNormal"><span><span>    </span><span>        <span>    </span><span>        err['top'] = &#8216;You must type a Note to Save Overall Status &#8216;;</span></span></span></p>
<p class="MsoNormal"><span><span>           </span><span><span>    </span><span>        <span> </span>err['haserrors'] = true;</span></span></span></p>
<p class="MsoNormal"><span><span>        </span><span>    </span>}</span></p>
<p class="MsoNormal"><span><span>       </span></span></p>
<p class="MsoNormal"><span><span>        </span><span>    </span>if(ifEmpty($(&#8217;status_0&#8242;).value))</span></p>
<p class="MsoNormal"><span><span>        </span><span>    </span>{</span></p>
<p class="MsoNormal"><span><span>            </span><span>            </span>err['footer'] = &#8220;You must assign an Overall Status to save Overall Status Notes&#8221;;</span></p>
<p class="MsoNormal"><span><span>            </span><span>            </span>err['haserrors'] = true;</span></p>
<p class="MsoNormal"><span><span>         </span><span>   </span>}</span></p>
<p class="MsoNormal"><span><span>            </span></span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span>if (err['haserrors'] == true){<span>  </span></span></p>
<p class="MsoNormal"><span><span>           </span><span>    </span><span>        </span>err['result'] = &#8216;failure&#8217;;</span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span>} else {<span> </span></span></p>
<p class="MsoNormal"><span><span>            <span>    </span><span>        err['result'] = &#8217;success&#8217;;</span></span></span></p>
<p class="MsoNormal"><span><span>    </span><span>        </span>}</span></p>
<p class="MsoNormal"><span>return err;</span></p>
<p class="MsoNormal"><span>}</span></p>
</div>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>(*) You can<span>  </span>customize also the type of message displayed on each place. By adding prefixes ( “error:” , “alert:” or nothing “” ) you can change the images associated to the error message.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><em><span>Error (Inform) model …</span></em></p>
<p class="MsoNormal"> </p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_24" class="wp-caption aligncenter" style="width: 510px;">
<dt class="wp-caption-dt"><a href="http://www.lemil.com.ar/blog/wp-content/uploads/2008/12/error-model.jpg"><img class="size-full wp-image-24" title="error-model" src="http://www.lemil.com.ar/blog/wp-content/uploads/2008/12/error-model.jpg" alt="maquina-error-model" width="500" height="150" /></a></dt>
</dl>
</div>
<p> </p>
<p class="MsoNormal"><span>(**) This model should be created in the validation function. Also in this function you can choose where to display the messages.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Important: to execute this function before submitting the data you just need to do this on step 3…</span></p>
<p class="MsoNormal"><span>  </span></p>
<div style="background-color: #f7f7f7; border: 1px solid #c0c0c0">
<p class="MsoNormal"><span>context[“validation”] = validate_miform;</span></p>
</div>
<p class="MsoNormal"><span>  </span></p>
<p class="MsoNormal"><em><span>5 &#8211; What to do at the server side… (in php)</span></em></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span></p>
<div style="background-color: #f7f7f7; border: 1px solid #c0c0c0">
<p class="MsoNormal"><span>function server_side_processs_XXXXX($div,$projID)</span></p>
<p class="MsoNormal"><span>{</span></p>
<p class="MsoNormal"><span><span>  </span>[..]</span></p>
<p class="MsoNormal"><code><span>//Example - Form Submit Response</span></code></p>
<p class="MsoNormal"><code><span>$result['flag'] = 'success';</span></code></p>
<p class="MsoNormal"><code><span>$result['widget_message'] = 'Settings Succesfully saved';</span></code></p>
<p class="MsoNormal"><code><span>$result['errors']['top'] = '';</span></code></p>
<p class="MsoNormal"><code><span>$result['errors']['footer'] = 'Changes succesfully saved!';</span></code></p>
<p class="MsoNormal"><code><span>echo json_encode($result) ;</span></code></p>
<p class="MsoNormal"><span><span> </span>}</span></p>
</div>
<p class="MsoNormal"><span>  </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>(*) You just need to build a custom message in an array with the format descripbed above. </span><code><span>'widget_message'</span></code><span> = messages are going to be displayed in the button bar. Top and footer in the divs with those names.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>The message that should be json encoded so don’t forget. ho add this (again in php)…</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span></p>
<div style="background-color: #f7f7f7; border: 1px solid #c0c0c0">
<p class="MsoNormal"><code><span>header('Content-type: application/json');</span></code></p>
</div>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>(**) flags :</span></p>
<p class="MsoNormal"><span>Result: the word “success” or “failure”</span></p>
<p class="MsoNormal"><span>Message: any message to be displayed. You can embed html here.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Conclusions&#8230;</p>
<p class="MsoNormal">This is the first thing tutorial I create for this framework , I will be upgrading it and uploading new stuff about this&#8230;</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><strong>by </strong><a href="http://www.lemil.com.ar/blog/?page_id=2" target="_self"><strong>Leandro Milmanda Perez</strong></a></p>
<p class="MsoNormal"><span> </span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lemil.com.ar/blog/index.php/2008/12/state-machines-for-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
