<?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; sys/net</title>
	<atom:link href="http://www.leal.eng.br/mnemetica/categorias/tech/sysnet/feed" rel="self" type="application/rss+xml" />
	<link>http://www.leal.eng.br/mnemetica</link>
	<description>A Linguagem enquanto um vírus...</description>
	<lastBuildDate>Tue, 17 Jan 2012 07:50:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<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ê [...]]]></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>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 [...]]]></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>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. [...]]]></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>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>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 [...]]]></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>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>Yahoo! Pipes! &#201;! Muito! Legal!</title>
		<link>http://www.leal.eng.br/mnemetica/2007/07/19/804/yahoo-pipes-muito-legal.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2007/07/19/804/yahoo-pipes-muito-legal.html#comments</comments>
		<pubDate>Thu, 19 Jul 2007 22:05:16 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<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/2007/07/19/804/</guid>
		<description><![CDATA[Um mini-exemplo do uso do Yahoo! Pipes para resolver uma necessidade que tive.]]></description>
			<content:encoded><![CDATA[<p>Ontem à noite (e antes de escrever o artigo anterior), eu decidi utilizar o <a href="http://pipes.yahoo.com/">Yahoo! Pipes</a> para organizar melhor meus feeds RSS para o <a href="http://www.guj.com.br/">guj</a>. </p>
<p>Traduzindo: Eu queria poder ler no <a href="http://www.google.com/reader/">Google Reader</a> um feed com a vista consolidada de todas as mensagens nos fóruns aonde postei. Eu já leio em separado um outro feed, contendo apenas os novos tópicos dos fórums que assino. Mas o objetivo era poder acompanhar a discussão nos fóruns aonde eu havia postado.</p>
<p>O que é o Yahoo! Pipes? Bem, ele é um website aonde eu posso, visualmente, agregar feeds e criar manipulações. Os feeds são a entrada e ele gera um feed de saída. Eis o porque do nome, Pipes (&#8220;Canos&#8221;). Não apenas isso: Eu posso compor pipes e criar outros.</p>
<p>Eu não havia experiência prévia com o Pipes. Logo, o desafio era aprender a utilizá-lo, bem como implementar o objetivo por mim traçado. Não era um projeto de final de semana, e sim um projeto de uma noite. :)</p>
<h2>Criando um Pipe</h2>
<p>Embora o Pipe seja um ambiente de desenvolvimento um pouco incomum, o ponto-chave foi perceber que ele possuía, indiretamente, princípios de programação funcional. A <a href="http://pipes.yahoo.com/pipes/docs">Documentação</a> não é muito intensiva, porém existem <a href="http://pipes.yahoo.com/pipes/docs?doc=tutorials">tutoriais de suporte</a>, bem como é possível <a href="http://pipes.yahoo.com/pipes/docs?doc=modules">localizar exemplos para cada parte</a> que eu utilizo.</p>
<p>Como assim, partes? Bem, O Pipe é um ambiente que se baseia na idéia de programação visual, aonde eu desenho um fluxo da informação através das partes, e os ligo através de canos. Antes disso, peço desculpas pelo tom nasal e pela voz distante: Estou gripado. Dito isto, eis um screencast demonstrando a utilização do Yahoo! Pipes para fazer a listagem das minhas últimas mensagens, filtradas por tópico, no site do guj:</p>
<p><embed src="http://www.leal.eng.br/mnemetica/wp-content/files/Yahoo-Pipes-GUJ.swf" width="640" height="480" type="application/x-shockwave-flash" wmode="transparent"></embed></p>
<p>A partir daí, eu posso publicar, ou apenas salvar e utilizar o pipe. Publicando, eu posso deixá-lo disponível a outros usuários, e permitir que eles &#8216;Clonem&#8217; e possam criar outras variantes a partir do conceito original.</p>
<p>Caso você queira ver este&nbsp;screencast isolado (i.e., tirando todo o meu texto :]), <a href="http://www.leal.eng.br/mnemetica/wp-content/files/Yahoo-Pipes-GUJ.swf">clique aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2007/07/19/804/yahoo-pipes-muito-legal.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Relationship Cleanup</title>
		<link>http://www.leal.eng.br/mnemetica/2007/07/12/794/relationship-cleanup.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2007/07/12/794/relationship-cleanup.html#comments</comments>
		<pubDate>Thu, 12 Jul 2007 03:58:04 +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[sys/net]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2007/07/12/794/</guid>
		<description><![CDATA[Algumas relações estavam realmente pedindo algo estilo... huh... "Destroy Everything You Touch"....]]></description>
			<content:encoded><![CDATA[<p>Algumas relações estavam realmente pedindo algo estilo&#8230; huh&#8230; <a href="http://www.leal.eng.br/mnemetica/2007/04/25/744/">&#8220;Destroy Everything You Touch&#8221;</a>. Tô fora. Minha saúde mental primeiro.</p>
<p>p/S: Nem sei se meus criptogramas são tão interessantes assim. Acho que vou colocá-los de greve durante um mês.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2007/07/12/794/relationship-cleanup.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novo: Publique seus feeds RSS no Orkut!</title>
		<link>http://www.leal.eng.br/mnemetica/2007/07/09/789/novo-publique-seus-feeds-rss-no-orkut.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2007/07/09/789/novo-publique-seus-feeds-rss-no-orkut.html#comments</comments>
		<pubDate>Tue, 10 Jul 2007 00:50:10 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2007/07/09/789/</guid>
		<description><![CDATA["Qual a utilidade disso? Bem... Eu acho que é um grande passo para o Orkut tornar-se uma grande plataforma de colaboração, como hoje é o Facebook nos Estados Unidos.

Ah, você não foi apresentado ao RSS? Porque não dá uma visitada ao RSSficado?"]]></description>
			<content:encoded><![CDATA[<p>Hoje fiquei surpreso com esta novidade: O <a href="http://www.orkut.com/">Orkut</a> agora permite que você defina feeds <a href="http://en.wikipedia.org/wiki/RSS">RSS</a> no seu perfil. <a href="http://en.blog.orkut.com/2007/07/orkut-feeds-your-needs.html">Confira o post original</a>.</p>
<p>É fácil: Logue e veja a barra de opções a esquerda do seu perfil:</p>
<p><img height="240" alt="image" src="http://www.leal.eng.br/mnemetica/wp-content/uploads/2007/07/image1.png" width="201"/> </p>
<p>Ao clicar em &#8220;Edit Feeds&#8221;, adicione os feeds que você publica. Aqui, pus <a href="http://del.icio.us/">del.icio.us</a>, <a href="http://twitter.com/">twitter</a>, <a href="http://last.fm/">last.fm</a> e claro, mnemetica. Mais simples, impossível:</p>
<p><img height="234" src="http://www.leal.eng.br/mnemetica/wp-content/uploads/2007/07/clip-image00121.png" width="240"/> </p>
<p>Qual a utilidade disso? Bem&#8230; Eu acho que é um grande passo para o Orkut tornar-se uma grande plataforma de colaboração, como hoje é o <a href="http://en.wikipedia.org/wiki/Facebook">Facebook</a> nos Estados Unidos. </p>
<p>Ah, você não foi apresentado ao RSS? Porque não dá uma visitada ao <a href="http://rssficado.com.br/">RSSficado</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2007/07/09/789/novo-publique-seus-feeds-rss-no-orkut.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I told you! I told you! I told you!!!1!</title>
		<link>http://www.leal.eng.br/mnemetica/2006/12/27/690/i-told-you-i-told-you-i-told-you1-2.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2006/12/27/690/i-told-you-i-told-you-i-told-you1-2.html#comments</comments>
		<pubDate>Wed, 27 Dec 2006 16:52:15 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA["-Posso blogar?"]]></category>
		<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[dialogos]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2006/12/27/690/</guid>
		<description><![CDATA[Conversando sobre pocketserver-bootstrap e o seu fino pom.xml: &#60;cobalt60&#62; Not really. The overrall idea is to be based off the Profile being used&#60;cobalt60&#62; The Real pocketserver will use it, for sure :))&#60;cobalt60&#62; If you want to see the gory details, jump to pocketserver-bootstrap's pom. You'll be scared :)&#60;yart&#62; hehe, just trying first to start it [...]]]></description>
			<content:encoded><![CDATA[<p>Conversando sobre pocketserver-bootstrap e <a href="http://trac.modafocas.org/pocketserver/browser/trunk/pocketserver-bootstrap/pom.xml?rev=93">o seu fino pom.xml</a>: </p>
<p><code><cobalt60>&lt;cobalt60&gt; Not really. The overrall idea is to be based off the Profile being used<br />&lt;cobalt60&gt; The Real pocketserver will use it, for sure :))<br />&lt;cobalt60&gt; If you want to see the gory details, jump to <a href="http://trac.modafocas.org/pocketserver/browser/trunk/pocketserver-bootstrap/pom.xml?rev=93">pocketserver-bootstrap's pom</a>. You'll be scared :)<br />&lt;yart&gt; <yart>hehe, just trying first to start it and see what it can do <br />&lt;yart&gt;&nbsp;started mnv install - junit.framework.AssertionFailedError: No tests found in org.modafocas.pocketserver.m2.PocketServerMojoTest<br />&lt;cobalt60&gt; <cobalt60>It won't work, really <br />&lt;cobalt60&gt; just look&nbsp;<a href="http://trac.modafocas.org/pocketserver/browser/trunk/pocketserver-bootstrap/pom.xml?rev=93">at the pom, you'll really be scared</a> :)<br />&lt;yart&gt; uhuhuhuhuh<br />&lt;cobalt60&gt; I told you! I told you! I told you! <br />&lt;cobalt60&gt; (mind if I blog this tiny snippet? :))<br />&lt;yart&gt; <yart>maybe not even think to try :) <br />&lt;yart&gt; Just aks later the questions about the plexus when I will have :)<br />&lt;cobalt60&gt; this pom is a rarity :) <br />&lt;cobalt60&gt; It asks <a href="http://maven.apache.org/plugins/maven-antrun-plugin/">antrun</a> which in turn asks <a href="http://maven.apache.org/ant-tasks.html">maven tasks for ant</a> (thus embedding maven within maven), but after having another bootstrap script written by a <a href="http://groovy.codehaus.org/">groovy</a> <a href="http://groovy.codehaus.org/Groovy+Ant+Task">ant task</a> :) </yart></cobalt60></yart></cobalt60></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2006/12/27/690/i-told-you-i-told-you-i-told-you1-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Empacotando Nemo</title>
		<link>http://www.leal.eng.br/mnemetica/2006/12/15/686/empacotando-nemo.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2006/12/15/686/empacotando-nemo.html#comments</comments>
		<pubDate>Fri, 15 Dec 2006 19:52:33 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[sys/net]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2006/12/15/686/</guid>
		<description><![CDATA[(Post técnico &#8211; Vida pessoal ainda vegetativa) No meu entretenimento atual (breve a ser apresentado ao grande público &#8211; stay tuned!), um detalhe me chamou a atenção: O quanto realmente perdemos de espaço, em aplicações java. E o quanto ainda temos que aprender (a despeito de inúmeras soluções de gerência integrada de artefatos e dependências [...]]]></description>
			<content:encoded><![CDATA[<p>(Post técnico &#8211; Vida pessoal ainda vegetativa)</p>
<p><a href="http://trac.modafocas.org/pocketserver/">No meu entretenimento atual</a> (breve a ser apresentado ao grande público &#8211; stay tuned!), um detalhe me chamou a atenção: O quanto realmente perdemos de espaço, em aplicações java. E o quanto ainda temos que aprender (a despeito de inúmeras soluções de gerência integrada de artefatos e dependências encontradas por aí).</p>
<p>Ok, antes disso, um prólogo: Parte da idéia do meu projeto é demonstrar a viabilidade técnica do que eu chamo de aplicações pervasivas. Sabe aquele programinha útil que você sempre mantém no seu pendrive ou CD? Então, isto é um nicho interessantíssimo.</p>
<p>Na maioria absoluta dos casos, as aplicações que empacotam tem uma característica de executáveis desktop. E porque não aplicações web? Bem, isto envolve a necessidade de pensar sobre as seguintes coisas:</p>
<ul>
<li>Aonde persistir os dados? No disco rígido, na mídia móvel, em rede,&nbsp;ou em lugar algum?</li>
<li>Como integrar os zilhões de dependências de uma pilha Web necessita, de forma portável? Isto é, como consigo empacotar o servidor, seus logs, sua área de comunicação inter-processo, e seus módulos nativos para outras linguagens?</li>
<li>Além disso, será que cabe neste espaço disponível?</li>
</ul>
<p>Com relação aos isso, decidi basear a solução nas seguintes premissas </p>
<ul>
<li><a href="http://plexus.codehaus.org/">Uso de um bom container genérico de componentes</a>, permitindo a inclusão e a exclusão de features através de componentes;</li>
</ul>
<p>Assim, com este container, todos os aspectos ficam gerenciáveis a partir de descritores. Uma nova necessidade, um novo componente. E assim a solução se ajusta.</p>
<p>Que tipos de abstrações são necessárias? As principais são: Serviços de Persistência (RDBMS, FileSystem, Configuração, Propriedades), Serviços de Conectividade (SSH, HTTP, SMTP), e Serviços&nbsp;de Localização e Publicação de Recursos (LiveTribe, Bonjour, Container), Logging, Cache, entre outros. Em suma: Tudo aquilo que, em um ambiente de servidor, é tido como de facto, fica sujeito a questionamentos. Como gosto e questionar, acho que a abordagem é válida.</p>
<p>A partir deste container, permitir que os diversos aspectos (storage, logging, IPC, JNI) sejam abstraídos conforme a disponibilização destes componentes;</p>
<ul>
<li>Fatorar a questão do storage</li>
</ul>
<p>Minhas propriedades podem ficar num lugar (persistido na memória, carregado via HTTP, serializado via SFTP), a base em outro (Embedded, ou via um Tunnel SSH), e a aplicação pode continuar no pendrive. Porque não, portanto, permitir que sejam criadas &#8220;Zonas&#8221; de Storage, como componentes, e disponíveis para os outros serviços? No caso particular, isto é feito através do <a href="http://jakarta.apache.org/commons/vfs/">commons-vfs</a>.</p>
<ul>
<li>Gerência de Dependência (ainda indefinido &#8211; mantenha-se alerta!)</li>
</ul>
<p>Este conceito é relativamente novo, mas popularizado por idéias como o <a href="http://maven.apache.org/">Maven</a> (particularmente, o Maven 2),&nbsp;<a href="http://www.dpml.net/transit/concepts/index.html">Transit</a>, e agora, o <a href="http://incubator.apache.org/projects/ivy.html">Ivy</a>. Consiste em gerenciar quais classes devem ser carregadas para atender as necessidades de outra e, além disso, permitir a sua resolução dinâmica através de repositórios). Ainda não cheguei a um consenso sobre a isto.</p>
<ul>
<li><a href="http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/pack200.html">Empacotamento</a> de Aplicações Java usando <a href="http://tonicsystems.com/products/jarjar/">técnicas agressivas</a> de <a href="http://sfx4j.dev.java.net/">otimização</a>&nbsp;de espaço, ou, empacotamento de forma clássica (arquivo zip);</li>
</ul>
<p>Já ouviu falar no Pack200? Bem, vamos a alguns números, relativos a um <a href="http://trac.modafocas.org/pocketserver/browser/trunk/pocketserver-bootstrap/">stub de carga/resolução de artefatos mínimo para o pocketserver</a>:</p>
<p>Arquivo .jar, sem a inclusão das dependências:</p>
<p><font face="Lucida Console">-rw-r&#8211;r&#8211; 1 aldrin aldrin&nbsp;&nbsp;&nbsp; 8150 2006-12-15 12:05 pocketserver-bootstrap-0.0.1-SNAPSHOT.jar</font></p>
<p>Nada mal, ok? Aplicando o Jar Jar Links (<a href="http://en.wikipedia.org/wiki/Jar_Jar_Binks">não esse</a>, <a href="http://tonicsystems.com/products/jarjar/">mas esse</a>), eu consigo fazer com que as dependências sejam embutidas como um subpacote do pacote principal. Resultado? Isto:</p>
<p><font face="Lucida Console">-rw-r&#8211;r&#8211; 1 aldrin aldrin 3290958 2006-12-15 12:05 pocketserver-bootstrap-0.0.1-SNAPSHOT-full.jar</font></p>
<p>3.3 Mib? Não era 8K? Era&#8230; Ok, vamos refazer o jar, porém aplicando alguma filtragem, e excluindo pacotes que serão desnecessários:</p>
<p><font face="Lucida Console">-rw-r&#8211;r&#8211; 1 aldrin aldrin 1182446 2006-12-15 12:26 pocketserver-bootstrap-standalone-0.0.1-SNAPSHOT.jar</font></p>
<p>Melhorou. Agora, pack200 para o tiro de misericórdia. Vou pular os detalhes (exige uma explicação sobre compressão lossy, teoria da informação, e compressão/arquivamento). Mas, se queres uma boa noção, ele é uma compressão lossy (estilo .jpg e .mp3, aonde a descompactação não é necessariamente fiel ao arquivo de origem), alinhado com a lógica de compressão após arquivo (i.e., &#8220;-Porque meu .tar.gz é menor que o meu .zip&#8221;):</p>
<p><font face="Lucida Console">-rw-r&#8211;r&#8211; 1 aldrin aldrin&nbsp; 184475 2006-12-15 12:26 pocketserver-bootstrap-0.0.1-SNAPSHOT-optimized-full.pack.gz</font></p>
<p>Mas pera, não é um jar. Sim, com razão. O pack200 foi feito para ser usado basicamente pelo JNLP (i.e., Java WebStart). Porém, com alguns ajustes (em breve &#8211; caaaalma!), <a href="http://trac.modafocas.org/pocketserver/browser/trunk/pocketserver-pack200-vfs-provider/">meu módulo de Pack200 pra Jar para o commons-vfs</a> deve reproduzir o efeito desejado). Sem perda de performance, um ganho de mais de 20x em relação ao primeiro jar completo.</p>
<p><em>E aí fica a dúvida? Será que estamos preparados para isso?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2006/12/15/686/empacotando-nemo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recipe: subversion(fsfs) + schema &quot;svn+ssh&quot; + schema &quot;https&quot; + schema &quot;http&quot; using POSIX ACLs</title>
		<link>http://www.leal.eng.br/mnemetica/2006/11/20/667/recipe-subversionfsfs-schema-svnssh-schema-https-schema-http-using-posix-acls.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2006/11/20/667/recipe-subversionfsfs-schema-svnssh-schema-https-schema-http-using-posix-acls.html#comments</comments>
		<pubDate>Tue, 21 Nov 2006 02:20:31 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2006/11/20/667/</guid>
		<description><![CDATA[How to have a multiple-schema aware subversion repository under your user account (file / svn+ssh schemas), supporting alternative&#160;schemas (http/https/svnserve), thus being accessed from at least two different user accounts? The standard suggested recipe relies upon group maintenance. I didn&#8217;t like for a single reason: POSIX ACL&#160;seems to be more suitable for managing file permissions (without [...]]]></description>
			<content:encoded><![CDATA[<p>How to have a multiple-schema aware <a href="http://subversion.tigris.org/">subversion</a> repository under your user account (file / svn+ssh schemas), supporting alternative&nbsp;schemas (http/https/svnserve), thus being accessed from at least two different user accounts?</p>
<p>The <a href="http://svnbook.red-bean.com/nightly/en/svn.serverconfig.multimethod.html">standard suggested recipe</a> relies upon <a href="http://www.novell.com/coolsolutions/feature/16145.html">group maintenance</a>. I didn&#8217;t like for a single reason: <a href="http://acl.bestbits.at/">POSIX ACL</a>&nbsp;seems to be more suitable for managing file permissions (without the need to manage umask, perhaps having to constantly <strike>checking&nbsp;</strike>fixing file permissions, and don&#8217;t forget <a href="http://www.linuxheadquarters.com/howto/basic/newgrp.shtml">newgrp</a>)</p>
<p>In a nutshell, you need to:</p>
<ul>
<li>Setup subversion and have mastery in svnadmin, schemas, and fsfs repositories;</li>
<li>Master ACL enabling</li>
<li>Having a working svnserve / apache2 / ssh setup;</li>
</ul>
<p>All you need is to enable your repository for being maintained for the different user ids. Suppose your repository (I&#8217;ll refer to it as $REPOS) will be accessed from the following users:</p>
<ul>
<li>aldrin</li>
<li>www-data</li>
</ul>
<p>This one is a quick ACL-enabled solution I&#8217;ve come up with. After some troubleshooting, it looks ok:</p>
<p><font face="Lucida Console" size="2">for user in &#8220;&#8221; &#8220;aldrin&#8221; &#8220;www-data&#8221; ; do \<br />&nbsp; for type in &#8220;u&#8221; &#8220;d&#8221; ;&nbsp;do<br />&nbsp;&nbsp;&nbsp; find $REPOS -type d | xargs -i_ \<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setfacl -m $type:$user:rwx _<br />&nbsp;&nbsp;done<br />&nbsp; find $REPOS -type f | xargs -i_ \<br />&nbsp;&nbsp;&nbsp; setfacl -m u:$user:rwx _ <br />done</font></p>
<p><em>What does it mean?</em></p>
<p>For Each File, You Set Properties, so:</p>
<ul>
<li>Its owner keeps its original property;</li>
<li>Users &#8220;aldrin&#8221; and &#8220;www-data&#8221; are granted full access to each file;</li>
<li>For each directory, you set defaults, to the above two statements are also true for each new file you create</li>
</ul>
<p>Well, it works. I&#8217;m just publishing this recipe in order to have it as a personal finding/report.</p>
<p><em>Ok, it worked, but I&#8217;d like to remove all this ACL thingie..</em></p>
<p>Just reset your properties:</p>
<p><font face="Lucida Console">find . | xargs -i_ setfacl -b _</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2006/11/20/667/recipe-subversionfsfs-schema-svnssh-schema-https-schema-http-using-posix-acls.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Nova Internet</title>
		<link>http://www.leal.eng.br/mnemetica/2006/11/11/654/a-nova-internet.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2006/11/11/654/a-nova-internet.html#comments</comments>
		<pubDate>Sat, 11 Nov 2006 08:54:02 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[dialogos]]></category>
		<category><![CDATA[histórias]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[pessoal]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2006/11/11/654/</guid>
		<description><![CDATA[A nova Internet brasileira Como postar um comentário na nova Internet brasileira do senador Eduardo Azeredo (PSDB-MG). Breve, num país ditatorial de terceiro mundo mais próximo de você.]]></description>
			<content:encoded><![CDATA[<p><a href="http://d00dz.org/%7Egwm/internetbr.html">A nova Internet brasileira</a></p>
<p>Como postar um comentário na nova Internet brasileira do senador Eduardo Azeredo (PSDB-MG).</p>
<p><i>Breve, num país ditatorial de terceiro mundo mais próximo de você.</i></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2006/11/11/654/a-nova-internet.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A arte de ser persuasivo&#8230;</title>
		<link>http://www.leal.eng.br/mnemetica/2006/11/09/649/a-arte-de-ser-persuasivo.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2006/11/09/649/a-arte-de-ser-persuasivo.html#comments</comments>
		<pubDate>Fri, 10 Nov 2006 02:22:34 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[dialogos]]></category>
		<category><![CDATA[histórias]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[pessoal]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2006/11/09/649/</guid>
		<description><![CDATA[O dia encerra, e o melhor é no final. Deixando as crises de lado, prefiro olhar pro lado positivo, e emplaquei meu projeto integrado na burgofaculdade noveau-riche (aonde os novos ricos estudam. e você que se foda pra achar vaga na garagem). Até aí, tudo bem. Hora de mandar ver. Porém, enquanto eu explicava a [...]]]></description>
			<content:encoded><![CDATA[<p>O dia encerra, e o melhor é no final. Deixando as crises de lado, prefiro olhar pro lado positivo, e emplaquei meu projeto integrado na <a href="http://www.cesupa.br/">burgofaculdade noveau-riche</a> (aonde os novos ricos estudam. e você que se foda pra achar vaga na garagem). Até aí, tudo bem. Hora de mandar ver.</p>
<p>Porém, enquanto eu explicava a idéia, buscando <strike>enrolar </strike>persuadir, objetivos, e tudo o mais, ocorreu um momento engraçado: eu tinha que convencer que disponha de recursos (principalmente tempo e disposição) pra entregá-lo no dia 30. Após a pergunta, ocorre uma falta de luz. </p>
<p>Como é uma <a href="http://www.cesupa.br/">burgofaculdade noveau-riche</a> e não um refúgio de <a href="http://www.ufpa.br/">alunos do DCE a serem jubilados</a>, ligaram&nbsp;o gerador, e a luz voltou. Enfim, como convenci? Basta ter a frase certa:</p>
<p><em>&#8220;- A luz faltou antes deu dizer, mas o que eu ia dizer é: Eu quero que dê um blecaute aqui se eu, por um acaso, eu estiver mentindo pra mim mesmo e dissesse que eu não tinha condições de concluí-lo.&#8221;</em></p>
<p>Acho que convenci.&nbsp;Até aí, tudo bem. Volto pra casa (a pé, porque a burgofaculdade é pra burga, mas infelizmente, eu não sou. Ok, não vou mentir, o fato é que moro a um quarteirão de distância). A luz havia faltado pra todo o quarteirão, e meus pais me esperavam na varanda (no primeiro andar). Contei a história do térreo, meus pais riram, e eu emendei: &#8220;-Agora quer ver só? Que a luz volte quando eu entrar em casa.&#8221;</p>
<p>Bem, ela tinha voltado antes: O que caiu foi só a fase da iluminação pública. Duh.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2006/11/09/649/a-arte-de-ser-persuasivo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&quot;_\&#124;/_ S&#243;, mano! _\&#124;/_&quot;</title>
		<link>http://www.leal.eng.br/mnemetica/2006/11/09/646/__-s-mano-__.html</link>
		<comments>http://www.leal.eng.br/mnemetica/2006/11/09/646/__-s-mano-__.html#comments</comments>
		<pubDate>Thu, 09 Nov 2006 22:29:59 +0000</pubDate>
		<dc:creator>Aldrin Leal</dc:creator>
				<category><![CDATA[alimento pra mente]]></category>
		<category><![CDATA[dialogos]]></category>
		<category><![CDATA[geral]]></category>
		<category><![CDATA[histórias]]></category>
		<category><![CDATA[notas mentais]]></category>
		<category><![CDATA[pessoal]]></category>
		<category><![CDATA[sys/net]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.leal.eng.br/mnemetica/2006/11/09/646/</guid>
		<description><![CDATA[Fiquei sem palavras ao ver a integração do Orkut com o GoogleTalk (que já estava *BEM* integrado ao gmail). O mais sensacional é saber que suas mensagens de away podem surgir no seu perfil. Só descobri ao voltar depois do almoço (ocasião rara, visto que me alimento de luz, mas necessária, visto que ando passando [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right: 0px; border-top: 0px; margin: 10px; border-left: 0px; border-bottom: 0px" height="768" src="http://www.leal.eng.br/mnemetica/wp-content/uploads/2006/11/WindowsLiveWriter/__Smano___11229/image%7B0%7D%5B11%5D.png" width="443" align="right" border="0"/> </p>
<p>Fiquei sem palavras ao ver a integração do <a href="http://www.orkut.com/">Orkut</a> com o <a href="http://talk.google.com/">GoogleTalk</a> (que já estava *BEM* integrado ao <a href="http://gmail.google.com/">gmail</a>). O mais sensacional é saber que suas mensagens de away podem surgir no seu perfil. Só descobri ao voltar depois do almoço (ocasião rara, visto que me alimento de luz, mas necessária, visto que ando passando pouco tempo me bronzeando na lâmpada fluorescente), quando eu uso este motivo especial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leal.eng.br/mnemetica/2006/11/09/646/__-s-mano-__.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

