<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Rodrigo Gama</title>
	<atom:link href="http://developerrandomthoughts.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://developerrandomthoughts.wordpress.com</link>
	<description>Gama&#039;s thoughts on Software Development, Programming, Mobility and beyond...</description>
	<lastBuildDate>Tue, 10 Aug 2010 03:31:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='developerrandomthoughts.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Rodrigo Gama</title>
		<link>http://developerrandomthoughts.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://developerrandomthoughts.wordpress.com/osd.xml" title="Rodrigo Gama" />
	<atom:link rel='hub' href='http://developerrandomthoughts.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Google Apps &amp; The Importance of Great Infrastructure</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/08/10/google-apps-the-importance-of-great-infrastructure/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/08/10/google-apps-the-importance-of-great-infrastructure/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 03:30:50 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development mindset]]></category>
		<category><![CDATA[google apps]]></category>
		<category><![CDATA[infrastructure]]></category>

		<guid isPermaLink="false">http://gamaondev.com/?p=122</guid>
		<description><![CDATA[On my first day at a new job, google apps and the right mindset made all the difference.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=122&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today was my first day at a new job. I knew much of the people who works there, so culture wasn&#8217;t a real breakthrough for me.</p>
<p>So, I arrived in the office by 11:00 am, said &#8216;Hi&#8217; to my friends (it&#8217;s really good to be back, guys), and by 1 pm (one lunch hour included) I was ready to work. I had it all installed, permissions given on the projects I would be working and a thin documentation ready to be read.</p>
<p>I spent another hour or two reading and talking to people who were on my project and started delivering real code. That means I had barely 3 hours of environment setup, organization setup, chair adjusting, etc and was GETTING THINGS DONE. When I began thinking about it, I was totally amazed.</p>
<p>This is the kind of organization mindset I think brings this kind of result:</p>
<ul>
<li>Leave development stuff to development people: permissions, servers, environment, documentation, everything; If they&#8217;re smart, they will know what to do. If they&#8217;re not, don&#8217;t hire them <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
<li>Plan! Plan to have everything needed when people arrive. Map your risks, act accordingly when needed. Don&#8217;t overplan, though: there is stuff that is unpredictable;</li>
<li>Don&#8217;t assume risks you don&#8217;t have to: If you don&#8217;t have to micromanage something, don&#8217;t do it. Why would a company want to run an e-mail server? <a href="http://www.google.com/apps/">Google Apps</a> delivers it all! Calendar, Docs, Sites, Groups, Mail! With GMail user interface and functionalities!</li>
</ul>
<p>That being, I couldn&#8217;t have had a more productive first day at any new job. It was a marvelous experience, and I am looking forward to improving it even further.</p>
<p>What about you? Any good/bad situations on a new company set up you would like to share? Comment!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=122&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/08/10/google-apps-the-importance-of-great-infrastructure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
		<item>
		<title>Apple: &#8220;First, there&#8217;s Open&#8221;</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/05/17/apple-first-theres-open/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/05/17/apple-first-theres-open/#comments</comments>
		<pubDate>Mon, 17 May 2010 17:15:18 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash Asobe]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Thoughts on Flash]]></category>

		<guid isPermaLink="false">http://gamaondev.com/?p=115</guid>
		<description><![CDATA[Some thoughts on Apple vs Adobe<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=115&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This theme is beggining to feel old, but I think there are some thoughts I could share about it.</p>
<p>At first, Apple won&#8217;t let flash go inside its iPhone OS environment. Their reasons are on <a href="http://www.apple.com/hotnews/thoughts-on-flash/">an open letter written by Steve Jobs</a>. The other day, <a href="http://veja.abril.com.br/noticia/ciencia-tecnologia/adobe-usa-carta-aberta-ironia-responder-criticas-jobs-559285.shtml">Adobe responded Apple</a> using Apple&#8217;s way of target marketing: <a href="http://www.google.com.br/search?q=mac+vs+pc&amp;hl=pt-BR&amp;prmd=vi">humiliating and mocking their adversaries</a>.</p>
<p>We all know what&#8217;s in it. Apple is not required to let flash in, and they want people to work with their environment, learn to work with their tools. Damn, maybe they can even use Objective C to write real Mac applications. So, it becomes clear that Apple is not wrong here, they are only protecting themselves from the outside world (and trying to make some money, does anyone have a problem with that?).</p>
<p>But I have a real problem with an item on Apple&#8217;s &#8220;Thoughts on Flash&#8221;.</p>
<blockquote><p>&#8220;First, there’s “Open”.&#8221;</p></blockquote>
<p>Are you serious, Apple? You&#8217;re questioning Adobe for not being &#8220;Open&#8221;? So, what is your concept about Openness? It&#8217;s incredible that they can blame Adobe for not being &#8220;Open&#8221; AND say &#8220;You know, I know we&#8217;re not open. But we strongly believe that all standards pertaining to the web should be open.&#8221;. There is no need to study Apple&#8217;s way of doing business to know they don&#8217;t believe in what they are saying: They tell it to you themselves!</p>
<p>Apple, you have a great number of reasons to keep Adobe out. You do want to have a share on the sold apps, you don&#8217;t want people to be publishing games without your aknowledge, both because of the share and because of the apps&#8217; quality. I can understand that much&#8230; I believe freedom of choice gives the best user experience, and would bring the best of luck to your iPhone OS platform.  You don&#8217;t, and it&#8217;s OK!</p>
<p>You don&#8217;t need to be making lame excuses to do something that is perfectly within your rights. Just do it and deal with the outcomes, but don&#8217;t use fallacies to make people infer you&#8217;re something that you&#8217;re not: An open, standards-supporting company.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=115&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/05/17/apple-first-theres-open/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
		<item>
		<title>Jarlsberg &#8212; Google Web Application Exploits and Defenses</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/05/05/jarlsberg-google-web-application-exploits-and-defenses/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/05/05/jarlsberg-google-web-application-exploits-and-defenses/#comments</comments>
		<pubDate>Wed, 05 May 2010 14:22:53 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[Jarlsberg]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://gamaondev.com/?p=112</guid>
		<description><![CDATA[Google has just launched Jarlsberg &#8211; A Web application that generates web applications full of vulnerabilities. Jarlsberg is a great idea for people who work with web development/security. Just access http://jarlsberg.appspot.com/ to learn more about ir. For the impatient: access http://jarlsberg.appspot.com/start and try to find some exploits!! I&#8217;ll give it a try and will write more [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=112&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Google has just launched Jarlsberg &#8211; A Web application that generates web applications full of vulnerabilities. Jarlsberg is a great idea for people who work with web development/security. Just access <a href="http://jarlsberg.appspot.com/">http://jarlsberg.appspot.com/</a> to learn more about ir. For the impatient: access <a href="http://jarlsberg.appspot.com/start">http://jarlsberg.appspot.com/start</a> and try to find some exploits!!</p>
<p>I&#8217;ll give it a try and will write more about it later.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=112&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/05/05/jarlsberg-google-web-application-exploits-and-defenses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
		<item>
		<title>Yahoo! Open Hack Day Project</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/03/20/yahoo-open-hack-day-project/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/03/20/yahoo-open-hack-day-project/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 19:28:40 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[brhackday]]></category>
		<category><![CDATA[Mashup]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[Yahoo Open Hack Day]]></category>

		<guid isPermaLink="false">http://gamaondev.com/?p=104</guid>
		<description><![CDATA[I&#8217;m directly from brhackday, SP! The event is amazing so far, I&#8217;m sure I&#8217;ll have plenty of stuff to blog on the next days (YQL is amazing, Yahoo! is getting more social, everything is very exciting around here). But I want to talk about the project we chose to implement here for the competition (Thanks [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=104&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m directly from brhackday, SP! The event is amazing so far, I&#8217;m sure I&#8217;ll have plenty of stuff to blog on the next days (YQL is amazing, Yahoo! is getting more social, everything is very exciting around here).</p>
<p>But I want to talk about the project we chose to implement here for the competition (Thanks Leonardo and Gustavo, you&#8217;re being great so far! Hope we can make a great project out of this):</p>
<p>We&#8217;ll cross routes (from and to anywhere anywhere) with traffic and weather information (from the official traffic agencies) in São Paulo, to help users choose what route to take when using google maps.</p>
<p>So, what do you think? Will it be useful for you guys? Have already seen anything like this?? Any extra feature you would like to have in this system?</p>
<p>Any feedback will be greatly appreciated!</p>
<p>EDIT: There is a traffic layer on google maps, and it works pretty well. Don&#8217;t know why we haven&#8217;t seen it before, but it showed up here just before we begin the work. Actually, I think they used the exactly same structure we intended to use. Anyway, we dropped this project to work on a more useful one.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=104&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/03/20/yahoo-open-hack-day-project/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
		<item>
		<title>Yahoo! Open Hack Day Brazil 2010</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/03/10/yahoo-open-hack-day-brazil-2010/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/03/10/yahoo-open-hack-day-brazil-2010/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 04:29:59 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[sucking less every year]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[Open Hack Day]]></category>
		<category><![CDATA[YAP]]></category>
		<category><![CDATA[YQL]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://gamaondev.com/?p=101</guid>
		<description><![CDATA[Yahoo! Open Hack Day Brazil 2010<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=101&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just received my registration confirmation to <a href="http://openhackbrazil2010.eventwax.com/open-hack-2010-brazil">Yahoo! Open Hack Day Brazil 2010</a>! I have a lot to study now, so you should expect to hear a lot about Yahoo! services (YQL, YAP, YUI3, Meme, etc) around here in the next weeks!</p>
<p>If you haven&#8217;t registered yourself yet, there&#8217;s still time! Go to <a href="http://openhackbrazil2010.eventwax.com/open-hack-2010-brazil">http://openhackbrazil2010.eventwax.com/open-hack-2010-brazil</a> and sign up!</p>
<p>Anyone else going? Any Yahoo! APIs you have experience and would like to share? Do so in the comments!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=101&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/03/10/yahoo-open-hack-day-brazil-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
		<item>
		<title>Practical X Scholar Programmer</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/03/02/practical-x-scholar-programmer/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/03/02/practical-x-scholar-programmer/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 02:26:49 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[brazilian education]]></category>
		<category><![CDATA[Programmers]]></category>
		<category><![CDATA[practical programmer]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[scholar programmer]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://gamaondev.com/?p=96</guid>
		<description><![CDATA[There are many ways of categorizing programmers. In this article, I explore the difference between practical programmers vs scholar programmers.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=96&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, I was called to solve a problem on a project. I had no particular expertise in the task at hand: XPath. We had to write an XPath expression to find a piece of data inside an xml document.</p>
<p>Both the XPath processor and the xml document generator (it was being generated automatically) were black boxes. That means we couldn&#8217;t change the xml file nor the XPath processor. The problem was a simple one: The XML document was generated with a default namespace, and we didn&#8217;t knew how to process it. I wrote a (simple) XPath processor to test the behavior of the expressions we were using and, after an hour or two, we discovered the problem and the solution (For the curious: we were using //&lt;tagname&gt; and had to use //*[name()='&lt;tagname&gt;']. To check the difference, <a href="http://www.w3.org/TR/xpath/">RTFM</a>).</p>
<p>Then I asked myself: Why were I trying to get a solution to the problem before getting a deeper understading of the underlying technology? Then I realized that this behavior divides programmers in two groups: Scholar programmers X Practical programmers.</p>
<p>The Scholar programmer is the one that, reagardless the time/cost constraints, is only worried in learning. He manages to get some things done once in a while, but it is not that common. He is mostly worried in learning, and is closely related to <a href="http://www.healthcareguy.com/2007/01/19/resume-driven-development-rdd/346/">Resume Driven Development</a>. This guy can be useful to your team, if you can make him work based on deadlines.</p>
<p>The Practical programmer is the entire opposite. For him, the important stuff is to get things done right away. He is obsessed with solving the next big problem. Do not be fooled: This guy can ruin your team. He will get things done and all&#8230; But he will not learn new stuff. He insists that you should keep using your old solutions, instead of trying new stuff. In the end, his short term decisions will make everyone&#8217;s life harder.</p>
<p>Obviously, no one can be 100% on one side nor on the other. &#8220;Virtue is in the middle&#8221; applies really well to this situation.</p>
<p>So, where do you fit better?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=96&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/03/02/practical-x-scholar-programmer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
		<item>
		<title>Thinking about programming languages</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/02/13/thinking-about-programming-languages/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/02/13/thinking-about-programming-languages/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 05:39:54 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[programming languages]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[mandatory reading]]></category>

		<guid isPermaLink="false">http://developerrandomthoughts.wordpress.com/?p=91</guid>
		<description><![CDATA[I retweeted this, but I found it so interesting I wanted everybody around here to take a look at it. http://www.rubyist.net/~matz/slides/oscon2003/mgp00001.html Even if you forget about the language-specific stuff (very smal, well placed part on the end of the slides), the message is awesome. Really, it changed the way I think about programming languages. You [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=91&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I retweeted this, but I found it so interesting I wanted everybody around here to take a look at it.</p>
<p><a href="http://www.rubyist.net/~matz/slides/oscon2003/mgp00001.html">http://www.rubyist.net/~matz/slides/oscon2003/mgp00001.html</a></p>
<p>Even if you forget about the language-specific stuff (very smal, well placed part on the end of the slides), the message is awesome.</p>
<p>Really, it changed the way I think about programming languages. You should REALLY go through it.</p>
<p>EDIT: Good to notice the text @wycats used on his original tweet:</p>
<blockquote><p>BTW: I personally find <a rel="nofollow" href="http://bit.ly/cohAGX" target="_blank">http://bit.ly/cohAGX</a> a great summary of the philosophy behind Ruby</p></blockquote>
<p><a id="status_star_9040734550" title="favorite this tweet"></a>If you never learned ruby (You should, shame on you, you had <a href="http://www.familie-kneissl.org/Members/martin/blog/a-new-programming-language-every-year">this</a>, <a href="http://www.codinghorror.com/blog/2006/03/sucking-less-every-year.html">this</a> and a ton of other reasons), this phrase should make you begin now.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=91&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/02/13/thinking-about-programming-languages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
		<item>
		<title>Basic .NET Development Course Feedback</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/02/08/basic-net-development-course-feedback/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/02/08/basic-net-development-course-feedback/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 02:36:57 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.net development]]></category>
		<category><![CDATA[course]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[tech teaching]]></category>

		<guid isPermaLink="false">http://developerrandomthoughts.wordpress.com/?p=85</guid>
		<description><![CDATA[Last week, I gave a lecture on Basic .NET Development (focusing on C# and ASP.NET). To say the truth, I can&#8217;t count myself as an expert on these technologies (actually, I&#8217;m not an expert in any particular technology). At the end of the course, I asked the students to fill a fairly simple form, which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=85&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last week, I gave a lecture on Basic .NET Development (focusing on C# and ASP.NET). To say the truth, I can&#8217;t count myself as an expert on these technologies (actually, I&#8217;m not an expert in any particular technology).</p>
<p>At the end of the course, I asked the students to fill a fairly simple form, which asked them what were the three worst problems and the three best things they experienced during the class. I decided to post it here because it can be useful for people preparing lectures who happen to stumble with this page. Helps to say: the form was anonymous.  The results (only for the three worst problems) are categorized below:</p>
<div class="wp-caption alignnone" style="width: 410px"><img class="    " title=".NET Basic Development Course Feedback (Bad Stuff)" src="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:4,1,5,1,2,1&amp;chs=600x200&amp;chl=Physical%20Infrastructure|Software%20Infrastructure|Short%20Timespan|Too%20Theoretical|The%20Technology%20Sucks|Material&amp;chco=FF0000,00FF00,0000FF,FFFF00,FF00FF,00FFFF" alt=".NET Basic Development Course Feedback" width="400" height="200" /><p class="wp-caption-text">.NET Basic Development Course Feedback (Bad Stuff)</p></div>
<p>Click <a href="http://spreadsheets.google.com/pub?key=t30ofEgXTFc8hi2UEzbL7_w&amp;single=true&amp;gid=0&amp;output=html">here </a>for the full responses (portuguese only). This link also includes the positive feedback.</p>
<p>Some interesting comments:</p>
<ul>
<li>Short Timespan: That&#8217;s 100% my fault. Maybe I tried to squeeze as much content as I could in the fixed timespan we got. Doing this, you will always give people the feeling that you are out of time, and so are they.</li>
<li>Physical Infrastructure: If you are to prepare a course, don&#8217;t underestimate this. People don&#8217;t like to stay in an uncomfortable chair with wires all around. And this WILL affect the quality of the attention they will be able to pay on you.</li>
<li>The Technology Sucks: We encoutered some bugs when dealing with some examples/exercises and had to get workarounds for them. Truth is every technology/programming language/software have bugs.</li>
<li>Software Infrastructue: Some (few) machines were not ready for some steps of the course.</li>
</ul>
<p>I suppose there aren&#8217;t any comments regarding the instructor because the instructor asked for the feedback <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>The interesting stuff to notice here is : If I had spent more time(4 hours would be more than enough) preparing everything to improve the quality of the environment we spent together, I could get 70% of this stuff solved. They were simple, easy-to-notice, easy-to-solve issues.</p>
<p>So, the lesson I learned was: Get yourself involved in every step of the course. Prepare the environment yourself (or at least check it early). Check the software. Get yourself prepared. It&#8217;s not so different from developing software, is it? If you let any aspect get out of control, it will hunt you and make you regret disregarding it.</p>
<p>Also, always get feedback. I spent 3 minutes to set up the google form to enable the students to answer the survey. Actually, it&#8217;s so simple it makes you feel bad about thinking of using anything else. And remember: The only thing worse than bad stuff you do is bad stuff you do and don&#8217;t know is bad, because you&#8217;ll do it again.</p>
<p>So, want to talk about situations you got feedback (class-related or not) that was useful later? Comment below.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=85&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/02/08/basic-net-development-course-feedback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>

		<media:content url="http://chart.apis.google.com/chart?cht=p3&#038;chd=t:4,1,5,1,2,1&#038;chs=600x200&#038;chl=Physical%20Infrastructure&#124;Software%20Infrastructure&#124;Short%20Timespan&#124;Too%20Theoretical&#124;The%20Technology%20Sucks&#124;Material&#038;chco=FF0000,00FF00,0000FF,FFFF00,FF00FF,00FFFF" medium="image">
			<media:title type="html">.NET Basic Development Course Feedback (Bad Stuff)</media:title>
		</media:content>
	</item>
		<item>
		<title>Wave Robot to notify wave participants of meaningful events by email</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/01/28/wave-robot-to-notify-wave-participants-of-meaningful-events-by-email/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/01/28/wave-robot-to-notify-wave-participants-of-meaningful-events-by-email/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 00:05:07 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Google Wave API]]></category>
		<category><![CDATA[Wave Notifier]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[Wave]]></category>

		<guid isPermaLink="false">http://developerrandomthoughts.wordpress.com/?p=78</guid>
		<description><![CDATA[Wave Robot to notify wave participants of meaningful events by email<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=78&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This will be a (not so) brief walkthrough on how to create a basic wave robot and add custom functionality for it. Most of what is written below comes from <a href="http://code.google.com/appengine/docs/">Google App Engine (GAE) docs</a> and <a href="http://code.google.com/apis/wave/">Google Wave API</a> . It was only a dummy project, but I&#8217;m looking forward to improving it further so, if you got any ideas, tell it in the comments!</p>
<p>This walkthrough will be divided in four steps:  An Introduction; Creating a GAE application; Creating and Testing a Google Wave Application; Sending Emails with Google Wave.</p>
<p><strong>First Step: Introduction</strong></p>
<p>First of all, you need to know that if you want to create Google Wave Robots, you have to host them using GAE. Google intends to let you host your own robot in the future, but for now&#8230; If you don&#8217;t have a GAE account yet, click <a href="https://appengine.google.com/">here</a>.</p>
<p>A Google Wave Robot is a GAE application that uses the Google Wave API to respond to events generated on Google Wave. GAE applications can be written in Java or Python, being Python the language of choice for this bot.</p>
<p><strong>Second Step: Creating a GAE Application</strong></p>
<p>Follow <a href="http://code.google.com/intl/pt-BR/appengine/docs/python/gettingstarted/">this tutorial</a> to create a basic Hello World application. If you want to (and I STRONGLY suggest you to do it), go through the whole tutorial. Yet, for our purposes, you only need to get to the Hello World topic.</p>
<p>Checking the minimum set of skills you have developed in this step:</p>
<ul>
<li>app.yaml syntax;</li>
<li>Uploading an application to GAE;</li>
<li>Checking for erros using the <a href="https://appengine.google.com/">GAE console</a>(click in your application and go to Log). If any errors happen, it will be logged here.</li>
</ul>
<p><strong>Third Step: Creating and Testing a Google Wave Application</strong></p>
<p>Now, create a new folder for your new project. Import the <a href="http://code.google.com/p/wave-robot-python-client/downloads/list">Google Wave API</a> to your application. Place it inside your project folder, so that it wil be deployed with the rest of the application. <a href="http://code.google.com/apis/wave/extensions/robots/python-tutorial.html">This link</a> has a nice wave hello world. If you are developing a real application, please DON&#8217;T put the code which treat the events in the same file as the event handling class. It will make your handling code difficult to test locally, and will make you lose time by having to submit your code to GAE multiple times.</p>
<p>Now, you should be able to:</p>
<ul>
<li>Develop code to treat wave events;</li>
<li>Add your robot to a wave;</li>
<li>See your robot interacting with you in the wave.</li>
</ul>
<p><strong>Last Step: Sending e-mails from your Google Wave application</strong></p>
<p>You won&#8217;t be able to directly use an outside smtp server to do this. Your GAE application runs inside a sandbox that doesn&#8217;t give access to some python/java libraries (the socket library, for example).</p>
<p>But you can send emails using the GAE administrator account. You can refer to <a href="http://code.google.com/appengine/docs/python/mail/">this </a>to check the python email API. To use it in the previous application, you need to:</p>
<ul>
<li>Get the wave participants;</li>
<li>Pass them to the API in the desired format;</li>
</ul>
<p>The Google Wave API docs are not well documented/organized. So I&#8217;m gonna give more details here than I did before:</p>
<p>To get the the list of participants, you will have to call<br />
<code>context.GetRootWavelet().GetParticipants()</code><br />
This will return a set of participant ids. These ids are the google ids from the participants, plus &#8220;@googlewave.com&#8221;. A simples string parsing function here transform this list in a list of emails. The emails should be in one string and separated by &#8216;;&#8217;. This gives us the &#8216;to&#8217; field of the email.</p>
<p>The subject and body are your own choice.</p>
<p><strong>That&#8217;s it</strong></p>
<p>Check the code in the <a href="http://code.google.com/p/wavenotifier/">Google Code page for this project</a>. If you have any suggestions, corrections, improvements you want to send, feel free to checkout and modify the code.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=78&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/01/28/wave-robot-to-notify-wave-participants-of-meaningful-events-by-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
		<item>
		<title>Invisible characters hell</title>
		<link>http://developerrandomthoughts.wordpress.com/2010/01/18/invisible-characters-hell/</link>
		<comments>http://developerrandomthoughts.wordpress.com/2010/01/18/invisible-characters-hell/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 22:00:03 +0000</pubDate>
		<dc:creator>Rodrigo Gama</dc:creator>
				<category><![CDATA[Coding Horror]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[programming tips]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://developerrandomthoughts.wordpress.com/?p=70</guid>
		<description><![CDATA[Invisible characters, that can be presented like whitespace by lousy editors, have to be avoided at all costs.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=70&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://www.codinghorror.com/blog/archives/001310.html">Whitespace: the silent killer</a> and re-reading <a href="http://www.codinghorror.com/blog/archives/001319.html">The Great  Newline Schism</a>, both from Coding Horror, I remembered something I&#8217;d like to share here: When you write string literals in your code, NEVER type invisible characters (like spaces, or characters that can be misinterpreted by a bad text editor, or by one hat simply don&#8217;t support unicode).</p>
<p><strong>Motivation</strong></p>
<p>In a project I worked sometime ago, we had a javascript code that was something like this:</p>
<p><code><br />
var clearInvisibleCharacter = function(string) {<br />
     return string.replace(" ", '');</code></p>
<p>}</p>
<p>If you input a string which contains any number of whitespaces, the function will replace the first one with nothing, right? Wrong. The invisible character was NOT a whitespace. It was only shown as a space by the editor we were currently using.</p>
<p>The programmer who created the function probably ctrl+c&#8217;ed the character from somewhere else and ctrl+v&#8217;ed there. When we had to debug it to find out what was wrong, the behavior just didn&#8217;t fit.</p>
<p><strong>The solution</strong></p>
<p>So, how can we avoid this? It&#8217;s fairly straightforward, in this case: replace the &#8221; &#8221; literal with what you really wanted replaced, expressed in a unicode code, or a scape sequence if you&#8217;re dealing with regular expressions.</p>
<p>Trust me, you don&#8217;t want this blank-like characters running all over your code. It would drive you crazy. It drove our team crazy.</p>
<p>There is one good question beyond this, though:</p>
<ul>
<li>Why would a blank-like, non-whitespace character show up in the code? The answer is copy and paste. We have to be extra careful everytime we copy and paste anything, because it will be copied again, and it will spread. Do not trust whitespaces are whitespaces, unless explicitly stated.</li>
</ul>
<p>I plan on talking about why our editor couldn&#8217;t tell us why this was not a whitespace, as soon as I realize what really did happen. Any thoughts on this?</p>
<p><font size="1">Thanks for Campinho and Gabriel, who&#8217;ve helped discovering the problem in the first place, ages ago.</font></p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;">http://www.codinghorror.com/blog/archives/001310.html</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developerrandomthoughts.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developerrandomthoughts.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developerrandomthoughts.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developerrandomthoughts.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developerrandomthoughts.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developerrandomthoughts.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developerrandomthoughts.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developerrandomthoughts.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developerrandomthoughts.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developerrandomthoughts.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developerrandomthoughts.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developerrandomthoughts.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developerrandomthoughts.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developerrandomthoughts.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developerrandomthoughts.wordpress.com&amp;blog=7278835&amp;post=70&amp;subd=developerrandomthoughts&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developerrandomthoughts.wordpress.com/2010/01/18/invisible-characters-hell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fea5c1877123513dee4582cde362ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Gama</media:title>
		</media:content>
	</item>
	</channel>
</rss>
