<?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 &#187; Tecnologia</title>
	<atom:link href="http://adrianomelo.com/blog/categoria/tecnologia/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>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>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>[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>
		<item>
		<title>Beryl em notebook Acer Aspire 50&#8242;s</title>
		<link>http://adrianomelo.com/blog/beryl-em-notebook-acer-aspire-50s/</link>
		<comments>http://adrianomelo.com/blog/beryl-em-notebook-acer-aspire-50s/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 03:10:27 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/beryl-em-notebook-acer-aspire-50s/</guid>
		<description><![CDATA[Finalmente&#8230; após tentar umas 3 vezes instalar o beryl e todas aquelas frescurinhas que fazes as pessoas dizerem &#8220;nooooossa, que legal!!!&#8221;, eu consegui. Utilizando o Ubuntu Linux 7.10 32bits. A chave foi instalar o xgl-server, que não vem instalado por padrão. já que o Gutsy trás tudo prontinho para girar, enfeitar, escurecer, deixa transparente&#8230; enfim&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Finalmente&#8230; após tentar umas 3 vezes instalar o beryl e todas aquelas frescurinhas que fazes as pessoas dizerem &#8220;nooooossa, que legal!!!&#8221;, eu consegui.</p>
<p>Utilizando o Ubuntu Linux 7.10 32bits.</p>
<p>A chave foi instalar o xgl-server, que não vem instalado por padrão. já que o Gutsy trás tudo prontinho para girar, enfeitar, escurecer, deixa transparente&#8230; enfim&#8230; aqui vai o xorg.conf e logo em seguida alguns screenshots.</p>
<p>O que é ligado diretamente ao beryl no /etc/X11/xorg.conf é isso:</p>
<blockquote><p>Section &#8220;Device&#8221;<br />
Identifier    &#8220;ATI Technologies Inc RS485 [Radeon Xpress 1100 IGP]&#8221;<br />
Driver        &#8220;fglrx&#8221;<br />
Busid        &#8220;PCI:1:5:0&#8243;<br />
EndSection</p>
<p>Section &#8220;Monitor&#8221;<br />
Identifier    &#8220;Monitor Genérico&#8221;<br />
Option        &#8220;DPMS&#8221;<br />
EndSection</p>
<p>Section &#8220;Screen&#8221;<br />
Identifier    &#8220;Default Screen&#8221;<br />
Device        &#8220;ATI Technologies Inc RS485 [Radeon Xpress 1100 IGP]&#8221;<br />
Monitor        &#8220;Monitor Genérico&#8221;<br />
Defaultdepth    24<br />
SubSection &#8220;Display&#8221;<br />
Modes        &#8220;1280&#215;800&#8243;<br />
EndSubSection<br />
EndSection</p>
<p>Section &#8220;ServerLayout&#8221;<br />
Identifier    &#8220;Default Layout&#8221;<br />
screen &#8220;Default Screen&#8221;<br />
Inputdevice    &#8220;Generic Keyboard&#8221;<br />
Inputdevice    &#8220;Configured Mouse&#8221;<br />
Inputdevice    &#8220;Synaptics Touchpad&#8221;<br />
EndSection<br />
Section &#8220;Module&#8221;<br />
Load        &#8220;glx&#8221;<br />
Load &#8220;dri&#8221;<br />
EndSection</p>
<p>Section &#8220;DRI&#8221;<br />
Mode 0666<br />
EndSection</p>
<p>Section &#8220;Extensions&#8221;<br />
Option        &#8220;Composite&#8221;    &#8220;1&#8243;<br />
EndSection</p></blockquote>
<p><a href="http://adrianomelo.com/blog/wp-content/uploads/2008/01/xorgconf-um-monitor-bom.txt">E aqui está o xorg.conf completo.</a></p>
<p>Screenshots:</p>
<blockquote><p> <a href="http://adrianomelo.com/blog/wp-content/uploads/2008/01/captura_da_tela2.png" title="Janelas Distorcidas"><img src="http://adrianomelo.com/blog/wp-content/uploads/2008/01/captura_da_tela2.thumbnail.png" alt="Janelas Distorcidas" height="112" width="176" /> </a><a href="http://adrianomelo.com/blog/wp-content/uploads/2008/01/captura_da_tela4.png" title="Tudo empenado"><img src="http://adrianomelo.com/blog/wp-content/uploads/2008/01/captura_da_tela4.thumbnail.png" alt="Tudo empenado" height="111" width="171" /></a><a href="http://adrianomelo.com/blog/wp-content/uploads/2008/01/captura_da_tela5.png" title="DVD"><img src="http://adrianomelo.com/blog/wp-content/uploads/2008/01/captura_da_tela5.thumbnail.png" alt="DVD" height="113" width="179" /></a><a href="http://adrianomelo.com/blog/wp-content/uploads/2008/01/captura_da_tela-2.png" title="Cubo"><img src="http://adrianomelo.com/blog/wp-content/uploads/2008/01/captura_da_tela-2.thumbnail.png" alt="Cubo" height="114" width="178" /></a></p></blockquote>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=32&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/beryl-em-notebook-acer-aspire-50s/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PSPad &#8211; um ótimo editor de texto que pode ser instalado direto no pendrive</title>
		<link>http://adrianomelo.com/blog/pspad-um-otimo-editor-de-texto-que-pode-ser-instalado-direto-no-pendrive/</link>
		<comments>http://adrianomelo.com/blog/pspad-um-otimo-editor-de-texto-que-pode-ser-instalado-direto-no-pendrive/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 02:45:50 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/pspad-um-otimo-editor-de-texto-que-pode-ser-instalado-direto-no-pendrive/</guid>
		<description><![CDATA[Aqui vai uma dica: Uso um editor para alterar códigos em php, javascript e html chamado PSPad. Vou primeiro listar algumas funcionalidades dele: Suporta muitos tipos de linguagens. Inclusive python, que usa a quebra de linha do unix. &#8220;Code Completation&#8221; &#8211; ao alterar um arquivo CSS, por exemplo, ele mostra as opções de propriedades que [...]]]></description>
			<content:encoded><![CDATA[<p>Aqui vai uma dica: Uso um editor para alterar códigos em php, javascript e html chamado <a href="http://www.pspad.com/">PSPad</a>. Vou primeiro listar algumas funcionalidades dele:</p>
<ul>
<li>Suporta muitos tipos de linguagens. Inclusive python, que usa a quebra de linha do unix.</li>
<li>&#8220;Code Completation&#8221; &#8211; ao alterar um arquivo CSS, por exemplo, ele mostra as opções de propriedades que a linguagem dispõe.</li>
<li>Integra-se muito bem ao sistema. Tendo por padrão um context menu que é muito útil.</li>
<li>Simples de usar e pequeno (de 10 a 20mb)</li>
<li>Desempenho: Leve (utiliza pouca memória) e é muito robusto. Já consegui alterar arquivos de 400mb com ele.</li>
<li>Pode-se criar projetos que salvam as configurações atuais do editor. Você pode, por exemplo, ter dois sites. Criando um projeto para cada um dá para reabrir todos os arquivos que estavam sendo editados na ultima vez que o projeto foi aberto. Dá para definir o encoding padrão, o tipo de quebra de linha, compilador, pasta padrão, servidor&#8230;</li>
<li>Integração com ftp. Apesar de não gostar do pspad trabalhando direto via ftp por que fica travado, isso mesmo, travando quando um arquivo está sendo salvo, é uma funcionalidade muito útil,</li>
<li>Find (and replace) com expressões regulares, e para vários arquivos.</li>
<li>Abas e opção de visualização de mais de um arquivo por vez.</li>
<li>Muito transparente para trabalhar com encodings.</li>
<li>Freeware e só para windows. <img src='http://adrianomelo.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
</ul>
<p>Claro, o <a href="http://www.pspad.com/">pspad </a>tem mais propriedades, mas eu acho que as principais são essas.</p>
<p>Te-lo instalado no pendrive é uma mão na rola às vezes. Para instalar é só <a href="http://www.pspad.com/en/download.php">baixar </a>a versão compactada dele (.cab) e extrair direto no pendrive.</p>
<p>Screenshots:</p>
<p><a href="http://www.pspad.com/en/screenshot.htm"><img src="http://www.pspad.com/img/screen/mainfull.png" alt="http://www.pspad.com/img/screen/mainfull.png" height="214" width="286" /></a></p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=33&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/pspad-um-otimo-editor-de-texto-que-pode-ser-instalado-direto-no-pendrive/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Windows Vista (screenshots)</title>
		<link>http://adrianomelo.com/blog/windows-vista-screenshots/</link>
		<comments>http://adrianomelo.com/blog/windows-vista-screenshots/#comments</comments>
		<pubDate>Sun, 09 Sep 2007 00:19:49 +0000</pubDate>
		<dc:creator>Adriano Melo</dc:creator>
				<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://adrianomelo.com/blog/windows-vista-screenshots/</guid>
		<description><![CDATA[Para quem ainda não teve o &#8220;prazer&#8221; de ver como ficou o design no Windows Vista, algumas fotos abaixo mostram alguns efeitos do Aero e das janelas. Windows Media Player 11 Mais bonito e organizado que o wmp 10, porém consome o mesmo processamento e memória. Gadgets para a área de trabalho Calendário do windows [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem ainda não teve o <strong>&#8220;prazer&#8221; </strong>de ver como ficou o design no Windows Vista, algumas fotos abaixo mostram alguns efeitos do Aero e das janelas.</p>
<p><strong>Windows Media Player 11</strong></p>
<p>Mais bonito e organizado que o wmp 10, porém consome o mesmo processamento e memória.</p>
<p><a href="http://www.flickr.com/photos/adrianomelo/1347799545/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1116/1347799545_9ab0ffb1cd.jpg" alt="Windows Vista" height="313" width="500" /></a></p>
<p><strong>Gadgets para a área de trabalho</strong></p>
<p><a href="http://www.flickr.com/photos/adrianomelo/1347800615/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1388/1347800615_fe515ccbe9.jpg" alt="Windows Vista - Gadgets" height="313" width="500" /></a></p>
<p><a href="http://www.flickr.com/photos/adrianomelo/1347801099/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1210/1347801099_214934dfdf.jpg" alt="Windows Vista - Zoom Icones" height="313" width="500" /></a></p>
<p><strong>Calendário do windows</strong></p>
<p>Vem junto com o windows. Fácil de usar mas ainda inferior ao evolution do linux.</p>
<p><a href="http://www.flickr.com/photos/adrianomelo/1348693652/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1016/1348693652_f1b018cc0e.jpg" alt="Windows Vista - Calendário do Windows" height="301" width="500" /></a></p>
<p><strong>Efeito do Windows Aero</strong></p>
<p>Acho que esse efeito só foi adicionado para mostrar que não é só o beryl que consegue fazer coisas legais; Não achei muito prático&#8230;</p>
<p><a href="http://www.flickr.com/photos/adrianomelo/1348693344/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1187/1348693344_c6abdb5fae.jpg" alt="Windows Vista - Escolher Janela" height="313" width="500" /></a></p>
<img src="http://adrianomelo.com/blog/?ak_action=api_record_view&id=23&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://adrianomelo.com/blog/windows-vista-screenshots/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

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

