<?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>Another Geek Blog &#187; perl</title>
	<atom:link href="http://geek.linuxman.pro.br/tag/perl/feed" rel="self" type="application/rss+xml" />
	<link>http://geek.linuxman.pro.br</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 16 Dec 2011 01:55:44 +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>Se as linguagens de programação fossem religiões</title>
		<link>http://geek.linuxman.pro.br/geek/se-as-linguagens-de-programacao-fossem-religioes</link>
		<comments>http://geek.linuxman.pro.br/geek/se-as-linguagens-de-programacao-fossem-religioes#comments</comments>
		<pubDate>Wed, 17 Dec 2008 15:15:41 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[cobol]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=591</guid>
		<description><![CDATA[Deu no /. : C seria Judaismo: É antiga e restritiva, mas a maior parte do mundo está familiarizada com suas leis e as respeita. A pegadinha é que você não pode se converter para ela &#8211; ou está lá desde o início ou vai pensar que é insanidade pura. Além disso, quando as coisas [...]]]></description>
			<content:encoded><![CDATA[<p>Deu no <a href="http://slashdot.org">/.</a> :</p>
<p>C seria Judaismo: É antiga e restritiva, mas a maior parte do mundo está familiarizada com suas leis e as respeita. A pegadinha é que você não pode se converter para ela &#8211; ou está lá desde o início ou vai pensar que é insanidade pura. Além disso, quando as coisas dão errado, muitas pessoas estão dispostas a colocar nela todos os problema do mundo.</p>
<p>O texto completo, em inglês, <a href="http://www.aegisub.net/2008/12/if-programming-languages-were-religions.html">aqui</a>.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/c" title="c" rel="tag">c</a>, <a href="http://geek.linuxman.pro.br/tag/cobol" title="cobol" rel="tag">cobol</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a>, <a href="http://geek.linuxman.pro.br/tag/programming" title="programming" rel="tag">programming</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/ruby" title="ruby" rel="tag">ruby</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/se-as-linguagens-de-programacao-fossem-religioes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>checkout</title>
		<link>http://geek.linuxman.pro.br/codes/checkout</link>
		<comments>http://geek.linuxman.pro.br/codes/checkout#comments</comments>
		<pubDate>Tue, 21 Oct 2008 17:35:37 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[codes]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=493</guid>
		<description><![CDATA[À medida que você precisa administrar mais e mais servidores, cada um rodando seus serviços e daemons específicos fica mais complicado saber o que está em casa máquina. Pior ainda quando você precisa que alguém com menos experiência ou conhecimento (aka suporte nível 1) verifique para você o estado do servidor. A idéia é então [...]]]></description>
			<content:encoded><![CDATA[<p>À medida que você precisa administrar mais e mais servidores, cada um rodando seus serviços e daemons específicos fica mais complicado saber o que está em casa máquina.</p>
<p>Pior ainda quando você precisa que alguém com menos experiência ou conhecimento (aka suporte nível 1) verifique para você o estado do servidor.</p>
<p>A idéia é então centralizar essa checagem num único script, simples e funcional, para facilitar a sua vida e a dos outros admins.</p>
<p>Tenho certeza que já existem por ai trocentos scripts/programas/whatever para fazer isso, mas eu estava entediado e precisava usar um pouco de Perl para não enferrujar completamente (É&#8230; ando usando só Python e Bash).</p>
<p>O script <a href="http://geek.linuxman.pro.br/arquivos/checkout">está disponível aqui</a> e está bem documentado e é de simples entendimento.</p>
<p>Basta criar um arquivo /etc/checks.txt contendo o que você esperaria ver rodando normalmente e está feito.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/servidor" title="servidor" rel="tag">servidor</a>, <a href="http://geek.linuxman.pro.br/tag/solaris" title="solaris" rel="tag">solaris</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/codes/checkout/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Morre!</title>
		<link>http://geek.linuxman.pro.br/geek/dicas/morre</link>
		<comments>http://geek.linuxman.pro.br/geek/dicas/morre#comments</comments>
		<pubDate>Mon, 08 Sep 2008 19:36:37 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=428</guid>
		<description><![CDATA[Uma funçãozinha muito útil do Perl é a &#8220;die&#8221;. Fica fácil gerar mensagens de erro e já abortar a execução numa tacada só. Segue a versão primo-pobre para bash: function die () { echo "$progname: $1"; exit ${2:-1}  ; } Exemplos de uso: [ ! -f /tmp/teste.txt ] &#38;&#38; die "Arquivo não existe" ou [ [...]]]></description>
			<content:encoded><![CDATA[<p>Uma funçãozinha muito útil do Perl é a &#8220;die&#8221;. Fica fácil gerar mensagens de erro e já abortar a execução numa tacada só.</p>
<p>Segue a versão primo-pobre para bash:</p>
<pre>function die () { echo "$progname: $1"; exit ${2:-1}  ; }</pre>
<p>Exemplos de uso:</p>
<pre>[ ! -f /tmp/teste.txt ] &amp;&amp; die "Arquivo não existe"</pre>
<p>ou</p>
<pre>[ "$A" -ne 0 ] &amp;&amp; die "Nao encontrei o zero" 99</pre>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/dicas/morre/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>De volta à universidade</title>
		<link>http://geek.linuxman.pro.br/canada/de-volta-a-universidade</link>
		<comments>http://geek.linuxman.pro.br/canada/de-volta-a-universidade#comments</comments>
		<pubDate>Sat, 12 Jul 2008 00:05:58 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Canada]]></category>
		<category><![CDATA[aix]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nova york]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[trabalho]]></category>
		<category><![CDATA[universidade]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=391</guid>
		<description><![CDATA[Pois é. Estou voltando pra universidade. Mas não, não é isso que você está pensando. Estou indo trabalhar para uma universidade. Meu atual emprego até que foi interessante até um determinado ponto. Aprendi muito e vi como é infra-estrutura de IT de gente grande. E aprendi como é que se implementa Linux no que se [...]]]></description>
			<content:encoded><![CDATA[<p>Pois é. Estou voltando pra universidade. Mas não, não é isso que você está pensando.</p>
<p>Estou indo trabalhar para uma universidade.</p>
<p>Meu atual emprego até que foi interessante até um determinado ponto. Aprendi muito e vi como é infra-estrutura de IT de gente grande. E aprendi como é que se implementa Linux no que se chama &#8220;enterprise class&#8221; e entendi porque <a href="http://geek.linuxman.pro.br/geek/baseado-em-fatos-reais">wall-street ama open source</a>.</p>
<p>Também me mandaram pra <a href="http://geek.linuxman.pro.br/viagens/new-york">Nova York</a> e me deram curso de <a href="http://geek.linuxman.pro.br/geek/camelando">Perl</a>. E só de birra, <a href="http://geek.linuxman.pro.br/geek/339">resolvi aprender Python</a>. Além de que a famosa frase &#8220;a prática leva à perfeição&#8221; se mostrou real com o tanto que tive que c<a href="http://geek.linuxman.pro.br/geek/binbash">olocar minha experiência com Bash pra funcionar</a>.</p>
<p>Porém, como é obvio pelo fato eu estar mudando de emprego, resolvi que era hora de juntar minhas tralhas e mudar de emprego. Basicamente dois motivos me levaram a isso.</p>
<p>Primeiramente eu sou workaholic, viciado em desafios e fico entediado muito, muito fácil. Ai meu emprego <a href="http://geek.linuxman.pro.br/geek/emprego-canadense">basicamente era das 09:00 às 17:00hrs</a>, sem on-call. O foco do meu time era &#8220;resolução pró-ativa de problemas&#8221;. Ou seja: análise de logs e resolução de problemas secundários que (ainda) não afetaram a produção.</p>
<p>A coisa funcionava mais ou menos assim: Tudo que era trampo CHATO ou repetitivo, o time de unix do cliente passava pra gente. E todo mundo sabe que trampos chatos e repetitivos tem apenas <strong>um</strong> destino: script. Então mesmo as mais complexas auditorias podiam ser quebradas em pequenas partes que podiam virar um ou dois pequenos scripts para facilitar a vida. Ai cada um destes pequenos scripts vira uma função de um script maior que chama essas funções baseadas em um padrão&#8230; E ai você usar regex pra fazer uma análise de padrões&#8230; you know the drill. Depois de um tempo tudo o que eu fazia ao chegar no serviço era abrir 3 ou 4 consoles no <a href="www.gnu.org/software/screen/ ">screen</a> e rodar meus scripts. E dá-lhe <a href="http://slashdot.org">Slashdot</a> e <a href="http://br-linux.org">BR-Linux</a> o dia inteiro.</p>
<p>Como a infra-estrutura lá é show e o grupo de engenharia pertence ao cliente (e não à empresa de outsource que eu trabalhava), eu nunca ia chegar na parte divertida do trabalho.</p>
<p>Resumindo, a explicação é o seguinte: Eu gosto de problema. Quero mais é pegar um ambiente todo podre e detonado e fazer ele ficar bonitão, com <a href="http://en.wikipedia.org/wiki/Uptime">uptime de 99,99%</a>.</p>
<p>O segundo motivo é banal: dinheiro. Mim querer mais. E os funcionários mais antigos da empresa me contaram que <strong>ninguém</strong> tem aumento há três anos. Como a maioria das empresas não são sindicalizadas (e lá não é), não rola nem aquele aumento apenas para cobrir a inflação. Nada. Zip. Zero. Em <strong>três</strong> anos. Dá licença, né? Deixa eu vazar logo dessa furada.</p>
<p>Por enquanto não sei <em>exatamente</em> o que vou fazer, apenas que vou atuar com servidores Linux, Solaris e AIX. Mas assim que começar lá no dia 23 deste mês, coloco um post aqui.</p>
<p>Fico devendo, se possível para este final de semana, um resumo das técnicas que utilizei para escrever a carta de apresentação e para mandar bem na entrevista.</p>
<p>Então minha volta pra universidade não é exatamente o que meus pais gostariam que fosse, mas espero que quebre o galho. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/aix" title="aix" rel="tag">aix</a>, <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/nova-york" title="nova york" rel="tag">nova york</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/solaris" title="solaris" rel="tag">solaris</a>, <a href="http://geek.linuxman.pro.br/tag/trabalho" title="trabalho" rel="tag">trabalho</a>, <a href="http://geek.linuxman.pro.br/tag/universidade" title="universidade" rel="tag">universidade</a>, <a href="http://geek.linuxman.pro.br/tag/unix" title="unix" rel="tag">unix</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/canada/de-volta-a-universidade/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Bash vs Perl vs Python</title>
		<link>http://geek.linuxman.pro.br/geek/bash-vs-perl-vs-python</link>
		<comments>http://geek.linuxman.pro.br/geek/bash-vs-perl-vs-python#comments</comments>
		<pubDate>Sun, 11 May 2008 22:22:43 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[trabalho]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=368</guid>
		<description><![CDATA[Comentei aqui que estava fazendo curso de Perl na semana passada, além de ter decidido estudar também Python por conta própria. Não posso deixar de citar também que tenho uma experiência considerável com bash script e que esta era oficialmente a única &#8220;linguagem de programação&#8221; que conhecia até os eventos anteriormente citados. Nem me arrisco [...]]]></description>
			<content:encoded><![CDATA[<p>Comentei <a href="http://geek.linuxman.pro.br/geek/camelando">aqui</a> que estava fazendo curso de Perl na semana passada, além de ter decidido estudar também <a href="http://geek.linuxman.pro.br/geek/339">Python por conta própria</a>.</p>
<p>Não posso deixar de citar também que tenho uma experiência considerável com bash script e que esta era oficialmente a única &#8220;linguagem de programação&#8221; que conhecia até os eventos anteriormente citados.</p>
<p>Nem me arrisco a dizer que conheço bem Perl ou sequer um pouco de Python, então por favor entendam minha opinião apenas como isso: Minha opinião.</p>
<p>Cheguei a conclusão de que se você precisa interagir com o sistema operacional com freqüência &#8211; o que é o caso em 95% dos scripts que eu faço &#8211; Bash e Perl me parecem as melhores opções.</p>
<p>Exemplo pra deixar claro, um script que salve o nome do host numa variável e depois mostre essa variável:</p>
<p>BASH:</p>
<p><code>#!/bin/bash<br />
echo $HOSTNAME</code></p>
<p>Pois é&#8230; o Bash já deve ter esta variável por default&#8230;</p>
<p>PERL:</p>
<p><code>#!/usr/bin/env perl<br />
$hostname = `hostname`;<br />
chomp($hostname);<br />
print "$hostname\n";</code></p>
<p>Não muito ruim também, mas ODEIO ter que colocar newline no final. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>PYTHON:</p>
<p><code>#!/usr/bin/env python<br />
import socket<br />
host = socket.gethostname()<br />
print host</code></p>
<p>Pô&#8230; precisa importar coisa..?</p>
<p>Os exemplos acima podem não ser os melhores e alguém mais safo nestas linguagens podem ter idéias melhores, mas acredito que deu pra ilustrar.</p>
<p>Em compensação scripts que fazem outras coisas me parecem bem mais simples em Python. Principalmente se preciso olhar o código de outra pessoa como exemplo.</p>
<p>Estes dias queria ver como se gerava RSS em Python e usei como referência um código feito por alguém do Debian. O código não tinha nem uma linha de comentário pra facilitar a vida, mas Python deixa a coisa tão limpa e clara que não tive a menor dificuldade de entender o que estava sendo feito e usar o código. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Então a ordem do dia agora será: Perl o tempo todo no serviço. Primeiro para me forçar a usar Perl, senão eu acho mais simples em Bash e nunca vou colocar a mão na massa. E segundo porquê lá é basicamente um &#8220;Perl Shop&#8221; mesmo e os dois caras à minha direita e os dois à minha esquerda manjam um bocado de Perl. Então não vai ser difícil achar ajuda.</p>
<p>Mas em casa, no Just-for-Fun vou continuar brincando com Python.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/debian" title="debian" rel="tag">debian</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/trabalho" title="trabalho" rel="tag">trabalho</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/bash-vs-perl-vs-python/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hein?</title>
		<link>http://geek.linuxman.pro.br/geek/hein</link>
		<comments>http://geek.linuxman.pro.br/geek/hein#comments</comments>
		<pubDate>Tue, 06 May 2008 22:59:51 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=364</guid>
		<description><![CDATA[Cá entre nós, estou achando Perl sensacional, mas dêem uma olhada no código abaixo, que acabei de fazer: foreach $n (0..9999) {foreach ("AAA".."ZZZ") {printf "%s-%04d\n", $_, $n;}} A sua pergunta no momento deve ser: &#8220;Que m* é essa??&#8221;. Pois é. Este é o &#8220;problema&#8221; do Perl, na minha opinião. Qualquer mané (aka /me) com 2 [...]]]></description>
			<content:encoded><![CDATA[<p>Cá entre nós, estou achando Perl sensacional, mas dêem uma olhada no código abaixo, que acabei de fazer:</p>
<pre>
foreach $n (0..9999) {foreach ("AAA".."ZZZ") {printf "%s-%04d\n", $_, $n;}}</pre>
<p>A sua pergunta no momento deve ser: &#8220;Que m* é essa??&#8221;.</p>
<p>Pois é. Este é o &#8220;problema&#8221; do Perl, na minha opinião. Qualquer mané (aka /me) com 2 dias de curso consegue fazer um código, que funciona, mas não faz o menor sentido pros demais habitantes do planeta.</p>
<p>Vamos refazer este código igual gente:</p>
<pre>
@numeros=(0..9999); # Numeros de 0 a 9999
@letras=("AAA".."ZZZ"); # Letras de AAA a ZZZ

$mostra_letras='%s'; # Lugar onde serao colocadas as letras
$mascara='%04d'; # Preenche os numeros menores que 1000 com zeros na esquerda

foreach $numero (@numeros) {
foreach $letra (@letras) {
printf "$mostra_letras-$mascara\n", $letra, $numero;
}
}
</pre>
<p>Voilá. Agora está limpo, legível e qualquer um que resolver gastar alguns segundos olhando pra ele sabe exatamente o que este script faz. Mesmo sem conhecer Perl.</p>
<p>Agora, se os dois tem exatamente o mesmo resultado, porquê raios alguém vai preferir fazer o primeiro? Um script assim é igual filho.</p>
<p>Eu fico puto da vida quando preciso dar manutenção em um script Perl (eu já fazia isso antes de começar a estudar Perl) e me deparo com um <strong>treco</strong> igual o do começo.</p>
<p>A vontade é de virar pro desenvolvedor e falar: Amigão, qual o seu problema? Você quer provar que você é melhor que os outros ou coisa assim?</p>
<p>Meus scripts bash são tão extensamente documentados que não raramente tem o dobro de documentação do que linha de código. Tudo bem espaçado, identado e o caramba. Ninguém tem obrigação de saber o que estava na minha cabeça na hora que fiz o script. E pior: Não quero ninguém me enxendo o saco quando precisar dar manutenção nele. Quero que o nego abra, entenda, modifique e suba pro CVS. Mais nada.</p>
<p>Mas o post é só pra dizer que não tenho raiva do Perl, mas dos programadores que se acham.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/hein/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Camelando</title>
		<link>http://geek.linuxman.pro.br/geek/camelando</link>
		<comments>http://geek.linuxman.pro.br/geek/camelando#comments</comments>
		<pubDate>Mon, 05 May 2008 23:13:46 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=362</guid>
		<description><![CDATA[Quem acompanha meu blog com freqüência, ou seja, a esposa, minha mãe e meu pai, deve lembrar de uns posts atrás onde eu falei que ia começar a aprender Python. Entra dia, sai dia e finalmente, neste final de semana, fiz meu primeiro script Python completo e com utilidade. Digo isso porquê &#8220;Hello World&#8221; e [...]]]></description>
			<content:encoded><![CDATA[<p>Quem acompanha meu blog com freqüência, ou seja, a <a href="http://www.sustenido.mus.br">esposa</a>, minha mãe e meu pai, deve lembrar de uns posts atrás onde eu <a href="http://geek.linuxman.pro.br/geek/339">falei que ia começar a aprender Python</a>.</p>
<p>Entra dia, sai dia e finalmente, neste final de semana, fiz meu primeiro script Python completo e <strong>com</strong> utilidade. Digo isso porquê &#8220;Hello World&#8221; e tradução de script que eu já tinha em Bash pra Python não conta.</p>
<p>Apanhei um bocado, principalmente em sintaxe de comando. Eu ficava imaginando coisas mirabolantes para só depois descobrir como as coisas são mais simples em Python. Sensacional.</p>
<p>Peguei também na biblioteca o livro &#8220;<a href="http://www.oreilly.com/catalog/lpython/">Learning Python</a>&#8221; e passei a ter uma referência mais rápida de consultar que o Google. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Mas entre o post que falei que ia aprender Python e hoje a empresa apareceu com um curso de Perl na manga!</p>
<p><a href="http://geek.linuxman.pro.br/wp-content/uploads/2008/05/perl.jpg"><img class="aligncenter size-full wp-image-363" title="perl" src="http://geek.linuxman.pro.br/wp-content/uploads/2008/05/perl.jpg" alt="" width="279" height="303" /></a></p>
<p>Vão ser 4 dias, full time com um professor que veio do Texas especialmente pra esta turma, que é composta só de funcionários que atendem a conta que eu atendo.</p>
<p>O livro-base do curso é &#8220;<a href="http://www.pearsonhighered.com/academic/product/0,,0130282510,00%2Ben-USS_01DBC.html">Perl by Example</a>&#8221; e tem uma abordagem interessante. A autora fala meia dúzia de palavras sobre o tópico e depois senta o dedo em trocentos exemplos de uso.</p>
<p>Pessoalmente acho que seria horrível ter este livro como única fonte de informação, mas com o instrutor junto fica bacana, já que ele explica mais a fundo e depois entra nos exemplos fazendo com que eles sejam entendidos e não apenas lidos.</p>
<p>Mas com certeza depois de assimilado o conteúdo do curso vai ser uma ótima fonte de referência.</p>
<p>No momento só não consigo decidir se continuo estudando Python ou se as duas ao mesmo tempo vai ser demais pra massa cinzenta.</p>
<blockquote><p><strong>UPDATE:</strong> Para os non-tech que freqüentam o blog, claramente meu pai e minha esposa até o momento, o título &#8220;camelando&#8221; é uma referência ao Camelo (na verdade dromedário) que estampa o famoso livro &#8220;<a href="http://www.oreilly.com/catalog/pperl3/">Programming Perl</a>&#8220;, <a href="http://en.wikipedia.org/wiki/Perl#The_camel_symbol">conforme conta a história</a>.<br />
Eu não estou <em>camelando</em> de verdade&#8230; <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p></blockquote>
<p>.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/camelando/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Indo além do Bash</title>
		<link>http://geek.linuxman.pro.br/geek/339</link>
		<comments>http://geek.linuxman.pro.br/geek/339#comments</comments>
		<pubDate>Fri, 11 Apr 2008 00:37:48 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/geek/339</guid>
		<description><![CDATA[Sei que sou um geek meia-boca toda vez que entra programação na parada. Quer dizer, eu me viro muito bem com shell script e fiz/faço muita coisa nervosa com Bash.  Inclusive já tirei muito barato de nego que trabalhou comigo porquê enquanto eles abriam o Eclipse (ou outro IDE que o valha) para criar um [...]]]></description>
			<content:encoded><![CDATA[<p>Sei que sou um geek meia-boca toda vez que entra programação na parada.</p>
<p>Quer dizer, eu me viro muito bem com shell script e fiz/faço muita coisa nervosa com Bash.  Inclusive já tirei muito barato de nego que trabalhou comigo porquê enquanto eles abriam o Eclipse (ou outro IDE que o valha) para criar um programa pontual, eu já estava rodando o dito cujo em shell.</p>
<p>Mas tem coisas que simplesmente forçam muito a amizade do Bash e o bichinho não tem features para resolver o problema.</p>
<p>Some isso ao fato de que na empresa Perl é largamente utilizado, diversas APIs desenvolvidas in-house estarem disponíveis e também o fato de que 4 dos 6 membros do meu time conhecerem Perl e você chega na mesma conclusão que eu: Melhor aprender <strong>Python</strong>. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p style="text-align: center"><img src="http://geek.linuxman.pro.br/wp-content/uploads/2008/04/python.gif" alt="python.gif" /></p>
<p>Já comecei a brincar e hoje resolvi um problema imenso que eu tinha num dos meus scripts de auditoria.</p>
<p>O dito é feito em Bash, mas em um determinado momento ele precisa acessar alguns dispositivos via telnet e interagir com eles.</p>
<p>Usei uma gambiarra MUITO MUITO feia, com telnets encadeados com pipes, sleeps e echos de dar até medo.</p>
<p>Uma possível solução seria usar o expect, mas como eu pude verificar ele não é nada amigável e foi confirmado por diversas pessoas que é bem bugado e não digno de confiança.</p>
<p>Hoje substitui a parte feia do script por uma chamada a um script Python que passei o dia desenvolvendo e o resultado foi sensacional.</p>
<p>Certo que perdi boa parte do dia no Google, procurando exemplos de sintaxe, módulos, etc, etc. Mas isso é normal até &#8220;pegar a mão&#8221; da linguagem.</p>
<p>Aliás, fica aqui um pedido de ajuda: Alguém sabe um lugar onde eu possa achar uma lista extensiva de todos os módulos pro Python? Tipo o <a href="http://search.cpan.org">CPAN</a> (putz&#8230; dei na cara agora, hein?)</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/cpan" title="cpan" rel="tag">cpan</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/shell" title="shell" rel="tag">shell</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/339/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

