<?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>Elton Luís Minetto</title>
	<atom:link href="http://eltonminetto.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://eltonminetto.net</link>
	<description>Site pessoal de Elton Minetto</description>
	<lastBuildDate>Mon, 14 May 2012 17:25:18 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='eltonminetto.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Elton Luís Minetto</title>
		<link>http://eltonminetto.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://eltonminetto.net/osd.xml" title="Elton Luís Minetto" />
	<atom:link rel='hub' href='http://eltonminetto.net/?pushpress=hub'/>
		<item>
		<title>Usando Jekyll e Github Pages</title>
		<link>http://eltonminetto.net/2012/05/14/usando-jekyll-e-github-pages/</link>
		<comments>http://eltonminetto.net/2012/05/14/usando-jekyll-e-github-pages/#comments</comments>
		<pubDate>Mon, 14 May 2012 17:18:19 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[etc]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=985</guid>
		<description><![CDATA[A Coderockr está de site novo! Havíamos iniciado o projeto a algumas semanas mas a grande carga de projetos não nos permitia terminar a implementação da nossa idéia inicial: um backend desenvolvido usando Slim Framework e uma interface que leria os dados de projetos e demais textos de um banco de dados MySQL. Como precisávamos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=985&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://coderockr.com" target="_blank">Coderockr</a> está de site novo!<br />
Havíamos iniciado o projeto a algumas semanas mas a grande carga de projetos não nos permitia terminar a implementação da nossa idéia inicial: um backend desenvolvido usando <a href="http://eltonminetto.net/2011/11/29/slim-framework/" target="_blank">Slim Framework</a> e uma interface que leria os dados de projetos e demais textos de um banco de dados MySQL.<br />
Como precisávamos renovar o site adicionando alguns projetos que fizemos nos últimos meses resolvi tentar outra abordagem. Eu estou estudando o <a href="http://octopress.org/" target="_blank">Octopress</a> como substituto ao WordPress para este site, e como ele é baseado no <a href="http://jekyllrb.com/" target="_blank">Jekyll</a> fiz um teste usando o <a href="http://pages.github.com/" target="_blank">Github Pages</a> para armazenar o nosso novo site.<br />
A parte mais complexa nós já tinhamos, que era o belo design feito pelo <a href="http://twitter.com/thiagovieiracom" target="_blank">@thiagovieiracom</a>, só faltava configurar o Github e o Jekyll.<br />
O primeiro passo foi instalar o Jekyll. No Mac eu precisei executar:</p>
<p><pre class="brush: bash;">
sudo gem install jekyll
</pre></p>
<p>Depois é preciso criar um novo repositório no Github para a sua página. No caso da Coderockr criamos</p>
<p><pre class="brush: bash;">
coderockr.github.com
</pre></p>
<p>É sempre necessário criar nesse formato: usuario.github.com. Outro exemplo, o teste que estou fazendo com o Octopress: <a href="http://eminetto.github.com" target="_blank">http://eminetto.github.com</a></p>
<p>Depois de configurar o repositório na minha máquina eu criei a seguinte estrutura de diretórios/arquivos:</p>
<p><pre class="brush: bash;">
coderockr.github.com
    _includes
        andre.html : currículo do @xorna
        destaque_1.html : conteúdo HTML do primeiro projeto em destaque da página
        destaque_2.html : conteúdo HTML do segundo projeto em destaque da página
        destaque_3.html : conteúdo HTML do terceiro projeto em destaque da página
        elton.html : meu currículo
        marcos.html : currículo do @msilvagarcia
        projects.html : template usado para apresentar os projetos da Coderockr
        thiago.html : currículo do @thiagovieiracom
    _layouts
        default.html : layout default das páginas. Nesse caso só mostra o conteúdo delas 
    _posts : vou explicar daqui a pouco
    _site: diretório gerado automaticamente pelo Jekyll com o html final do site
    public :  diretório com os arquivos JS, CSS e imagens, que será copiado para o _site
    _config.yml : arquivo de configurações do Jekyll
    CNAME : necessário para poder usar um domínio diferente de usuario.github.com, nesse caso coderockr.com
    index.html :  página html com tags do sistema de templates usado pelo Jekyll para carregar os posts e includes
</pre></p>
<p>Como o Jekyll foi criado para ser um sistema de blogs fizemos uma pequena adaptação no seu uso, considerando cada projeto da Coderockr como um post em um blog, salvando os arquivos na pasta _posts. É necessário que o arquivo seja salvo no formato <em>2012-05-10-arkpad.html</em> (ano-mes-dia-url)<br />
Os arquivos podem ser criados no formato HTML ou Markdown, bastando renomeá-los para .md e o Jekyll vai fazer o parse e gerar um HTML estático com o conteúdo final.</p>
<p>O Jekyll usa um sistema de templates chamado Liquid bem fácil de usar. Exemplo de trecho do index.html usado para gerar os currículos:</p>
<p><pre class="brush: xml;">
&lt;div class=&quot;wrap&quot;&gt;
  &lt;ul&gt;
    &lt;li&gt;
      {% include elton.html %}
    &lt;/li&gt;
    &lt;li class=&quot;last&quot;&gt;
      {% include andre.html %}
    &lt;/li&gt;
    &lt;li&gt;
      {% include marcos.html %}
    &lt;/li&gt;
    &lt;li class=&quot;last&quot;&gt;
      {% include thiago.html %}
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
</pre></p>
<p>Também é possível usar loops para mostrar os projetos (posts):</p>
<p><pre class="brush: xml;">
&lt;li class=&quot;wrap&quot;&gt;
    &lt;ul&gt;
      {% for post in site.posts limit:6 offset:0 %}
        {% include projects.html %}   
      {% endfor %}
    &lt;/ul&gt;
&lt;/li&gt;        
</pre><br />
O conteúdo de cada post é simples, como por exemplo:</p>
<p><pre class="brush: ruby;">
---
title: arkpad
type: iphone
image: /public/images/content/icon-arkpad.png
description: Tudo que existe de melhor no mercado de arquitetura, decoração e design está disponível no arkpad.
gallery:
    - /public/images/content/app-arkpad-1-4.jpg
    - /public/images/content/app-arkpad-2-4.jpg
    - /public/images/content/app-arkpad-3-4.jpg
    - /public/images/content/app-arkpad-4-4.jpg
---
Nele é possível navegar no rico catálogo de produtos (e seus fornecedores) com curadoria do serviço, consultar uma biblioteca visual de ambientes decorados, além de poder organizar suas próprias pastas de projetos com o conteúdo do aplicativo. Tudo sincronizado com o portal, http://arkpad.com.br.
&lt;p class=&quot;app&quot;&gt;&lt;a href=&quot;http://itunes.apple.com/br/app/arkpad/id403784852?mt=8&quot; title=&quot;App Store&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/public/images/appstore.png&quot; width=&quot;104&quot; height=&quot;30&quot; alt=&quot;App Store&quot; /&gt;&lt;/a&gt;
</pre></p>
<p>Nas primeiras linhas criamos variáveis (entre os três hífens) e um código html.<br />
No arquivo projects.html podemos usar as variáveis post.title, post.type, e o post.content que é o conteúdo HTML do post.</p>
<p>Para que o site responda pelo domínio oficial (coderockr.com) é preciso criar o arquivo CNAME com o nome do domínio e modificar o DNS para o endereço IP do Github.</p>
<p>As vantagens de usar essa abordagem foram várias, como:<br />
- facilidade de teste. Nas máquinas locais basta executar jekkyl &#8211;server &#8211;auto e acessar o endereço http://localhost:4000 para verificar o resultado gerado<br />
- velocidade. As páginas agora são estáticas, não dependendo mais de bancos de dados, o que aumenta bastante a performance e facilita o uso de cache<br />
- facilidade de alteração. Basta fazer um clone do repositório, alterar o necessário, fazer o commit e o push para que o Github execute o Jekyll e gere novamente as páginas estáticas<br />
- hospedagem gratuíta. O Github não cobra extra pela hospedagem das páginas</p>
<p>É nosso primeiro teste com essa ferramenta, mas estou gostando bastante do resultado e pretendo usar em mais projetos da Coderockr e provavelmente como plataforma de blog para esse site.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/985/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/985/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/985/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=985&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/05/14/usando-jekyll-e-github-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Palestra sobre segurança e crimes digitais</title>
		<link>http://eltonminetto.net/2012/05/07/palestra-sobre-seguranca-e-crimes-digitais/</link>
		<comments>http://eltonminetto.net/2012/05/07/palestra-sobre-seguranca-e-crimes-digitais/#comments</comments>
		<pubDate>Mon, 07 May 2012 21:18:19 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[etc]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/2012/05/07/palestra-sobre-seguranca-e-crimes-digitais/</guid>
		<description><![CDATA[No último fim de semana ministrei uma palestra sobre segurança e crimes digitais para uma turma formada por alunos de Sistemas de Informação e Direito, em um curso na Unoesc Chapecó.  Foi uma experiência muito legal, principalmente pelas contribuições da professora Elenice Bueno, que complementou os meus tópicos com excelentes explicações da área jurídica, que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=982&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>No último fim de semana ministrei uma palestra sobre segurança e crimes digitais para uma turma formada por alunos de Sistemas de Informação e Direito, em um curso na Unoesc Chapecó. </p>
<p>Foi uma experiência muito legal, principalmente pelas contribuições da professora <a href="facebook.com/nice.bueno/" target="_blank">Elenice Bueno</a>, que complementou os meus tópicos com excelentes explicações da área jurídica, que era o foco principal do curso que ela estava ministrando. Os alunos também fizeram comentários e deram mais alguns exemplos interessantes. </p>
<p>O material da palestra está nesse <a href="http://prezi.com/aupf1kqhzbik/securanca-da-informacao-e-crimes-digitais/" target="_blank">link</a>. Por ser uma apresentação feita no aplicativo Prezi não é possível fazer o download do material pelo site, mas se alguém tiver interesse é só entrar em contato que eu tento exportar para algum formato.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/982/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=982&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/05/07/palestra-sobre-seguranca-e-crimes-digitais/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Post no Javascript Brasil</title>
		<link>http://eltonminetto.net/2012/05/03/post-no-javascript-brasil/</link>
		<comments>http://eltonminetto.net/2012/05/03/post-no-javascript-brasil/#comments</comments>
		<pubDate>Thu, 03 May 2012 17:09:45 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[etc]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=977</guid>
		<description><![CDATA[Fui convidado por um dos meus gurus de Javascript, o  @osuissa,  a escrever um post no Javascript Brasil, sobre o Meteor. Espero poder contribuir com mais alguns posts, pois tenho trabalhado bastante com Javascript, e me divertindo bastante<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=977&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Fui convidado por um dos meus gurus de Javascript, o  <a href="http://twitter.com/osuissa" target="_blank">@osuissa</a>,  a escrever um post no <a href="http://javascriptbrasil.com/">Javascript Brasil</a>, sobre o <a href="http://javascriptbrasil.com/artigos/meteor">Meteor</a>.</p>
<p>Espero poder contribuir com mais alguns posts, pois tenho trabalhado bastante com Javascript, e me divertindo bastante <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/977/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/977/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/977/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/977/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/977/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/977/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/977/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/977/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=977&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/05/03/post-no-javascript-brasil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Crie sua marca pessoal</title>
		<link>http://eltonminetto.net/2012/05/03/crie-sua-marca-pessoal/</link>
		<comments>http://eltonminetto.net/2012/05/03/crie-sua-marca-pessoal/#comments</comments>
		<pubDate>Thu, 03 May 2012 17:02:46 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[etc]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=974</guid>
		<description><![CDATA[Recentemente encontrei um post que havia lido anos atrás e achei interessante comentá-lo aqui, pois ele continua relevante. O autor fala brevemente da importância de termos uma &#8220;personal brand&#8221; e cita algumas dicas úteis para nós que trabalhamos na área de TI. São elas (em tradução livre e com meus comentários): Lidere ou crie um [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=974&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recentemente encontrei um <a href="http://www.codinghorror.com/blog/2006/04/your-personal-brand.html">post</a> que havia lido anos atrás e achei interessante comentá-lo aqui, pois ele continua relevante. O autor fala brevemente da importância de termos uma &#8220;personal brand&#8221; e cita algumas dicas úteis para nós que trabalhamos na área de TI. São elas (em tradução livre e com meus comentários):</p>
<p><strong>Lidere ou crie um grupo de usuários</strong></p>
<p>Posso citar vários amigos da comunidade PHP que trabalharam em grupos de usuários (PHP-SP, PHP-SC, PHP-MS, PHP-Maranhão, etc) e hoje encontram-se em empregos ótimos, e muito respeitados nas suas áreas. É algo que vai ocupar um pouco do seu tempo livre, mas que tem muita recompensa.</p>
<p><strong>Crie ou contribua com um projeto open-soure popular</strong></p>
<p>Também muito importante, pois é uma chance de você mostrar a várias pessoas o seu código, a sua forma de trabalhar.<br />
Alguns exemplos: <a href="http://www.doctrine-project.org">Doctrine</a> e o grande <a href="http://twitter.com/guilhermeblanco">Guilherme Blanco</a>, <a href="https://github.com/Respect">Respect</a> e o seu criador <a href="http://twitter.com/alganet">Alexandre Gaigalas</a>.</p>
<p><strong>Escreva um blog</strong></p>
<p>Esse blog começou como um site onde eu anotava as coisas que eu ia aprendendo, para poder usar mais tarde caso necessário, e acabou gerando muitos amigos e algumas boas propostas de emprego/projetos. A minha regra é: se eu demorei mais de 30 min para resolver ou aprender algo, no mínimo posso salvar 30 min do tempo de alguém, então isso acaba virando um post.</p>
<p><strong>Publique um livro</strong></p>
<p>Publicar um livro nos dias de hoje é algo um pouco mais fácil do que a alguns anos atrás, graças a popularização dos e-books e seus formatos. Você pode também aproveitar as lojas e serviços como Amazon, iBooks, ou colocar a venda (ou de graça) no seu próprio site, como eu fiz com o <a href="http://www.zfnapratica.com.br">Zend Framework na Prática</a>.</p>
<p>Você também pode optar por um livro impresso e entrar em contato com as editoras, que estão sempre em busca de novos autores e títulos. Eu trabalhei com a Editora <a href="http://www.novatec.com.br/">Novatec</a> e tive uma boa experiência.</p>
<p>Se você me perguntar se vale a pena eu vou responder que financeiramente não é algo que vá te deixar rico, mas vai te trazer reconhecimento, satisfação e alguns ótimos amigos</p>
<p><strong>Palestre em conferências</strong></p>
<p>Existem várias conferências onde você pode mostrar seu conhecimento e aparecer para o mercado. Eu recomendo começar por eventos menores, do seu grupo de usuários, da sua empresa, da sua universidade, para conseguir mais confiança perante ao público e depois partir para as conferências maiores como PHPConf, FISL e até as internacionais (uma ambição que eu ainda tenho hehe). Aqueles velhos medos como &#8220;e se as pessoas da platéia souberem mais do que eu?&#8221;, &#8220;e se me perguntarem algo que eu não sei&#8221; são infundados, pois todos sabem que ninguém é &#8220;dono da verdade&#8221;. Todas as minhas experiências palestrando foram muito recompensadoras, desde apresentar para 5 pessoas até 2 auditórios cheios de gente, no FISL 2009.</p>
<p>Como o próprio autor do post comenta, essas são apenas algumas dicas, existem diversas outras formas de se fazer isso, mas já é um bom começo com um bom retorno.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/974/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=974&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/05/03/crie-sua-marca-pessoal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Maldito segmentation fault</title>
		<link>http://eltonminetto.net/2012/04/27/maldito-segmentation-fault/</link>
		<comments>http://eltonminetto.net/2012/04/27/maldito-segmentation-fault/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 18:30:50 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[coderockr]]></category>
		<category><![CDATA[codes]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=968</guid>
		<description><![CDATA[Esse é um daqueles posts que serve mais para me ajudar, mas acho que pode ser útil para mais pessoas. Já tive vários casos onde uma aplicação PHP gera um erro muito genérico nos logs do Apache, o famigerado &#8220;Segmentation fault&#8221;. Na prática significa que alguma coisa deu tão errado que o processo do Apache [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=968&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esse é um daqueles posts que serve mais para me ajudar, mas acho que pode ser útil para mais pessoas.<br />
Já tive vários casos onde uma aplicação PHP gera um erro muito genérico nos logs do Apache, o famigerado &#8220;Segmentation fault&#8221;. Na prática significa que alguma coisa deu tão errado que o processo do Apache que estava executando o seu script PHP foi cancelado. Mas o log não ajuda muito, pois podem ser várias coisas.<br />
Nesse post vou descrever o processo que fiz para encontrar um problema em uma aplicação. Os passos foram feitos em uma máquina virtual Ubuntu, a que eu gerei com o <a href="http://eltonminetto.net/2012/04/02/usando-o-vagrant-para-criar-maquinas-virtuais-para-desenvolvimento-e-testes/">Vagrant</a>.<br />
O primeiro passo é instalar os pacotes necessários para conseguirmos toda a informação possível:</p>
<p><pre class="brush: bash;">
apt-get install libapr1-dbg libaprutil1-dbg gdb php5-dbg
</pre></p>
<p>Precisamos também configurar o Apache para que ele gere um &#8220;dump&#8221; com toda a informação do erro em um arquivo. No arquivo /etc/apache2/apache2.conf eu adicionei a seguinte linha:</p>
<p><pre class="brush: bash;">
CoreDumpDirectory /tmp/apache2-gdb-dump
</pre></p>
<p>Também precisamos criar o diretório e dar permissões para o Apache criar os arquivos:</p>
<p><pre class="brush: bash;">
mkdir /tmp/apache2-gdb-dump
chown -R www-data:www-data /tmp/apache2-gdb-dump
</pre></p>
<p>Após reiniciar o Apache é só executar novamente o script que está gerando o erro, e um arquivo será gerado no diretório criado, o <i>/tmp/apache2-gdb-dump/core</i></p>
<p>Com esse arquivo podemos executar o gdb e verificar o que aconteceu com o programa. Precisamos executar:</p>
<p><pre class="brush: bash;">
gdb /usr/sbin/apache2 /tmp/apache2-gdb-dump/core
</pre></p>
<p>Será mostrado uma lista de ítens que o Apache executou. Para ver mais detalhe é só executar o comando<br />
<pre class="brush: bash;">
bt full
</pre></p>
<p>Analisando as mensagem é bem provável que você vai encontrar uma pista para o que exatamente está ocorrendo. No caso da minha aplicação que testei hoje o problema era na forma como estava carregando o arquivo .phar do Silex, conforme o que o gdb me mostrou:</p>
<p><pre class="brush: bash;">
#0  0x0112cefe in phar_get_archive (archive=0xbff5f87c, fname=0xb5dab6c4 &quot;/vagrant/SOA-Server/vendor/silex.phar&quot;, fname_len=55, alias=0x213f323c &quot;silex.phar&quot;, alias_len=10, error=0x0) at /build/buildd/php5-5.3.2/ext/phar/util.c:1255
</pre></p>
<p>Espero que esse post seja útil para mais alguém, e se você tiver outra receita de como desvendar esse tipo de problemas é só usar os comentários para dar a dica.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/968/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=968&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/04/27/maldito-segmentation-fault/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Git sparse checkouts</title>
		<link>http://eltonminetto.net/2012/04/25/git-sparse-checkouts/</link>
		<comments>http://eltonminetto.net/2012/04/25/git-sparse-checkouts/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 16:45:14 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[coderockr]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=966</guid>
		<description><![CDATA[Ontem eu e o colega Marcos Garcia nos deparamos com uma situação que acabou nos ensinando mais um truque do git Um dos repositórios privados da Coderockr no Github tem uma estrutura parecida com essa: A nossa necessidade era de fazer o deploy para o nosso servidor web apenas da pasta Web do projeto, não [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=966&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ontem eu e o colega <a href="http://twitter.com/msilvagarcia">Marcos Garcia</a> nos deparamos com uma situação que acabou nos ensinando mais um truque do git<br />
Um dos repositórios privados da <a href="http://www.coderockr.com" target="_blank">Coderockr</a> no Github tem uma estrutura parecida com essa:</p>
<p><pre class="brush: bash;">
Design - arquivos PSD e PNG com as telas do projeto
Docs - documentações do projeto
Android - porção Android 
iOS - porção de códigos para o iPhone/iPad
Web - interface de administração do projeto, acessível via web
library - diretório com entidades e webservices usado pelo projeto
</pre></p>
<p>A nossa necessidade era de fazer o deploy para o nosso servidor web apenas da pasta Web do projeto, não necessitando das demais. O git permite fazer algo assim usando <a href="http://help.github.com/submodules/" target="_blank">submodulos</a> mas não era exatamente o que procurávamos, principalmente porque cada submodulo deve ser um repositório separado no Github, o que iria aumentar os nossos custos mensais.<br />
Depois de algumas pesquisas no Google o Marcos encontrou a solução pro problema: o git sparse checkouts, uma opção que foi lançada com a versão 1.7 do git.<br />
Para exemplificar o uso, no nosso servidor agora fazemos o seguinte:</p>
<p><pre class="brush: bash;">
git clone &lt;repository_url&gt; &lt;directory&gt;
cd &lt;directory&gt;
</pre></p>
<p>Habilitamos a opção do sparse checkout</p>
<p><pre class="brush: bash;">
git config core.sparsecheckout true
</pre></p>
<p>Indicamos quais diretórios queremos ter acesso:</p>
<p><pre class="brush: bash;">
echo Web &gt;&gt; .git/info/sparse-checkout
echo library &gt;&gt; .git/info/sparse-checkout
</pre></p>
<p>E rodamos o comando <i>read-tree</i> para atualizar a árvore de diretórios </p>
<p><pre class="brush: bash;">
git read-tree -m -u HEAD
</pre></p>
<p>Se verificar com o comando <i>ls</i> é possível ver que os outros diretórios desapareceram do diretório do projeto<br />
Quando rodarmos um git pull para atualizar, apenas os diretórios Web e library serão atualizados.<br />
Com isso conseguimos resolver o nosso problema sem aumentar os nossos custos <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/966/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/966/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/966/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=966&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/04/25/git-sparse-checkouts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Meteor</title>
		<link>http://eltonminetto.net/2012/04/23/meteor/</link>
		<comments>http://eltonminetto.net/2012/04/23/meteor/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 17:22:06 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[etc]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=962</guid>
		<description><![CDATA[Esse post é minha participação no desafio Coderockr de programação. Eu escolhi desenvolver o aplicativo usando um framework de Javascript chamado Meteor, que conheci em um post no Hacker News e estava na minha lista de coisas interessantes a olhar com calma. Exatamente o tipo de situação que o desafio quer promover O Meteor é [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=962&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esse post é minha participação no <a href="http://www.coderockr.com/blog/2012/04/desafio-de-programacao/" target="_blank">desafio Coderockr de programação</a>.<br />
Eu escolhi desenvolver o aplicativo usando um framework de Javascript chamado <a href="http://meteor.com/">Meteor</a>, que conheci em um post no Hacker News e estava na minha lista de coisas interessantes a olhar com calma. Exatamente o tipo de situação que o desafio quer promover <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
O Meteor é um framework realmente interessante. Ele é baseado em algumas tecnologias de JavaScript que permitem criarmos um aplicativo completo usando apenas essa linguagem, tanto a porção servidor (ele usa o Nodejs para isso) quanto a parte cliente (jQuery e templates usando o <a href="http://www.handlebarsjs.com/">Handlebars</a>)<br />
Para instalar o Meteor é preciso executar os comandos no terminal (no Linux e MacOSX):</p>
<p><pre class="brush: bash;">
curl install.meteor.com | /bin/sh
</pre></p>
<p>Para criar um novo projeto é só executar os comandos:<br />
<pre class="brush: bash;">
meteor create myapp
</pre></p>
<p>O Meteor possui um servidor para podermos fazer o teste da aplicação. Para executá-lo é só:<br />
<pre class="brush: bash;">
cd myapp
meteor
</pre></p>
<p>E para acessar no navegador é só usar a url <i>http://localhost:3000</i></p>
<p>Um projeto do Meteor é composto de três arquivos: um css, um html e um JavaScript. Pode ser estruturado de outra forma, mas esse é o exemplo mais comum. Dentro do JavaScript podemos definir a lógica que será executada no cliente (e que será enviada para o navegador do usuário) e a porção que será executada no servidor (no Nodejs).</p>
<p>Para testar o framework eu criei um pequeno projeto, de cadastro de contatos. Para rodar o meu exemplo é só executar (depois de ter instalado o Meteor):<br />
<pre class="brush: bash;">
git clone git@github.com:eminetto/MeteorContactListSample.git
cd MeteorContactListSample/
meteor
</pre></p>
<p>No arquivo ContactList.html é definido o visual do aplicativo, usando o sistema de templates usado pelo Meteor. No trecho abaixo definimos dois templates (add_contact e contacts) e fazemos a inclusão dos dois, dentro da tag body:</p>
<p><pre class="brush: jscript;">
&lt;head&gt;
  &lt;title&gt;ContactList&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
  {{&gt; add_contact}}

  {{&gt; contacts}}


&lt;/body&gt;

&lt;template name=&quot;add_contact&quot;&gt;
  &lt;h3&gt;{{action}} contact&lt;/h3&gt;
  &lt;div id=&quot;new-contact&quot;&gt;
    &lt;input type=&quot;hidden&quot; id=&quot;id&quot; name=&quot;id&quot;&gt;
    Name: &lt;input type=&quot;text&quot; name=&quot;name&quot; id=&quot;name&quot;&gt;&lt;br&gt;
    E-mail: &lt;input type=&quot;text&quot; name=&quot;email&quot; id=&quot;email&quot;&gt;&lt;br&gt;
    &lt;input type=&quot;button&quot; id=&quot;actionButton&quot; value=&quot;{{action}}&quot;&gt;
  &lt;/div&gt;
&lt;/template&gt;

&lt;template name=&quot;contacts&quot;&gt;
  &lt;h3&gt;Contacts&lt;/h3&gt;
  &lt;div id=&quot;contacts&quot;&gt;
    {{#each contact_list}}
      &lt;div class=&quot;contact&quot;&gt;
        {{name}} - {{email}} 
        &lt;input type=&quot;button&quot; class=&quot;edit&quot; id=&quot;{{_id}}&quot; value=&quot;edit&quot;&gt;
        &lt;input type=&quot;button&quot; class=&quot;del&quot; id=&quot;{{_id}}&quot; value=&quot;del&quot;&gt;
        &lt;br&gt;
      &lt;/div&gt;
    {{/each}}
  &lt;/div&gt;
&lt;/template&gt;
</pre></p>
<p>O que está dentro de {{ e }} são variáveis que serão substituídas pelo sistema de templates. A instrução <i>each</i> é usada como um <i>for</i> e mostrará todos os contatos existentes.</p>
<p>No arquivo ContactList.js está a lógica do aplicativo. E aí entra algo muito interessante: as Collections. São interfaces para o banco de dados MongoDB que é usado pelo framework. Na documentação é citado que pode ser extendido para usar com outros bancos de dados, mas não cheguei a testar isso. Quando a aplicação é executada é criado um banco de dados MongoDB e os dados são inseridos nele. Uma das coisas mais legais do Meteor é que ele gera uma cópia do banco de dados no lado do cliente, assim o mesmo comando usado pelo servidor é usado pelo cliente. E os dados são sincronizados, o que significa que no momento que um cliente modifica o banco de dados essa mudança é replicada automaticamente para o servidor, que manda a alteração para todos os clientes. Magia negra! Você tem um sistema sincronizado entre diversos clientes, sem precisar se preocupar com isso, o que é realmente uma vantagem.<br />
O código do ContactList.js:</p>
<p><pre class="brush: jscript;">
Contacts = new Meteor.Collection(&quot;contacts&quot;);

if (Meteor.is_client) {
  
  Session.set('action','add');
  
  Template.add_contact.action = function () {
    var action = Session.get(&quot;action&quot;) || &quot;add&quot;;  
    return action;
  };

  Template.add_contact.events = {
    'click input#actionButton' : function (evt) {
      var $action = Session.get('action'),
          $name = $(&quot;#name&quot;).val(),
          $email = $(&quot;#email&quot;).val();

      console.log($action);
      if ($action == 'add') {
        Contacts.insert({
          name:  $name,
          email: $email 
        });
        alert('contact ' + $name +  ' added');
      }
      else {
        Contacts.update($(&quot;#id&quot;).val(), {$set: {name: $name, email: $email}});
        $(&quot;#id&quot;).val('');
        Session.set('action', 'add');
        alert('contact ' + $name +  ' modified');
      }
      $(&quot;#name&quot;).val('');
      $(&quot;#email&quot;).val('');
    }
  };

  Template.contacts.contact_list = function () {
    return Contacts.find({}, {sort: {name: 1}});
  };

  Template.contacts.events = {
    'click input.del' : function (evt) {
      var $contact = $(evt.target),
          $id = $contact.attr('id');
      Contacts.remove($id);
    },
    'click input.edit' : function (evt) {
      var $contact = $(evt.target),
          $id = $contact.attr('id');
      contact = Contacts.findOne($id);

      $(&quot;#id&quot;).val(contact._id);
      $(&quot;#name&quot;).val(contact.name);
      $(&quot;#email&quot;).val(contact.email);
      $(&quot;#name&quot;).focus();

      Session.set('action', 'edit');
    },
  };

}

if (Meteor.is_server) {
  Meteor.startup(function () {
    // code to run on server at startup
  });
}
</pre></p>
<p>No código é possível ver os comandos <i>is_client</i> e <i>is_server</i> que dividem o código do cliente e servidor (eles podem ser separados em arquivos diferentes também). Também é possível ver o sistema de eventos (<i>Template.contacts.events</i>) e o retorno do banco de dados sendo enviado ao template (<i>return Contacts.find({}, {sort: {name: 1}});</i>)</p>
<p>No site do Meteor existem alguns <a href="http://meteor.com/examples/leaderboard" target="_blank">exemplos</a> mais complexos que ajudam a entender os detalhes mais avançados.<br />
Apesar de ser uma ferramenta nova (versão 0.3.3 no momento da escrita deste post) eu fiquei surpreso com as possibilidades que ela fornece. Não cheguei a testar em uma aplicação mais complexa ou com maior carga, mas é uma tecnologia que vou prestar muita atenção na sua evolução, pois vejo várias utilidades para ela. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/962/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/962/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/962/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=962&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/04/23/meteor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>UML usando Astah</title>
		<link>http://eltonminetto.net/2012/04/19/uml-usando-astah/</link>
		<comments>http://eltonminetto.net/2012/04/19/uml-usando-astah/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 16:43:07 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[coderockr]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=960</guid>
		<description><![CDATA[Quem me apresentou o Astah foi o amigo Otavio Ferreira, e me tornei fã imediatamente da ferramenta. O Astah é uma ferramenta para modelagem UML muito fácil de usar e muito útil. Ela possui edições pagas mas eu estou usando a Community Edition, que é gratuíta e possui as principais funcionalidades que eu preciso no [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=960&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quem me apresentou o Astah foi o amigo <a href="https://twitter.com/otaviofff" target="_blank">Otavio Ferreira</a>, e me tornei fã imediatamente da ferramenta.<br />
O Astah é uma ferramenta para modelagem UML muito fácil de usar e muito útil. Ela possui edições <a href="http://astah.net/editions">pagas</a> mas eu estou usando a <a href="http://astah.net/editions/community" target="_blank">Community Edition</a>, que é gratuíta e possui as principais funcionalidades que eu preciso no planejamento dos projetos da Coderockr, como modelagem de classes, use cases, componentes, pacotes, etc. As versões pagas contam com plugins para integração com outras ferramentas como as da Atlassian e mais diagramas.<br />
Existem versões para Windows, Linux e Mac e uma <a href="http://astah.net/editions/pad" target="_blank">versão para iPad</a> que apesar de ser mais simples (somente diagramas de classes) impressiona pela facilidade de uso e interface clara.<br />
Para quem precisa/gosta de ter seus projetos bem documentados fica a dica dessa ótima ferramenta.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/960/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/960/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/960/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/960/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/960/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/960/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/960/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/960/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/960/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/960/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/960/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/960/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/960/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/960/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=960&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/04/19/uml-usando-astah/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Desafio de programação</title>
		<link>http://eltonminetto.net/2012/04/18/desafio-de-programacao/</link>
		<comments>http://eltonminetto.net/2012/04/18/desafio-de-programacao/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 20:19:15 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[coderockr]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=958</guid>
		<description><![CDATA[Tivemos mais uma idéia maluca na Coderockr. Propor um desafio de programação. Confere lá no nosso blog<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=958&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Tivemos mais uma idéia maluca na Coderockr. Propor um desafio de programação. Confere lá no <a href="http://www.coderockr.com/blog/2012/04/desafio-de-programacao/" target="_blank">nosso blog</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/958/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/958/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/958/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=958&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/04/18/desafio-de-programacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Usando Vagrant para criar máquinas virtuais para desenvolvimento e testes</title>
		<link>http://eltonminetto.net/2012/04/02/usando-o-vagrant-para-criar-maquinas-virtuais-para-desenvolvimento-e-testes/</link>
		<comments>http://eltonminetto.net/2012/04/02/usando-o-vagrant-para-criar-maquinas-virtuais-para-desenvolvimento-e-testes/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 00:38:49 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=934</guid>
		<description><![CDATA[Recentemente trabalhei em um projeto grande, com equipes trabalhando remotamente, cada desenvolvedor usando o seu ambiente favorito para trabalhar (Linux, MacOS X e Windows) e o sistema tendo diversos requisitos (PHP, MySQL, Memcached, Solr, PHPUnit, etc). Era comum acontecerem problemas como &#8220;na minha máquina todos os testes funcionam, mas na máquina de fulano, que roda [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=934&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recentemente trabalhei em um projeto grande, com equipes trabalhando remotamente, cada desenvolvedor usando o seu ambiente favorito para trabalhar (Linux, MacOS X e Windows) e o sistema tendo diversos requisitos (PHP, MySQL, Memcached, Solr, PHPUnit, etc). Era comum acontecerem problemas como &#8220;na minha máquina todos os testes funcionam, mas na máquina de fulano, que roda Windows não&#8221; ou &#8220;temos um novo programador na equipe, precisamos instalar todos os requisitos para ele começar a trabalhar&#8221;. Para resolver este tipo de problemas uma solução é usarmos máquinas virtuais, com todos os requisitos já instalados e prontos para uso. O VMWare e o VirtualBox são exemplos interessantes para estes casos, mas ainda assim exigem um pouco de trabalho para configurar e instalar tudo. O <a href="http://vagrantup.com/" target="_blank">Vagrant</a> é uma ferramenta que auxilia exatamente neste quesito, a criação das máquinas virtuais.<br />
O Vagrant roda em Windows, Linux e MacOS X (onde eu fiz os testes que apresento nesse post) e necessita do VirtualBox para funcionar. Neste post vou descrever os passos que fizemos na Coderockr para criarmos máquinas virtuais Ubuntu dentro de nossos MacOS X.<br />
O primeiro passo é fazer o download do Vagrant no link <a href="http://downloads.vagrantup.com/tags/v1.0.2" target="_blank">http://downloads.vagrantup.com/tags/v1.0.2</a><br />
Depois precisamos fazer o download da máquina virtual &#8220;base&#8221; que será usada para gerar as máquinas para cada projeto, com o comando</p>
<p><pre class="brush: bash;">
vagrant box add base http://files.vagrantup.com/lucid32.box
</pre></p>
<p>Um arquivo de 260M é copiado para o diretório .vagrant.d de seu home (/Users/eminetto/.vagrant.d no meu caso). É uma imagem do VirtualBox com o sistema Ubuntu 10.04.</p>
<p>Agora vamos criar o nosso primeiro projeto. Eu criei um diretório:</p>
<p><pre class="brush: bash;">
mkdir ~/Projects/vagrant
</pre></p>
<p>E dentro deste diretório devemos executar o comando </p>
<p><pre class="brush: bash;">
vagrant init 
</pre></p>
<p>É criado um arquivo chamado Vagrantfile que é a configuração da sua máquina virtual<br />
Vamos alterar o arquivo e alterar a linha abaixo, que indica qual é nossa VM original. </p>
<p><pre class="brush: ruby;">
config.vm.box = &quot;base&quot;
</pre></p>
<p>Se inicializarmos a máquina neste momento ela será criada com o sistema Ubuntu &#8220;zerado&#8221;, sem nenhum pacote adicional, o que não é muito útil para nossa necessidade. Vamos usar uma ferramenta chamada <a href="http://puppetlabs.com/" target="_blank">Puppet</a> (também é possível usar a ferramenta <a href="http://vagrantup.com/docs/provisioners/chef_solo.html" target="_blank">Chef</a>) para automatizar o processo de instalação dos pacotes necessários.<br />
Para instalar o Puppet é necessário o interpretador da linguagem Ruby, que já vem instalado no MacOS X e na maioria dos sistemas Linux atuais (ou pode ser instalado usando o apt-get ou yum, dependendo da distribuição). Vamos executar o comando:</p>
<p><pre class="brush: bash;">
sudo gem install puppet
</pre></p>
<p>Agora precisamos criar um arquivo de configuração para o Puppet. No diretório do projeto (~/Projects/vagrant) vamos criar o diretório manifests:</p>
<p><pre class="brush: bash;">
mkdir manifests
</pre></p>
<p>e o arquivo manifests/base.php, cujo conteúdo está no link <a href="https://gist.github.com/2288198" target="_blank">https://gist.github.com/2288198</a><br />
Neste arquivo definimos os comandos que queremos executar (exec), os pacotes que devem ser instalados (package) e os serviços que devem ser inicializados (service).<br />
Precisamos também configurar o arquivo Vagrantfile para que ele execute o Puppet:</p>
<p><pre class="brush: ruby;">
config.vm.provision :puppet do |puppet|
    puppet.manifests_path = &quot;manifests&quot;
    puppet.manifest_file  = &quot;base.pp&quot;
end
</pre></p>
<p>Agora basta criar a máquina virtual, com o comando</p>
<p><pre class="brush: bash;">
vagrant up
</pre></p>
<p>A primeira vez deve demorar alguns minutos, pois a máquina &#8220;base&#8221; é clonada e o Puppet é executado para instalar os pacotes que indicamos</p>
<p>Para acessar o Apache instalado na máquina virtual é só acessar a url http://127.0.0.1:8080 e para acessar o SSH basta executar</p>
<p><pre class="brush: bash;">
vagrant ssh
</pre></p>
<p>Quando precisar desligar a máquina é só executar </p>
<p><pre class="brush: bash;">
vagrant halt
</pre></p>
<p>e para inicializar novamente basta um </p>
<p><pre class="brush: bash;">
vagrant up
</pre></p>
<p>Caso queira remover a máquina e recriá-la o comando é </p>
<p><pre class="brush: bash;">
vagrant destroy
</pre></p>
<p>E repetir o processo anterior.</p>
<p>Também é possível compartilhar a máquina criada com o restante da equipe, como mostra a <a href="http://vagrantup.com/docs/getting-started/packaging.html" target="_blank">documentação oficial</a>  </p>
<p>O Vagrant facilita bastante o processo de criação do ambiente de desenvolvimento, e trás diversas vantagens, tanto para um programador solo (poder separar o ambiente de desenvolvimento da máquina real, ter vários ambientes distintos, para os diversos projetos) quanto para equipes (poder facilmente instalar novas máquinas e ter o mesmo ambiente de desenvolvimento em todas as máquinas da equipe).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/934/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/934/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/934/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=934&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/04/02/usando-o-vagrant-para-criar-maquinas-virtuais-para-desenvolvimento-e-testes/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
	</channel>
</rss>
