<?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>José Mota &#187; Development</title>
	<atom:link href="http://josemota.net/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://josemota.net</link>
	<description>Web engineer &#38; architect</description>
	<lastBuildDate>Tue, 06 Jul 2010 09:41:52 +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>Singular resourcing on Rails 3 beta</title>
		<link>http://josemota.net/2010/07/singular-resourcing-on-rails-3-beta/</link>
		<comments>http://josemota.net/2010/07/singular-resourcing-on-rails-3-beta/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:22:32 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=153</guid>
		<description><![CDATA[Today I&#8217;ve been struggling on my project to be. I want to build it just right so I can learn Rails 3 the best way and enjoy the Ruby and Rails experience a little more. I love their ways, but sometimes it gets tough to go around the normal skeleton of an application.
Singular resourcing was [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve been struggling on my project to be. I want to build it just right so I can learn Rails 3 the best way and enjoy the Ruby and Rails experience a little more. I love their ways, but sometimes it gets tough to go around the normal skeleton of an application.</p>
<h3>Singular resourcing was harder to grasp than I thought</h3>
<p>The idea is actually pretty simple to understand: for example, <em>you say you want a user to access only one resume</em> because that&#8217;s the only one he would have. The scaffold generator adjusts the routing accordingly; well, at least it should.</p>
<p><span id="more-153"></span></p>
<script src="http://gist.github.com/464781.js"></script>
<p>It should actually be <code>resume_path</code> in the singular but for the <acronym title="Uniform Resource Locator">URL</acronym>&#8217;s to work you must have an <code>:as</code> parameter in the routes:</p>
<script src="http://gist.github.com/464784.js"></script>
<p>I got frustrated for realizing I had to do extra effort to understand something that should have been linear. I need to work around on this. I was thinking of normal resourcing the posts so it could be searchable later on and everything. But it doesn&#8217;t feel right, that&#8217;s not the business model. A user has its own resume, period. If he is to look at another one, then a custom route will be made up.</p>
<p>I&#8217;m asking for help now. If you have something to share regarding this matter, it would be absolutely great and I thank you very much.</p>
<p>PS: Yes, the application started from this point. I have no users yet, no static content, no nothing. Perhaps starting an application with a singleton scaffold was a bad idea. Perhaps start with the users first? After all, they are the system and the resume should belong to them.</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2010/07/singular-resourcing-on-rails-3-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rescaldo do Barcamp PT 2010</title>
		<link>http://josemota.net/2010/06/rescaldo-do-barcamp-pt-2010/</link>
		<comments>http://josemota.net/2010/06/rescaldo-do-barcamp-pt-2010/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 21:24:26 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Português]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=149</guid>
		<description><![CDATA[
Estou muito feliz por me poder envolver com pessoas felizes como as que encontrei no Barcamp que houve no Porto, este fim-de-semana. Obrigado à organização do Barcamp, correu muitíssimo bem e é suposto repetir-se.

Uma sugestão que me esqueci de dar: pensem maior! Sejamos ambiciosos e pensemos em engrandecer em quantidade de pessoas, energia e qualidade. [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="465" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=12373138&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="465" height="360" src="http://vimeo.com/moogaloop.swf?clip_id=12373138&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Estou muito feliz por me poder envolver com pessoas felizes como as que encontrei no Barcamp que houve no Porto, este fim-de-semana. Obrigado à organização do <a href="http://barcamppt.org">Barcamp</a>, correu muitíssimo bem e é suposto repetir-se.</p>
<p><span id="more-149"></span></p>
<p>Uma sugestão que me esqueci de dar: pensem maior! Sejamos ambiciosos e pensemos em engrandecer em quantidade de pessoas, energia e qualidade. Aquilo que faz destes eventos especiais é <em>a energia que se acumula e os sorrisos que se criam e se partilham</em>. Mais vezes!</p>
<h3>Convite — Proposta de projeto comunitário</h3>
<p><strong>Estou a planear construir uma aplicação web comunitária</strong>. O objeto principal? O teu <em>Curriculum Vitae</em>. Quero criar um mecanismo que te permita gostar de manter um CV e usá-lo de maneiras mais criativas e funcionais. O teu contributo é importante para mim e dessa forma, convido-te a <a href="http://josemota.wufoo.com/forms/questionario-cv">preencheres este formulário</a>. A informação que eu conseguir juntar será preciosa para eu conseguir tomar decisões mais acertadas no início do projeto e torná-lo desejável logo no arranque!</p>
<p>Eu vou fazer um resumo da informação que conseguir juntar, brevemente. Quero conseguir ter 100 questionários preenchidos. Portanto, junta-te à festa e espalha a notícia! Fala com quem não tem CV, com quem tem dificuldades em fazer/manter o seu. Convida-os a participarem, vai ser genial!</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2010/06/rescaldo-do-barcamp-pt-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apresentação no Barcamp PT</title>
		<link>http://josemota.net/2010/05/apresentacao-no-barcamp-pt/</link>
		<comments>http://josemota.net/2010/05/apresentacao-no-barcamp-pt/#comments</comments>
		<pubDate>Wed, 19 May 2010 18:49:11 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Personal improvement]]></category>
		<category><![CDATA[Português]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=146</guid>
		<description><![CDATA[Vou estar no Barcamp PT Primavera10. O encontro vai ser realizado no Hub do Porto, nos dias 5 e 6 de Junho e eu vou apresentar o tópico: Psicologia, Paixão e Rails (PPR) &#8211; Uma perspectiva mais humana do desenvolvimento Web.
Psicologia não exige curso superior
Se achas que não consegues ser psicólogo, então precisas mesmo de [...]]]></description>
			<content:encoded><![CDATA[<p>Vou estar no <a href="http://barcamppt.org/wiki/index.php/Primavera10">Barcamp PT Primavera10</a>. O encontro vai ser realizado no <a href="http://porto.the-hub.net/">Hub do Porto</a>, nos dias 5 e 6 de Junho e eu vou apresentar o tópico: <strong>Psicologia, Paixão e Rails (PPR) &#8211; Uma perspectiva mais humana do desenvolvimento Web</strong>.</p>
<h3>Psicologia não exige curso superior</h3>
<p>Se achas que não consegues ser psicólogo, então precisas mesmo de vir!</p>
<p>Um bom amigo é um psicólogo; um bom homem da web também é (leia-se &#8220;deve ser&#8221;) um psicólogo. As variáveis aqui são o prisma e a aplicação da ciência. Vou falar de como psicologia afecta as nossas decisões, bem como as dos nossos clientes e de como podemos contornar os tão afamados entraves e desatinos.</p>
<h3>Paixão é a força motriz</h3>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="280" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/u6XAPnuFjJc&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="280" src="http://www.youtube.com/v/u6XAPnuFjJc&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Não é o dinheiro que nos motiva (pelo menos não só). A verdadeira força que nos orienta a atingir resultados e ter motivação é <em>paixão</em>. Os teus pais sempre te disseram: <cite>Faz aquilo que gostas.</cite> ou <cite>Quem corre por gosto, não cansa.</cite></p>
<h3>Ruby on Rails para concretizar</h3>
<p>Até hoje ainda não encontrei ferramenta mais completa e linguagem mais simples do que Rails e Ruby, respectivamente. O padrão MVC aproxima o negócio do cliente ao software que quer implementar. O REST permite que os objetos de negócio sejam manipulados de forma simples e uniforme. Existem tantas outras coisas que fazem do Rails a ferramenta de elite.</p>
<p>Se quiserem saber mais, venham! Estou a pensar em apresentar algo mais interativo; algo como envolver a audiência de um certo modo, portanto acho que vai ser bastante engraçado!</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2010/05/apresentacao-no-barcamp-pt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML Semantics: br&#8217;s &amp; control labels</title>
		<link>http://josemota.net/2010/04/html-semantics-brs-control-labels/</link>
		<comments>http://josemota.net/2010/04/html-semantics-brs-control-labels/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 21:27:52 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=141</guid>
		<description><![CDATA[Yesterday I gave birth to a nice debate about &#60;br /&#62;. I threw that tweet because I was facing a terrible blunder from a fellow designer. He was using &#60;br /&#62;'s to wrap an &#60;hr /&#62; just to give the ruler some space — instead of adding margins to it —. Paulo Zoom and Levi [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I gave birth to <a href="http://twitter.com/josemotanet/status/13001945877">a nice debate</a> about <code>&lt;br /&gt;</code>. I threw that tweet because I was facing a terrible blunder from a fellow designer. He was using <code>&lt;br /&gt;'s</code> to wrap an <code>&lt;hr /&gt;</code> just to give the ruler some space — instead of adding margins to it —. <a href="http://paulozoom.com">Paulo Zoom</a> and <a href="http://levifig.com">Levi Figueira</a> propelled the whole thing and I kinda moderated it. The end result was quite satisfying, I must say.</p>
<p><span id="more-141"></span></p>
<h3>Our conclusions</h3>
<p>The only way I&#8217;d use <code>&lt;br /&gt;</code> would be for:</p>
<ul>
<li>Addresses;</li>
<li>Poems;</li>
<li>Multiple radio buttons / checkboxes.</li>
</ul>
<h3>There was one more thing.</h3>
<p>Then the conversation shifted towards how to include labels, inputs and paragraphs inside each other. Levi found <a href="http://www.w3.org/TR/2010/WD-html5-20100304/forms.html#the-label-element">this about labels and inputs</a> on the <a href="http://www.w3.org/TR/2010/WD-html5-20100304/">HTML5 specification</a>:</p>
<blockquote><p>The <code>label</code> represents a caption in a user interface. <strong>The caption can be associated with a specific form control, known as the </strong><code><strong>label</strong></code><strong> element&#8217;s labeled control</strong>, either using <code>for</code> attribute, or by putting the form control inside the <code>label</code> element itself.</p></blockquote>
<p>The idea of including an input inside a label — <code>&lt;label&gt;Label: &lt;input /&gt;&lt;/label&gt;</code> — didn&#8217;t convince Paulo as he thought it felt wrong. It&#8217;s not that bad if you think of this particular example, for instance. Consider a series of checkboxes for a certain field. It would be handy if people knew they can click the text and select the checkbox too, right? Like this:</p>
<p><label><br />
<input type="checkbox" /> Checkbox 1</label><label><br />
<input type="checkbox" /> Checkbox 3</label><label><br />
<input type="checkbox" /> Checkbox 3</label></p>
<p>If you click the labels, the checkboxes are activated. And it&#8217;s perfectly semantic as the labels work as controls alike.</p>
<p>Thank you, Paulo and Levi!</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2010/04/html-semantics-brs-control-labels/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework: friend or foe?</title>
		<link>http://josemota.net/2010/01/zend-framework-friend-or-foe/</link>
		<comments>http://josemota.net/2010/01/zend-framework-friend-or-foe/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 23:21:15 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=126</guid>
		<description><![CDATA[Yesterday I started working for Goweb, a portuguese web development agency. I&#8217;m working as a Zend Framework developer and I must say I&#8217;m very surprised for what I&#8217;m learning from the experience so far. It has its unique philosophy – if I can call it like that – and way of coding.
It&#8217;s not just another [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Zend Framework logo" src="http://dev.juokaz.com/wp-content/uploads/2009/04/logo-zend-framework.jpg" alt="" width="169" height="114" />Yesterday I started working for <a href="http://www.goweb.pt">Goweb</a>, a portuguese web development agency. I&#8217;m working as a <a href="http://framework.zend.com">Zend Framework</a> developer and I must say I&#8217;m very surprised for what I&#8217;m learning from the experience so far. It has its unique philosophy – if I can call it like that – and way of coding.</p>
<p>It&#8217;s not just another MVC framework. It&#8217;s a set of <acronym title="Pre-Hypertext Processing">PHP</acronym> classes (one of them actually enables MVC and makes it work stand-alone) that allows you to focus a little more on your application logic rather than spending time on fixing technical bugs.</p>
<p><span id="more-126"></span></p>
<h3>Is it any good compared to other frameworks?</h3>
<p>Considering I have Ruby on Rails and CodeIgniter background, I should point out that all three are different, although Rails and CI have similar approaches to what they try to reach. Zend FW aims to be more generic and reach as much as it can pursue. Since it doesn&#8217;t have an exact folder structure and conventions take very little into consideration, it&#8217;s kinda farfecthed to say it&#8217;s better or worse than the other two.</p>
<h3>What I DO know is…</h3>
<ul>
<li>Rails&#8217; conventions and ease of implementation are gold to me. You can just think of an application architecture and just start building it!</li>
<li>Its ActiveRecord is <strong>major</strong>.</li>
<li>CodeIgniter&#8217;s naming convention and learning curve is simpler than Zend&#8217;s.</li>
<li>Zend&#8217;s flexibility lets you do whatever you want (as long as you don&#8217;t see any advantage on ORM).</li>
<li>Zend&#8217;s form design pattern is concise and pretty solid.</li>
<li>Zend lets you use any template systems you want (Rails and CI are not that flexible I believe).</li>
<li>Zend has direct Web services, <acronym title="Portable Document Format">PDF</acronym>, email and authentication/ACL support, amongst others.</li>
</ul>
<p>As you are probably guessing, <em>I&#8217;m definitely biased towards Rails</em>. It&#8217;s just easier for me to get things done. Simple, clean and fast. However, my job is to embrace Zend FW and to explore its potential. I would love to hear from you guys. <strong>What do you think about the framework?</strong></p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2010/01/zend-framework-friend-or-foe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rails à moda do Porto — Episódio 4</title>
		<link>http://josemota.net/2009/09/rails-a-moda-do-porto-episodio-4/</link>
		<comments>http://josemota.net/2009/09/rails-a-moda-do-porto-episodio-4/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 16:39:19 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=119</guid>
		<description><![CDATA[A nossa aplicação Escola está a andar sobre rails (andar sobre rodas já é muito século XIX  ). As possibilidades de transformar conteúdo em formatos diferentes são imensas! Por defeito, temos a possibilidade de gerar XML e JSON. Através da ajuda de outras bibliotecas, podemos gerar o que quisermos, desde PDF a RSS, passando [...]]]></description>
			<content:encoded><![CDATA[<p>A nossa aplicação <em>Escola</em> está a andar sobre <em>rails</em> (andar sobre rodas já é muito século XIX <img src='http://josemota.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). As possibilidades de transformar conteúdo em formatos diferentes são imensas! Por defeito, temos a possibilidade de gerar <acronym title="eXtensible Markup Language">XML</acronym> e JSON. Através da ajuda de outras bibliotecas, podemos gerar o que quisermos, desde <acronym title="Portable Document Format">PDF</acronym> a <acronym title="Really Simple Syndication">RSS</acronym>, passando inclusivamente por gerarmos <em>templates</em> diferentes para iPhone ou para outros dispositivos.</p>
<p><span id="more-119"></span></p>
<p>No <a href="/wp-content/uploads/rails-a-moda-do-porto/004.mov">episódio de hoje</a>, mostro como gerar <acronym title="eXtensible Markup Language">XML</acronym>, <acronym title="Really Simple Syndication">RSS</acronym> e JSON para a nossa lista de alunos. Deixo também algumas referências sobre como gerar <acronym title="Portable Document Format">PDF</acronym>. Se tiverem dúvidas não hesitem em apontá-las em baixo, terei o maior gosto em ajudar!</p>
<h3>Para a semana não há episódio</h3>
<p>Infelizmente na próxima semana não vou conseguir gravar o próximo episódio dado que vou estar a concentrar o meu esforço em lançar o <a href="http://blog.weebiz.com/2009/09/redesigning-weebiz/">novo design do Weebiz</a>. Até lá, sugiro que continuem a estudar o que foi feito até agora e inclusivamente mandem sugestões do que gostariam de ouvir num futuro episódio.</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2009/09/rails-a-moda-do-porto-episodio-4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rails à moda do Porto — Episódio 3</title>
		<link>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-3/</link>
		<comments>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-3/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 20:41:50 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=117</guid>
		<description><![CDATA[A parte mais importante de uma aplicação: pô-la a trabalhar. Como? Construindo lógica para satisfazer as necessidades do negócio.
Neste episódio constrói-se uma relação entre dois modelos: Aluno com Disciplina através de um novo modelo: Nota. Foi um bocado difícil por tudo a funcionar mas espero que consigam assimilar o conceito de relações, dado o contexto. [...]]]></description>
			<content:encoded><![CDATA[<p>A parte mais importante de uma aplicação: pô-la a trabalhar. Como? Construindo lógica para satisfazer as necessidades do negócio.</p>
<p><a href="/wp-content/uploads/rails-a-moda-do-porto/003.mov">Neste episódio</a> constrói-se uma relação entre dois modelos: Aluno com Disciplina através de um novo modelo: Nota. Foi um bocado difícil por tudo a funcionar mas espero que consigam assimilar o conceito de relações, dado o contexto. Existem outras situações com certeza e terão a sua ocasião de serem abordadas.</p>
<p><span id="more-117"></span></p>
<p>Se por alguma razão não conseguirem compreender o procedimento, comentem em baixo ou mandem-me um email com a vossa dúvida, terei o maior gosto em explicar.</p>
<h3>Código</h3>
<pre class='brush:bash'>script/generate scaffold disciplina nome:string creditos:integer
script/generate model nota valor:integer aluno_id:integer disciplina_id:integer</pre>
<pre class='brush:rails'>class Nota < ActiveRecord::Base
	belongs_to :aluno
	belongs_to :disciplina
end

class Disciplina < ActiveRecord::Base
	has_many :alunos, :through => :notas
	has_many :notas
end

class Aluno < ActiveRecord::Base
	has_many :disciplinas, :through => :notas
	has_many :notas
end</pre>
<pre class='brush:rails'>
# atribuir_disciplinas.html.erb

&lt;% form_for @aluno do |f| %&gt;
	&lt;% for disciplina in Disciplina.all do %&gt;
	&lt;p&gt;
		&lt;%= label_tag &quot;&quot;, disciplina.nome %&gt;
		&lt;%= check_box_tag &quot;aluno[disciplina_ids][]&quot;, disciplina.id, @aluno.disciplinas.include?(disciplina) %&gt;
	&lt;/p&gt;
	&lt;% end %&gt;
	&lt;%= f.submit &quot;Atribuir&quot; %&gt;
&lt;% end %&gt;

# alunos/show.html.erb

&lt;ul&gt;
	&lt;% for aluno in @disciplina.alunos do%&gt;
		&lt;li&gt;&lt;%= aluno.primeironome %&gt; &lt;%= aluno.ultimonome %&gt;&lt;/li&gt;
	&lt;% end %&gt;
&lt;/ul&gt;
</pre>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails à Moda do Porto — Episódio 2</title>
		<link>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-2/</link>
		<comments>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-2/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 07:30:53 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=112</guid>
		<description><![CDATA[Quantas vezes pensamos no trabalho que dá validarmos formulários? Misturar lógica com apresentação apenas para validar uma coisa pequena consegue ser uma verdadeira dor de cabeça.

No seguimento da aplicação educacional que iniciámos no primeiro episódio, este segundo aborda validações. Com apenas duas instruções, conseguimos dizer ao sistema que queremos que o sistema verifique a presença [...]]]></description>
			<content:encoded><![CDATA[<p>Quantas vezes pensamos no trabalho que dá validarmos formulários? Misturar lógica com apresentação apenas para validar uma coisa pequena consegue ser uma verdadeira dor de cabeça.</p>
<p><span id="more-112"></span></p>
<p>No seguimento da aplicação educacional que iniciámos no primeiro episódio, <a href="/wp-content/uploads/rails-a-moda-do-porto/002.mov">este segundo</a> aborda <strong>validações</strong>. Com apenas duas instruções, conseguimos dizer ao sistema que queremos que o sistema verifique a presença de vários campos, bem como a numericalidade de outro campo. Existem muitas mais validações que podem ser consultadas na <a href="http://api.rubyonrails.org/"><acronym title="Application Programming Interface">API</acronym> do Rails</a>.</p>
<pre class="brush:rails">class Aluno &lt; ActiveRecord::Base
	validates_presence_of :primeironome, :ultimonome, :email, :sexo
	validates_numericality_of :telefone
end</pre>
<p>Já sabem, podem contribuir com os vossos comentários e dúvidas.</p>
<p><strong>Edit:</strong> A pedido de alguns assíduos colegas, segue abaixo a lista de todas as validações possíveis:</p>
<ol>
<li>validates_acceptance_of</li>
<li>validates_associated</li>
<li>validates_confirmation_of</li>
<li>validates_each</li>
<li>validates_exclusion_of</li>
<li>validates_format_of</li>
<li>validates_inclusion_of</li>
<li>validates_length_of</li>
<li>validates_numericality_of</li>
<li>validates_presence_of</li>
<li>validates_size_of</li>
<li>validates_uniqueness_of</li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rails à moda do Porto - Episódio 1</title>
		<link>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-1/</link>
		<comments>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-1/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 22:01:11 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Português]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=107</guid>
		<description><![CDATA[
Depois de muitos dias à espera, finalmente vos apresento: Rails à moda do Porto, o novo screencast de Ruby on Rails, em Português! O episódio de hoje é mesmo um cheirinho muito introdutório ao Rails, na tentativa de deixar um gostinho aos meninos mais curiosos.
Este é o primeiro episódio, é natural que tenha MUITA coisa a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/rails-a-moda-do-porto/001.mov"><img class="alignnone size-medium wp-image-108" title="rails-a-moda-do-porto" src="http://jose-mota.net/wp-content/uploads/2009/08/rails-a-moda-do-porto-465x348.jpg" alt="rails-a-moda-do-porto" width="465" height="348" /></a></p>
<p>Depois de muitos dias à espera, finalmente vos apresento: <strong><a href="/wp-content/uploads/rails-a-moda-do-porto/001.mov">Rails à moda do Porto</a></strong>, o novo screencast de Ruby on Rails, <em>em Português</em>! O episódio de hoje é mesmo um cheirinho muito introdutório ao Rails, na tentativa de deixar um gostinho aos meninos mais curiosos.</p>
<p>Este é o primeiro episódio, é natural que tenha MUITA coisa a apontar. Os comentários incentivam-se, contribuam para um melhor screencast!</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2009/08/rails-a-moda-do-porto-episodio-1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Screencast de Ruby on Rails em português?</title>
		<link>http://josemota.net/2009/08/screencast-de-ruby-on-rails-em-portugues/</link>
		<comments>http://josemota.net/2009/08/screencast-de-ruby-on-rails-em-portugues/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 21:14:28 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Português]]></category>

		<guid isPermaLink="false">http://jose-mota.net/?p=103</guid>
		<description><![CDATA[Visto que tenho vindo a conhecer colegas na indústria do desenvolvimento web e que gostariam de começar a aprender Ruby on Rails, eu começo a considerar a hipótese de realizar uma série de screencasts de Rails em português. Por mais entusiasmante que seja o desafio, preciso de saber se vou ter seguidores suficientes e interessados [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Ruby on Rails logo" src="http://freelanceswitch.com/images/rails-podcast.png" alt="" height="120" />Visto que tenho vindo a conhecer colegas na indústria do desenvolvimento web e que gostariam de começar a aprender Ruby on Rails, eu começo a considerar a hipótese de realizar uma <strong>série de screencasts de Rails em português</strong>. Por mais entusiasmante que seja o desafio, preciso de saber se vou ter seguidores suficientes e interessados no que tenho para manter uma boa motivação. Começar a série para depois a deixar a meio não é propriamente algo bom.</p>
<p><span id="more-103"></span></p>
<p>O propósito de iniciar um screencast, além do sentido de contribuição do meu conhecimento é dar a conhecer a beleza de programar Ruby e o imenso poder do Rails para construir aplicações web bem pensadas, bem desenhadas e sólidas.</p>
<p>Tu gostavas de conhecer Ruby e Rails? Gostavas de ter um conjunto de vídeos em Português que te mostrassem como fazer aplicações web em Rails? Gostavas inclusivamente de sugerir um workshop de 8 ou 16 horas sobre o assunto? Fico à espera de feedback.</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2009/08/screencast-de-ruby-on-rails-em-portugues/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Relationships in Rails 2.3</title>
		<link>http://josemota.net/2009/04/relationships-in-rails-2-3/</link>
		<comments>http://josemota.net/2009/04/relationships-in-rails-2-3/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 22:59:33 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://localhost:8888/?p=77</guid>
		<description><![CDATA[Ruby on Rails is becoming quite a piece of software. I&#8217;ve been learning how to work with its latest version to date, 2.3, for a series of workshops on web development. It has surprised me how easy it is now to accomplish a simple task such as multi-model form processing. Let me show what I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Ruby on Rails is becoming quite a piece of software. I&#8217;ve been learning how to work with its latest version to date, 2.3, for a series of workshops on web development. It has surprised me how easy it is now to accomplish a simple task such as multi-model form processing. Let me show what I&#8217;ve been doing lately.</p>
<p><span id="more-77"></span></p>
<h3>Case study: a school</h3>
<p>The example I am going to show my attendees resembles a typical school situation. In a nutsheel:</p>
<ul>
<li>Students have Subjects.</li>
<li>Subjects have Students.</li>
<li>Students have Grades to Subjects.</li>
</ul>
<div id="attachment_78" class="wp-caption alignnone" style="width: 452px"><a href="/wp-content/uploads/2009/07/rails-relationships-student.png"><img class="size-full wp-image-78" title="Rails relationships — student" src="/wp-content/uploads/2009/07/rails-relationships-student.png" alt="Rails relationships — student" width="442" height="98" /></a><p class="wp-caption-text">Rails relationships — student</p></div>
<h3>The Models</h3>
<h4>Student</h4>
<pre class='brush:rails'>class Student < ActiveRecord::Base
   has_many :grades
   has_many :subjects, :through => :grades, :uniq => true
   accepts_nested_attributes_for :grades, :allow_destroy => true
end</pre>
<h4>Subject</h4>
<pre class='brush:rails'>class Subject < ActiveRecord::Base
  validates_uniqueness_of :shortname
  has_many :grades
  has_many :students, :through => :grades, :uniq => true
end
</pre>
<h4>Grade</h4>
<pre class='brush:rails'>class Grade < ActiveRecord::Base
  belongs_to :subject
  belongs_to :student
  validates_presence_of :value
end
</pre>
<h3>And the magic trick!</h3>
<p>Through <em>accepts_nested_attributes_for</em>, the student's <em>form_for</em> can now accept nested fields through <em>fields_for</em> for setting Grades' data.</p>
<p>Everytime a student is created, subjects are not directly associated to him. You need to create a form in which you allow to assign a student the subjects you want.</p>
<p>[image missing]</p>
<p>This tells you that a student can have an array of subject id's. You even get to see what subjects are already assigned and dissociate them just like that! When the associations are done, a new Grade record is created to associate the first two modules. Unfortunately, when the associations are dismantled, the Grade association is gone too.</p>
<p>If you know Railscasts, the <a href="http://railscasts.com/episodes?search=complex+forms">Complex Forms series</a> explain this task for Rails &lt; 2.3. But now it has become easier and easier to associate models and worrying less about your structure.</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2009/04/relationships-in-rails-2-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to backup your Drupal site using Backup &amp; Migrate</title>
		<link>http://josemota.net/2009/04/how-to-backup-your-drupal-site-using-backup-migrate/</link>
		<comments>http://josemota.net/2009/04/how-to-backup-your-drupal-site-using-backup-migrate/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 17:15:44 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://localhost:8888/?p=76</guid>
		<description><![CDATA[Back from the dead; I mean, my hosting has been dead for more than a week. That&#8217;s why I finally decided to back my Drupal website up just in case I get screwed again. The magic tool: Backup &#38; Migrate!

Backup &#38; Migrate is a Drupal module that, once installed, allows you to easily backup your [...]]]></description>
			<content:encoded><![CDATA[<p>Back from the dead; I mean, my <a title="CoreSP (honestly, they should know better)" href="http://coresp.com">hosting</a> has been dead for more than a week. That&#8217;s why I finally decided to back my Drupal website up just in case I get screwed again. The magic tool: <a href="http://drupal.org/project/backup_migrate">Backup &amp; Migrate</a>!</p>
<p><span id="more-76"></span></p>
<p>Backup &amp; Migrate is a Drupal module that, once installed, allows you to easily backup your entire database into one single file. It also has the ability to:</p>
<ul>
<li>Restore that backup in any Drupal installation.</li>
<li>Schedule backup generation.</li>
<li>Generate backups under gzip, bzip or zip format.</li>
<li>Select only the tables you want to backup and even the table structure (no content).</li>
</ul>
<p>The only thing I found missing is file backup, such as images, themes and other modules. I honestly hope it knows what modules were installed so the only thing I need to do is paste the entire <code>sites</code> folder, install this module, import the database and <em>wham!</em>,  the site is up and running. Oh and by the way, Drupal core version is something to consider, since it depends heavily on the database configurations. Just make sure the version you currently use is the same to the one you&#8217;re importing the database to.</p>
<p>If you know Drupal, you know portability is a serious issue of his. Well, at least you know how to back it up and even set boundaries between your development and production environments!</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2009/04/how-to-backup-your-drupal-site-using-backup-migrate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a system on your own when you&#039;re a rookie</title>
		<link>http://josemota.net/2009/03/building-a-system-on-your-own-when-youre-a-rookie/</link>
		<comments>http://josemota.net/2009/03/building-a-system-on-your-own-when-youre-a-rookie/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 21:48:44 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://localhost:8888/?p=72</guid>
		<description><![CDATA[If you&#8217;re like me, you&#8217;ll want to build your website the hard way, just so you can get to know a little more on programming PHP and understanding certain aspects regarding its planning and structure.
This post is taking place after a conversation I had with a friend of mine in college about building a website [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me, you&#8217;ll want to build your website the hard way, just so you can get to know a little more on programming <abbr title="PHP: Hypertext Preprocessor"><acronym title="Pre-Hypertext Processing">PHP</acronym></abbr> and understanding certain aspects regarding its planning and structure.</p>
<p>This post is taking place after a conversation I had with a friend of mine in college about building a website from scratch, in order to learn <acronym title="Pre-Hypertext Processing">PHP</acronym>. Guess what I told her <img src='http://josemota.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>So what if you just wanted to build a website to start a business right away and never worry about if it works? Is <em>building a website / web application the best solution</em> if you wanna start off successful and harmlessly?</p>
<p><span id="more-72"></span></p>
<h3>Know what you want</h3>
<p>First of all, you need to focus on pointing out what you want. What is it?</p>
<ul>
<li>A static information website, with a couple forms?</li>
<li>A blog?</li>
<li>If you are a photographer, a photo gallery to use as a portfolio?</li>
<li>A CRM application?</li>
<li>&#8230;</li>
</ul>
<blockquote><p>With great power comes great responsability.</p></blockquote>
<p>Whatever you are trying to do, it&#8217;s important you know if you can do it or go for already existing applications for your needs. If it&#8217;s a blog or a photo gallery, I&#8217;d suggest using a <acronym title="Content Management System">CMS</acronym> like <a href="http://drupal.org">Drupal</a> or <a href="http://wordpress.org">Wordpress</a>. As for CRM platforms, there are lots of them, like <a href="http://xlsuite.org">XLSuite</a> or <a href="http://sugarcrm.com">SugarCRM</a> are in the list.</p>
<h3>Choosing a framework or not</h3>
<p>Again, if you&#8217;re going the hard way, you will most likely discard the option of using a framework such as the Zend framework or CodeIgniter, since these spare you the application code management such as <acronym title="Uniform Resource Locator">URL</acronym> aliases and filter, database abstraction / configuration and templating, amongst other things.</p>
<p>You have two choices:</p>
<ol>
<li>Not use a framework and learn everything you need from top to bottom. This is particularly good choice if you&#8217;re inexperienced but want to learn how to write and manage an <em>application&#8217;s architecture</em> over programming logic.</li>
<li>Choose a framework and focus only on the <em>programming logic</em>, leaving architecture details to the framework. This is a good choice if you have acquired some knowledge over time and so you feel confident you will be using such a framework more often, dedicating more time to the application itself and not just its skeleton.</li>
</ol>
<h3>What resources you have</h3>
<p>I only advise <a href="http://php.net"><acronym title="Pre-Hypertext Processing">PHP</acronym>&#8217;s official website</a>. It contains all the reference regarding the language and packages included such as database operations, <acronym title="eXtensible Markup Language">XML</acronym>, Web services, everything. There&#8217;s always <em>Twitter, <acronym title="Internet Relay Chat">IRC</acronym> and Google</em> to help you out. Hey, it did for me, why not you?</p>
<h3>End of story</h3>
<p><acronym title="Pre-Hypertext Processing">PHP</acronym> is just so freaking easy. The hard part is organizing your thought. If you need any help, drop by this website and reach me, I&#8217;d be glad to help. If you have any resources or suggestions you&#8217;d like to mention, please do!</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2009/03/building-a-system-on-your-own-when-youre-a-rookie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache 2 on Mac OS X Leopard 10.5 issue on upgrade</title>
		<link>http://josemota.net/2008/12/apache-2-on-mac-os-x-leopard-10-5-issue-on-upgrade/</link>
		<comments>http://josemota.net/2008/12/apache-2-on-mac-os-x-leopard-10-5-issue-on-upgrade/#comments</comments>
		<pubDate>Thu, 25 Dec 2008 14:00:13 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[mac leopard apache]]></category>

		<guid isPermaLink="false">http://localhost:8888/?p=43</guid>
		<description><![CDATA[This weekend I decided to arrange my hard drive in a way that I could have a 5GB partition with sinful Windows XP to play some games with the family. To do that, I bought a 1TB external hard drive to use as a Time Machine backup for the process. At the time, my disk [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I decided to arrange my hard drive in a way that I could have a 5GB partition with sinful Windows XP to play some games with the family. To do that, I bought a 1TB external hard drive to use as a Time Machine backup for the process. At the time, my disk was already partitioned for Ubuntu but since I didn&#8217;t find it useful anymore, I replaced it for Windows.</p>
<p><span id="more-43"></span></p>
<p>Well, the good thing is I can actually play some old games like Empire Earth and Counter-Strike with the cousins to have some fun. The bad news is my Apache server settings screwed up. Two things happened. <em>Number one: </em>http://localhost/~user was thrown a 403 Forbidden access. This problem is the result of the user configurations for the server whilst the reinstallation / upgrade of the system, they don&#8217;t exist now. What you have to do is very simple. Go to /private/etc/apache2/users and create a file <em>yourshortusername.conf</em> and type this:</p>
<pre class="brush:bash"><Directory "/Users/shortusername/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory></pre>
<p>Restart your server and you&#8217;re ready to go!</p>
<p>Number two: My virtual hosts blew away. I should have kept a record on how to do this in case I had to a reinstallation, I guess I can kick myself now. (I&#8217;m solving this as I write this post <img src='http://josemota.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) Three steps:</p>
<ol>
<li>Go to /private/etc/hosts and say you want to assign 127.0.0.1 to your alias, like this: 127.0.0.1 youralias</li>
<li>Go to /private/etc/apache2 and uncomment the line that includes the virtual hosts configuration file. If you want to use <acronym title="Pre-Hypertext Processing">PHP</acronym>, you might want to uncomment the line that includes it as well.</li>
<li>Finally, go to /private/etc/apache2/extra and edit the httpd-vhosts.conf mentioned on 2. and add this chunk of code:</li>
</ol>
<pre class='brush:bash'><VirtualHost 127.0.0.1>
DocumentRoot "/path/to/your/site/"
ServerAlias yoursitename
ServerName yoursitename
</VirtualHost></pre>
<p>Restart your server and virtual hosts are up and running.</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2008/12/apache-2-on-mac-os-x-leopard-10-5-issue-on-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Collaboration in development</title>
		<link>http://josemota.net/2008/10/collaboration-in-development/</link>
		<comments>http://josemota.net/2008/10/collaboration-in-development/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 23:39:10 +0000</pubDate>
		<dc:creator>José Mota</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://localhost:8888/?p=60</guid>
		<description><![CDATA[I usually write after something big approaches me. This could be no bigger: collaboration is not considered when developing. Well, at least not lately. Here&#8217;s what happened:
Roger Byrne asked me to check a plugin and help him in a submission form. Roger said to me that the Javascript inside the wordpress instalation he already had [...]]]></description>
			<content:encoded><![CDATA[<p>I usually write after something big approaches me. This could be no bigger: <em>collaboration is not considered when developing</em>. Well, at least not lately. Here&#8217;s what happened:</p>
<p><span id="more-60"></span><a href="http://styl.eti.me">Roger Byrne</a> asked me to check a plugin and help him in a submission form. Roger said to me that the Javascript inside the wordpress instalation he already had was obtrusive and he needed to render the form with <acronym title="Cascading Style Sheets"><acronym title="Cascading Style Sheets">CSS</acronym></acronym> only. So I did it; delivered. He asked me why the form wasn&#8217;t submitting. I didn&#8217;t know because I didn&#8217;t make the plugin. In either way, the plugin was kind of a mess. Between lack of standards and lack of a plugin workflow, me and Roger didn&#8217;t figure out what was happening.</p>
<p>So what do I mean with all of this? Again, collaboration is not considered when developing. Developers assume their code is flawless and it will work. However, they don&#8217;t take a look at crucial guidelines of development: (Note: I&#8217;m thinking of plugins as I write this, but any situation is perfectly suitable.)</p>
<h3>Logical separation</h3>
<p>Logic, content, generated content (different than just content), presentation and behaviour all set apart. Logic goes to one <acronym title="PHP: Hypertext Preprocessing"><acronym title="Pre-Hypertext Processing">PHP</acronym></acronym> file, content goes to one markup file, presentation in a <acronym title="Cascading Style Sheets"><acronym title="Cascading Style Sheets">CSS</acronym></acronym> file, special behaviour in a <acronym title="Javascript"><acronym title="JavaScript">JS</acronym></acronym> file. Generated content can be either part of the <acronym title="Cascading Style Sheets">CSS</acronym> or the <acronym title="JavaScript">JS</acronym>, depends on what&#8217;s its purpose.</p>
<h3>Concerning classes…</h3>
<p><em>Concerning markup, please don&#8217;t drown it in classes!</em> Keep it with an all-around div with an id, most likely you won&#8217;t need more, you&#8217;ll most likely style the children elements from that single id. Also, don&#8217;t flood it with unnecessary div&#8217;s, it hardens its understanding and &#8230; it really might be just clutter. Are they for <acronym title="Internet Explorer">IE</acronym>? Use a <a href="http://code.google.com/p/ie7-js/">script</a> instead. The client doesn&#8217;t have Javascript? Get <a href="http://firefox.com">Firefox</a>. If neither, then you don&#8217;t need any div&#8217;s at all.</p>
<p>Meta-information for each feature and a short glance at the top; easy to read and above all, summarize every major feature, so a thrown in developer knows what a certain code does.</p>
<h3>Comments,</h3>
<p>In the right place. Don&#8217;t just write a comment line before every single line. Only some guidelines. One practice I really like is split the logic of a function into blocks like this:<br />
<code>&lt;?php # Semantic block 1 {<br />
Code for block one goes here...<br />
# }<br />
# Semantic block 2 {<br />
Code for block two goes here..<br />
# }<br />
?&gt;</code><br />
Some text editors like <a href="http://macromates.com">Textmate</a> have the ability to fold these kinds of blocks, which is a great visual aid in developing and first-hand comprehension.</p>
<h3>End of story</h3>
<p><strong>Use web standards, separate each component, take advantage of semantics in comments and talk it easy.</strong> Better than a developer is one that knows how to explain what he&#8217;s done. I&#8217;m sure Roger will appreciate it as well as me.</p>]]></content:encoded>
			<wfw:commentRss>http://josemota.net/2008/10/collaboration-in-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
