<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on Peczenyj's Blog</title><link>http://pacman.blog.br/categories/linux/</link><description>Recent content in Linux on Peczenyj's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 30 Oct 2007 14:53:00 -0300</lastBuildDate><atom:link href="http://pacman.blog.br/categories/linux/atom.xml" rel="self" type="application/rss+xml"/><item><title>Tchelinux 2007 - Chamada de trabalhos</title><link>http://pacman.blog.br/blog/2007/10/30/tchelinux-2007-chamada-de-trabalhos/</link><pubDate>Tue, 30 Oct 2007 14:53:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/10/30/tchelinux-2007-chamada-de-trabalhos/</guid><description>&lt;div class='post'>
Seja bem-vindo à chamada de trabalhos do 2º Seminário do Software Livre Tchelinux que irá acontecer dia 1º de Dezembro de 2007 na UFRGS em Porto Alegre, RS. Antes de enviar sua proposta de palestra, recomendamos que leia atenciosamente o regulamento abaixo:&lt;br />&lt;br />Sobre o Temário:&lt;br />&lt;br />A equipe de avaliação de propostas irá selecionar 10 palestras técnicas sobre Software Livre dentro dos seguintes temas:&lt;br />&lt;br />Sistemas Operacionais&lt;br />Desktop baseado em Software Livre&lt;br />Aplicativos Gráficos&lt;br />Jogos e Multimídia&lt;br />Linguagens de programação&lt;br />Ferramentas para desenvolvimento&lt;br />Banco de dados&lt;br />Administração de Sistemas&lt;br />Redes e Segurança da Informação&lt;br />&lt;br />Sobre as Apresentações:&lt;br />&lt;br />- Cada palestrante terá 75 minutos para apresentar seu trabalho &lt;br />- Os recursos disponíveis serão projetor multimídia e micro-computador rodando Ubuntu Gutsy&lt;br />- O palestrante deverá permitir que os slides de sua palestra seja publicada no site do grupo&lt;br />- Não haverá nenhuma remuneração ou reembolso de despesas para palestrantes&lt;br />&lt;br />&lt;a href="http://www.tchelinux.org/papers/">http://www.tchelinux.org/papers/&lt;/a>&lt;br />&lt;br />Participem!&lt;/div></description></item><item><title>Linux para Leigos</title><link>http://pacman.blog.br/blog/2007/08/11/linux-para-leigos/</link><pubDate>Sat, 11 Aug 2007 10:45:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/08/11/linux-para-leigos/</guid><description>&lt;div class='post'>
Vamos analisar a condição de &lt;span style="font-style:italic;">leigo&lt;/span>.&lt;br />&lt;br />Eu já vi centenas de &lt;span style="font-style:italic;">leigos&lt;/span> que, ao sentar no computador, baixavam músicas, videos e jogos com os mais diversos programas, conectavam no irc, msn, icq, colocavam luzinhas e bichinhos animados para acompanhar o cursor do mouse, trocavam as fontes e os temas, procuravam os mais bizarros jogos, encontravam videos extremamente incomuns (&lt;span style="font-weight:bold;">sem &lt;/span>youtube), etc. Para o que &lt;span style="font-weight:bold;">não presta&lt;/span>, os &lt;span style="font-style:italic;">leigos &lt;/span>tem uma criatividade impressionante!&lt;br />&lt;br />Quando falamos em um sistema pra leigos não precisamos pensar que as usuarios tem preguiça mental. Eles até podem ter, mas aí cabe aos projetistas desafiar e exercitar essa criatividade do mal e tranformar em criatividade do bem. Qualquer pessoa que senta na frente de um browser vai acabar nas paginas mais escabrosas mesmo que não sabia o que é 'google'. Vai me dizer que, nesse caso, a linha de comando é ameaçadora ou difícil?&lt;br />&lt;br />Das duas, uma: ou pensamos em uma camada de software para permitir que um usuario &lt;span style="font-weight:bold;">abstraia&lt;/span> o sistema operacional e as configurações (normalmente se faz isso em sistemas "embarcados") e use todos os recursos multimídia e de troca de informação com a facilidade de um pensamento &lt;span style="font-weight:bold;">OU&lt;/span> pensamos em sistemas mais inteligentes, com documentação adequada e, com a ajuda da comunidade, divulgamos as informações e conceitos corretos. O Linux só é seguro porque o usuario comum, que &lt;span style="font-weight:bold;">vai&lt;/span> fazer besteira, não tem a senha de &lt;span style="font-weight:bold;">root&lt;/span>.&lt;br />&lt;br />Não podemos fazer sistemas operacionais à prova de gente sem noção ou que sejam capazes de oferecer tanta intuitividade sem sacrificar a segurança, por exemplo.&lt;br />&lt;br />Puxa, não tem nada mais fácil que usar a linha de comando (ok, sou suspeito pra falar). As pessoas não usam [o shell] pois não tem como acessar o orkut, ver vídeo do youtube, etc, de um jeito bonitinho. Alem de tudo, tá em inglês, ECA. Hoje em dia existem shells para pessoas iniciantes que ajudam, colorem o texto e sugerem mudanças praticas, como o &lt;a href="http://nacaolivre.org/2007/07/12/friendly-interactive-shell-%e2%80%93-shell-interativo-e-amigavel/">fish&lt;/a>.&lt;br />&lt;br />É assim que fazemos um sistema pra &lt;span style="font-style:italic;">leigos &lt;/span>-- temos que desafia-los a usar a criatividade que normalmente é usada pra criatividade do MAL e mostrar que um PC com linux não é um playstation. Quer usar um browser de verdade e usar o orkut e o youtube? PO! não tem nada mais facil que instalar um ubuntu da vida e clicar no icone do firefox!&lt;br />&lt;br />Não vamos tomar atitudes de forma a não desafiar intelectualmente os usuários. Eles merecem todo o nosso respeito. Agora quem quer que o usuário não pense que faça uma camada de software que abstraia o Sistema Operacional. Existe mercado para ambas as coisas.&lt;br />&lt;br />Entretanto acho mais humano que a gente exercite os cérebros atrofiados dos empurradores de mouse. Há 20 anos as pessoas usavam computadores com 32 kb de RAM e carregavam os jogos de uma fita K7 e ninguem morreu por isso -- pelo contrário desenvolveram &lt;span style="font-style:italic;">skills &lt;/span>hoje necessárias em muitos cargos importantes e empresas como algumas multinacionais procuram desesperadamente.&lt;/div></description></item><item><title>Torvalds - A Microsoft simplesmente não me interessa</title><link>http://pacman.blog.br/blog/2007/08/10/linus-torvalds-microsoft-simplesmente/</link><pubDate>Fri, 10 Aug 2007 00:53:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/08/10/linus-torvalds-microsoft-simplesmente/</guid><description>&lt;div class='post'>
&lt;blockquote>&lt;br />&lt;span style="font-weight:bold;">Será que Linus Torvalds e a comunidade do software livre podem vencer esta guerra contra as legiões de Bill Gates&lt;/span>?&lt;br />&lt;br />Linus Torvalds - Não vejo isso como uma “batalha”. Faço o que faço porque gosto e acho que vale à pena, e não estou nessa por causa de nenhuma cruzada anti-Microsoft. Usei alguns produtos da Microsoft ao longo dos anos, mas nunca nutri uma forte antipatia contra eles. A Microsoft simplesmente não me interessa. E o movimento de código aberto não é um movimento anti-Microsoft, apesar de haver certos grupos que talvez participem devido aos seus sentimentos anti-Microsoft.&lt;br />&lt;br />O código aberto é um modelo sobre como fazer coisas, e eu acredito que este é um jeito muito melhor de fazer as coisas. O código livre vai tomar conta do mercado não por causa de nenhuma “batalha”, mas simplesmente porque jeitos melhores de fazer as coisas eventualmente tomam o lugar de métodos inferiores.&lt;br />&lt;br />Por acaso a “ciência” é uma batalha contra a “ignorância”? Não, a ciência simplesmente é. E ela funciona tão bem que assume o lugar de velhas noções ignorantes. Não precisamos nos preocupar com gatos pretos cruzando a nossa frente, passar por baixo de escadas ou espelhos quebrados, pois hoje sabemos como o mundo funciona, e nos demos conta de que gatos pretos não são mais um sinal de perigo.&lt;/blockquote>&lt;br />Fonte: &lt;a href="http://idgnow.uol.com.br/mercado/2007/08/09/idgnoticia.2007-07-18.5493239809/paginador/pagina_6">idgnow&lt;/a>&lt;br />&lt;br />Sem mais palavras...&lt;/div></description></item><item><title>Introdução aos Device Drivers no Linux</title><link>http://pacman.blog.br/blog/2007/07/12/introduo-aos-device-drivers-no-linux/</link><pubDate>Thu, 12 Jul 2007 17:17:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/12/introduo-aos-device-drivers-no-linux/</guid><description>&lt;div class='post'>
Vamos fazer um /dev/hello_word ?&lt;br />&lt;br />Aprenda a fazer um neste &lt;a href="http://www.linuxdevcenter.com/pub/a/linux/2007/07/05/devhelloworld-a-simple-introduction-to-device-drivers-under-linux.html">fascinante artigo&lt;/a> -- nunca se sabe quando será util!&lt;/div></description></item><item><title>Paz, Amor &amp; Linux</title><link>http://pacman.blog.br/blog/2007/07/11/paz-amor-linux/</link><pubDate>Wed, 11 Jul 2007 16:13:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/11/paz-amor-linux/</guid><description>&lt;div class='post'>
Hacker é como Punk, Ateu ou Geek -- um rótulo.&lt;br />&lt;br />Uma hora a mídia fala q ser Hacker é ruim. Outra hora fala q não são Hackers, são os Crackers que são a ameaça. Acho que falta um pouco de romantismo na nossa vida...&lt;br />&lt;br />Proponho uma revolução no mundo digital através do amor. Vamos deixar comentarios no codigo fonte repleto de belas mensagens, poemas e juras de amor eterno. Vamos visitar o apartamento frio e escuro dos nossos amigos mais anti-sociais e levar bolos, café e carinho. Vamos fazer divertidas obras de arte como borboletas e caras-de-gatos com os DVDs do windows vista e distribuir para os nossos amigos.&lt;br />&lt;br />Bigodinho e chifres nas fotos do Bill Gates e Steve Ballmer nunca mais! Vamos colocar coraçõezinhos e flores coloridas e passar muita energia positiva. Sejamos francos e sinceros. Vamos usar de adjetivos angelicais e fala suave para que amor sempre venha a tona.&lt;br />&lt;br />Assim, o codigo fonte sera alvo do nosso tórrido amor. Interfaces apaixonadas e Algoritmos envolventes serão o nosso legado.&lt;br />&lt;br />E assim o &lt;span style="font-weight:bold;">amor &lt;/span>triunfa. Nada de esmurrar o teclado. No lugar do café: flores. No lugar do ódio: Linux.&lt;/div>
&lt;h2>Comments&lt;/h2>
&lt;div class='comments'>
&lt;div class='comment'>
&lt;div class='author'>pauloriceli&lt;/div>
&lt;div class='content'>
&lt;B> :) &lt;/B>&lt;/div>
&lt;/div>
&lt;/div></description></item><item><title>Sugestões de Leitura</title><link>http://pacman.blog.br/blog/2007/07/11/sugestes-de-leitura/</link><pubDate>Wed, 11 Jul 2007 15:38:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/11/sugestes-de-leitura/</guid><description>&lt;div class='post'>
Ja ouviu falar na tal Web 2.0? Veja os &lt;a href="http://www.slideshare.net/pcalcado/somos-nozes">slides&lt;/a> da apresentação do Philip Calçado.&lt;br />&lt;br />Quer dominar o Vi/Vim? Veja este pequeno &lt;a href="http://wiki.if.uff.br/operador/doku.php/dicas:vi">guia&lt;/a>.&lt;br />&lt;br />Se inglês não é problema, vc pode aprender &lt;a href="http://www.planetpdf.com/developer/article.asp?ContentID=6632">Java&lt;/a>, &lt;a href="http://www.planetpdf.com/developer/article.asp?ContentID=6634">C++&lt;/a> ou &lt;a href="http://www.advancedlinuxprogramming.com/">Programação Avançada em Linux&lt;/a> usando livros gratuitos e de ótima qualidade.&lt;br />&lt;br />No site da InfoQ vc ainda pode baixar livros de &lt;a href="http://www.infoq.com/minibooks/enterprise-soa">SOA&lt;/a>, &lt;a href="http://www.infoq.com/minibooks/scrum-xp-from-the-trenches">Scrum &amp; XP&lt;/a>, &lt;a href="http://www.infoq.com/minibooks/domain-driven-design-quickly">Domain Driven&lt;/a> e &lt;a href="http://www.infoq.com/minibooks/vsnettt">Dicas de Visual Studio .NET&lt;/a>.&lt;br />&lt;br />E, se vc se interessa por Gerência de Projetos, vai gostar &lt;a href="http://www.leanconstruction.org/pdf/ObsoleteTheory.pdf">desse artigo&lt;/a>.&lt;br />&lt;br />Boa leitura!&lt;/div></description></item><item><title>Youtube Downloader 2.0</title><link>http://pacman.blog.br/blog/2007/07/06/youtube-downloader-20/</link><pubDate>Fri, 06 Jul 2007 15:25:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/06/youtube-downloader-20/</guid><description>&lt;div class='post'>
A versão 1.0 foi até pro &lt;a href="http://www.dicas-l.com.br/dicas-l/20070705.php">Dicas-L&lt;/a>. Graças a esta exposição percebi que o script é muito útil para quem não tem um plug-in flash (que preste) no &lt;span style="font-style:italic;">browser&lt;/span>. É o caso do pessoal que usa &lt;a href="en.wikipedia.org/wiki/BeOS">Beos&lt;/a>, por exemplo. &lt;br />&lt;br />Reduzi o número de linhas, usei a &lt;a href="http://www.aurelio.net/shell/canivete.html#expansao">expansão de variáveis&lt;/a> do bash para algumas substituições simples e agora vc pode informar o nome do arquivo que vc quer salvar, senão será usado aquele nada pratico id. A extensão é flv que pode ser visualizado pelo &lt;span style="font-style:italic;">mplayer &lt;/span>ou convertido pra mpeg.&lt;br />&lt;br />&lt;pre>$ ./script.sh endereço_do_video nome_do_video&lt;/pre>&lt;br />Eis o código&lt;br />&lt;pre>&lt;code>#!/bin/bash&lt;br /># youtube downloader&lt;br />test -n "${1}" || { echo -e "Missing url or id!\nUsage: ${0} &amp;lt;url | id&amp;gt; [filename]" ; exit 1; }&lt;br />&lt;br />set - ${1/*=} ${2:-${1/*=}} "http://www.youtube.com/watch?v=${1/*=}" 'video_id=.+&amp;t=[^\"&amp;]+'&lt;br /> &lt;br />wget -O "${2%.flv}.flv" "${3%/*}/get_video?$(wget -qO - "${3}" | grep -oE "${4}" | sed '1q')" &lt;br />&lt;/code>&lt;/pre>&lt;br />&lt;br />Tentei usar o &lt;span style="font-weight:bold;">curl &lt;/span>e não consegui. Quem quiser tentar, faça um curl -I na url final e veja os cabeçalhos -- não sei como ir para o 'Location'. O wget faz isso numa boa, mas seria interessante ter a opção com o curl.&lt;br />&lt;br />O que seria mais interessante? Baixar uma lista de videos? Baixar os X primeiros videos que aparecem em uma dada pesquisa?&lt;/div></description></item><item><title>Linux Ubuntu</title><link>http://pacman.blog.br/blog/2007/07/03/linux-ubuntu/</link><pubDate>Tue, 03 Jul 2007 16:42:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/03/linux-ubuntu/</guid><description>&lt;div class='post'>
Houve um tempo que usar &lt;a href="http://pt.wikipedia.org/wiki/Linux">linux &lt;/a>era coisa de louco. Era &lt;span style="font-style:italic;">difícil&lt;/span> de instalar, as interfaces gráficas eram pobres, poucos programas... era o sistema ideial para programadores e nerds. Quem precisa de Word quando tem o &lt;a href="http://pt.wikipedia.org/wiki/Vi">Vi&lt;/a> e o &lt;a href="http://pt.wikipedia.org/wiki/Latex">LaTeX&lt;/a>? Quem precisa de Excel quando tem &lt;a href="http://pt.wikipedia.org/wiki/AWK">AWK&lt;/a>? Ora... é uma questão de escolha, simples assim.&lt;br />&lt;br />O que era um projeto de nerds virou um modelo de negócios. Surgiram boas distribuições, inovações como o &lt;a href="http://pt.wikipedia.org/wiki/Mandrakelinux">Linux Mandrake&lt;/a> (nunca a instalação de um sistema foi tão fácil e bonita), o &lt;a href="http://pt.wikipedia.org/wiki/StarOffice">StarOffice&lt;/a>, o &lt;a href="http://pt.wikipedia.org/wiki/WindowMaker">WindowMaker&lt;/a>, &lt;a href="http://pt.wikipedia.org/wiki/KDE">KDE&lt;/a>...&lt;br />&lt;br />Pois bem, eis que surgiu o &lt;a href="http://pt.wikipedia.org/wiki/Ubuntu_Linux">Ubuntu Linux&lt;/a>. Criado pelo programador E turista espacial &lt;a href="http://pt.wikipedia.org/wiki/Mark_Shuttleworth">Mark Shuttleworth&lt;/a>, o Ubuntu é um sistema inteligente, projetado para ser utilizado com simplicidade por qualquer pessoa. O resultado foi uma distribuição extremamente popular, bonita e intuitiva.&lt;br />&lt;br />Fica ai a dica: façam um test-drive com um LiveCD do Ubuntu (vcs podem pedir CDs de graça no &lt;a href="www.ubuntu.com/">site oficial&lt;/a> -- eles entregam no brasil).&lt;br />&lt;br />A seguir uma breve entrevista do Mark Shuttleworth:&lt;br />&lt;object width="425" height="350">&lt;param name="movie" value="http://www.youtube.com/v/Ke-kel9zOFo">&lt;/param>&lt;param name="wmode" value="transparent">&lt;/param>&lt;embed src="http://www.youtube.com/v/Ke-kel9zOFo" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350">&lt;/embed>&lt;/object>&lt;/div></description></item><item><title>Parâmetros em Shell Script</title><link>http://pacman.blog.br/blog/2007/07/02/parmetros-em-shell-script/</link><pubDate>Mon, 02 Jul 2007 22:46:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/02/parmetros-em-shell-script/</guid><description>&lt;div class='post'>
Meu primeiro artigo, resultado de uma boa noite de insônia.&lt;br />&lt;br />Direto do CentOSBR: &lt;a href="http://centosbr.org/modules/smartsection/item.php?itemid=108">Parâmetros no Shell&lt;/a>.&lt;br />&lt;br />Estou enrolando outros textos tem tempo: vamos ver se agora eu continuo.&lt;/div></description></item><item><title>O melhor de dois mundos: C e Fortran</title><link>http://pacman.blog.br/blog/2007/07/02/o-melhor-de-dois-mundos-c-e-fortran/</link><pubDate>Mon, 02 Jul 2007 11:48:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/02/o-melhor-de-dois-mundos-c-e-fortran/</guid><description>&lt;div class='post'>
C é uma ótima linguagem de programação, simples e clara.&lt;br />Fortran, para problemas matemáticos, é imbativel!&lt;br />&lt;br />Que tal usar o melhor dos dois mundos com este &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialMixingFortranAndC.html">tutorial&lt;/a>?&lt;br />&lt;br />Vejamos o exemplo abaixo:&lt;br />&lt;br />Arquivo testC.cpp&lt;br />&lt;pre>&lt;code>#include &lt;iostream>&lt;br />&lt;br />using namespace std;&lt;br />&lt;br />extern"C" {&lt;br />void fortfunc_(int *ii, float *ff);&lt;br />}&lt;br />&lt;br />main()&lt;br />{&lt;br />&lt;br /> int ii=5;&lt;br /> float ff=5.5;&lt;br />&lt;br /> fortfunc_(&amp;ii, &amp;ff);&lt;br />&lt;br /> return 0;&lt;br />}&lt;/code>&lt;/pre>&lt;br />&lt;br />Arquivo testF.f&lt;br />&lt;pre>&lt;code> subroutine fortfunc(ii,ff)&lt;br /> integer ii&lt;br /> real*4 ff&lt;br />&lt;br /> write(6,100) ii, ff&lt;br /> 100 format('ii=',i2,' ff=',f6.3)&lt;br />&lt;br /> return&lt;br /> end&lt;/code>&lt;/pre>&lt;br />&lt;br />Compilando&lt;br />&lt;br />&lt;pre>$ f77 -c testF.f&lt;br />$ g++ -c testC.cpp&lt;br />$ g++ -o test testF.o testC.o -lg2c&lt;/pre>&lt;br />&lt;br />Executando&lt;br />&lt;br />&lt;pre>$ ./test&lt;br />ii= 5 ff= 5.500&lt;/pre>&lt;br />&lt;br />Aceito sugestões, agora que não tenho muita coisa para fazer em Fortran.&lt;/div></description></item><item><title>Mono: C# no Linux</title><link>http://pacman.blog.br/blog/2007/07/02/mono-c-no-linux/</link><pubDate>Mon, 02 Jul 2007 11:33:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/02/mono-c-no-linux/</guid><description>&lt;div class='post'>
Considere este simples código:&lt;br />&lt;br />&lt;pre>&lt;code>using System;&lt;br />&lt;br />class MainClass {&lt;br />&lt;br /> public static void Main() {&lt;br /> Console.WriteLine("Eu sou um programa feito em C#");&lt;br /> Console.ReadLine();&lt;br /> }&lt;br />}&lt;/code>&lt;/pre>&lt;br />&lt;br />Tcharam: um &lt;span style="font-style:italic;">hello world&lt;/span> que, no mundo MS, seria compilado no Visual Studio após alguns segundos de espera. Para plataformas abertas, podemos usar o &lt;a href="http://www.mono-project.com/">Mono&lt;/a>:&lt;br />&lt;br />&lt;pre>$ uname&lt;br />Linux&lt;br />$ mcs Example.cs # Mono Compiler Suite&lt;br />$ mono Example.exe # Mono's ECMA-CLI native code generator&lt;br />Eu sou um programa feito em C#&lt;br />[enter]&lt;br />$ &lt;/pre>&lt;br />&lt;br />Independente de &lt;span style="font-style:italic;">Ideologias&lt;/span>, C# é uma linguagem interessante e seu uso está cada vez mais comum. Para quem não quer ficar fora do mercado de trabalho, o mono pode ser uma ótima oportunidade para praticar. O site java2s possui um &lt;a href="http://www.java2s.com/Tutorial/CSharp/CatalogCSharp.htm">tutorial interessante&lt;/a> para os curiosos.&lt;/div></description></item><item><title>Youtube Downloader</title><link>http://pacman.blog.br/blog/2007/07/02/youtube-downloader/</link><pubDate>Mon, 02 Jul 2007 10:26:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/07/02/youtube-downloader/</guid><description>&lt;div class='post'>
Cerca de um ano atras eu pesquisei uma forma de fazer o download automatico de videos do youtube informando o id ou a url inteira. Ele é bem didático, basta ser um pouco nerd e conhecer um pouco de expressões regulares (alias o livro do Aurelio está em &lt;a href="http://aurelio.wordpress.com/2007/06/28/descontao-livro-saindo-por-menos-de-20-reais/">promoção&lt;/a>).&lt;br />&lt;br />Minha inspiração para postar este script veio desta &lt;a href="http://br-linux.org/linux/videos-do-youtube-no-lynx-em-ascii">notícia&lt;/a>, onde Warren Harding baixou um vídeo usando o Lynx e usou o Mplayer para exibir o vídeo no modo &lt;span style="font-style:italic;">ASCII&lt;/span>. O resultado é insano, porém divertido.&lt;br />&lt;br />&lt;pre>&lt;code>#!/bin/bash&lt;br /># youtube downloader&lt;br /># usage: script &lt;url or video_id>&lt;br /># YouTube URL: http://www.youtube.com/watch?v=[video_id] &lt;br />&lt;br />[ -z "${1}" ] &amp;&amp; { echo 'Error! Missing url or video_id!' ; exit 1 ; }&lt;br />&lt;br />URL="http://www.youtube.com"&lt;br />&lt;br /># download link: http://youtube.com/get_video?video_id=[video_id]&amp;t=[t_id]&amp;...&lt;br />&lt;br />DOWNLOAD=`wget -qO - "${URL}/watch?v=${1/*=}" | grep -oE 'video_id=.*&amp;t=[^\"&amp;]*' | head -1`&lt;br />&lt;br />wget -O "${1/*=}.flv" "${URL}/get_video?${DOWNLOAD}"&lt;/code>&lt;/pre>&lt;br />&lt;br />Eu poderia ter feito tudo em uma unica linha usando xargs, porém ficaria um pouco poluído para publicar neste humilde blog, mas fica aí a dica.&lt;/div></description></item><item><title>Classificação do Brasileiro via Shell Script</title><link>http://pacman.blog.br/blog/2007/06/25/classificao-do-brasileiro-via-shell/</link><pubDate>Mon, 25 Jun 2007 14:07:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/06/25/classificao-do-brasileiro-via-shell/</guid><description>&lt;div class='post'>
Querendo saber a classificação do seu time no campeonato brasileiro de 2007.&lt;br />&lt;br />O bom e velho &lt;b>lynx + grep&lt;/b> resolve.&lt;br />&lt;br />&lt;pre>&lt;code>$ URL=http://esportes.terra.com.br/futebol/brasileiro2007/classificacao/&lt;br />$ lynx --dump ${URL} | grep '%'&lt;br />&lt;br /> Colocação Time PG J V E D GP GC SG %&lt;br /> 1º Botafogo 17 7 5 2 0 18 7 11 81%&lt;br /> 2º Paraná 14 7 4 2 1 14 9 5 67%&lt;br /> 3º São Paulo 13 7 4 1 2 7 2 5 62%&lt;br /> 4º Goiás 12 7 4 0 3 13 9 4 57%&lt;br /> Fluminense 12 7 3 3 1 11 6 5 57%&lt;br /> Corinthians 12 6 3 3 0 7 2 5 67%&lt;br /> 7º Atlético-PR 11 7 3 2 2 12 10 2 52%&lt;br /> Atlético-MG 11 7 3 2 2 11 9 2 52%&lt;br /> Vasco 11 7 3 2 2 11 10 1 52%&lt;br /> 10º Cruzeiro 10 7 3 1 3 16 15 1 48%&lt;br /> Figueirense 10 7 3 1 3 13 14 -1 48%&lt;br /> 12º Grêmio 9 7 3 0 4 5 12 -7 43%&lt;br /> 13º Palmeiras 8 7 2 2 3 9 12 -3 38%&lt;br /> 14º Juventude 7 7 2 1 4 9 11 -2 33%&lt;br /> Internacional 7 7 2 1 4 8 12 -4 33%&lt;br /> Santos 7 7 2 1 4 7 11 -4 33%&lt;br /> 17º Flamengo 6 6 1 3 2 11 15 -4 33%&lt;br /> 18º Sport 5 7 1 2 4 9 13 -4 24%&lt;br /> Náutico 5 7 1 2 4 9 15 -6 24%&lt;br /> 20º América-RN 4 7 1 1 5 6 12 -6 19%&lt;/code>&lt;/pre>&lt;/div>
&lt;h2>Comments&lt;/h2>
&lt;div class='comments'>
&lt;div class='comment'>
&lt;div class='author'>Tiago Peczenyj&lt;/div>
&lt;div class='content'>
O link de 2007 tambem serve, o terra redireciona para o brasileirão atual :)&lt;/div>
&lt;/div>
&lt;div class='comment'>
&lt;div class='author'>J. F. Mitre&lt;/div>
&lt;div class='content'>
O novo link para 2008 é:&lt;BR/>&lt;BR/>http://esportes.terra.com.br/futebol/brasileiro/2008/classificacao/&lt;BR/>&lt;BR/>funciona igualzinho ao anterior...&lt;/div>
&lt;/div>
&lt;div class='comment'>
&lt;div class='author'>Alexandre&lt;/div>
&lt;div class='content'>
Bacana isso ( de mais um flamenguista -triste- por aqui).&lt;/div>
&lt;/div>
&lt;div class='comment'>
&lt;div class='author'>Julio&lt;/div>
&lt;div class='content'>
Isso serve para mostrar como o Shell tem mil-e-uma utilidades. Script simples e rápido.&lt;BR/>&lt;BR/>Legal Tiago, ficará melhor ainda qdo o &lt;B>mengão&lt;/B> estiver em 1o. lugar. :)&lt;BR/>&lt;BR/>Julio&lt;BR/>:wq&lt;/div>
&lt;/div>
&lt;/div></description></item><item><title>The Linux Documentation Project</title><link>http://pacman.blog.br/blog/2007/06/21/linux-documentation-project/</link><pubDate>Thu, 21 Jun 2007 23:37:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/06/21/linux-documentation-project/</guid><description>&lt;div class='post'>
Muitos guias, tutoriais e Howtos &lt;a href="http://tldp.org/guides.html">aqui&lt;/a>.&lt;br />&lt;br />O 'Advanced Bash-Scripting Guide' do Mendel Cooper merece destaque especial -- um livro excelente, assim como o 'Bash Guide for Beginners' do Machtelt Garrels e o 'Linux From Scratch' Gerard Beekmans.&lt;br />&lt;br />Pesquisando um pouco conseguimos ate encontrar o &lt;a href="http://br.tldp.org/projetos/howto/arquivos/html/Portuguese-HOWTO/Portuguese-HOWTO.pt_BR.html">Linux Portuguese-HOWTO&lt;/a> escrito em 1997 pelo &lt;a href="http://unixmania.blogspot.com">CaSantos&lt;/a>.&lt;br />&lt;br />Boa leitura!&lt;/div></description></item><item><title>Canivete Multifunções do Shell</title><link>http://pacman.blog.br/blog/2007/06/19/canivete-multifunes-do-shell/</link><pubDate>Tue, 19 Jun 2007 11:35:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/06/19/canivete-multifunes-do-shell/</guid><description>&lt;div class='post'>
O Aurelio (verde) levou algum tempo juntando excelentes dicas sobre shell script que podem ser vistas aqui: o famoso &lt;a href="http://www.aurelio.net/shell/canivete.html">Canivete Suiço do Shell&lt;/a>.&lt;br />&lt;br />Facil de consultar, é extremamente útil para qualquer administrador ou usuário experiente de algum sabor de *nix (ou mesmo no Windows, via Cygwin).&lt;/div></description></item><item><title>O Desenvolvimento da Linguagem C</title><link>http://pacman.blog.br/blog/2007/06/18/o-desenvolvimento-da-linguagem-c/</link><pubDate>Mon, 18 Jun 2007 16:30:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/06/18/o-desenvolvimento-da-linguagem-c/</guid><description>&lt;div class='post'>
Um texto cativante e histórico (por Dennis M. Ritchie): &lt;br />&lt;br />&lt;a href="http://cm.bell-labs.com/cm/cs/who/dmr/chistPT.html">http://cm.bell-labs.com/cm/cs/who/dmr/chistPT.html&lt;/a>&lt;br />&lt;br />a Linguagem C e o Sistema Operacional Unix foram revolucionários, trazendo conceitos usados até hoje. Qualquer um que queira se aventurar no mundo da informática, seja como hobbie ou profissão, tem que conhece-los ao menos um pouco.&lt;/div></description></item><item><title>Closures em Shell</title><link>http://pacman.blog.br/blog/2007/06/15/closures-em-shell/</link><pubDate>Fri, 15 Jun 2007 17:27:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/06/15/closures-em-shell/</guid><description>&lt;div class='post'>
Uma das coisas mais impressionantes (pelo menos para mim) da linguagem Ruby são os Closures:&lt;br />&lt;br />&lt;pre>&lt;code>$ ruby -e 'r=0...3 ; r.each { puts "oi"}&lt;br />oi&lt;br />oi&lt;br />oi&lt;/code>&lt;/pre>&lt;br />&lt;br />em um objeto do tipo Range eu tenho um método chamado each que recebe um bloco de código como argumento. Este bloco pode até ser parametrizado, por exemplo:&lt;br />&lt;br />&lt;pre>&lt;code>$ ruby -e 'r=0...3 ; r.each { |i| puts 2*i}'&lt;br />0&lt;br />2&lt;br />4&lt;/code>&lt;/pre>&lt;br />&lt;br />O que o metodo each faz é passar este bloco de código para 'dentro de si' e aplica-o em cada elemento do objeto 'range'. Pode ser para imprimir o resultado ou efetuar uma operação matemática, até mesmo substituindo um laço for simples. A verdade é que os Closures são bem mais do que isso e permitem fazer scripts bem interessantes.&lt;br />&lt;br />Sera que poderiamos ter o mesmo em BashScript ? Bem... vou simular aqui &lt;br />&lt;br />&lt;pre>&lt;code>$ each(){ &lt;br /> local F="${@}" &lt;br /> while read i ; do &lt;br /> set - $i &lt;br /> eval "${F}" &lt;br /> done &lt;br />}&lt;br />&lt;br />$ seq 3 | each '{ echo "encontrei $1" ; }'&lt;br />encontrei 1&lt;br />encontrei 2&lt;br />encontrei 3&lt;/code>&lt;/pre>&lt;br />&lt;br />Simples heim? Eu crio uma variavel local dentro de uma função e 'executo-a' para cada resultado via comando eval. Se este tipo de construção for util para alguem, fica aí a dica!&lt;/div></description></item><item><title>Avaliando Espaço em Disco</title><link>http://pacman.blog.br/blog/2007/06/13/avaliando-espao-em-disco/</link><pubDate>Wed, 13 Jun 2007 17:19:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2007/06/13/avaliando-espao-em-disco/</guid><description>&lt;div class='post'>
Um problema comum de qualquer administrador é o espaço em disco. As politicas de quotas geralmente resolvem boa parte destes problemas, é claro, mas nem sempre são suficientes.&lt;br />&lt;br />O caso: pensando de forma genérica, diversas pessoas criam diretórios de trabalho dentro do bom e velho/local e, com o passar do tempo, esta partição pode lotar e comprometer o trabalho de todos. Politicas de uso racional do espaço em disco podem ser aplicadas mas as vezes a coisa pode sair do controle -- nesse caso o prejuizo pode ser grande.&lt;br />&lt;br />Os diretorios possuem o seguinte formato:&lt;br />&lt;pre>/local/diretorio/algum_nome_identificador.vws&lt;/pre>&lt;br />&lt;br />Vamos recorrer ao bom e velho Shell-Script para investigar se existe algum problema em andamento!&lt;br />&lt;br />&lt;pre>$ df /local&lt;br />Filesystem 1K-blocks Used Available Use% Mounted on&lt;br />/dev/sdb1 35001508 11330452 21893064 35% /local&lt;/pre>&lt;br />&lt;br />Vejam só: apenas 35% da partição está sendo ocupada e isso não representa risco neste momento. Se estivesse acima de 80% alguma medida perventiva deveria ser tomada. Como podemos fazer este teste? Existem varias formas, vou usar o poder das expressões regulares para isso!&lt;br />&lt;br />&lt;pre>&lt;code>$ seq -f"%g%%" 10 5 100 | grep -E '(100|[89][0-9])%'&lt;br />&lt;br />80%&lt;br />85%&lt;br />90%&lt;br />95%&lt;br />100%&lt;/code>&lt;/pre>&lt;br />&lt;br />A expressão usada no grep casa com valores de porcentagem acima de 80% (inclusive), logo podemos usar em um teste simples&lt;br />&lt;br />&lt;pre>&lt;code> if df /local | grep -qE '(100|[89][0-9])%' ; then&lt;br /> echo '/local [quase] lotado!'&lt;br /> else&lt;br /> echo '/local seguro (menos de 80%)'&lt;br /> fi&lt;/code>&lt;/pre>&lt;br />&lt;br />Simples, não? Poderia ter usado os operadores &amp;&amp; e || mas não queria sacrificar a legibilidade do código.&lt;br />&lt;br />Agora vem a parte divertida: e se o /local estiver ficando cheio, vamos fazer o que?&lt;br />&lt;br />Quando vc não tem a responsabilidade de apagar arquivos desnecessários, o maximo que vc pode fazer é avisar os responsáveis. Elaborar um relatório com os 'problemas' encontrados e enviar por email usando shell script é simples.&lt;br />&lt;br />Vamos usar o du para calcular o espaço gasto em cada diretório e o sort para ordenar do maior para o menor tamanho total.&lt;br />&lt;br />&lt;pre>&lt;code>$ du -bs /local/diretorio/* 2>&amp;- | sort -nr &lt;br />3765643919 /local/diretorio/nonono001.vws&lt;br />2290883178 /local/diretorio/nonono002.vws&lt;br />2067295469 /local/diretorio/nonono003.vws&lt;br />932165874 /local/diretorio/nonono004.vws&lt;br />...&lt;br />267271 /local/viewstore1/nonono999.vws&lt;/code>&lt;/pre>&lt;br />&lt;br />Facil heim ? Se vc se dá ao trabalho de ler as man pages do du e do sort, basta fazer algumas experiências até obter o resultado que mais lhe agrada. Por exemplo, uma atitude interessante seria listar os X maiores diretórios e enviar por email para o administrador.&lt;br />&lt;br />&lt;pre>&lt;code>$ du -bs /local/diretorio/* 2>&amp;- | sort -nr | head -10 > /tmp/arquivo.log &lt;br />$ mailx -S "Lista dos 10 maiores diretorios" "administrador@server" &lt; /tmp/arquivo.log&lt;/code>&lt;/pre>&lt;br />&lt;br />Talvez vc pergunte o motivo pelo qual eu utilizo um arquivo temporário: caso o envio do email dê algum problema, é possivel recuperar a lista.&lt;br />&lt;br />Um script para rodar na cron e enviar o email de forma automatizada teria este formato:&lt;br />&lt;br />&lt;pre>&lt;code>#!/bin/bash&lt;br /># Autor: Tiago Peczenyj - 13/jun/2007&lt;br /># Script parametrizado para avaliar tamanho de alguns diretorios&lt;br />&lt;br />X=10&lt;br />DIR=/local/diretorio&lt;br />EMAIL=administrador@server&lt;br />SUBJECT="Lista dos ${X} maiores diretorios em $(date +"%Y%m%d" )"&lt;br />if df ${DIR} | grep -qE '(100|[89][0-9])%' ; then&lt;br /> du -bs ${DIR}/* 2>&amp;- | sort -nr | head -${X} > /tmp/arquivo.log &lt;br /> mailx -S "${SUBJECT}" ${EMAIL} &lt; /tmp/arquivo.log&lt;br />fi&lt;/code>&lt;/pre>&lt;br />&lt;br />O script parece simples, entretanto algo simples como informar o usuario dono de cada diretório é muito mais complexo. A minha solução foi esta:&lt;br />&lt;br />&lt;code>&lt;pre>paste -d '\t' &lt;(du -bs /local/viewstore1/* 2>&amp;-) \&lt;br />&lt;(ls -l /local/viewstore1 | awk '/^d/{print $3}') | awk '{&lt;br /> OFS="\t" ; print $1,$3,$2&lt;br />}'| sort -nr&lt;/code>&lt;/pre>&lt;/div></description></item></channel></rss>