<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mnemetica &#187; tech</title>
	<atom:link href="http://www.leal.eng.br/mnemetica/categorias/tech/feed" rel="self" type="application/rss+xml" />
	<link>http://www.leal.eng.br/mnemetica</link>
	<description>A Linguagem enquanto um vírus...</description>
	<lastBuildDate>Mon, 07 Jun 2010 19:44:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Conselhos para T-15 anos</title>
		<link>http://www.leal.eng.br/mnemetica/2010/05/04/957/conselhos-para-t-15-anos.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2010/05/04/957/conselhos-para-t-15-anos.html#comments</comments>
		<pubDate>Tue, 04 May 2010 08:05:58 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[pessoal]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2010/05/04/957/conselhos-para-t-15-anos.html</guid>
		<description><![CDATA[&#160;
Quando eu comecei usando computadores, foi numa época que a maioria de vocês jamais ouviram falar: A Reserva de Mercado. Na prática, significava pagar dez vezes por algo que já chegava obsoleto. De lá pra cá, muita coisa mudou: Apenas pagamos o iPod mais caro do mundo (não precisam comentar, prezados macfags). Mas o fato [...]]]></description>
			<content:encoded><![CDATA[<p>&#160;</p>
<p>Quando eu comecei usando computadores, foi numa época que a maioria de vocês jamais ouviram falar: A <a href="http://pt.wikipedia.org/wiki/Pol%C3%ADtica_Nacional_de_Inform%C3%A1tica">Reserva de Mercado</a>. Na prática, significava pagar dez vezes por algo que já chegava obsoleto. De lá pra cá, muita coisa mudou: Apenas pagamos o <a href="http://www.transparent.com/portuguese/brazil-has-the-worlds-most-expensive-ipod/">iPod mais caro do mundo</a> (não precisam comentar, prezados macfags). Mas o fato é que, a exceção dos produtos macfaguísticos, hoje o custo para manter um computador é mais barato que há alguns anos.</p>
<p>O acesso à informação mais barato criou algumas variáveis interessantes. Há 8 anos, eu hospedar um repositório particular de código-fonte distribuído na internet virtualmente me exigiria a configuração de um servidor virtual, um VPS (exigiu – eis porque eu hospedo isso na linode). </p>
<p>Extrapolando mais: Há quinze anos, eu provavelmente necessitaria fazer colocation em um data center. </p>
<p>Hoje eu pago cinco dólares – apenas para manter restrito, pois gratuitamente eu possuo mais oferta.</p>
<p>Isto é algo que está alinhando para outros aspectos – Nuvens, como EC2 e o <a href="http://appengine.google.com/">AppEngine</a>, efetivamente barateiam. Quanto custa – monetariamente falando –, criar um domínio e hospedá-lo é uma fração do quanto custava há alguns anos.</p>
<p>O que não irá baratear? Mão de obra. Cada vez mais cara, cada vez mais especializada, cada vez mais difícil de formar. Logo, há risco em toda contratação em TI – é uma aposta, afinal de contas. E uma laranja podre pode cagar um projeto. Logo, você, que quer entrar no mercado, deve reduzir e eliminar os riscos na sua contratação. </p>
<p>Porque falo isso? Porque quando comecei em TI, era mais complicado manter um portfolio e currículo, e a minha etapa de ‘profissionalização’ demorou alguns anos e foi meio tortuosa. Embora hoje eu não necessite tanto, os meus próprios repositórios de fonte acima mencionados já me ajudaram em várias situações, tanto no trabalho quanto na faculdade e, principalmente, para arranjar trabalho.</p>
<p>É sério: A maneira mais fácil que você tem de dar um curto-circuito em uma entrevista de emprego é mostrar código-fonte seu e comentá-lo. Mais do que isso, você mostra ser orientado a problemas e auto-disciplinado, quando você devota seu tempo a projetos pessoais. </p>
<p>O código sequer precisa ser bom – isto, na verdade, é gancho para que outras pessoas possam participar e conhecer. É, de certa forma, um ótimo caminho para estabelecer networking. </p>
<p>Uma única observação: Certifique-se que sua propriedade intelectual não infringe a dos outros – e, principalmente, entenda sobre licenças e saiba defender a sua e identificar outras licenças open-source adequadas para outros projetos – como o dos seus empregadores, por exemplo.</p>
<p>Então, prezado amigo, eis um segredo dourado, que eu não costumo citar: Crie um projeto. Qualquer projeto. O importante é você ter um horizonte atingível e, acima de tudo, dedicação para mantê-lo. Use um <a href="http://code.google.com/p/">google code</a> ou <a href="http://github.com/">github</a>, agregue colegaboladores, e &#8211; porque não? &#8211; publique o mesmo fonte online, bem como coloque o site no ar. </p>
<p>Por mais simples que seja, você tem um projeto – e um bom assunto para a sua próxima entrevista de emprego. Ou, quem sabe, o seu próximo empreendimento.</p>
<p>Moral da história? Eu *queria* poder ter feito tudo isso há 15 anos. Sim, é uma inveja branca da geração atual.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2010/05/04/957/conselhos-para-t-15-anos.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wave e Jing</title>
		<link>http://www.leal.eng.br/mnemetica/2010/04/22/956/wave-e-jing.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2010/04/22/956/wave-e-jing.html#comments</comments>
		<pubDate>Thu, 22 Apr 2010 15:54:29 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[geral]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2010/04/22/956/wave-e-jing.html</guid>
		<description><![CDATA[Estou documentando esta coisa apenas porque não a achei em lugar algum, e através do Luciano, do HighTides, consegui descobrir como.
Adoro o Jing, e até me dou bem com o Wave. Porque não botar os dois?
Infelizmente, não há widgets que permita fazer tal atividade diretamente. Felizmente, existe um recurso alternativo (leia-se: Gambi): Você pode embutir [...]]]></description>
			<content:encoded><![CDATA[<p>Estou documentando esta coisa apenas porque não a achei em lugar algum, e através do <a href="http://twitter.com/lucianosb/">Luciano</a>, do <a href="http://sbvirtual.com/hightides/">HighTides</a>, consegui descobrir como.</p>
<p>Adoro o <a href="http://jingproject.com/">Jing</a>, e até me dou bem com o <a href="http://wave.google.com/">Wave</a>. Porque não botar os dois?</p>
<p>Infelizmente, não há widgets que permita fazer tal atividade diretamente. Felizmente, existe um recurso alternativo (leia-se: Gambi): Você pode embutir um Gadget de texto artibrário HTML colocando o código de embedding do screencast.com.</p>
<p>Segue o passo a passo:</p>
<ul>
<li>Suba o seu vídeo no Jing. Obtenha o código de embedding e guarde em algum lugar;</li>
<li>Na wave em questão, insira um gadget por URL, utilizando o URL <a href="http://wave-samples-gallery.appspot.com/about_app?app_id=10001">deste widget</a> (no caso, é <a href="http://wave-ide.appspot.com/html.xml">este URL</a>)</li>
<li>Edite o Gadget e cole o código de embedding</li>
<li>???</li>
<li>Lucro!</li>
</ul>
<p>Só pra ser ainda mais redundante, eis o <a href="http://www.screencast.com/t/ZTJkNTFjND">link para o vídeo demonstrando como foi feito</a> (não estou embutindo aqui em nome da formatação e a coluna. Tenho respeito aos meus 6 leitores).</p>
<p>Caso você tenha notado algo diferente na hora de colar: Bem, eu sou um fã incondicional do <a href="http://ditto-cp.sourceforge.net/">ditto</a>, que mantém um histórico da minha área de transferência.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2010/04/22/956/wave-e-jing.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ellipsis is dead. Long live to Alpha One</title>
		<link>http://www.leal.eng.br/mnemetica/2009/11/13/951/ellipsis-is-dead-long-live-to-alpha-one.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2009/11/13/951/ellipsis-is-dead-long-live-to-alpha-one.html#comments</comments>
		<pubDate>Fri, 13 Nov 2009 06:51:25 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2009/11/13/951/ellipsis-is-dead-long-live-to-alpha-one.html</guid>
		<description><![CDATA[A minha terminologia para Netbooks é um pouco mais sutil: Eu escolho termos foneticamente semelhantes ao nome original do computador. Mas isso só é possível porque eles *TEM* nomes. No caso, Ellipsis era o meu eee pc. 
Um mea culpa público: O Ellipsis, como meus últimos PCs, realmente merecia um descritivo neste blog. Bem, este [...]]]></description>
			<content:encoded><![CDATA[<p>A minha terminologia para Netbooks é um pouco mais sutil: Eu escolho termos foneticamente semelhantes ao nome original do computador. Mas isso só é possível porque eles *TEM* nomes. No caso, Ellipsis era o meu eee pc. </p>
<p>Um mea culpa público: O Ellipsis, como meus últimos PCs, realmente merecia um descritivo neste blog. Bem, este post é um work-in-progress – como praticamente tudo aqui, é uma tentativa de compensar. </p>
<p>Mas antes, o motivo: Ellipsis estava morrendo, o storage e a performance estava ruim, e eu tava com o cartão de crédito no stand center. Pra complicar, meu desktop principal <a href="http://www.leal.eng.br/mnemetica/2008/03/19/873/mais-trinta-e-dois-bits-depois-windows-xp-professional-x64-edition.html">(x64, lembra?)</a> morreu, cortesia São Pedro. <a href="http://www.leal.eng.br/mnemetica/2009/10/07/943/post-obrigatorio-para-evitar-argumentos-de-improdutividade.html">Mesmo com o mac</a>, e com <a href="http://www.vmware.com/products/fusion/">virtualização</a> e <a href="http://www.codeweavers.com/products/cxmac/">emulação</a>, eu ainda precisava de um Windows.</p>
<p>Então agora temos o Alpha One, que é um Acer Aspire One de 12 polegadas. Compare contra o meu caderno e o Ellipsis (que era de 7 polegadas):</p>
<p><a href="http://www.leal.eng.br/gallery2/v/Fotos/misc/DSC00670.JPG.html"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.leal.eng.br/mnemetica/wp-content/uploads/2009/11/image.png" width="240" height="177" /></a> </p>
<p>Isto foi meio impromptu e gradualmente irei documentá-lo. Por hora, ele é repleto de pontos fortes:</p>
<ul>
<li>As Especificações são generosas:</li>
</ul>
<ul>
<li>250 GB de Disco</li>
<li>Intel Atom Z520 @ 1.33 (embora nominal seja 1.6 GHz)</li>
<li>2GiB de RAM</li>
</ul>
<li>Os periféricos foram *MUITO* bem pensados:</li>
<ul>
<li>É uma segunda geração de netbooks, já com o Atom e um chipset novo pensado na plataforma;</li>
<li>A Acer colocou seu expertise:</li>
</ul>
<ul>
<li>SignalUp, que realmente otimiza o sinal com uma antena wireless</li>
<li>O teclado tem uma disposição excelente com teclas maiores</li>
<li>O monitor é 1366&#215;768, LED, 12 polegadas – IMENSO para um Netbook</li>
</ul>
<p>Os principais problemas que julguei foram:</p>
<ul>
<li>A opção pelo Vista Home Basic</li>
<li>O Chipset de vídeo (GMA 500) ainda não está maduro – dói que só rodar no Vista e, surpreendentemente, no Jaunty fica ainda pior. Felizmente, no Windows 7, ele funciona excelente</li>
<li>A parte externa do case brilha demais. Pode parecer mimimi, mas eu moro numa cidade quente e é fácil estragar a vista com gordura :)</li>
</ul>
<p>Qual o veredito atual? Bem, se quiser comprar, o preço para um novo esta ótimo e acho que muito nego que não sabe configurar um PC irá oferecê-lo em segunda-mão. Logo, compre um até Janeiro/Fevereiro, que acho que é quando irão melhorar os drivers e o suporte do Ubuntu Linux. </p>
<p>Grato. Faxineiro-mor deste weblog.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2009/11/13/951/ellipsis-is-dead-long-live-to-alpha-one.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desenhando e Andando</title>
		<link>http://www.leal.eng.br/mnemetica/2009/11/11/947/desenhando-e-andando.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2009/11/11/947/desenhando-e-andando.html#comments</comments>
		<pubDate>Wed, 11 Nov 2009 21:59:43 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sys/net]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/?p=947</guid>
		<description><![CDATA[Costumava me referir ao NetBeans como o &#8220;Paintbrush4J&#8221;: Basicamente, só servia para Desenhar.
Hoje, porém, parte do meu dia (eletrizante, até) envolveu uma atividade boba, revelou um insight genial:
No Linux, eu precisava desenhar um diagrama de blocos. Tentei com InkScape, e funcionava, com um detalhe: Sendo um editor de SVG, eu precisava criar 2 objetos (Retângulo [...]]]></description>
			<content:encoded><![CDATA[<p>Costumava me referir ao NetBeans como o &#8220;Paintbrush4J&#8221;: Basicamente, só servia para Desenhar.</p>
<p>Hoje, porém, parte do meu dia (eletrizante, até) envolveu uma atividade boba, revelou um insight genial:</p>
<p>No Linux, eu precisava desenhar um diagrama de blocos. Tentei com InkScape, e funcionava, com um detalhe: Sendo um editor de SVG, eu precisava criar 2 objetos (Retângulo e Texto), selecionar ambos, alinhar os centros e agrupá-los. Resumindo: Contraproducente.</p>
<p>Depois do InkScape, tentei Kivio &#8211; Que ao contrário do original, não possui um único stensil de retângulo. Game Over, K.</p>
<p>Tentei outro no Ubuntu: Karbon (antigamente, KIllustrator). Mesmo sintoma do Inkscape.</p>
<p>Procurando várias alternativas, li em algum lugar que o OpenOffice permitia.</p>
<p>E fez bem e consegui concluir os diagramas.</p>
<p>Mais tarde, refletindo com um colega de trabalho, permitimos um padrão:</p>
<ul>
<li>O Java surgiu como basicamente um GIF Animado;</li>
<li>O NetBeans é ótimo quando o assunto se limita apenas a Swing</li>
<li>JavaFX é uma segunda tentativa da Sun reaver a posição de melhor animador de GIF depois do Flash</li>
<li>OpenOffice Draw me permitiu desenhar como eu queria</li>
</ul>
<p>Em suma: A Sun faz software sério, até (Java, JXTA, OpenSolaris), mas ela queria mesmo era achar-se a Adobe. Só pode.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2009/11/11/947/desenhando-e-andando.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inseguran&#231;a e C&#243;digo-Fonte</title>
		<link>http://www.leal.eng.br/mnemetica/2009/07/27/942/insegurana-e-cdigo-fonte.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2009/07/27/942/insegurana-e-cdigo-fonte.html#comments</comments>
		<pubDate>Mon, 27 Jul 2009 10:56:33 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[pessoal]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2009/07/27/942/insegurana-e-cdigo-fonte.html</guid>
		<description><![CDATA[Essa apresentação da OSCON chamou a minha atenção. Eis o sumário do mesmo:
A pervasive elitism hovers in the background of collaborative software development: everyone secretly wants to be seen as a genius. In this talk, we discuss how to avoid this trap and gracefully exchange personal ego for personal growth and super-charged collaboration. We’ll also [...]]]></description>
			<content:encoded><![CDATA[<p>Essa <a href="http://en.oreilly.com/oscon2009/public/schedule/detail/7461">apresentação da OSCON</a> chamou a minha atenção. Eis o sumário do mesmo:</p>
<blockquote><p>A pervasive elitism hovers in the background of collaborative software development: everyone secretly wants to be seen as a genius. In this talk, we discuss how to avoid this trap and gracefully exchange personal ego for personal growth and super-charged collaboration. We’ll also examine how software tools affect social behaviors, and how to successfully manage the growth of new ideas.</p>
</blockquote>
<p>Moral da História: <em>Embrace Failure</em>. Haver-se-à retrabalhado, e evitar é impor-se um obstáculo.</p>
<p>Nunca havia pensado, mas é bastante recorrente no meio. E admito que parte da minha eterna capacidade de procrastinar deriva disso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2009/07/27/942/insegurana-e-cdigo-fonte.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Zero (ou WebSphere sMash) &#8211; Porqu&#234;, pra qu&#234;, o que, quando, e como? (E o que que &#233; mesmo?)</title>
		<link>http://www.leal.eng.br/mnemetica/2009/05/20/931/project-zero-ou-websphere-smash-porqu-pra-qu-o-que-quando-e-como-e-o-que-que-mesmo.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2009/05/20/931/project-zero-ou-websphere-smash-porqu-pra-qu-o-que-quando-e-como-e-o-que-que-mesmo.html#comments</comments>
		<pubDate>Wed, 20 May 2009 11:42:16 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[artigos]]></category>
		<category><![CDATA[domesticos]]></category>
		<category><![CDATA[estudante profissional]]></category>
		<category><![CDATA[histórias]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[pessoal]]></category>
		<category><![CDATA[pessoas, projetos, e problemas]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2009/05/20/931/project-zero-ou-websphere-smash-porqu-pra-qu-o-que-quando-e-como-e-o-que-que-mesmo.html</guid>
		<description><![CDATA[Um bate-bola rápido sobre o ProjectZero, o meu ambiente favorito pra desenvolvimento atualmente.
A História da Web: Relembrar é Entender
Acompanhar a Web envolve um pouco da própria natureza da tecnologia: Novas demandas, novos desafios, e a constante necessidade de manter tudo alinhado com o que já existia, oferecendo recursos que originalmente sequer foram imaginados. Basicamente, as [...]]]></description>
			<content:encoded><![CDATA[<p><em>Um bate-bola rápido sobre o ProjectZero, o meu ambiente favorito pra desenvolvimento atualmente.</em></p>
<h2>A História da Web: Relembrar é Entender</h2>
<p>Acompanhar a Web envolve um pouco da própria natureza da tecnologia: Novas demandas, novos desafios, e a constante necessidade de manter tudo alinhado com o que já existia, oferecendo recursos que originalmente sequer foram imaginados. Basicamente, as principais tecnologias que compõem a Web, entre 1990 a 2000, surgiram da necessidade de resolver os seguintes problemas:</p>
<table cellspacing="2" cellpadding="2" width="507" border="1">
<tbody>
<tr>
<td valign="top" width="264">Problema / Necessidade</td>
<td valign="top" width="235">Solução</td>
</tr>
<tr>
<td valign="top" width="264">Ambiente Hipermídia Cliente-Servidor</td>
<td valign="top" width="235">HTTP / HTML</td>
</tr>
<tr>
<td valign="top" width="264">Controle de Acesso</td>
<td valign="top" width="235">Autenticação HTTP</td>
</tr>
<tr>
<td valign="top" width="264">Preencher e Editar Campos, Interação com Bancos de Dados</td>
<td valign="top" width="235">Formulários HTML, CGI</td>
</tr>
<tr>
<td valign="top" width="264">Gerência de Sessão</td>
<td valign="top" width="235">Cookies</td>
</tr>
<tr>
<td valign="top" width="264">Segurança de Tráfego</td>
<td valign="top" width="235">SSL</td>
</tr>
<tr>
<td valign="top" width="264">Conteúdo Rico</td>
<td valign="top" width="235">Applets Java, ActiveX, JavaScript</td>
</tr>
<tr>
<td valign="top" width="264">Separação de Conteúdo e Apresentação</td>
<td valign="top" width="235">CSS</td>
</tr>
<tr>
<td valign="top" width="264">Integração entre Serviços</td>
<td valign="top" width="235">XMLRPC / SOAP</td>
</tr>
</tbody>
</table>
<p>Agora repare esta tabela com um olhar crítico: Dentro da visão original da Web, ela buscava apenas ser um repositório online de documentos, o que basicamente envolve HTTP e HTML. Ou seja, apenas o primeiro item da lista.</p>
<p>Todas estas necessidades transformaram a mesma em um ambiente dinâmico de troca de informações. Os documentos não eram mais arquivos em uma pasta: Tornaram-se registros complexos em grandes bancos de dados, constantemente acessados e modificados.</p>
<p>A solução Java, àquiela época, eram os Servlets, que buscavam apenas a geração de conteúdo dinâmico. Ela se situa no tempo um pouco depois do conteúdo rico na linha do tempo. Era uma solução adequada? Bem, não muito, mas o Java Server Pages, em 1998, ajudou a aliviar e torná-la mais agradável.</p>
<p>Mas acompanhando esta corrida, perceba que surgiram requisitos implícitos: Bancos de Dados, Logs, Gerência de Concorrência, Pooling de Recursos. Performance e Elegância.</p>
<h2>Complexidade</h2>
<p>Esta complexidade minou inicialmente o poder do Java. As soluções saiam, mas jamais dentro de padrões aceitáveis de performance. A Lei de Moore ajudou e hoje Java está entre as plataformas mais adequadas em termos de performance, e relação custo-benefício adequadas a maioria das corporações.</p>
<p>Perceba a ressalva acima: Corporações. Ela ainda estava – e ainda está – inacessível a maioria dos desenvolvedores. Desenvolver em casa e publicar na web uma aplicação Java envolve um pouco de esforço em achar soluções de hospedagem, devido a natureza do negócio de hospedagem.</p>
<p>Em paralelo, ambientes como Perl e PHP trouxeram uma outra visão: Ambientes Interpretados, leves, com valores diferentes do que o público-alvo do java buscava. Isto gerou uma impedância entre os ambientes que até hoje persiste: A maioria dos ambientes de hospedagem é capaz de rodar Perl e PHP, mas não Java. Isto criou uma cultura e uma divisão: Programadores PHP acham Java Complexo demais, e Programadores Java consideram PHP inadequado para fazer aplicações dentro das necessidades da sua empresa.</p>
<h2>AOP, IOC, DI e ORM: Abordando os Problemas sob outro Ponto de Vista</h2>
<p>Estamos em 2004. Nesta época, as soluções Java já estavam sendo questionadas quanto a sua capacidade de manterem-se adequadas aos requisitos modernos. O AOP criou um novo paradigma de programação, mas o conceito de Injeção de Dependências e Inversão de Controle, popularizados pelo Spring, e o de Mapeamento Objeto-Relational (Hibernate) mostraram que desenvolver em Java era possível – apenas não estavam sendo feito de uma forma efetiva.</p>
<p>Em paralelo, o Struts tornava-se norma, enquanto buscava-se ao JSF a agilidade e leveza que o ASP.NET trazia.</p>
<h2>Ruby on Rails – Uma Nova Abordagem (e Valores)</h2>
<p>O Ruby on Rails é um divisor de águas: Com um novo jogo de valores (YAGNI, DRI), ele buscou a simplicidade e jogou outro requisito na roda: Interatividade. Muitos (bons) programadores Java, Perl, Python e PHP foram para o Ruby on Rails.</p>
<h2>Web 2.0</h2>
<p>Em paralelo, cunhou-se o termo “Web 2.0”. Redes, Ajax, Mashups. Novos requisitos na roda.</p>
<h2>Recomeçando</h2>
<p>Neste ponto, haviam 3 grandes problemas:</p>
<ul>
<li>Haviam basicamente 2 tribos de desenvolvedores Web: Os programadores de Scripting (PHP/Perl/Python), com ambientes interpretados, dinâmicos e leves, e os programadores Java, compilados e exigindo mais memória;</li>
<li>As soluções interpretadas forneciam aplicações com grande demanda (CMS), enquanto as Java eram orientadas ao ambiente enterprise. Porém, isso não impedia que soluções de CMS open source fossem viáveis para corporações, mas o temor natural de integrar uma aplicação PHP com uma base de dados manipulada por uma aplicação Java inibia a sua adoção, resultando em vários CMS Java de uso interno – causando diariamente a reinvenção da roda nas empresas;</li>
<li>Haviam outras maneiras de se fazer as coisas, e mais atrativas que em Java;</li>
</ul>
<p>No ambiente Java, criou-se um claro conflito de valores: Como produzir mais e ao mesmo tempo, integrar com o que eu tenho?</p>
<p>Esta proposta foi a premissa para a IBM inaugurar o Project Zero.</p>
<h2>O Conceito:</h2>
<p>O Project Zero busca trazer leveza, reuso, simplicidade e agilidade para o desenvolvimento web. As seguintes premissas foram adotadas:</p>
<ul>
<li>O Java permite o uso de linguagens Interpretadas;</li>
<li>O Ambiente Servlet/JSP é complexo, e isto causa problemas;</li>
<li>O conceito dos Archives J2EE &#8211; EAR, WAR, RAR não provê a reusabilidade necessária para as aplicações, trazendo retrabalho;</li>
<li>O ambiente deve ser flexível, permitindo que vários meios sejam usados para desenvolver um website;</li>
<li>O Open Source é uma realidade, e não pode ser ignorado;</li>
</ul>
<p>Desta forma, a proposta do Zero procura englobar estes fatores em uma solução onde:</p>
<ul>
<li>O open source seja uma realidade, e que a equipe interaja com a comunidade buscando uma solução não apenas com massa crítica, mas focada em um objetivo comum;</li>
<li>Linguagens como Groovy e PHP possam integrar-se com o Java;</li>
<li>O reuso de aplicações Web seja uma coisa possível</li>
<li>O desenvolvimento pode ser feito a partir de um runtime pequeno (2MB), podendo ser feito pela linha de comando, IDE (Eclipse), ou até pelo Browser (AppBuilder);</li>
<li>As abstrações de acesso a dados (arquivos locais e remotos, e-mail, e Web) sejam vistos como recursos REST, abstraindo a complexidade de uma forma homogênea</li>
</ul>
<p>O Zero possui um <a href="http://projectzero.org/" target="_blank">website</a>, com <a href="http://www.projectzero.org/blog/" target="_blank">blog</a>, <a href="http://www.projectzero.org/forum" target="_blank">forum</a>, <a href="http://www.projectzero.org/bugzilla/" target="_blank">issue tracking</a>, <a href="http://www.projectzero.org/wiki/bin/view/Development" target="_blank">área de desenvolvimento</a>, <a href="http://www.projectzero.org/download/" target="_blank">downloads</a> e <a href="http://www.projectzero.org/documentation/" target="_blank">documentação</a>. Tudo rodando no runtime do Zero, e mantido pela equipe do Zero. </p>
<h2>Aplicações:</h2>
<p>O meu tcc foi feito no Zero. Ambora me arrependa de ter tido uma abordagem mais monolítica (evitando o PHP e Groovy), comparar a sua performance (Spring + Hibernate) contra um servidor J2EE equivalente demonstrou uma performance superior. Lembra quando falei de um runtime leve? Pois então.</p>
<p>Outro ponto forte é integração: Vamos supor que você possui na intranet um portal <a href="http://en.wikipedia.org/wiki/Mediawiki" target="_blank">MediaWiki</a>, e gostaria de integrar a sua autenticação com algum sistema proprietário da empresa. Ou o seu blog (em <a href="http://en.wikipedia.org/wiki/Wordpress" target="_blank">WordPress</a>) necessita de alguma integração com o seu CMS Java? Pois – mesmo sendo PHP, o Zero integra com eles de uma forma genial.</p>
<h2>E o sMash? </h2>
<p>Ah sim, o sMash é a versão comercial do Zero, e é disponível pela IBM. Mas a mesma é baseada no Zero e na sua comunidade.</p>
<h2>Concluindo</h2>
<p>Então fica o convite: Veja os links acima e julgue se a Web não precisa de um curto-circuito. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2009/05/20/931/project-zero-ou-websphere-smash-porqu-pra-qu-o-que-quando-e-como-e-o-que-que-mesmo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projeto Atual: Laboratosco</title>
		<link>http://www.leal.eng.br/mnemetica/2009/05/04/928/projeto-atual-laboratosco.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2009/05/04/928/projeto-atual-laboratosco.html#comments</comments>
		<pubDate>Mon, 04 May 2009 23:27:44 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[artigos]]></category>
		<category><![CDATA[domesticos]]></category>
		<category><![CDATA[eletronica]]></category>
		<category><![CDATA[estudante profissional]]></category>
		<category><![CDATA[geral]]></category>
		<category><![CDATA[histórias]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[pessoal]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2009/05/04/928/projeto-atual-laboratosco.html</guid>
		<description><![CDATA[Benvindoaê!
“-Quando Tralha é Coisa Séria!”
Nesta virada do ano, arrumobservando o meu quarto, percebi que o espaço classificava-se da seguinte maneira (classificado por importância):

Livros e Revistas;
CDs e DVDs;
Cabos Antigos e Aparelhos Eletrônicos Sem Uso;
Computadores;
O mega-traste que vos fala;

Como destes, o último item, embora pouco importante, era apenas a razão do quarto existir, e dada a velocidade [...]]]></description>
			<content:encoded><![CDATA[<h1>Benvindoaê!</h1>
<p><em>“-Quando Tralha é Coisa Séria!”</em></p>
<p>Nesta virada do ano, <strike>arrum</strike>observando o meu quarto, percebi que o espaço classificava-se da seguinte maneira (classificado por importância):</p>
<ul>
<li>Livros e Revistas;</li>
<li>CDs e DVDs;</li>
<li>Cabos Antigos e Aparelhos Eletrônicos Sem Uso;</li>
<li>Computadores;</li>
<li><em>O mega-traste que vos fala;</em></li>
</ul>
<p>Como destes, o último item, embora pouco importante, era <strong>apenas</strong> a razão do quarto existir, e dada a velocidade com que o espaço começava a ser tomado, decidi fazer uma organização. CDs e DVDs estão sendo ripados, e pro 2o semestre fecho um Home Server/Media Center e alguns livros serão doados (caso você tenha algum leve interesse, confira <a href="http://www.leal.eng.br/gallery2/v/Fotos/pessoais/outras/Estante+de+Livros+002.jpg.html">isso</a> e <a href="http://www.leal.eng.br/gallery2/v/Fotos/pessoais/outras/Estante+de+Livros+001.jpg.html">aquilo</a>). </p>
<p><em>Moral da História: O traste fica, apesar dos protestos da vizinhança.</em></p>
<p><em>Mas a questão das revistas bateu em alguns aspectos sentimentais:</em></p>
<ul>
<li>Quadrinhos de Valor Sentimental: Vertigo Brasileira e os Episódios da Morte e Ressureição do Super-Homem;</li>
<li>Coleções</li>
<li>Periódicos<em> (que irão pro saco! Eu juro)</em>;</li>
<li>Outras, aonde um artigo ou outro se salva, serão scaneadas e mantidas &#8211; <em>prometo escrever sobre isso quando fechar a solução, mas já dei início a este processo</em>;</li>
<li><em>Outras revistas tem mais de 30 anos… err…</em></li>
</ul>
<p><em>Abre Parêntese</em> &#8211; Eu ainda não cheguei aos 30, mas ver revistas de 1978 ensinando a fazer tele-jogo me colocaram em um dilema imenso: Eu não sabia eletrônica, mas durante anos, sempre assinei e comprei revistas e livros sobre eletrônica. Como lidar com isso? <em>Fecha Parêntese.</em></p>
<p>Em paralelo, outras constatações: Estava me formando, queria dar menos atenção a programação &#8211; <em>Calma, é apenas uma licença sabática!</em> &#8211; , e queria ter novas perspectivas sobre a vida. Novos passatempos, mas ainda mantendo a natureza doméstica que rege a minha vida. </p>
<p>A partir daí, surgiu o plano.</p>
<h1>O Plano</h1>
<p>O Plano era simples: Montar um Laboratório de Eletrônica e efetivamente aprender Eletrônica Básica, Digital e Microcontroladores. Estabelecer um hobby, ganhar o domínio e a prática para ler os artigos, compreender, e enfim, dar cabo na minha coleção das Revistas da Editora Saber. Um processo para tomar os próximos 2 anos, divertir-me e ganhar o conhecimento.</p>
<p>Existe uma infinidade de fatores que impediram isso de iniciar-se antes. Fatorei tudo e resolvi utilizar uma abordagem semi-autodidata para conduzir o meu próprio aprendizado. Motivar-me, de acordo com as minhas próprias premissas. E, principalmente, montar uma caixa de ferramentas de deixar os outros com inveja. :)</p>
<p><a href="http://www.leal.eng.br/gallery2/v/Fotos/misc/lab/DSC00095.JPG.html"><img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://www.leal.eng.br/gallery2/d/4654-2/DSC00095.JPG" /></a> </p>
<p align="center"><em>Power!!!!</em></p>
<p>&#160;</p>
<p>E como você costuma ler neste blog, ter um projeto bem definido e exemplar :)</p>
<h1>Semi-Autodidata?</h1>
<p>É. Deixa eu explicar: Ser autodidata é muito valorizado pelas pessoas. Porém tem um grandissíssimo problema: Diante de fatos incompreendidos, você define que uma maneira é a única que funciona, muitas vezes sem sequer de fato compreender os aspectos que envolvem a sua percepção. </p>
<p><em>Falta. Método.</em></p>
<p>Isto te torna hábil, mas também te torna burro. Muito burro. E foi por este motivo – não prender-me a miopia do auto-aprendizado –, que me graduei em computação mesmo já possuindo experiência no mercado de trabalho. Resolvi aplicar esta visão a um hobby.</p>
<p>Logo, é necessário método: Experimentar sim, porém diante do obstáculo, discutir e compreender a questão, de forma iterativa.</p>
<p>Parte do Plano envolveu eleger “Tutores” – Pessoas com Experiência Vasta nos Assuntos, para orientar-me e ouvir meus relatos. Até agora, tem rendido muito bem.</p>
<p>Porque mencionei o Aprendizado de Programação? Bem, o Aprendizado de Programação, sem método, cria um rendimento baixo – é necessário você ter persistência e, principalmente, compreender abstração. Mas de qualquer forma, não obter o resultado desejado envolve um pouco da preguiça mental de não compreender o obstáculo diante de você. É o clássico “Maldito compilador! Agora este erro!” – Muitas vezes sem ler e buscar compreendê-la.</p>
<h1>E o que você fez?</h1>
<p>Estabelecendo Premissas:</p>
<ul>
<li>Safety First – Comecei comprando equipamentos e lendo orientações de segurança. Isto rendeu-me uma ida ao IT Center;</li>
<li>Ferramentas são para o que o homem não domina com as mãos: Sempre que encontrava alguma dificuldade, recorria ao google para descobrir como os outros resolviam. Isto gerou algumas descobertas sobre ferramentas úteis, como as “Terceira Mão”, muito úteis para soldagem de placa, ou descascadores de fio (tentei aqueles da Western – São bons, mas tendem a quebrar fácil. A coisa terminou <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8696">no da Sparkfun</a> – <em>É Campeão!</em>). E pinças e alicates;</li>
<li>Dicas, Dicas, Dicas: Utilizei o <a href="http://www.instructables.com/">Instructables</a> como uma referência. Ótimas idéias, e uma comunidade ativa na área de eletrônica. Fazer não basta. É preciso saber fazer uma forma melhor de fazer;</li>
</ul>
<p>A partir daí, a coisa centrou-se ao redor de coletar, informar, e registrar:</p>
<ul>
<li>Plataformas: Na verdade, há cinco anos eu já possuia uma uma placa de desenvolvimento PIC. Decidi mantê-los, mas com menos enfoque, e direcionar-me para <a href="http://en.wikipedia.org/wiki/Arduino">Arduino</a>, dada a comunidade;</li>
<li>Componentes: Tem a Tip, no Reduto. É boa, mas me deslocar pro comercio em horário comercial é uma tormenta. Fico em casa: Tentei algumas lojas online. A minha favorita absoluta chama-se <a href="http://www.soldafria.com.br/">Soldafria</a>. O atendimento é ótimo, a navegabilidade é boa, e a variedade e preços são excelentes. Para outros casos extremos, recorri a <a href="http://www.sparkfun.com/">Sparkfun</a> e ao MercadoLivre;</li>
<li>Circuitos: Ainda não achei projetos que me inspirassem. Por hora, estou rascunhando alguns e aprendendo sobre as partes envolvidas;</li>
<li>Sites: Sim, algum. Ainda não tomei coragem para postar em algum fódum – Prometo repensar sobre isso. De qualquer forma, meu caderno de notas continua a mil;</li>
</ul>
<h1>Aonde ficamos?</h1>
<p>Basicamente já montei alguns circuitos básicos com Arduino. O foco agora é em montar circuitos, e não em programá-los. Logo, minha experiência com o <a href="http://en.wikipedia.org/wiki/Eagle_(program)">Eagle</a>, <a href="http://en.wikipedia.org/wiki/Arduino">Arduino IDE</a>, <a href="http://winavr.sourceforge.net/">WinAVR</a>, <a href="http://processing.org/">Processing</a> e <a href="http://en.wikipedia.org/wiki/MPLAB">MPLAB</a> fica para outro momento. Por hora, é soldagem e construção de placas parece ser o próximo estágio. Porém, compreenda que o enfoque – macro &#8211; é aprender todas as áreas e buscar-me nelas.</p>
<p>Preciso fazer um curso intensivo de solda. Ainda não decidi, mas o curso do Francisco, do <a href="http://www.kit8051.com.br/">Kit8051</a>, me parece bom. E tem o CuriousInventor.com <a href="http://www.curiousinventor.com/guides/How_To_Solder">tem um site útil sobre o assunto</a>.</p>
<p>Lembra dos aparelhos eletrônicos acima? Estou desmontando e me livrando do que não me interessa de componentes. O resto vai pra caixa de componentes, serelepemente. :)</p>
<p>Agora eu consigo olhar para um esquema envolvendo microcontroladores e compreender o significado – Reconhecer o padrão. Aplicá-lo ainda está um pouco tortuoso, mas eu provavelmente irei trabalhar isso em breve.</p>
<p>Bem, o futuro parece claro: Montar mais circuitos, ganhar esta confiança, entender os principais circuitos envolvidos, e começar a envolver-me em outros projetos. <em>Ah, sim: Desmontar mais circuitos, hehe.</em></p>
<p><em>Caso você esteja curioso, <a href="http://www.leal.eng.br/gallery2/v/fotos/misc/lab/">confira a minha galeria de fotos do lab no Gallery2</a>. Caso deseje discutir e até oferecer-se como tutor em alguns projetos, fale com o nosso <a href="http://meadiciona.com/aldrinleal/">Serviço de Atendimento ao Cu-rioso</a>.</em></p>
<p>Grato.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2009/05/04/928/projeto-atual-laboratosco.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Stop the Presses: SharedView on x64</title>
		<link>http://www.leal.eng.br/mnemetica/2008/11/30/918/stop-the-presses-sharedview-on-x64.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2008/11/30/918/stop-the-presses-sharedview-on-x64.html#comments</comments>
		<pubDate>Sun, 30 Nov 2008 14:32:32 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[artigos]]></category>
		<category><![CDATA[geral]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2008/11/30/918/stop-the-presses-sharedview-on-x64.html</guid>
		<description><![CDATA[I did some little hacking tweaking with Orca and I’ve managed to build a .msi for x64 for SharedView. Feel free to download and try at your own risk.
]]></description>
			<content:encoded><![CDATA[<p>I did some little <strike>hacking </strike>tweaking with Orca and I’ve managed to build a .msi for x64 for <a href="http://en.wikipedia.org/wiki/Microsoft_SharedView">SharedView</a>. Feel free to <a href="http://www.leal.eng.br/files/SharedView_x64.msi">download and try at your own risk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2008/11/30/918/stop-the-presses-sharedview-on-x64.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LogBack on Zero</title>
		<link>http://www.leal.eng.br/mnemetica/2008/11/06/912/logback-on-zero.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2008/11/06/912/logback-on-zero.html#comments</comments>
		<pubDate>Thu, 06 Nov 2008 06:06:35 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[artigos]]></category>
		<category><![CDATA[geral]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2008/11/06/912/logback-on-zero.html</guid>
		<description><![CDATA[(Another tech post. Yes, I’ve been all about logging frameworks lately. If you think I should start another blog, this time on tech in plain english, feedback on the comments section.)
Ok, now that zero.firephp is here, its time to dissect ProjectZero itself. It was not pleasant to deal with the ivy files, so lets get [...]]]></description>
			<content:encoded><![CDATA[<p><em>(Another tech post. Yes, I’ve been all about logging frameworks lately. If you think I should start another blog, this time on tech in plain english, feedback on the comments section.)</em></p>
<p>Ok, now that <a href="http://www.projectzero.org/blog/index.php/2008/10/25/firephp-on-zero/">zero.firephp</a> is here, its time to dissect <a href="http://www.projectzero.org/">ProjectZero</a> itself. It was not pleasant to deal with the <a href="http://ant.apache.org/ivy/">ivy files</a>, so lets get started before I remember how painful it was to deal with a cheap <a href="http://maven.apache.org/">M2</a> rip-off.</p>
<h1>Java Logging 101: The History</h1>
<p><em>(Skip to the next section if you already know about this)</em></p>
<p>In the end, there was System.out. And this was good.</p>
<p>People then started to wonder that if would be helpful to separate logging statement from application output. Thus, Unix programmers quickly rushed to System.err, already in the knowledge it was a safe harbor. So now people could enable and disable logging. And that was good as well.</p>
<p>However, people started to notice that when logging was on, performance was down while copious amounts of logging data were written as well. So, Java people borrowed the concept of Logging Levels and started put simple statements to test before logging.</p>
<p>Then, people wanted to have the ability to save output into a file. Perhaps for daemons, or perhaps just to keep a copy handy to look and compare with other. Thus, the logging flags to file output were born.</p>
<p>Then, Ceki Gülcü (aka “The God of Logging ”) came and thought it was a good idea to mix the hierarchy java uses in the package system, mix levels, analyze and came up with <a href="http://logging.apache.org/log4j/">Log4J</a>. <em>That was excellent</em>, and several other frameworks were made after his one.</p>
<p>Soon, a company with the Stock Symbol “JAVA” on NASDAQ thought it would be good to bless. What a mess (it rhymed!)… The <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/package-summary.html">java.util.logging</a> package was born, and this was not good, culminating in flame wars (vi-versus-emacs-style) in Apachia, a small micronation on the internets.</p>
<p>The overlords at <a href="http://commons.apache.org/">commonia</a>, a small county within Apachia , in an attempt to restore peace and ensure Apachia’s economical growth, devised <a href="http://commons.apache.org/logging/">commons-logging</a>, an ill-fated that while good in nature (trying to automagically bridge logging requests between log4j and java.util.logging), in truth created another layer of abstraction which is still useful today, but creating a third logging API which also brought some nasty classloading issues.</p>
<p>Ceki Gülcü left apache, and log4j 1.3 was soon left deprecated. 2.0 is said to be still in the works. Meanwhile, Ceki came back and revised the concepts between commons-logging and log4j, creating <a href="http://slf4j.org">slf4j</a> and <a href="http://logback.qos.ch/">logback</a>, respectively, trying to narrow the gap and bring his vision back to the world. It also includes libraries to bridge java.util.logging and plug-in replacements for log4j as well as commons-logging.</p>
<p>In the end, we have 5 apis, all of them completely different.</p>
<p><em>Oh god… I miss System.out.</em></p>
<h1>Zero</h1>
<p>Zero uses java.util.logging. Being a good citizen of the Java World, seems fine. But if you want to use logback, its possible. In particular, <a href="http://www.leal.eng.br/files/logback-for-zero.zip">download this file</a>, unpack and keep going, as I will outline the steps required to enable logback and, as a bonus, see zero logging under <a href="http://lilith.huxhorn.de/">Lilith</a>, a handy logging viewer for logback.</p>
<h2>Step #1: Declare the Dependencies</h2>
<p>Take the enclosed ivy.xml. Merge the section outlined below into your ivy.xml:</p>
<p><img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="120" alt="image" src="http://www.leal.eng.br/mnemetica/wp-content/uploads/LogBackonZero_2B89/image32087deb721646a78ec02896de22bb42.png" width="244" border="0" /> </p>
<p>You’re inserting the APIs required slf4j&#160; (transitively, from jul-to-slf4j), as well as logback-classic (which also includes core). However, you’re excluding some dependencies which are not needed for logback. Change them if you need (specially janino).</p>
<h2>Step #2: Declare the java.util.logging Bridge</h2>
<p>Simply copy the contents from logging.properties into your project.</p>
<h2>Step #3: Modify zero.config as you need</h2>
</p>
</p>
<p>In particular, the /config/logging/levels setting. The one declared is set as the root appender. But the syntax is “logger” : “level”, where you put the desired logging levels.</p>
<p>The one declared in the file is pretty verbose, which may be undesirable. I use those settings:</p>
<p><font face="Courier New">/config/logging/levels += {     <br />&#160; &quot;*&quot; : &quot;ALL&quot;,      <br />&#160; &quot;zero.network&quot; : &quot;OFF&quot;,      <br />&#160; &quot;zero.core.context.zones.UserZoneHandler&quot; : &quot;INFO&quot;      <br />}</font></p>
<h2>Step #4: Logback</h2>
<p>Declare a logback.xml file. The enclosed one should work with <a href="http://lilith.huxhorn.de/">lilith</a>. You can also use <a href="http://logback.qos.ch/consolePlugin.html">logback’s Eclipse Plug-In</a> instead. </p>
<h2>Step #5: Lilith</h2>
<p>Open, Unpack, Run.</p>
<h2>Step #6: The result</h2>
<p>Here is the result, in all of its glory!</p>
<p><img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="190" alt="image" src="http://www.leal.eng.br/mnemetica/wp-content/uploads/LogBackonZero_2B89/imagea4c32fe76640450bb329d57c02f16447.png" width="244" border="0" /> </p>
<h2>Beyond logback and java.util.logging: commons-logging and log4j</h2>
<p>You can also declare the compatible counterparts for integrating commons-logging and log4j into the slf4j/logback combo as well. Check <a href="http://slf4j.org">the slf4j web site</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2008/11/06/912/logback-on-zero.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wireless em Fam&#237;lia, um testemunho</title>
		<link>http://www.leal.eng.br/mnemetica/2008/03/12/867/wireless-em-famlia-um-testemunho.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2008/03/12/867/wireless-em-famlia-um-testemunho.html#comments</comments>
		<pubDate>Wed, 12 Mar 2008 21:34:47 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[histórias]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2008/03/12/867/wireless-em-famlia-um-testemunho.html</guid>
		<description><![CDATA[Nota: O Seguinte email foi mandado para a minha família após a instalação de um roteador que, entre outras coisas, possuía Wireless. Eu acho que andar com PC é carregar trabalho. Então não compactuo com nada disso. Mas eles&#8230; Bem, eles são eles&#8230;´
De certa forma, talvez isto explique o motivo do meu argumento de que [...]]]></description>
			<content:encoded><![CDATA[<p><em>Nota: O Seguinte email foi mandado para a minha família após a instalação de um roteador que, entre outras coisas, possuía Wireless. Eu acho que andar com PC é carregar trabalho. Então não compactuo com nada disso. Mas eles&#8230; Bem, eles são eles&#8230;´</em></p>
<p><em>De certa forma, talvez isto explique o motivo do meu argumento de que eu &#8216;fui criado pra ser nerd&#8217;:</em></p>
<blockquote><p>Família,  </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Ontem o modem metido a roteador começou a despirocar de vez. Ia comprar um novo. Bem, cheguei a comprá-lo, mas descobri que o mesmo não era modem e apenas roteador. Então, surgiu o monolito albino na biblioteca. Não batam nele: não, ele não brotou do nada e a culpa é toda minha.  </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Quando fiz o modem funcionar apenas como modem e deixar as funções de roteador, o mesmo ganhou mais facilidade de gerência. Embora vocês não liguem, isso vai facilitar demais o meu trabalho &#8211; embora, em casos extremos (acho que o seu é um, <a href="http://gambiarra.net/grapheir/">Anna</a>), será necessário reconfigurar a placa de rede para endereços automáticos. Nisso o Roteador não me deu chance.  </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; A outra coisa legal foi que agora tem uma rede sem fio, chamada &#8216;Leal&#8217;. Com o nível de segurança mais f*deroso disponível. Para ingressar nesta rede, é necessário uma senha. Anotem-la:  </p>
<p>&nbsp;&nbsp;&nbsp; [senhasenhasenha removida] </p>
<p>&nbsp;&nbsp;&nbsp; Ok. Quanto ao alcance: Criamos um &#8220;Bem&#8221; Virtual, e simulamos locais aonde o bem usaria a rede sem fio: Os seguintes locais passaram:  </p>
<p>&nbsp;&nbsp;&nbsp; * Mesa da Cozinha, sentado de frente para o Microondas e de Costas pra Geladeira;<br />&nbsp;&nbsp;&nbsp; * Cama, do lado do poleiro do cachorro marrom cor-de-cocô<br />&nbsp;&nbsp;&nbsp; * Sala, sentado de forma que o aparelho petralha musical (o violão) fique à sua esquerda<br />&nbsp;&nbsp;&nbsp; * Quarto do extremo oposto, de dona desconhecida, refúgio do gato preto modelo macumba &#8211; encima da cama com 2 metros de pé direito. (Sinal Excelente, inclusive).  </p>
<p>&nbsp;&nbsp;&nbsp; Espero que fiquem felizes com isso. Dúvidas e esclarecimentos, marquem hora porque eu já tô fazendo hora extra e não tenho centro de custo pra &#8220;bilar&#8221; (do verbo &#8216;to bill&#8217;) vocês.  </p>
<p>&nbsp;&nbsp;&nbsp; Atenciosamente, </p>
<p>&#8211; <br />&#8211;<br />&#8211; Aldrin Leal, &lt;aldrin@leal.eng.br&gt; / <a href="http://www.leal.eng.br/mnemetica/">http://www.leal.eng.br/mnemetica/</a></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2008/03/12/867/wireless-em-famlia-um-testemunho.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E62: O Terceiro Series 60, Obrigado</title>
		<link>http://www.leal.eng.br/mnemetica/2008/02/25/865/e62-o-terceiro-series-60-obrigado.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2008/02/25/865/e62-o-terceiro-series-60-obrigado.html#comments</comments>
		<pubDate>Mon, 25 Feb 2008 13:02:33 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[pessoal]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[mobile series60 s60 symbian]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2008/02/25/865/e62-o-terceiro-series-60-obrigado.html</guid>
		<description><![CDATA[O Augusto do efetividade.net comenta sobre Smartphones. Decido comentar sobre o meu favorito, visto que, há umas três semanas, troquei meu 6600 usado por um E62. 
O que falar dele?
Bem, eu sou suspeito pra falar: O meu primeiro Series 60 foi um Nokia 7650. Sim, o primeirão. Sim, o monstro. Em geral, eu opto pelos [...]]]></description>
			<content:encoded><![CDATA[<p>O Augusto do <a href="http://efetividade.net/">efetividade.net</a> <a href="http://www.efetividade.net/2008/02/25/smartphone-voce-usa-um-quais-os-pontos-fortes-dele/trackback/">comenta sobre Smartphones</a>. Decido comentar sobre o meu favorito, visto que, há umas três semanas, troquei meu 6600 usado por um E62. </p>
<h1>O que falar dele?</h1>
<p>Bem, eu sou suspeito pra falar: O meu primeiro Series 60 foi um Nokia 7650. Sim, o primeirão. Sim, o monstro. Em geral, eu opto pelos grandes por um único fator: Eles sempre terminam no bolso da calça e até o momento, não me levaram nenhum. Aleluia.</p>
<h1>eSeries ou nSeries?</h1>
<p>Os eSeries são business e os nSeries são entretenimento. Este é o principal diferenciador deles.</p>
<h1>E porque?</h1>
<p>Porque eu gosto tanto dos Series 60 e agora, particularmente, dos eSeries? Alguns motivos:</p>
<h1>Sugestão? Nokia eSeries. E61 ou E62 (mais barato). </h1>
<ul>
<li>Edição Nativa de DOC, PPT e XLS;</li>
<li>Leitura de Arquivos PDF e Flash;</li>
<li>Zilhões de Aplicações, Java ou Nativas;</li>
<li>Não tem GPS, mas pode utilizar um via Bluetooth;</li>
<li>A tela é imensa (QVGA). Isso faz uma diferença enorme na hora de navegar pela Web;</li>
<li>Teclado QWERTY (Ok, se você não faz questão: Todos os series 60 &#8211; exceto o primeiro, o 7650 &#8211; suportam teclados bluetooth);</li>
<li>Conectividade em Exagero: Eu costumava no 6600 e no 7650 bater fotos e imediatamente fazer upload delas, usando o <a href="http://gallery2.menalto.com/">gallery2</a>. SyncML é suportado, além de outros formatos de arquivos;</li>
<li>Falando nisso, o browser dos Series 60 é baseado no WebKit. Além dele, Opera e Opera Mini são outras boas pedidas;</li>
<li>Modo Offline: Vai pegar um avião? Desligue o chip e mande ver no telefone;</li>
<li>Compatiblidade: Consegui, usando apenas um chip (no 6600), migrar. O E62 fez upload de um programa e o telefone antigo subiu todos os contatos;</li>
<li>O E61i (o dobro do preço, atualmente) tem também cliente SIP, WiFi e Câmera. Compensa? Sim, compensa;</li>
</ul>
<h1>Conclusão:</h1>
<p>Este vai ficar pelo menos mais 4 anos comigo, mas agora, eu vou poder passar mais tempo jogando e lendo livros durante os momentos de tédio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2008/02/25/865/e62-o-terceiro-series-60-obrigado.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some JXTA / JXME / CLDC / JSE Notes</title>
		<link>http://www.leal.eng.br/mnemetica/2008/01/01/863/some-jxta-jxme-cldc-jse-notes.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2008/01/01/863/some-jxta-jxme-cldc-jse-notes.html#comments</comments>
		<pubDate>Tue, 01 Jan 2008 07:55:42 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[artigos]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[jxse jxme jxta midp java p2p cldc]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2008/01/01/863/some-jxta-jxme-cldc-jse-notes.html</guid>
		<description><![CDATA[I've written some notes on making JXME work, as well as making it work under Java SE as well.]]></description>
			<content:encoded><![CDATA[<p>(Sim, outro post técnico. Pule este, ok?)</p>
<p>I&#8217;ve written some notes on making <a href="https://jxta-jxme.dev.java.net/">JXME</a> work, as well as making it work under Java SE as well. </p>
<p>Bearing in mind I&#8217;m not your best JXTA/CLDC/JSE source, feel free to <a href="http://www.leal.eng.br/wiki/codigo:java:jxme-4-se">take a look</a>. Thank you. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2008/01/01/863/some-jxta-jxme-cldc-jse-notes.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criatividade com Hor&#225;rio: Isto existe?</title>
		<link>http://www.leal.eng.br/mnemetica/2007/09/10/854/criatividade-com-horrio-isto-existe.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2007/09/10/854/criatividade-com-horrio-isto-existe.html#comments</comments>
		<pubDate>Mon, 10 Sep 2007 06:18:33 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2007/09/10/854/criatividade-com-horrio-isto-existe.html</guid>
		<description><![CDATA[A Criatividade em si, é paradoxal: Nada realmente é original atualmente, e tudo vem de idéias herdadas anteriormente, apenas com pequenas digressões em cima da anterior.]]></description>
			<content:encoded><![CDATA[<p><a href="http://joseoliveira.com/2007/09/09/ele-quer-trabalhar-em-uma-fabrica-de-software/">Este post</a> incendiou <a href="http://www.jroller.com/vfpamp/entry/entrei_em_colapso">uma discussão interessante</a>:</p>
<blockquote><p>Piorou quando diz que para programar não é preciso inspiração. Isso é verdade se você for um <a href="http://en.wikipedia.org/wiki/Web_monkey">macaco que escreve código</a>, mas para quem vai um pouco além disso, programar é muito de inspiração (além de concentração). E convenhamos que inspiração olhando apenas para IDE não é exatamente fácil de alcançar, por isso eu defendo que dispersar os pensamentos as vezes é benéfico para quem está programando.</p>
</blockquote>
<p>O que eu penso? Bem, penso que superestimamos a criatividade. Semestre passado, me dediquei a repensar a maneira com a qual eu lidava com os meus processos criativos. Particularmente, produzir trabalhos pra faculdade e entregar código. Não preciso descrever toda a minha produção semestre passado, mas posso sumarizar: Foi imensa.</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" alt="image" src="http://www.leal.eng.br/mnemetica/wp-content/uploads/CriatividadecomHorrioIstoexiste_2E79/image878bff97da39483aacba413f26b7c8d8.png" align="right" border="0"/> Mas e afinal, o que ela teve de tão milagroso ou ímpar para justificar este meu post? Método. A Criatividade em si, é paradoxal: Nada realmente é original atualmente, e tudo vem de idéias herdadas anteriormente, apenas com pequenas digressões em cima da anterior. Logo, o chave neste processo criativo, na minha opinião, está em compreender todas as variáveis envolvidas, decidir quais realmente importam, e aonde mexer, à partir de um modelo original.</p>
<p>Soa familiar? É exatamente este a origem dos <a href="http://en.wikipedia.org/wiki/Design_Patterns">Design Patterns</a>. Mas não se limita a isso: Parte chave de um processo criativo envolve em constantemente aumentar o seu vocabulário de idiomas. E quanto a isto, ler códigos-fonte e aprender novas abstrações e implementações é, sem dúvida, o segredo de um código rápido, elegante, curto, e de sucesso.</p>
<p>Horários Ajudam: Na minha experiência, estabelecer um horário e criar disciplina ajudou, na medida que eu condicionava o cérebro a trabalhar apenas naquele momento. Eu desplugava, e era o inconsciente que me dava dicas, orientando quanto ao que seria necessário fazer. Lembre-se: Você não precisa saber o caminho aonde chegar lá (mapa / bussóla), quando você pode ter um conjunto de pontos a serem atingidos. Eis porque sempre chegamos tendo apenas a relação de pontos a serem atingidos. Cognição é a chave.</p>
<p>Em tempo: No meu caso do semestre passado, mapas mentais e notas (organizadas ao mesmo tempo usando o <a href="http://www.microsoft.com/onenote">OneNote</a>, <a href="http://onfolio.net/">OnFolio</a>, <a href="http://www.jhorman.org/wikidPad/">WikidPad</a>, <a href="http://trac.edgewall.com/">Trac</a>, e <a href="http://trac.edgewall.com/">dokuwiki</a>, de acordo com o contexto) foram ferramentas de um valor incalculável. Mas não esqueça: A ferramenta não é nada sem o domínio do processo. E, portanto, a disciplina.&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2007/09/10/854/criatividade-com-horrio-isto-existe.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java: Screencasts e Primeiros Passos com o Eclipse</title>
		<link>http://www.leal.eng.br/mnemetica/2007/08/16/839/java-screencasts-e-primeiros-passos-com-o-eclipse.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2007/08/16/839/java-screencasts-e-primeiros-passos-com-o-eclipse.html#comments</comments>
		<pubDate>Thu, 16 Aug 2007 06:17:17 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[pessoal]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2007/08/16/839/java-screencasts-e-primeiros-passos-com-o-eclipse.html</guid>
		<description><![CDATA[Eu não nego que sou fã incondicional do Eclipse em Java. A facilidade de navegar e depurar programas é, de longe, a feature que eu mais sou fanático nele. Então, seguem três screencasts, para que você possa aprender como navegar pela interface, pelo código, e como depurar...]]></description>
			<content:encoded><![CDATA[<p>Produzi este material para o grupo de estudos para o próximo ICPC, pelo CESUPA. Porém, julguei que o conteúdo era bastante legal, e que merecia ser publicado na forma de screencasts.</p>
<p>Eu não nego que sou fã incondicional do Eclipse em Java. A facilidade de navegar e depurar programas é, de longe, a feature que eu mais sou fanático nele. Então, seguem três screencasts, para que você possa aprender como navegar pela interface, pelo código, e como depurar:</p>
<p>Obs: Eu parto da premissa que você instalou o <a href="http://www.eclipse.org/download/">Eclipse</a> e o <a href="http://java.sun.com/">JDK</a>. :)</p>
<h2>Parte 1: <a href="http://www.leal.eng.br/mnemetica/wp-content/screencasts/Eclipse-Perspectivas.swf">Navegando pela Interface</a></h2>
<p>
<div id="flashcontent-1">This text is replaced by the Flash movie. </div>
<p> <script type="text/javascript">
   var so = new SWFObject("http://www.leal.eng.br/mnemetica/wp-content/screencasts/Eclipse-Perspectivas.swf", "Perspectivas", "640", "550", "8", "#336699");
   so.write("flashcontent-1");
</script>  </p>
</p>
<h2>Parte 2: <a href="http://www.leal.eng.br/mnemetica/wp-content/screencasts/Eclipse-Navegacao.swf">Navegando pelo Fonte</a></h2>
<p>
<div id="flashcontent-2">This text is replaced by the Flash movie. </div>
<p> <script type="text/javascript">
   var so = new SWFObject("/mnemetica/wp-content/screencasts/Eclipse-Navegacao.swf", "Navegação", "640", "550", "8", "#336699");
   so.write("flashcontent-2");
</script>  </p>
</p>
<h2>Parte 3: <a href="http://www.leal.eng.br/mnemetica/wp-content/screencasts/Eclipse-Debugging.swf">Debugging</a></h2>
<p>
<div id="flashcontent-3">This text is replaced by the Flash movie. </div>
<p> <script type="text/javascript">
   var so = new SWFObject("/mnemetica/wp-content/screencasts/Eclipse-Debugging.swf", "Debugging", "640", "550", "8", "#336699");
   so.write("flashcontent-3");
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2007/08/16/839/java-screencasts-e-primeiros-passos-com-o-eclipse.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pontes, Engenharia, e Software</title>
		<link>http://www.leal.eng.br/mnemetica/2007/08/03/831/pontes-engenharia-e-software.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2007/08/03/831/pontes-engenharia-e-software.html#comments</comments>
		<pubDate>Sat, 04 Aug 2007 01:23:58 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[pessoal]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2007/08/03/831/pontes-engenharia-e-software.html</guid>
		<description><![CDATA[A Engenharia de Software ainda tem algum caminho tortuoso a percorrer, mas nas últimas duas décadas, a risco diminuiu, sem dúvida. Mais do que isso, eis que temos um ciclo se repetindo...]]></description>
			<content:encoded><![CDATA[<p>Citação de um&nbsp;<a href="http://softwarecreation.org/2007/collapsing-bridges-and-software-development/">post interessante</a>, sobre Software e baseado no acidente da <a href="http://en.wikipedia.org/wiki/I-35W_Mississippi_River_bridge">I-35W</a>, a ponte que caiu.</p>
<blockquote><p>Major bridges <a href="http://discovermagazine.com/2007/aug/man-who-predicted-the-bridge-collapse">collapse every 30 years</a> and engineers learn from these mistakes and make better and more reliable designs. When we complain that <a href="http://softwarecreation.org/2007/what-is-software-development/">Software Development</a> doesn’t have the same sound practices as engineering, we shouldn’t accuse just immaturity of our profession. It is one of the most intellectually complex human activities dealing with very complex systems. I just hope we will experience less and less collapsing bridges both in physical and software worlds.</p>
</blockquote>
<p>A Engenharia de Software ainda tem algum caminho tortuoso a percorrer, mas nas últimas duas décadas, a risco diminuiu, sem dúvida. Mais do que isso, eis que temos um ciclo se repetindo&#8230;</p>
<p>Ok, hora de explicar: A Engenharia é uma profissão nova. Quando ela surgiu? Surgiu a partir do momento que percebeu-se que era importante haver responsabilidade social pelo projeto e pela implementação de&#8230; pontes. Isto data do século 19.</p>
<p>É uma tendência: Quanto maior for o risco em projetos de software, maior será a pressão da sociedade para ter-se responsabilidade e, principalmente, título para poder exercer isto. </p>
<p><em>Moral da História? Não basta saber e ter talento: Precisa do canudo!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2007/08/03/831/pontes-engenharia-e-software.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
