<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Log4Dev</title>
	
	<link>http://log4dev.com</link>
	<description />
	<lastBuildDate>Mon, 03 Oct 2011 22:20:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<div id="fb-root" />
					<script type="text/javascript">
						window.fbAsyncInit = function()
						{
							FB.init({appId: null, status: true, cookie: true, xfbml: true});
						};
						(function()
						{
							var e = document.createElement('script'); e.async = true;
							e.src = document.location.protocol + '//connect.facebook.net/pt_BR/all.js';
							document.getElementById('fb-root').appendChild(e);
						}());
					</script>	
						<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/log4dev/xml" /><feedburner:info uri="log4dev/xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://log4dev.com.br</link><url>http://log4dev.com/wp-includes/images/logo_laranja.gif</url><title>Log4Dev - RSS</title></image><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Flog4dev%2Fxml" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Flog4dev%2Fxml" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Flog4dev%2Fxml" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/log4dev/xml" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Flog4dev%2Fxml" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Flog4dev%2Fxml" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Flog4dev%2Fxml" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item>
		<title>Bitbucket com Git. Existe?</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/Pxd7aCABjG8/</link>
		<comments>http://log4dev.com/2011/10/03/bitbucket-com-git-existe/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 22:20:13 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Ferramentas]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=880</guid>
		<description><![CDATA[A partir de hoje existe. Segue um trecho do anúncio no blog do Bitbucket: You’ve been asking for it, we’ve even joked about it – now it’s here (for real): for the one year anniversary of Bitbucket joining Atlassian, we are happy to announce Git support. All your source, all in one-place Whether you are using Hg [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/10/03/bitbucket-com-git-existe/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>A partir de hoje existe. Segue um trecho do anúncio no <a href="http://blog.bitbucket.org/2011/10/03/bitbucket-now-rocks-git/">blog do Bitbucket</a>:
<blockquote>You’ve been asking for it, we’ve even <a rel="nofollow" href="http://blog.bitbucket.org/2009/04/01/announcing-git-support/">joked about it</a> – now it’s here (for real): for the one year anniversary of Bitbucket joining Atlassian, we are happy to announce <strong>Git support</strong>.
<h3 id="Gitbucketpublicblog-Allyoursourceallinone-place">All your source, all in one-place</h3>
Whether you are using Hg or Git, you can now keep all of your code in one place with your preferred DVCS format. If you have existing code you would like to migrate, you can easily <strong><a rel="nofollow" href="https://bitbucket.org/repo/import">import your Git, Mercurial or Subversion source code</a></strong>. We have added a new importer for GitHub to our existing site importers which include SourceForge, Google Code and Codeplex.</blockquote>
Além disso, eles anunciam 350 novidades e bugfixes.</p>

<p>Mas daí você me pergunta: &#8220;Porque usar o <strong>Bitbucket</strong> para armazenar meus repositórios <strong>Git</strong> em vez de usar o tradicional <strong>GitHub</strong>?&#8221;</p>

<p>Bom, se você está desenvolvendo projetos <strong>Open Source</strong>, provavelmente o <strong>GitHub</strong> seja uma opção mais apropriada, já que ele se tornou referência. Muitas empresas pedem que candidatos adicionem o seu endereço GitHub nos currículos. Já BitBucket eu nunca vi.</p>

<p>Em compensação, se você está desenvolvendo projetos fechados, aí o Bitbucket é vantajoso. Em todos os planos, o número de repositórios privados é ilimitados. Na conta gratuíta, a limitação fica por conta do número de usuários: 5 no máximo, o que é mais do que suficiente para 99% das startups (o <a href="http://siga.st">SIGA</a> é uma delas). Já para empresas maiores, por 80 dólares por mês você tem direito ao <a href="https://bitbucket.org/plans">plano UNLIMITED</a>: repositórios ilimitados e usuários ilimitados! No GitHub <a href="https://github.com/plans">o maior plano custa 200 dólares mensais</a>, e dá direito a no máximo 125 repositórios privados.</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=Pxd7aCABjG8:adzLixZ6EpM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=Pxd7aCABjG8:adzLixZ6EpM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/Pxd7aCABjG8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/10/03/bitbucket-com-git-existe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/10/03/bitbucket-com-git-existe/</feedburner:origLink></item>
		<item>
		<title>Você está tentando implementar Sign In com Twitter em um iFrame?</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/lqLYdfZOlZ8/</link>
		<comments>http://log4dev.com/2011/07/27/voce-esta-tentando-implementar-sign-in-com-twitter-em-um-iframe/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 15:49:25 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=875</guid>
		<description><![CDATA[Então desista já. Não perca tempo (como eu perdi algumas várias horas)! Não funciona! Fazendo uma rápida pesquisa na internet, descobrimos que o Twitter implementou um Javascript que impede a página de login de ser exibida caso esteja dentro de um iFrame (pode tentar, o resultado final será uma página em branco). O motivo: questões [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/07/27/voce-esta-tentando-implementar-sign-in-com-twitter-em-um-iframe/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Então desista já. Não perca tempo (como eu perdi algumas várias horas)!</p>

<p>Não funciona!</p>

<p>Fazendo uma rápida pesquisa na internet, descobrimos que o <strong>Twitter</strong> implementou um <strong>Javascript</strong> que impede a página de login de ser exibida caso esteja dentro de um <strong>iFrame</strong> (pode tentar, o resultado final será uma página em branco). O motivo: questões de segurança.</p>

<p>Portanto, ou exiba a página na janela principal do seu navegador, ou use um popup.</p>

<p>E tenho dito.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=lqLYdfZOlZ8:ZD3AI5YBeGQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=lqLYdfZOlZ8:ZD3AI5YBeGQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/lqLYdfZOlZ8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/07/27/voce-esta-tentando-implementar-sign-in-com-twitter-em-um-iframe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/07/27/voce-esta-tentando-implementar-sign-in-com-twitter-em-um-iframe/</feedburner:origLink></item>
		<item>
		<title>Uma idéia na cabeça, um laptop na mão.</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/srkCr7lQBVs/</link>
		<comments>http://log4dev.com/2011/07/06/uma-ideia-na-cabeca-um-laptop-na-mao/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 20:40:21 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Idéias]]></category>
		<category><![CDATA[Produto]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=865</guid>
		<description><![CDATA[Pessoas tem idéias de produtos ou soluções para problemas todos os dias. Muitas destas idéias são de fato interessante. Algumas pessoas possuem o conhecimento necessário para fazer com que esta idéia se torne realidade. Quase ninguém tem a persistência e a força de vontade necessárias para colocar a idéia no ar. Dos vários aspectos que me impressionaram e [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/07/06/uma-ideia-na-cabeca-um-laptop-na-mao/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Pessoas tem idéias de produtos ou soluções para problemas todos os dias. Muitas destas idéias são de fato interessante. Algumas pessoas possuem o conhecimento necessário para fazer com que esta idéia se torne realidade. Quase ninguém tem a persistência e a força de vontade necessárias para colocar a idéia no ar.</p>

<p>Dos vários aspectos que me impressionaram e agradaram na minha curta passagem pelo <a href="http://apontador.com.br">Apontador</a>, um que me agradou muito foi a concentração de pessoas boas que tinham projetos pessoais interessantes e funcionando, com pinta de sistema profissional. Corroborou mais uma das minhas teorias sobre empresas PONTOCOM: atraem pessoas diferentes, que gostam de criar e resolver problemas.</p>

<p>Eu gostaria de citar dois destes projetos, que eu usei e que realmente me ajudaram.</p>

<p>O primeiro é o <a href="http://www.cruzalinhas.com/">Cruzalinhas</a>, desenvolvido pelo <a href="http://chester.blog.br/sobre">Chester</a>. Parafraseando o site, o Cruzalinhas permite que uma pessoa &#8220;<em>saiba quais linhas de ônibus, trem ou metrô passam perto de um lugar em São Paulo&#8221;. </em>A interface não poderia ser mais intuitiva: clique em um ponto do mapa da cidade, e veja todas as linhas de ônibus e metrô que passam por perto. Clique em um segundo ponto, e veja todas as linhas que podem potencialmente levá-lo de um lugar para o outro.</p>

<p>O segundo é o <a href="http://www.encontreseupacote.com.br/">Encontre Seu Pacote</a>, criado pelo Thiago Ganzarolli, colega de UNICAMP. O sistema permite rastrear os pacotes enviados por SEDEX em um mapa, por RSS ou via Direct Message do Twitter. O screencast deles, plagiado abaixo, explica melhor o funcionamento.</p>

<p><object width="640" height="390"><param name="movie" value="http://www.youtube.com/v/NGJJXL_308M&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/NGJJXL_308M&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=srkCr7lQBVs:8DbnS2Evh5Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=srkCr7lQBVs:8DbnS2Evh5Q:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/srkCr7lQBVs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/07/06/uma-ideia-na-cabeca-um-laptop-na-mao/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/07/06/uma-ideia-na-cabeca-um-laptop-na-mao/</feedburner:origLink></item>
		<item>
		<title>Em resumo…</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/wrKx0y_L4ps/</link>
		<comments>http://log4dev.com/2011/06/22/em-resumo/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 14:27:49 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Idéias]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=857</guid>
		<description><![CDATA[Este post pretende ser o primeiro de um grande movimento de retomada da atividade blogueira. Sim, porque bastou o Editor Chefe se distanciar um pouco, que quase nenhum post foi publicado neste espaço já consagrado pela crítica internacional. Tenho vários assuntos que merecem uma notinha por aqui, todos eles diretamente ligados às minhas atividades dos [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/06/22/em-resumo/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Este post pretende ser o primeiro de um grande movimento de retomada da atividade blogueira. Sim, porque bastou o Editor Chefe se distanciar um pouco, que quase nenhum post foi publicado neste espaço já consagrado pela crítica internacional.</p>

<p>Tenho vários assuntos que merecem uma notinha por aqui, todos eles diretamente ligados às minhas atividades dos últimos meses. Então, antes de mais nada, quero fazer um resumo de alguns fatos importantes.
<h2>Fato 0:</h2>
Virei pai do Rafael!</p>

<p>&nbsp;
<h2>Fato 1:</h2>
Em setembro do ano passado, comecei a trabalhar no <a href="http://apontador.com.br">Apontador</a>! Este era um movimento que eu já estava ensaiando há algum tempo: ter uma experiência em uma empresa .COM. Eu tinha algumas ideias pré-concebidas de como seria trabalhar em lugar como esses, boa parte devido ao imaginário coletivo ligado a empresas como Google.</p>

<p>O meu &#8220;relacionamento&#8221; com o Apontador começou de uma forma peculiar: antes de eu trabalhar para eles, eles eram meus &#8220;clientes&#8221;. Ou melhor: eram (e ainda são) usuários assíduos do <a href="http://job4dev.com">Job4Dev</a>. Isso me permitiu ter um primeiro contato com a cultura e o ambiente da empresa. E claro, me permitiu ter um bom contato com o RH. Um belo dia, decidi enviar meu currículo. E não é que deu certo?</p>

<p>Entrei no projeto da <a href="http://api.apontador.com.br">API Apontador</a>, que na época estava sendo lançada. Quando entrei, assumi a bucha de desenvolvimento 100%. A equipe era formada por apenas duas pessoas: eu e o P.O, o Chester. Foi muito bom poder desenvolver um produto aberto, para usuário final, que seria utilizado por milhares de programadores por este mundão de meu Deus. Questões como qualidade, agilidade no processo, simplicidade de uso e real utilidade estavam constantemente na pauta do dia a dia. Não que não estivessem nos meus projetos anteriores. Mas sabemos como aplicações corporativas as vezes colocam essas coisas óbvias em segundo plano.</p>

<p>Tudo muito bem, tudo muito bom. Estava feliz, curtindo o ambiente e as pessoas com quem trabalhava. Mas aí veio o&#8230;</p>

<p>&nbsp;
<h2>Fato 2:</h2>
Se eu fosse daqueles profissionais ultra organizados e meticulosos, e tivesse um plano de carreira bem definido, com metas e deadlines, eu diria que depois da experiência em empresas .COM, a minha meta seguinte seria virar empreendedor por completo. Ou seja: viver e trabalhar full time no meu próprio projeto. Mas sempre tinha aquelas questões secundárias como renda, contas a pagar (que aumentaram consideravelmente após o fato 0) e outras responsabilidades mundanas.</p>

<p>Haviam candidatos a projeto fulltime: <a href="http://job4dev.com">Job4Dev</a> e <a href="http://siga.st">SigaSeuTime</a> tinham potencial. E eu realmente estava acreditando que o SigaSeuTime era o que tinha mais chances de dar certo. Afinal, já tínhamos receita, uma base de usuários crescente, alguns clientes recorrentes&#8230;</p>

<p>E aí, um milagre aconteceu: o milagre do networking.</p>

<p>Meus sócios, pessoas de sucesso e com vários contatos interessantes, conheciam um cara. E esse cara tinha o hábito de investir em projetos em conjunto com um outro cara. Ambos os caras já tem o seu nome no hall da internet brasileira. E não é que eles gostaram do SigaSeuTime?  Foram alguns meses de negociações, até que a boa notícia veio: habemus recursos para manter uma equipe pequena, que me inclui, desenvolvendo e respirando o produto. \0/</p>

<p>Estamos em plenos trâmites burocráticos, mas eu já tomei o primeiro passo: saí do Apontador e estou dedicado. Realmente espero que este seja o marco inicial de um novo tipo de carreira e estilo de vida. Projetos não faltam, e o horizonte do Siga é bem promissor.</p>

<p>É isso.</p>

<p>Em breve, mais notícias.</p>

<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=wrKx0y_L4ps:32mPc7Gx6z0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=wrKx0y_L4ps:32mPc7Gx6z0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/wrKx0y_L4ps" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/06/22/em-resumo/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/06/22/em-resumo/</feedburner:origLink></item>
		<item>
		<title>Análise de Segurança de Software</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/naQXk4zZ3uY/</link>
		<comments>http://log4dev.com/2011/05/24/analise-de-seguranca-de-software/#comments</comments>
		<pubDate>Tue, 24 May 2011 13:52:04 +0000</pubDate>
		<dc:creator>Alexandre Barbosa</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://log4dev.com/2011/05/24/analise-de-seguranca-de-software/</guid>
		<description><![CDATA[Há cerca de um mês recebi a tarefa de descobrir vulnerabilidades em um software desenvolvido por uma equipe diferente da minha, onde estou atualmente trabalhando. O trabalho parecia muito interessante (e tem se mostrado desta forma). O único problema é que ainda não tinha tido experiência nesta área, o que tornou a tarefa ainda interessante. [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/05/24/analise-de-seguranca-de-software/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Há cerca de um mês recebi a tarefa de descobrir vulnerabilidades em um software desenvolvido por uma equipe diferente da minha, onde estou atualmente trabalhando. O trabalho parecia muito interessante (e tem se mostrado desta forma). O único problema é que ainda não tinha tido experiência nesta área, o que tornou a tarefa ainda interessante.</p>

<p>Logo de início, o problema inicial foi o de obter informações sobre a área, para saber como realizar este trabalho. Neste ponto, minha preocupação era muito mais o de assimilar um conjunto mínimo de conhecimento teórico sobre o tema, do que o de juntar ferramentas. No entanto, o prazo era curto, e não poderia dispender muito tempo realizando pesquisas. Neste momento, lembrei-me de ter visto em algum lugar, ao pesquisar sobre distribuições linux, que existiam distribuições criadas especificamente para este fim. Foi quando o google me levou ao <a title="BackTrack" href="http://www.backtrack-linux.org/" target="_blank">BackTrack</a>, uma distribuição linux customizada para a realização de testes de intrusão, incluindo uma série de ferramentas com foco nos mais diferentes tipos de testes de segurança.</p>

<p>Baixei a distribuição, instalei numa VM e pude ver uma infinidade de aplicações, com diferentes propósitos &#8211; Mapeamento de redes, identificação de vulnerabilidades, intrusão, escalada de privilégios, engenharia reversa, etc. Vários termos totalmente desconhecidos para mim. Com isto, resolvi mapear cada uma das ferramentas disponíveis, e pesquisar para que serviam, que tipo de ataques avaliavam, que técnicas utilizavam &#8211; claro que uma pesquisa bastante superficial, mas suficiente para me iniciar neste mundo.</p>

<p>Com isto fui apresentado a <em>sniffers</em>, <em>spoofers</em>, <em>fingerprinters</em>, <em>fuzzers</em>, e uma série de protocolos que me trouxeram vagas lembranças de minhas aulas de redes de computadores. Com isto, pude formar uma visão (ainda que bastante míope) do que poderia começar a avaliar em termos de segurança, e começar a botar a mão na massa.</p>

<p>Infelizmente (para mim, que queria achar um monte de falhas e me sentir um mega <em>hacker</em>), a aplicação que estou avaliando, e a infra-estrutura sobre o qual está sendo executada, foi bastante bem feita. Mas mesmo assim, fomos capazes de detectar algumas vulnerabilidades, que foram reportadas à equipe de desenvolvimento, e já corrigidas ou mitigadas.</p>

<p>Este processo tem sido muito interessante, e trouxe uma nova visão à minha mente de desenvolvedor. Uma preocupação com segurança que antes eu não possuía, aguçada por agora conhecer diferentes formas que pode-se comprometer um sistema, que antes desconhecia. Recomendo que aqueles que puderem, procurem conhecer um pouco sobre esta área, seja estudando esta distribuição, como fiz, ou consultando as diversas fontes de informação disponíveis. Uma que recomendo, especialmente para quem trabalha com desenvolvimento web é o <a title="OWASP" href="https://www.owasp.org/" target="_blank">OWASP &#8211; The Open Web Application Security Project</a>.</p>

<p>E se você que está lendo, possui alguma recomendação de material sobre segurança, por favor poste nos comentários.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=naQXk4zZ3uY:mLV-gril8i0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=naQXk4zZ3uY:mLV-gril8i0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/naQXk4zZ3uY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/05/24/analise-de-seguranca-de-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/05/24/analise-de-seguranca-de-software/</feedburner:origLink></item>
		<item>
		<title>Recomendação de música por análise de conteúdo</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/wfrWJWQAZRk/</link>
		<comments>http://log4dev.com/2011/02/16/recomendacao-de-musica-por-analise-de-conteudo/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 12:41:58 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=847</guid>
		<description><![CDATA[Por Fabrício Barth No ano de 2010 eu orientei o Trabalho de Conclusão de Curso do Renan de Almeida e Ricardo Aoyagi, ambos alunos do Centro Universitário SENAC (São Paulo – SP). O objetivo do trabalho deles era construir um sistema de recomendação de músicas baseado apenas na análise do conteúdo das mesmas. Neste projeto, [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/02/16/recomendacao-de-musica-por-analise-de-conteudo/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div><h3>Por Fabrício Barth</h3>
No ano de 2010 eu orientei o Trabalho de Conclusão de Curso do Renan de Almeida e Ricardo Aoyagi, ambos alunos do Centro Universitário SENAC (São Paulo – SP). O objetivo do trabalho deles era construir um sistema de recomendação de músicas baseado apenas na análise do conteúdo das mesmas.</p>

<p>Neste projeto, cada música do repositório, assim como as músicas pertencentes ao perfil do usuário, são representadas por atributos (i.e., MFCC, Chroma, Zero Crossings, Flux e Spectral Centroid) extraídos a partir dos sinais de áudio de uma música. Um perfil de usuário é representado por uma lista de músicas. A adição ou remoção de músicas do perfil do usuário é realizado pelo próprio usuário, manualmente, através de uma interface web.</p>

<p>Foram testados três métodos para a recomendação de músicas: (i) sugestão por proximidade; (ii) agrupamento com sugestão randômica, e; (iii) agrupamento com sugestão por proximidade. O método de sugestão por proximidade utiliza a equação da distância euclidiana para a calcular a distância de cada música existente no perfil do usuário com todas as outras músicas existentes no repositório. O método de sugestão por agrupamento com escolha randômica cria agrupamentos entre as músicas existentes no repositório e, consequentemente, no perfil do usuário. Neste caso, a recomendação consiste em selecionar aleatoriamente uma música dentro do mesmo agrupamento de cada música existente no perfil do usuário. O método de sugestão por agrupamento com escolha por proximidade cria agrupamentos entre as músicas existentes no repositório, recomendando a música mais próxima dentro do mesmo agrupamento para cada música existente no perfil do usuário. Neste caso, a música mais próxima é definida utilizando a equação da distância euclidiana.</p>

<p>Para cada método de recomendação foram utilizadas cinco playlists que representam o perfil de cinco usuários distintos. Foram medidos a precisão e o tempo de resposta de cada método de recomendação considerando uma base com três mil (3.000) músicas. O método de recomendação por proximidade obteve uma precisão média de 84%. O tempo de resposta médio deste método foi de 40 segundos por recomendação. O método de recomendação por agrupamento com sugestão randômica obteve uma precisão média de apenas 28% e um tempo de resposta médio igual a 250 milisegundos por recomendação, enquanto que o método de recomendação por agrupamento com sugestão por proximidade obteve uma precisão de 74% e um tempo de resposta médio igual a 1 segundo por recomendação.</p>

<p>Este trabalho ilustra que é possível desenvolver sistemas de recomendação baseados apenas no conteúdo das músicas. Através da implementação do método de recomendação por agrupamento com sugestão por proximidade constatou-se que é possível desenvolver métodos com uma taxa de precisão média alta (74%) e um tempo de resposta médio baixo (1 segundo por recomendação), o que torna viável o desenvolvimento deste tipo de sistema.</p>

<p>A monografia na íntegra pode ser acessada <a href="http://fbarth.net.br/docs/tccs/recomendacaoMusicas-2010.pdf">aqui</a>.</p>

<p>&#8211;</p>

<p><strong>Fabricio Barth é doutor em Engenharia Elétrica pela <a href="http://www.knoma.pcs.usp.br/">Universidade de São Paulo</a> (2009), mestre em Engenharia Elétrica pela<a href="http://www.knoma.pcs.usp.br/">Universidade de São Paulo</a> (2003) e graduado em Ciências da Computação pela <a href="http://www.inf.furb.br/">Universidade Regional de Blumenau</a>(2000). Atualmente ocupa a posição de Search and Web Mining Analyst no <a href="http://www.apontador.com/">Apontador</a> e é professor da <a href="http://www.bandtec.com.br/">Faculdade de Tecnologia Bandeirantes (BandTec)</a>. O post original foi publicado em <a href="http://blog.fbarth.net.br/2011/02/15/recomendacao-de-musica-por-analise-de-conteudo/">http://blog.fbarth.net.br/2011/02/15/recomendacao-de-musica-por-analise-de-conteudo/</a></strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=wfrWJWQAZRk:lna6MNoJNwI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=wfrWJWQAZRk:lna6MNoJNwI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/wfrWJWQAZRk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/02/16/recomendacao-de-musica-por-analise-de-conteudo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/02/16/recomendacao-de-musica-por-analise-de-conteudo/</feedburner:origLink></item>
		<item>
		<title>Python Hack of The Day</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/gR9fee3YAjs/</link>
		<comments>http://log4dev.com/2011/02/02/python-hack-of-the-day/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 16:54:32 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=843</guid>
		<description><![CDATA[Da série &#8220;coisas bobas que me fazem gostar mais ainda de Python&#8220;&#8230; Problema a ser resolvido: gerar uma sequência aleatória de digitos e caracteres ASCII para criação de senhas automáticas. Solução: ''.join(random.choice(string.asciiuppercase + string.digits + string.asciilowercase) for x in range(8))]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/02/02/python-hack-of-the-day/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Da série &#8220;coisas bobas que me fazem gostar mais ainda de <strong>Python</strong>&#8220;&#8230;</p>

<p><strong>Problema a ser resolvido: </strong>gerar uma sequência aleatória de digitos e caracteres ASCII para criação de senhas automáticas.</p>

<p><strong>Solução:</strong>
<pre>''.join(random.choice(string.ascii<em>uppercase + string.digits + string.ascii</em>lowercase) for x in range(8))</pre></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=gR9fee3YAjs:RDNX5yLpMO4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=gR9fee3YAjs:RDNX5yLpMO4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/gR9fee3YAjs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/02/02/python-hack-of-the-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/02/02/python-hack-of-the-day/</feedburner:origLink></item>
		<item>
		<title>O Apontador está contratando!</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/Kk2Yd9aNZAw/</link>
		<comments>http://log4dev.com/2011/01/19/o-apontador-esta-contratando/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 12:32:34 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Notícias]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=840</guid>
		<description><![CDATA[Aproveitando o ensejo da divulgação, informo que desde setembro de 2010 estou trabalhando no site Apontador.com na equipe que está desenvolvendo a API pública. E é justamente esta equipe que está contratando. Segue a descrição oficial, publicada ontem no Job4Dev: Sobre a Empresa: Líder no Brasil em plataformas de geolocalização na Internet, o Apontador é [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/01/19/o-apontador-esta-contratando/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Aproveitando o ensejo da divulgação, informo que desde setembro de 2010 estou trabalhando no site <a href="http://www.apontador.com.br">Apontador.com</a> na equipe que está desenvolvendo a <a href="http://api.apontador.com.br/pt">API pública</a>. E é justamente esta equipe que está contratando.</p>

<p>Segue a descrição oficial, publicada ontem no <a href="http://job4dev.com.br/jobs/12289/apontador-desenvolvedor-de-software">Job4Dev</a>:
<div>
<blockquote>
<h3>Sobre a Empresa:</h3>
Líder no Brasil em plataformas de geolocalização na Internet, o  Apontador é formado por pessoas que têm tesão por tecnologia,  comprometimento e paixão pelo que fazem. Nós trabalhamos duro para  construir uma empresa legal &#8211; um ambiente descontraído em que o  desenvolvimento das pessoas depende fundamentalmente do empenho e da  vontade delas.</p>

<p>Em nossa missão de conectar locais, pessoas e informações ao seu  redor nós usamos diversas as linguagens de programação e plataformas &#8211;  sempre tentando usar a melhor ferramenta para o trabalho em questão. Nos  esforçamos para usar o melhor de técnicas e metodologias ágeis como  Scrum e XP, buscando inspecionar e adaptar nossos processos para  melhorar sempre.</p>

<p>Com mais de 400 clientes corporativos e 11 milhões de visitantes  únicos por mês, nossa equipe tem crescido exponencialmente nos últimos  anos. A meta é um tamanho que permita consolidar nossa posição como  referência em geolocalização, sem perder a agilidade que caracterizou  nossos 10 anos de existência.
<h3>O candidato ideal:</h3>
<ul>
    <li> Possui formação em Ciência da Computação, Engenharia ou Matemática;  ou experiência profissional e conhecimento técnico equivalentes.</li>
    <li> Tem conhecimento profundo em uma ou mais das seguintes linguagens  (e não se assusta com as outras): Java, Python, C/C++ &#8211; sempre  trabalhando o aspecto computacional acima da linguagem em si.</li>
    <li> Já esteve envolvido no desenvolvimento e manutenção de sistemas de alta performance e escalabilidade.</li>
    <li> Se interessa por aprender novas linguagens, paradigmas e APIs, e  não se intimida em trabalhar eventualmente com outras linguagens (ex.:  C#, Ruby ou PHP). Somos poliglotas!</li>
    <li> Acredita que programação é técnica <em>e</em> arte, e produz código do qual se orgulha.</li>
</ul>
Os diferenciais abaixo vão contar pontos:
<ul>
    <li> Conhece e aprecia (com postura crítica) integração contínua, testes  automatizados, TDD, metodologias ágeis e outras técnicas que ajudam a  aprimorar a qualidade do software.</li>
    <li> Tem experiência com múltiplos bancos de dados (tanto relacionais quanto NoSQL).</li>
    <li> Interage bem com desenvolvedores de outras plataformas e níveis de experiência (bem como com pessoas de outras áreas).</li>
    <li> É fluente na língua inglesa.</li>
    <li> Conhece bem o ecossistema Web 2.0, familiarizado com aplicações  web, APIs públicas, serviços online, REST, JSON e tecnologias  relacionadas.</li>
    <li> Participa em comunidades, eventos e atividades online relacionadas ao desenvolvimento de software.</li>
    <li> Colabora ou mantém um ou mais projetos de software livre.</li>
    <li> Tem interesse/experiência com geolocalização.</li>
</ul>
<h3>Job Description and responsibilities:</h3>
Esta pessoa irá integrar o time que cuida da Apontador API,  trabalhando para tornar os sistemas que compõem a plataforma (escritos  nas mais diversas linguagens e sistemas operacionais) disponíveis para  desenvolvedores externos e para integrar outros serviços web já  oferecidos em uma plataforma unificada.</p>

<p>O desenvolvedor deve possuir experiência em integração de sistemas já  existentes e ter disposição para eventualmente assumir códigos em  linguagens fora de sua &#8220;zona de conforto&#8221;, ajudando a integrá-los e/ou  migrá-los para Python ou Java.
<h3>Para candidatar-se:</h3>
Envie seu currículo (com pretensão salarial, os últimos livros que  você leu e um ou mais links que ajudem a conhecer você melhor) para  rh@apontador.com.</blockquote>
Eu aconselho!</p>

<p></div></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=Kk2Yd9aNZAw:YmGUjGxp9UU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=Kk2Yd9aNZAw:YmGUjGxp9UU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/Kk2Yd9aNZAw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/01/19/o-apontador-esta-contratando/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/01/19/o-apontador-esta-contratando/</feedburner:origLink></item>
		<item>
		<title>Projectional Language Workbenches</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/SYxm5ADj2nc/</link>
		<comments>http://log4dev.com/2011/01/16/projectional-language-workbenches/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 18:56:43 +0000</pubDate>
		<dc:creator>Thiago Bartolomei</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Ferramentas]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=820</guid>
		<description><![CDATA[Eu pensei bastante em como traduzir esse nome, mas não gostei de &#8220;Bancada Projecional de Linguagens&#8221;, então me perdoem mas vou usar em inglês mesmo. Projectional Language Workbench é um termo cunhado pelo Martin Fowler pra descrever um novo tipo de ferramenta usada em programação orientada a linguagens. A idéia deste post é apresentar brevemente [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2011/01/16/projectional-language-workbenches/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>Eu pensei bastante em como traduzir esse nome, mas não gostei de &#8220;Bancada Projecional de Linguagens&#8221;, então me perdoem mas vou usar em inglês mesmo. <a href="http://martinfowler.com/articles/languageWorkbench.html">Projectional Language Workbench</a> é um termo cunhado pelo <a href="http://martinfowler.com">Martin Fowler</a> pra descrever um novo tipo de ferramenta usada em programação orientada a linguagens. A idéia deste post é apresentar brevemente os principais conceitos por traz disso. Eu aconselho os interessados a ler os artigos do Martin Fowler e o <a href="http://confluence.jetbrains.net/display/MPSD1/MPS+User%27s+Guide">guia do MPS</a> (em inglês).</p>

<p>Programação orientada a linguagens é um termo pra descrever a idéia de usar várias linguagens específicas de domínio (domain specific languages, DSLs) para desenvolver software. DSLs são linguagens criadas com um escopo limitado, o &#8220;domínio&#8221;. A vantagem de uma DSL é que ela contém abstrações bem próximas ao domínio, então em teoria usuários conseguem se expressar mais facilmente do que em uma linguagem de propósito geral (general purpose language, GPL). Por exemplo, <a href="http://dinosaur.compilertools.net/">lex e yacc</a> são DSLs para descrever lexers e parsers, respectivamente. Você não vai escrever o compilador inteiro com elas, mas são ótimas, concisas, pra descrever aquele domínio específico. Se você fez um curso de compiladores sabe muito bem o trabalho que daria pra escrever o lexer e o parser &#8220;na mão&#8221;.</p>

<p>Um problema de se usar várias DSLs pra desenvolver um sistema é que nem sempre os domínios de cada DSL são tão bem separados como no caso de lexers, parsers e o backend do compilador. Muitas vezes as linguagens precisam interagir mais. Por exemplo, imagine que você tem um programa em Java e em alguma parte precisa definir uma máquina de estado. Um jeito é implementar a máquina de estado direto em Java. Outro jeito é criar uma DSL pra máquinas de estado, vamos chamar de SML (state machine language), que você pode reusar em vários projetos e que esconde detalhes da implementação Java. Mas então o código fonte teria que conter código Java e código escrito em SML. O problema é que as duas linguagens interagem, e escrever um compilador que entenda Java e SML é complicado.</p>

<p>É aí que entram projectional language workbenches. A idéia principal, a meu ver, é que o sistema é apresentado e desenvolvido por intermédio de projeções. DSLs são utilizadas pra descrever projeções do sistema e elas são compostas como meta-modelos. Por exemplo, você pode ver e manipular a sua máquina de estado usando uma projeção em Java ou uma projeção em SML. A sintaxe concreta usada pra cada projeção é definida por editores e você pode ter diversos editores pra uma linguagem. Por exemplo, SML pode ter uma sintaxe textual pra máquinas de estado, ou pode ter uma linguagem visual que mostre os estados e as transições como nós e setas. O que importa é que quando se manipula os conceitos no editor, se está manipulando o sistema através dessa projeção.</p>

<p>E qual é a vantagem? A principal, eu acho, é que se elimina o frontend do compilador e com isso vários dos problemas de se combinar linguagens. Ou seja, não existem mais lexers ou parsers, tudo o que existe é a abstract syntax tree (AST). O editor de Java não é um editor de texto, é um editor estruturado que permite manipular a AST diretamente. Dessa maneira, editores de diferentes linguagens podem ser compostos. Por exemplo, no seu editor de Java você pode visualizar a máquina de estados com o editor de SML.</p>

<p>E as desvantagens? Bom, eu acho que ainda existem muitos problemas. Não está claro ainda se desenvolvedores vão ser produtivos em editores estruturados. O fonte do sistema fica dependente de uma certa ferramenta (não se tem mais texto que pode ser compilado por diferentes ferramentas, se tem a descrição do sistema usando o meta-modelo específico daquela ferramenta). Além disso, ainda não está claro que tipo de problemas vão ocorrer agora que estamos compondo linguagens em um nível mais alto de abstração.</p>

<p>E onde pode-se ver esses conceitos em ação? Eu aconselho dar uma brincada com <a href="http://www.jetbrains.com/mps/">MPS</a>. MPS é uma implementação bastante sólida de projectional language workbenches sendo desenvolvida pela <a href="http://www.jetbrains.com">Jetbrains</a> (que faz o IntelliJ IDEA). Em MPS você pode criar DSLs e combinar com Java e outras DSLs. O <a href="http://www.voelter.de/">Markus Voelter</a> criou também uma implementacão em C pra desenvolver sistemas embarcados, num projeto chamado <a href="http://mbeddr.wordpress.com/">mbeddr</a>.</p>

<p>Será que projectional language workbenches vai ser o jeito de se programar no futuro? Não sei (provavelmente não), mas vale a pena observar o que está sendo experimentado, pois com certeza é um paradigma interessante e que pode trazer bons insights. E se tudo o que eu escrevi aqui parece abstrato demais, dê uma lida nos textos do Martin Fowler pois ele entra em detalhes. E também não hesite em fazer perguntas (eu tenho um pouco de experiência com MPS e posso tentar ajudar).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=SYxm5ADj2nc:BIal5iocdYY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=SYxm5ADj2nc:BIal5iocdYY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/SYxm5ADj2nc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2011/01/16/projectional-language-workbenches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://log4dev.com/2011/01/16/projectional-language-workbenches/</feedburner:origLink></item>
		<item><title>Links for 2010-11-11 [del.icio.us]</title><link>http://feedproxy.google.com/~r/log4dev/xml/~3/4W_BesEY4oY/log4dev</link><pubDate>Fri, 12 Nov 2010 00:00:00 PST</pubDate><guid isPermaLink="false">http://del.icio.us/log4dev#2010-11-11</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://macmagazine.com.br/2010/11/10/cielo-lanca-aplicativo-para-ios-que-transforma-o-iphone-em-um-ponto-de-servicos-movel/"&gt;Cielo lan&amp;ccedil;a aplicativo para iOS que transforma o iPhone em um ponto de servi&amp;ccedil;os m&amp;oacute;vel&lt;/a&gt;&lt;br/&gt;
Passamos muito tempo só babando com a utilidade fenomenal de aplicações como o Square, que transformam o iPhone em um ponto de serviços (Point of Service, ou PoS) móvel capaz de aceitar pagamentos de cartões de crédito. Pois bem, agora quem quiser pode usar uma solução da Cielo, que não é tão elegante, mas já é um começo.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/4W_BesEY4oY" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/log4dev#2010-11-11</feedburner:origLink></item><item><title>Links for 2010-10-22 [del.icio.us]</title><link>http://feedproxy.google.com/~r/log4dev/xml/~3/6bx3G5dFWSI/log4dev</link><pubDate>Sat, 23 Oct 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/log4dev#2010-10-22</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://aws.amazon.com/free/"&gt;AWS Free Usage Tier&lt;/a&gt;&lt;br/&gt;
To help new AWS customers get started in the cloud, AWS is introducing a new free usage tier. Beginning November 1, new AWS customers will be able to run a free Amazon EC2  Micro Instance for a year, while also leveraging a new free usage tier for Amazon S3, Amazon Elastic Block Store, Amazon Elastic Load Balancing, and AWS data transfer. AWS’s free usage tier can be used for anything you want to run in the cloud: launch new applications, test existing applications in the cloud, or simply gain hands-on experience with AWS.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/6bx3G5dFWSI" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/log4dev#2010-10-22</feedburner:origLink></item><item>
		<title>AWS de graça…</title>
		<link>http://feedproxy.google.com/~r/log4dev/xml/~3/LgVTRAHijeQ/</link>
		<comments>http://log4dev.com/2010/10/22/aws-de-graca/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 12:31:38 +0000</pubDate>
		<dc:creator>Miguel Galves</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Notícias]]></category>

		<guid isPermaLink="false">http://log4dev.com/?p=826</guid>
		<description><![CDATA[&#8230;por um ano, com uma configuração limitada! Nada é perfeito, eles não são bobos nem nada, mas a oferta já permite brincar um pouco com os serviços da Amazon e sentir o gostinho de ter uma infra mais parruda. A promoção passa a valer a partir de primeiro de Novembro deste ano, e oferece a [...]]]></description>
			<content:encoded><![CDATA[<p><div class='wpfblike' style='height: 40px;'><fb:like href='http://log4dev.com/2010/10/22/aws-de-graca/' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>&#8230;por um ano, com uma configuração limitada!</p>

<p><img class="aligncenter" src="http://awsmedia.s3.amazonaws.com/logo_aws.gif" alt="AWS Free" width="164" height="60" /></p>

<p>Nada é perfeito, eles não são bobos nem nada, mas a oferta já permite brincar um pouco com os serviços da Amazon e sentir o gostinho de ter uma infra mais parruda. A promoção passa a valer a partir de primeiro de Novembro deste ano, e oferece a seguinte configuração por mês:
<ul>
    <li>750 hours of <a href="http://aws.amazon.com/ec2">Amazon EC2</a> Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit  platform support) – enough hours to run continuously each month<code><em></code></li>
    <li>750 hours of an <a href="http://aws.amazon.com/elasticloadbalancing/">Elastic Load Balancer</a> plus 15 GB data processing</em></li>
    <li>10 GB of <a title="EBS" href="http://aws.amazon.com/ebs">Amazon Elastic Block Storage</a>, plus 1 million I/Os, 1 GB of snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests<code><em></code></li>
    <li>5 GB of <a href="http://aws.amazon.com/s3">Amazon S3 storage</a>, 20,000 Get Requests, and 2,000 Put Requests<code></em></code></li>
    <li>30 GB per of internet data transfer (15 GB of data transfer “in”  and 15 GB of data transfer “out” across all services except Amazon  CloudFront)<code><em></code></li>
    <li>25 <a href="http://aws.amazon.com/simpledb">Amazon SimpleDB</a> Machine Hours and 1 GB of Storage<code><strong></code></li>
    <li>100,000 Requests of <a title="SQS" href="http://aws.amazon.com/sqs">Amazon Simple Queue Service</a><code></strong></code></li>
    <li>100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for <a title="SNS" href="http://aws.amazon.com/sns">Amazon Simple Notification Service</a><code></em>*</code></li>
</ul>
Segue o texto do anúncio:
<blockquote>To help <strong>new AWS customers</strong> get started in the cloud, AWS is introducing a new free usage tier.  Beginning November 1, new AWS customers will be able to run a free Amazon EC2  Micro Instance for a year, while also leveraging a new free usage tier  for Amazon S3, Amazon Elastic Block Store, Amazon Elastic Load  Balancing, and AWS data transfer. AWS’s  free usage tier can be used for anything you want to run in the cloud:  launch new applications, test existing applications in the cloud, or  simply gain hands-on experience with AWS.</blockquote>
Mais informações em <a href="http://aws.amazon.com/free/" target="_blank">http://aws.amazon.com/free/</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=LgVTRAHijeQ:25WYg94ulWM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/log4dev/xml?a=LgVTRAHijeQ:25WYg94ulWM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/log4dev/xml?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/LgVTRAHijeQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://log4dev.com/2010/10/22/aws-de-graca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://log4dev.com/2010/10/22/aws-de-graca/</feedburner:origLink></item>
	<item><title>Links for 2010-10-12 [del.icio.us]</title><link>http://feedproxy.google.com/~r/log4dev/xml/~3/vLo2SubBeXY/log4dev</link><pubDate>Wed, 13 Oct 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/log4dev#2010-10-12</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://readwriteweb.com.br/2010/10/11/a-guerra-social-brasileira-dominacao-do-orkut-mas-o-facebook-avanca-sem-medo/"&gt;A Guerra Social Brasileira: Orkut Persiste, mas o Facebook Avan&amp;ccedil;a sem Medo&lt;/a&gt;&lt;br/&gt;
O Orkut, a rede social da Google, agora oficialmente não domina nenhum outro território além do Brasil, mas continua a sofrer ataques do Facebook.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://readwriteweb.com.br/2010/10/11/ipad-se-prepara-para-virar-o-dispositivo-eletronico-com-a-adocao-mais-rapida"&gt;iPad se Prepara para Virar o Dispositivo Eletr&amp;ocirc;nico com a Ado&amp;ccedil;&amp;atilde;o mais R&amp;aacute;pida&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/vLo2SubBeXY" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/log4dev#2010-10-12</feedburner:origLink></item><item><title>Links for 2010-10-07 [del.icio.us]</title><link>http://feedproxy.google.com/~r/log4dev/xml/~3/LO7JspCmSsA/log4dev</link><pubDate>Fri, 08 Oct 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/log4dev#2010-10-07</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://engineering.twitter.com/2010/10/twitters-new-search-architecture.html"&gt;The Twitter Engineering Blog: Twitter's New Search Architecture&lt;/a&gt;&lt;br/&gt;
If we have done a good job then most of you shouldn’t have noticed that we launched a new backend for search on twitter.com  during the last few weeks! One of our main goals, but also biggest challenges, was a smooth switch from the old architecture to the new one, without any downtime or inconsistencies in search results. Read on to find out what we changed and why.&lt;br /&gt;
&lt;br /&gt;
Twitter’s real-time search engine was, until very recently, based on the technology that Summize originally developed. This is quite amazing, considering the explosive growth that Twitter has experienced since the Summize acquisition. However, scaling the old MySQL-based system had become increasingly challenging.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://api.apontador.com.br/"&gt;Apontador API&lt;/a&gt;&lt;br/&gt;
Conecte pessoas, locais e informações ao redor do seu site&lt;br /&gt;
&lt;br /&gt;
Que tal turbinar seu site com informações, avaliações e fotos de locais relacionados a ele? Talvez criar um guia local, sempre atualizado com os melhores pontos de interesse na sua região, ou um aplicativo móvel que acha o que o usuário precisa onde ele está.&lt;br /&gt;
&lt;br /&gt;
O Apontador é o maior e mais completo serviço de busca local do Brasil, e está abrindo sua API, colocando essas informações (e a inteligência geográfica por trás delas) à disposição dos desenvolvedores independentes. As possibilidades são infinitas, e você está no controle.&lt;br /&gt;
&lt;br /&gt;
É hora de tirar as idéias da gaveta: saiba o que dá pra fazer, entre na lista de discussão e comece a desenvolver já!&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/LO7JspCmSsA" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/log4dev#2010-10-07</feedburner:origLink></item><item><title>Links for 2010-08-12 [del.icio.us]</title><link>http://feedproxy.google.com/~r/log4dev/xml/~3/-Hm6mGG11Nk/log4dev</link><pubDate>Fri, 13 Aug 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/log4dev#2010-08-12</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.paulgraham.com/yahoo.html"&gt;What Happened to Yahoo&lt;/a&gt;&lt;br/&gt;
When I went to work for Yahoo after they bought our startup in 1998, it felt like the center of the world. It was supposed to be the next big thing. It was supposed to be what Google turned out to be.&lt;br /&gt;
&lt;br /&gt;
What went wrong? The problems that hosed Yahoo go back a long time, practically to the beginning of the company. They were already very visible when I got there in 1998. Yahoo had two problems Google didn&amp;#039;t: easy money, and ambivalence about being a technology company.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.time.com/time/magazine/article/0,9171,2010076-1,00.html"&gt;Times Magazine: Brazil's Start-Up Generation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/-Hm6mGG11Nk" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/log4dev#2010-08-12</feedburner:origLink></item><item><title>Links for 2010-08-09 [del.icio.us]</title><link>http://feedproxy.google.com/~r/log4dev/xml/~3/F6AOsSOGBpY/log4dev</link><pubDate>Tue, 10 Aug 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/log4dev#2010-08-09</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jasonputorti.com/post/472866002/how-mint-com-acquired-1-5m-users"&gt;Jason Putorti - How Mint.com Acquired 1.5M+ Users&lt;/a&gt;&lt;br/&gt;
How did Mint acquire 1.5m+ users without a high viral coefficient, scalable SEO strategy, or paid customer acquisition channel?&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/F6AOsSOGBpY" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/log4dev#2010-08-09</feedburner:origLink></item><item><title>Links for 2010-08-05 [del.icio.us]</title><link>http://feedproxy.google.com/~r/log4dev/xml/~3/9_GMWqthFg8/log4dev</link><pubDate>Fri, 06 Aug 2010 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/log4dev#2010-08-05</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.infoq.com/news/2010/08/linkedin-data-infrastructure"&gt;LinkedIn's Data Infrastructure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sna-projects.com/azkaban/"&gt;Azkaban&lt;/a&gt;&lt;br/&gt;
Azkaban is simple batch scheduler for constructing and running Hadoop jobs or other offline processes.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/log4dev/xml/~4/9_GMWqthFg8" height="1" width="1"/&gt;</description><feedburner:origLink>http://del.icio.us/log4dev#2010-08-05</feedburner:origLink></item></channel>
</rss>

