<?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>Adriano Melo</title>
	<atom:link href="http://adrianomelo.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://adrianomelo.com/blog</link>
	<description>Sobre tecnologia e liberdade</description>
	<lastBuildDate>Mon, 22 Nov 2010 11:45:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Fusão de fotos para gerar imagens impressionantes!</title>
		<link>http://adrianomelo.com/blog/fusao-de-fotos-para-gerar-imagens-impressionantes/</link>
		<comments>http://adrianomelo.com/blog/fusao-de-fotos-para-gerar-imagens-impressionantes/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 00:33:33 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Ciência da Computação]]></category>
		<category><![CDATA[Processamento de Imagens (if751)]]></category>
		<category><![CDATA[digital image processing]]></category>
		<category><![CDATA[exposure fusion]]></category>
		<category><![CDATA[foto]]></category>
		<category><![CDATA[hdr]]></category>
		<category><![CDATA[high dynamic range]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[imagem]]></category>
		<category><![CDATA[matlab]]></category>
		<category><![CDATA[octave]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[recife]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/?p=159</guid>
		<description><![CDATA[Primeiro eu gostaria de compartilhar um estilo de fotografia que estou ficando encantado a cada dia. São fotos com cores vivas e com cenas que ficam ricas detalhes a cada pixel. Seguindo o bom e velho ditado &#8220;uma imagem vale mais do que mil palavras&#8221;, vamos ver alguns exemplos de fotos com essa técnica: As [...]]]></description>
			<content:encoded><![CDATA[<p>Primeiro eu gostaria de compartilhar um estilo de fotografia que estou ficando encantado a cada dia. São fotos com cores vivas e com cenas que ficam ricas detalhes a cada pixel. Seguindo o bom e velho ditado &#8220;uma imagem vale mais do que mil palavras&#8221;, vamos ver alguns exemplos de fotos com essa técnica:</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://www.flickr.com/photos/raphaelstrada/2644160493/"><img class="  " title="Ponte em Recife" src="http://farm4.static.flickr.com/3170/2644160493_bdfb6f8a54.jpg" alt="Ponte em Recife" width="500" height="375" /></a><p class="wp-caption-text">Ponte em Recife</p></div>
<div class="wp-caption alignnone" style="width: 349px"><a href="http://www.flickr.com/photos/lenscrack/4085548851/"><img title="lago em HDR" src="http://farm3.static.flickr.com/2521/4085548851_4c0e3b29ba.jpg" alt="lago em HDR" width="339" height="500" /></a><p class="wp-caption-text">lago em HDR</p></div>
<p>As imagens acima foram uma combinação de várias fotos com tempos de exposição diferentes. A idéia é que muitas vezes o fotógrafo não consegue capturar todos os detalhes por problemas de iluminação. O exemplo abaixo mostra essa dificuldade em imagens:</p>
<div class="wp-caption alignnone" style="width: 490px"><a href="http://www.dicasdefotografia.com.br/o-que-e-hdr-por-que-usar-essa-tecnica"><img title="Seqüência de imagens com tempos de exposição diferentes." src="http://www.dicasdefotografia.com.br/article-images/hdr-paisagem.jpg" alt="imagem com tempos de exposição diferentes" width="480" height="472" /></a><p class="wp-caption-text">Seqüência de imagens com tempos de exposição diferentes.</p></div>
<p>Essa imagem acima foi retirada de um <a href="http://www.dicasdefotografia.com.br/o-que-e-hdr-por-que-usar-essa-tecnica">post no dicas de fotografias</a> e ilustra que quando o tempo de exposição está baixo em cenas contra o sol, consegue-se capturar alguns dos detalhes da cena (o céu) e quando o tempo de exposição vai aumentando outros detalhes podem ser capturados (lagoa, árvores e estrutura de madeira). Exposure Fusion é basicamente unir essas fotos com tempos de exposição diferentes para conseguir colocar na imagem final cada detalhe presente na cena real.</p>
<p><a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4392748">Há um artigo</a> de Mertens, Kautz e Van Reeth que detalha um algoritmo de exposure fusion que não utiliza imagens com 16 bits para cada canal (r,g,b) em suas fases (que caracterizaria a imagem como sendo HDR) e que também gera imagens com esse efeito que estamos buscando.</p>
<p>O algoritmo usa 3 medias: saturação, contraste e exposição. Extrai pesos a partir dessas medidas e depois as usam para unir as melhores características de cada foto.</p>
<p>Nesse momento estou implementando no octave (versão open source do matlab) esse algoritmo descrito no artigo de forma open source. Meu objetivo é fazer o algoritmo e depois criar bindings para alguma linguagem web (provavelmente python) e em seguida disponibilizar aqui neste blog. quem quiser ajudar no desenvolvimento ou usar depois de pronto, segue o endereço:</p>
<p><a title="Exposure Fusion written for octave" href="https://github.com/adrianomelo/octave-exposure-fusion">https://github.com/adrianomelo/octave-exposure-fusion</a></p>
<p>Comentários e sugestões são bem vindos.</p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=159&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/fusao-de-fotos-para-gerar-imagens-impressionantes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fazendo uma instalação portable de python para linux!</title>
		<link>http://adrianomelo.com/blog/fazendo-uma-instalacao-portable-de-python-para-linux/</link>
		<comments>http://adrianomelo.com/blog/fazendo-uma-instalacao-portable-de-python-para-linux/#comments</comments>
		<pubDate>Sat, 22 May 2010 19:19:36 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[numpy]]></category>
		<category><![CDATA[pendrive]]></category>
		<category><![CDATA[portable]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/?p=143</guid>
		<description><![CDATA[Que tal ter a sua instalação de python no pendrive para usá-la em qualquer computador com linux? Esse artigo é uma reação à dificuldade encontrada por alguns alunos do centro de informática em usar softwares que não são instalados por padrão nos computadores do laboratório de graduação do centro e que são necessários para o [...]]]></description>
			<content:encoded><![CDATA[<p>Que tal ter a sua instalação de python no pendrive para usá-la em qualquer computador com linux?</p>
<p>Esse artigo é uma reação à dificuldade encontrada por alguns alunos do centro de informática em usar softwares que não são instalados por padrão nos computadores do laboratório de graduação do centro e que são necessários para o desenvolvimento de projetos ou para estudo.</p>
<p>Vamos lá! A demostração será como fazer isso com python, que é uma linguagem de programação, mas a ideia é que você possa reproduzir esses passos para outros softwares.</p>
<p>Primeiro vamos criar a pasta onde os arquivos serão baixados e instalados. Uma sugestão é colocar no seu pendrive mesmo. Vou referenciar PEN como sendo o nome do dispositivo montado.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># indo para a pasta raiz do pendrive.</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>PEN<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #666666; font-style: italic;"># criando a pasta onde vão ficar os arquivos-fonte dos programas e os binários pós-instalação</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> programas
<span style="color: #666666; font-style: italic;"># movendo para dentro da pasta programas</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> programas</pre></td></tr></table></div>

<p>Agora vamos baixar e descompactar o interpretador python diretamente do site oficial, python.org. Note que a operação de descompactar o arquivo pode demorar um pouco, devido à quantidade de arquivos e a velocidade dos pendrives normalmente não ser alta.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># baixando o python</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>www.python.org<span style="color: #000000; font-weight: bold;">/</span>ftp<span style="color: #000000; font-weight: bold;">/</span>python<span style="color: #000000; font-weight: bold;">/</span>2.6.5<span style="color: #000000; font-weight: bold;">/</span>Python-2.6.5.tar.bz2
<span style="color: #666666; font-style: italic;"># descompactando os arquivos do interpretador</span>
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xf</span> Python-2.6.5.tar.bz2
<span style="color: #666666; font-style: italic;"># entrando na pasta onde os arquivos foram descompactados</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> Python-2.6.5.tar.bz2</pre></td></tr></table></div>

<p>Vamos agora compilar o código fonte! note o parâmetro <em>&#8211;configure=/media/PEN/programas</em>, está sendo usado para indicar que a instalação do programa deverá ser feita na pasta <em>/media/PEN/programas</em>. Isso é necessário pois a idéia de fazer uma instalação portable é justamente para que você possa fazer isso de qualquer computador e sem precisar privilégios especiais para isso.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Configuração da instalação...</span>
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>PEN<span style="color: #000000; font-weight: bold;">/</span>programas
<span style="color: #666666; font-style: italic;"># Compilando os arquivos...</span>
<span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #666666; font-style: italic;"># Instalando os arquivos...</span>
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></td></tr></table></div>

<p>No último passo da instalação o make retorna um erro. Esse erro é mostrado em sistemas de arquivos fat32, fat16 ou ntfs, onde não é possível criar links. Caso o erro não seja o que está sendo mostrado abaixo então você realmente teve um problema no processo de compilação.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>PEN<span style="color: #000000; font-weight: bold;">/</span>programas<span style="color: #000000; font-weight: bold;">//</span>bin; <span style="color: #c20cb9; font-weight: bold;">ln</span> python2.6 python<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #c20cb9; font-weight: bold;">ln</span>: criando ligação absoluta <span style="color: #ff0000;">&quot;python&quot;</span> =<span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #ff0000;">&quot;python2.6&quot;</span>: Operação não permitida
<span style="color: #c20cb9; font-weight: bold;">make</span>: <span style="color: #000000; font-weight: bold;">**</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>bininstall<span style="color: #7a0874; font-weight: bold;">&#93;</span> Erro <span style="color: #000000;">1</span></pre></td></tr></table></div>

<p>Pronto! com esses passos bem sucedidos você já tem a sua instalação portable de python. Basta agora dizer ao terminal que você usará os binários gerados por essa compilação. Uma das formas de fazer isso é incluindo na variável de ambiente a pasta com os arquivos binários.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># setando a variável de ambiente</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>PEN<span style="color: #000000; font-weight: bold;">/</span>programas<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #007800;">$PATH</span></pre></td></tr></table></div>

<p>Para verificar se tudo deu certo, digite o comando &#8220;which python2.6&#8243;, a saída deverá ser parecida com a abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>adriano<span style="color: #000000; font-weight: bold;">@</span>adrianomelo bin<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">which</span> python2.6
<span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>ASTM<span style="color: #000000; font-weight: bold;">/</span>programas<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>python2.6
<span style="color: #7a0874; font-weight: bold;">&#91;</span>adriano<span style="color: #000000; font-weight: bold;">@</span>adrianomelo bin<span style="color: #7a0874; font-weight: bold;">&#93;</span>$</pre></td></tr></table></div>

<p>O bom de ter uma instalação portable é que você só precisa configurar a sua instalação uma vez. Para quem usa alguma biblioteca que não vem na instalação padrão de python, é uma mão na roda! Eu vou instalar o pacote <a href="http://numpy.scipy.org">numpy</a> como demonstração.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Mudando de diretório para a pasta /media/PEN/programas</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>PEN<span style="color: #000000; font-weight: bold;">/</span>programas
<span style="color: #666666; font-style: italic;"># baixando numpy</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>downloads.sourceforge.net<span style="color: #000000; font-weight: bold;">/</span>project<span style="color: #000000; font-weight: bold;">/</span>numpy<span style="color: #000000; font-weight: bold;">/</span>NumPy<span style="color: #000000; font-weight: bold;">/</span>1.4.1<span style="color: #000000; font-weight: bold;">/</span>numpy-1.4.1.tar.gz?<span style="color: #007800;">use_mirror</span>=ufpr
<span style="color: #666666; font-style: italic;"># descompactando os arquivos</span>
<span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xf</span> numpy-1.4.1.tar.gz
<span style="color: #666666; font-style: italic;"># entrando na pasta que acabou de ser descompactada</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> numpy-1.4.1
<span style="color: #666666; font-style: italic;"># compilando a biblioteca</span>
python2.6 setup.py build
<span style="color: #666666; font-style: italic;"># instalando a biblioteca</span>
python2.6 setup.py <span style="color: #c20cb9; font-weight: bold;">install</span></pre></td></tr></table></div>

<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=143&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/fazendo-uma-instalacao-portable-de-python-para-linux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Quero ter minha própria sintaxe!</title>
		<link>http://adrianomelo.com/blog/quero-ter-minha-propria-sintaxe/</link>
		<comments>http://adrianomelo.com/blog/quero-ter-minha-propria-sintaxe/#comments</comments>
		<pubDate>Thu, 20 May 2010 05:21:04 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Ciência da Computação]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Teoria e Implementação de Linguagens Computacionais (if688)]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/?p=137</guid>
		<description><![CDATA[Um problema difícil de ser solucionado e que é recorrente para alguns desenvolvedores é de ter um arquivo que atenda a uma sintaxe bem específica em seus projetos de software. O HTML, por exemplo, possui uma sintaxe bem característica que é de ter uma árvore de conceitos encadeados e encapsulados por &#8220;tags&#8221;. Como fazer um [...]]]></description>
			<content:encoded><![CDATA[<p>Um problema difícil de ser solucionado e que é recorrente para alguns desenvolvedores é de ter um arquivo que atenda a uma sintaxe bem específica em seus projetos de software.</p>
<p>O HTML, por exemplo, possui uma sintaxe bem característica que é de ter uma árvore de conceitos encadeados e encapsulados por &#8220;tags&#8221;.</p>
<p>Como fazer um programa ou aplicação que tenha arquivos com uma sintaxe singular e que possa ser complexo em relação às regras, e ainda assim legíveis e organizados?</p>
<p>A resposta, que é o motivo desse post, empresta alguns conceitos de compiladores. As duas primeiras etapas de um projeto de compilador são as análises léxica e sintática. A análise léxica identifica palavras-chave nos dados de entrada, e a análise sintática explora as regras definidas para a sua linguagem utilizando as palavras-chave encontradas na fase anterior.</p>
<p>Se o seu projeto é em C, existem duas ferramentas que são as mais difundidas e utilizadas: o lex para análise léxica e o yacc para análise sintática. Essas duas são as ferramentas mais tradicionais, elas foram reescritas e há versões mais recentes com mais suporte da comunidade e documentação atualizada. São os projetos <a href="http://flex.sourceforge.net/">flex</a> e <a href="http://gnu.org/software/bison/">bison</a>, o primeiro substitui o lex, e o segundo o yacc.</p>
<p>Para a linguagem python existem os projetos <a href="http://www.cosc.canterbury.ac.nz/greg.ewing/python/Plex/">plex</a>, <a href="http://www.antlr.org/">antlr</a>, <a href="http://www.complang.org/ragel/">ragel</a> e <a href="http://nedbatchelder.com/text/python-parsers.html">outros</a>.</p>
<p>Em java você pode usar o <a href="http://www.antlr.org">antlr</a>, <a href="http://jflex.de/">jflex</a>, <a href="http://www.cs.princeton.edu/%7Eappel/modern/java/JLex/">jlex</a>, <a href="http://byaccj.sourceforge.net/">BYACC/J</a>.</p>
<p>Uma lista mais completa de desses tipos de ferramentas pode ser encontrada através do link: <a href="http://en.wikipedia.org/wiki/List_of_parser_generators">http://en.wikipedia.org/wiki/List_of_parser_generators</a></p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=137&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/quero-ter-minha-propria-sintaxe/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Vídeo aulas sobre o Zend Framework</title>
		<link>http://adrianomelo.com/blog/video-aulas-sobre-o-zend-framework/</link>
		<comments>http://adrianomelo.com/blog/video-aulas-sobre-o-zend-framework/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 00:52:08 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[videos]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zendcasts]]></category>
		<category><![CDATA[zendframework]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/?p=123</guid>
		<description><![CDATA[Eu sempre tive vontade de aprender um framework para PHP mas nunca soube como começar. Trabalhando na Wenetus percebi que precisava aumentar a minha produtividade e organização em projetos mais complexos. A estrutura que eu costumo usar é muito flexível para projetos pequenos, como plugins do wordpress ou integração de uma lógica com um template, [...]]]></description>
			<content:encoded><![CDATA[<p>Eu sempre tive vontade de aprender um framework para PHP mas nunca soube como começar.<br />
Trabalhando na <a href="http://wenetus.com" target="_blank">Wenetus</a> percebi que precisava aumentar a minha produtividade e organização em projetos mais complexos.</p>
<p>A estrutura que eu costumo usar é muito flexível para projetos pequenos, como plugins do wordpress ou integração de uma lógica com um template, que é basicamente usar um &#8220;<a href="http://en.wikipedia.org/wiki/Front_Controller_pattern">Front Controller</a>&#8221; e separar o código de dados, do html e da lógica da aplicação, que é o padrão arquitetural <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC</a>.</p>
<p>Atualmente estou implementando, como freelancer, um sistema de controle de produção de camisetas online. Um sistema desse porte precisa ser muito bem estruturado e objetivo, daí a importância de usar um framework. Eu escolhi o <a href="http://framework.zend.com">Zend Framework</a> pois é maduro para se usar em empresas e possui vasta documentação.</p>
<p>Eu já aprendi todos os conceito básicos do framework por vídeo aulas, a partir do site <a href="http://www.zendcasts.com">http://www.zendcasts.com</a>. Mas a dica vai só para quem tem o domínio da língua inglesa, todos os vídeos são em inglês e não possuem legenda ou tradução.</p>
<p>Gostei tanto dos &#8220;web casts&#8221; (vídeos) que já baixei todos os disponíveis e assisti quase todos, são mais de 3 GB para baixar!</p>
<p style="text-align: center;"><a href="http://adrianomelo.com/blog/wp-content/uploads/2010/01/zendcast.png"><img class="aligncenter size-medium wp-image-125" title="Pasta com os vídeos do zendcast" src="http://adrianomelo.com/blog/wp-content/uploads/2010/01/zendcast-300x223.png" alt="Pasta com os vídeos do zendcast" width="300" height="223" /></a></p>
<p>Se você sabe inglês e deseja aprender um framework para PHP, a dica está dada!</p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=123&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/video-aulas-sobre-o-zend-framework/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Monitoria de Sistemas Inteligentes</title>
		<link>http://adrianomelo.com/blog/monitoria-de-sistemas-inteligentes/</link>
		<comments>http://adrianomelo.com/blog/monitoria-de-sistemas-inteligentes/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 01:01:39 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Centro de Informática]]></category>
		<category><![CDATA[Ciência da Computação]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[cin]]></category>
		<category><![CDATA[description logics]]></category>
		<category><![CDATA[ia]]></category>
		<category><![CDATA[inteligencia artificial]]></category>
		<category><![CDATA[ufpe]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/?p=90</guid>
		<description><![CDATA[Apresentações Sintaxe de Jess e Integração do Jess com Protégé usando JessTab (apresentação não é auto-explicativa) Sintaxe de Jess Como usar o Jess como motor de inferência para o Protégé. (JessTab) Modelando ontologias OWL com Protégé: Tutorial do domínio de Pizzas Documentação Oficial das Ferramentas Documentação do Jess &#8211; Jess® The Engine for the JavaTM [...]]]></description>
			<content:encoded><![CDATA[<h2>Apresentações</h2>
<ul>
<li><a href="http://www.cin.ufpe.br/~astm/jess.pdf">Sintaxe de Jess e Integração do Jess com Protégé usando JessTab</a> (apresentação não é auto-explicativa)</li>
<li><a href="http://www.cin.ufpe.br/~astm/si/Jess/Tutorial%20de%20Jess.ppt">Sintaxe de Jess</a></li>
<li><a href="http://www.cin.ufpe.br/~astm/si/Jess/ProtegeOWL-JessTab.ppt">Como usar o Jess como motor de inferência para o Protégé. (JessTab)</a></li>
<li><a href="http://www.cin.ufpe.br/~astm/si/Protege/Prot%e9g%e9-OWL.pdf">Modelando ontologias OWL com Protégé: Tutorial do domínio de Pizzas</a></li>
</ul>
<h2>Documentação Oficial das Ferramentas</h2>
<ul>
<li><a href="http://www.cin.ufpe.br/~astm/si/Jess71p2.pdf">Documentação do Jess</a> &#8211; Jess® The Engine for the JavaTM Platform</li>
<li><a href="http://www.cin.ufpe.br/~astm/si/ProtegeOWLTutorial.pdf">Tutorial de Protégé OWL</a> &#8211; A Practical Guide To Building OWL Ontologies Using The Protégé-OWL Plugin and CO-ODE Tools</li>
<li><a href="http://www.cin.ufpe.br/~astm/si/JessTab.pdf">Manual de referência do JessTab</a> &#8211; JessTab Manual &#8211; Integration of Protégé and Jess</li>
</ul>
<h2>Scripts para estudo</h2>
<ul>
<li> <strong>Jess: </strong> <a href="http://www.cin.ufpe.br/~astm/si/projeto.txt">Akinator</a></li>
</ul>
<h2>Downloads</h2>
<h3>Jess</h3>
<ul>
<li><a href="http://www.jessrules.com/jess/bindist/Jess71p2.zip">Jess 7.1 (trial, 30 dias)</a></li>
</ul>
<h3>Protégé</h3>
<ul>
<li><a href="http://protege.stanford.edu/download/protege/3.4/full/InstData/Windows/VM/install_protege_3_4_1.exe">Windows com JVM (93.6M)</a> &#8211; Versão recomendada para windows</li>
<li><a href="http://protege.stanford.edu/download/protege/3.4/full/InstData/Windows/NoVM/install_protege_3_4_1.exe">Windows sem JVM (68.4M)</a></li>
<li><a href="http://protege.stanford.edu/download/protege/3.4/full/InstData/Linux/NoVM/install_protege_3_4_1.bin">Linux sem JVM (68.3M)</a></li>
</ul>
<h2>Ontologias biológicas</h2>
<ul>
<li><a href="http://www.imbi.uni-freiburg.de/ontology/biotop/">BioTop</a></li>
<li><a href="http://bioportal.bioontology.org/ontologies">NCBO BioPortal: Ontology Listing</a></li>
</ul>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=90&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/monitoria-de-sistemas-inteligentes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash CS4 no Ubuntu 9.04</title>
		<link>http://adrianomelo.com/blog/flash-cs4-no-ubuntu-904/</link>
		<comments>http://adrianomelo.com/blog/flash-cs4-no-ubuntu-904/#comments</comments>
		<pubDate>Thu, 14 May 2009 01:31:30 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/flash-cs4-no-ubuntu-904/</guid>
		<description><![CDATA[O ubuntu 9.04 está muito bom! finalmente eu posso usar dois monitores nativamente. Além de ter um sistema muito rápido, cerca de 3 vezes mais rápido que o windows vista (o outro S.O. que tenho instalado no meu computador). Só essas duas funcionalidades já me fizeram migrar definitivamente para o Linux. Mas como nem tudo [...]]]></description>
			<content:encoded><![CDATA[<p>O ubuntu 9.04 está muito bom! finalmente eu posso usar dois monitores nativamente. Além de ter um sistema muito rápido, cerca de 3 vezes mais rápido que o windows vista (o outro S.O. que tenho instalado no meu computador).</p>
<p>Só essas duas funcionalidades já me fizeram migrar definitivamente para o Linux. Mas como nem tudo são flores, há o problema da portabilidade de softwares que não funcionam no linux. Os dois principais para mim são o Flash CS4 ou CS3 e o Visual Studio 2008. Esses dois programas são essenciais pois o primeiro eu uso para projetos da faculdade e o segundo para um sistema que desenvolvo para uma empresa de pernambuco.</p>
<p>Soluções???? tentei várias!!</p>
<p>Começando pelo wine com o flash CS4, não consegui. Tentei a versão portável e a normal&#8230;.</p>
<p>Tentei em seguida usar o vmware. Esbarrei em um problema crítico: desempenho! O meu computador usa um processador Turion com 1,5GB de memória RAM. Muito pouco para firefox + linux + windows + flash&#8230;</p>
<p>A terceira solução foi usar o rdesktop. Remote Desktop do windows. O único probleminha é que você tem que ter um computador extra para fazer isso&#8230;.</p>
<p>Para quem tiver um computador que tenha windows para usar como uma &#8220;máquina virtual&#8221; no linux você pode usar um comando parecido com esse:</p>
<blockquote><p>rdesktop 192.168.0.1 -u &#8220;Adriano Melo&#8221; -g 1230&#215;920 -x l -r clipboard:CLIPBOARD -a 24</p></blockquote>
<p>O que eu mais gostei nessa solução é que não consome muito os recursos da máquina cliente (linux). Ela meio que balanceia a carga entre os dois computadores, o servidor roda o flash, que consome muita memória, e no cliente você pode usar o firefox, MSN&#8230;</p>
<p>Abaixo segue um printscreen do flash rodando:</p>
<p><a href="http://www.flickr.com/photos/adrianomelo/3529994372/" title="Flash CS4 on Ubuntu 9.04 by Adriano Melo, on Flickr"><img src="http://farm4.static.flickr.com/3326/3529994372_fb2bacfa1d.jpg" alt="Flash CS4 on Ubuntu 9.04" width="351" height="500" /></a></p>
<p class="zemanta-pixie"><img src="http://img.zemanta.com/pixy.gif?x-id=01ab27ae-1998-8a7e-876f-1f41ca1e4aec" class="zemanta-pixie-img" /></p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=48&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/flash-cs4-no-ubuntu-904/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como instalar o oracle xe no linux</title>
		<link>http://adrianomelo.com/blog/como-instalar-o-oracle-xe-no-linux/</link>
		<comments>http://adrianomelo.com/blog/como-instalar-o-oracle-xe-no-linux/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 04:24:23 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/como-instalar-o-oracle-xe-no-linux/</guid>
		<description><![CDATA[Hoje estava com a tarefa de instalar ASP.NET em um servidor debian para um website que estou desenvolvendo. Instalei o mono, e irei instalar daqui a pouco o mod_mono. Mas tinha um problema crucial: Qual bando de dados usar? No Visual Studio 2008 por padrão existem esses tipo de conexões: Microsoft Access Database File Microsoft [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estava com a tarefa de instalar ASP.NET em um servidor debian para um website que estou desenvolvendo. Instalei o mono, e irei instalar daqui a pouco o mod_mono. Mas tinha um problema crucial: Qual bando de dados usar?</p>
<p>No Visual Studio 2008 por padrão existem esses tipo de conexões:</p>
<ul>
<li>Microsoft Access Database File</li>
<li>Microsoft ODBC Data Source</li>
<li>Microsoft SQL Server</li>
<li>Microsoft SQL Server Compact 3.5</li>
<li>Microsoft SQL Server Database File</li>
<li>Oracle Database</li>
</ul>
<p>Qual deles podem ser usados no linux?</p>
<p>Nos meus conhecimentos até 1 hora atrás, nenhum.</p>
<p>Então, instalei o Connector para MySQL. Mas não foi uma boa ideia&#8230; para algumas coisas ele não é tão redondo quanto o SQL Server (óbvio).</p>
<p>Depois de algumas experiências não muito bem sucedidas com o MySQL, fui ver se existia algo do oracle para linux, e <strong>existe</strong>!!!</p>
<p>Fui seguir esse tutorial então:</p>
<blockquote><p>http://www.cognovis.de/developer/en/oracle-xe-installation</p></blockquote>
<p>Mas ao adicionar uma chave para o repositório do oracle tive esse problema: &#8220;Cannot write to `RPM-GPG-KEY-oracle&#8217; (Broken pipe)</p>
<p>Então, caso queira instalar o oracle no linux, esses passos serviram para mim:</p>
<blockquote><p>wget http://oss.oracle.com/debian/dists/unstable/main/binary-i386/libaio_0.3.104-1_i386.deb</p>
<p>dpkg -i libaio_0.3.104-1_i386.deb</p>
<p>wget http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb</p>
<p>dpkg -i oracle-xe-universal_10.2.0.1-1.1_i386.deb</p>
<p>wget http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-client_10.2.0.1-1.2_i386.deb</p>
<p>dpkg -i oracle-xe-client_10.2.0.1-1.2_i386.deb</p>
<p>/etc/init.d/oracle-xe configure</p>
<p>echo &#8220;source /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh&#8221; &gt;&gt;/etc/profile</p>
<p>su &#8211; oracle</p>
<p>sqlplus system</p></blockquote>
<p>Se tudo deu certo, você estará na tela do sqlplus pronto para fazer suas consultas. Para melhorar a segurança eu criei um usuário para o banco de dados do site com os comandos:</p>
<blockquote><p>create user meusite identified by minhasenha;</p>
<p>grant create session, create table, create procedure, create sequence, create view, create trigger, create type, dba to meusite;</p>
<p>connect meusite/minhasenha;</p></blockquote>
<p>Ainda vou ver se o oracle vai funcionar redondo com o mono, mais isso já é outra estória&#8230;</p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=47&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/como-instalar-o-oracle-xe-no-linux/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>[p1] Desenvolvendo com PHP, Como Obter ajuda</title>
		<link>http://adrianomelo.com/blog/p1-desenvolvendo-com-php-como-obter-ajuda/</link>
		<comments>http://adrianomelo.com/blog/p1-desenvolvendo-com-php-como-obter-ajuda/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 16:54:51 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/1p-desenvolvendo-com-php-como-obter-ajuda/</guid>
		<description><![CDATA[Primeiro, para aprender a programar em php você tem que ter um bom material de auxilio para lhe guiar e ensinar. Eu sempre leio, ou tento ter, a documentação oficial. No caso do PHP é essa: http://www.php.net/docs.php Em posse desse documento você já tem tudo para dar os passos iniciais. Têm muitas coisas que são [...]]]></description>
			<content:encoded><![CDATA[<p>Primeiro, para aprender a programar em php você tem que ter um bom material de auxilio para lhe guiar e ensinar. Eu sempre leio, ou tento ter, a documentação oficial. No caso do PHP é essa:</p>
<ul>
<li><a href="http://www.php.net/docs.php">http://www.php.net/docs.php</a></li>
</ul>
<p>Em posse desse documento você já tem tudo para dar os passos iniciais. Têm muitas coisas que são avançadas também, mas há ferramentas que você tem que conhecer antes de se aprofundar mais na linguagem.</p>
<p>Outro recurso interessante enquanto estuda é ter a quem perguntar quando tudo estiver dando errado, neste caso uma lista de discussão é muito bem vinda. A mais ativa no brasil é a php-brasil.</p>
<ul>
<li><a href="http://groups.google.com/group/php-brasil?lnk=sg">http://groups.google.com/group/php-brasil?lnk=sg</a></li>
</ul>
<p>Caso nenhum desses dois tenha a sua resposta, ele terá: Gooooooooooooooooooooogle!</p>
<ul>
<li><a href="http://google.com">Google</a></li>
<li><a href="http://www.google.com/search?q=php">Resultados de pesquisa sobre &#8220;php&#8221;<br />
</a></li>
</ul>
<p>E caso o Google não saiba (o que é impossível!!), fala comigo, pois provavelmente o que você está querendo não é algo técnico. (email: adriano @ adrianomelo . com &#8211; sem os espaços).</p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=44&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/p1-desenvolvendo-com-php-como-obter-ajuda/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[p0] Desenvolvendo com PHP</title>
		<link>http://adrianomelo.com/blog/p0-desenvolvendo-com-php/</link>
		<comments>http://adrianomelo.com/blog/p0-desenvolvendo-com-php/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 16:54:48 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/p0-desenvolvendo-com-php/</guid>
		<description><![CDATA[Devido a necessidade de alguns amigos meus da faculdade estarem precisando aprender PHP, eu vou fazer uma série de posts que terão uma introdução para quem quer aprender a linguagem. Mas estarei supondo que quem vai ler já tem uma boa noção sobre programação. Os assuntos que tentarei fala algo são esses: Onde obter ajuda [...]]]></description>
			<content:encoded><![CDATA[<p>Devido a necessidade de alguns amigos meus da faculdade estarem precisando aprender PHP, eu vou fazer uma série de posts que terão uma introdução para quem quer aprender a linguagem. Mas estarei supondo que quem vai ler já tem uma boa noção sobre programação.</p>
<p>Os assuntos que tentarei fala algo são esses:</p>
<ol>
<li><a href="http://adrianomelo.com/blog/p1-desenvolvendo-com-php-como-obter-ajuda/">Onde obter ajuda (documentação)</a></li>
<li>Conceitos da linguagem
<ol>
<li>PHP + HTML</li>
<li>Sintaxe básica</li>
<li>Comentários</li>
<li>Tipos
<ol>
<li>Booleanos, inteiros, números ponto-flutuante, string, array, objeto, resource.</li>
<li>NULL, pseudo-tipos</li>
</ol>
</li>
<li>Funções</li>
<li>Estrutura de controle</li>
<li>Classes e objetos</li>
<li>Exceções</li>
<li>Referências</li>
</ol>
</li>
<li>Conexão ao MySQL</li>
<li>CakePHP</li>
</ol>
<p>Estarei à disposição de todos que tiverem alguma dúvida através do email adriano @ adrianomelo . com (sem os espaços).</p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=43&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/p0-desenvolvendo-com-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Descontinuação dos projetos Kurumin e Kalango Linux</title>
		<link>http://adrianomelo.com/blog/descontinuacao-dos-projetos-kurumin-e-kalango-linux/</link>
		<comments>http://adrianomelo.com/blog/descontinuacao-dos-projetos-kurumin-e-kalango-linux/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 03:09:16 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/descontinuacao-dos-projetos-kurumin-e-kalango-linux/</guid>
		<description><![CDATA[No fórum do clube do hardware, Carlos Morimoto e Leandro Santos anunciaram que os projetos Kurumin Linux e Kalango Linux, ambos nacionais, serão descontinuados. Olá Pessoal, Meu nome é Leandro Santos e sou o criador e mantenedor do Kalango Linux. Eu e o Carlos Morimoto havíamos destido de manter os projetos Kalango e Kurumin por [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.guiadohardware.net/comunidade/v-t/845697/">No fórum do clube do hardware</a>, Carlos Morimoto e Leandro Santos anunciaram que os projetos Kurumin Linux e Kalango Linux, ambos nacionais, serão descontinuados.</p>
<blockquote><p> Olá Pessoal,</p>
<p>Meu nome é Leandro Santos e sou o criador e mantenedor do Kalango Linux. Eu e o Carlos Morimoto havíamos destido de manter os projetos Kalango e Kurumin por não existir até então mais algum motivo plausível para a existência desses projetos, já que hoje em dia temos ótimas opções para Desktop como o Ubuntu, Madriva, Fedora, etc&#8230;distros que tem feito um trabalho competente no que se refere à Desktop.</p>
<p>Entrentanto nós sabíamos que o fim dos dois projetos de uma vez seria uma perda enorme para a comunidade nacional, pois os dois projetos já têm o seu público fiel que espera um sistema que use KDE por padrão, que já tenha suporte total ao Português do Brasil e diversas outras características que vocês estão acostumados.</p>
<p>Dentro deste assunto eu fiz a proposta de manter a nova geração do Kurumin chamada Kurumin NG com base no (K)Ubuntu, proposta esta que foi aceita pelo Carlos e que já está em andamento. A princípio é isso que posso falar a respeito do Kurumin NG, de agora em diante vamos manter vocês atualizados a respeito do projeto.</p>
<p>E me ajudem nos testes do novo sistema de Ícones Mágicos que vou postar no fórum.</p></blockquote>
<p>Leandro, ao ser indagado por que escolheu o (K)Ubuntu para ser a base para desenvolvimento do Kurumin NG (&#8220;Next Generation&#8221;), respondeu:</p>
<blockquote><p>A vantagem é que o Ubuntu consegue lançar uma versão estável com &#8220;todos&#8221; os pacotes atualizados de 6 em 6 meses, enquanto que o Debian normalmente demora mais de 1 ano. Além de ser mais fácil contribuir com o Ubuntu através do Launchpad, com isso poderemos nos aproximar mais do desenvolvimento da distro que será a base.</p></blockquote>
<p>Falou também que o primeiro release da nova distro vai ser baseada no Hardy Heron (8.04).</p>
<p>Apesar de não usar nem o Kurumin, nem o Kalango, eu já usei o primeiro e gostei muito. Todos que estão por dentro do cenário linux nacional sabem da competência dessa dupla. Vamos aguardar, vem coisa boa por ai&#8230;</p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=41&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/descontinuacao-dos-projetos-kurumin-e-kalango-linux/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.611 seconds -->

