<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-1089320344660050373</id><updated>2009-12-18T05:37:29.471-02:00</updated><title type='text'>blog do deadcow</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-3274952924606521675</id><published>2008-11-10T22:11:00.004-02:00</published><updated>2008-11-10T22:14:42.595-02:00</updated><title type='text'>The Matrix Runs on Windows XP</title><content type='html'>&lt;object data="http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=1886349&amp;amp;fullscreen=1" height="360" type="application/x-shockwave-flash" width="530"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="AllowScriptAccess" value="true" /&gt;&lt;param name="movie" quality="best" value="http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=1886349&amp;fullscreen=1" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-3274952924606521675?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/3274952924606521675/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/11/matrix-runs-on-windows-xp.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/3274952924606521675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/3274952924606521675'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/11/matrix-runs-on-windows-xp.html' title='The Matrix Runs on Windows XP'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-3358668843491875998</id><published>2008-11-02T18:32:00.001-02:00</published><updated>2008-11-02T18:36:49.807-02:00</updated><title type='text'>F1 quaaaaaaseee</title><content type='html'>Massa venceu a corrida, mas perdeu o campeonato, por uma infelicidade, não adianta culpar o glock, não tinha como, mas esse tipo de situação é igual no futebol, não tem jeito, metade vai dizer que foi entregado, outra metade vai perceber que não havia como, eu não posso dar muito pitaco pois não dirijo, o pouco que sei de F1 é porque quase sempre assisto as corridas e treinos, no mais..&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://i36.tinypic.com/fp00gz.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://i36.tinypic.com/fp00gz.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-3358668843491875998?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/3358668843491875998/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/11/f1-quaaaaaaseee.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/3358668843491875998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/3358668843491875998'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/11/f1-quaaaaaaseee.html' title='F1 quaaaaaaseee'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-4389251355412592262</id><published>2008-10-31T23:52:00.003-02:00</published><updated>2008-10-31T23:56:19.725-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Irc'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Arch'/><title type='text'>O porque do suporte do Arch Linux ser tão elogiado</title><content type='html'>21:36 -- danielbal!n=daniel@freenode joined #archlinux-br&lt;br /&gt;21:36  danielbal&amp;gt; boa noite&lt;br /&gt;21:39  danielbal&amp;gt; estou com uma dúvida no ABS ... gostaria de recompilar o meu sistema inteiro, baseado nas alterações de flags de configuracao do /var/makepg.conf, como no gentoo, e me parece que eh possivel fazer isso usando o ABS&lt;br /&gt;21:39  danielbal&amp;gt; eu vi essa thread: http://bbs.archlinux.org/viewtopic.php?id=48957 que fala sobre o Pacbuilder ....&lt;br /&gt;21:39      phrik&amp;gt; Title: Arch Linux Forums / New pacman utility, rebuild and optimize packages from source (at bbs.archlinux.org)&lt;br /&gt;21:41 --    Tonho-!i=Tonho@unaffiliated/tonho joined #Archlinux-BR&lt;br /&gt;21:42  danielbal&amp;gt; phrik, exatamente&lt;br /&gt;21:44 -- danielbal!n=daniel@freenode quits ("Saindo")&lt;br /&gt;&lt;br /&gt;detalhe: o phrik é um bot :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-4389251355412592262?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/4389251355412592262/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/10/o-porque-do-suporte-do-arch-linux-ser.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/4389251355412592262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/4389251355412592262'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/10/o-porque-do-suporte-do-arch-linux-ser.html' title='O porque do suporte do Arch Linux ser tão elogiado'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-8192721062665945156</id><published>2008-10-02T20:46:00.000-03:00</published><updated>2008-10-02T20:50:33.096-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='inkscape'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Primeiros vetores</title><content type='html'>Então, faz um tempo que não posto nada, e não pude falar a respeito do site do meu amigão &lt;a href="http://p0ng.com.br/"&gt;p0ng&lt;/a&gt;, comecei a brincar com o inkscape também, não tenho feito nada de extraordinário, ta muito no comecinho mas ja estou dando meus primeiros passos.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://img211.imageshack.us/img211/2701/minizr4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://img211.imageshack.us/img211/2701/minizr4.png" width="98" /&gt;&lt;/a&gt;&lt;a href="http://img516.imageshack.us/img516/5280/minivectorhm0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://img516.imageshack.us/img516/5280/minivectorhm0.png" width="147" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;este foi mais pra brincar, resolvi configurar minha multifuncional e queria aprender mais sobre sombras, se voces repararem, faltam algumas sombras na imagens que infortuniamente não consegui fazer, mas com o tempo quem sabe eu não consiga :D&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-8192721062665945156?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/8192721062665945156/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/10/primeiros-vetores.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/8192721062665945156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/8192721062665945156'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/10/primeiros-vetores.html' title='Primeiros vetores'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-3538481660141289642</id><published>2008-08-15T15:11:00.004-03:00</published><updated>2008-08-15T15:20:46.399-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='facehole'/><title type='text'>Jesus love you!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://img383.imageshack.us/img383/2058/jesusdeadcowag5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://img383.imageshack.us/img383/2058/jesusdeadcowag5.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.faceinhole.com/us/"&gt;http://www.faceinhole.com/us/&lt;/a&gt; hueuhehue. alguns disseram "Gandalf, o branco" mas jesus é mais conhecido tals e ele merece o crédito huehee.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-3538481660141289642?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/3538481660141289642/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/jesus-love-you.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/3538481660141289642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/3538481660141289642'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/jesus-love-you.html' title='Jesus love you!'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-2181740765213993096</id><published>2008-08-10T23:08:00.001-03:00</published><updated>2008-08-10T23:14:08.285-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='telefonia'/><category scheme='http://www.blogger.com/atom/ns#' term='japao'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='tecnologia'/><title type='text'>HEY! Toca Raul!</title><content type='html'>&lt;center&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/zV4ISDTnRLM&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/zV4ISDTnRLM&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" wmode="transparent" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Orientais, sempre eles..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-2181740765213993096?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/2181740765213993096/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/piano-uat-no-tortura-distncia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/2181740765213993096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/2181740765213993096'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/piano-uat-no-tortura-distncia.html' title='HEY! Toca Raul!'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-9191589105801270407</id><published>2008-08-09T19:21:00.003-03:00</published><updated>2008-08-11T22:49:39.329-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hsfconfig'/><category scheme='http://www.blogger.com/atom/ns#' term='Conexant'/><category scheme='http://www.blogger.com/atom/ns#' term='PKGBUILD'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Arch'/><category scheme='http://www.blogger.com/atom/ns#' term='Modem'/><title type='text'>Instalando o modem HSF 56k HSFi Conexant oem no Arch Linux</title><content type='html'>Eu tinha tudo configurado no meu Arch Linux, inclusive os periféricos, a única coisa que eu não tinha configurado era o meu modem, pra mim sempre foi uma luta conseguir rodar o driver do meu modem no linux, com o advento da banda larga isso passou a ser desnecessário, mas como eu sempre tive problemas com isso, achei que fosse um desafio a ser vencido.&lt;br /&gt;&lt;br /&gt;Meu modem é um HSF 56k HSFi, da Conexant:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[root@mosdef ~]# lspci -nn|grep Modem&lt;br /&gt;00:06.0 Communication controller [0780]: Conexant HSF 56k HSFi Modem [14f1:2f00] (rev 01)&lt;br /&gt;[root@mosdef ~]# &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Procurando no google encontrei rapidamente o site da &lt;a href="http://linuxant.com/"&gt;linuxant.com&lt;/a&gt; que comercializa o driver para o linux, existia tambem uma versão gratuita, porém com uma limitação de uso muito incomoda de permitir apenas 14 kbps de transferência.&lt;br /&gt;&lt;br /&gt;Embora já tivesse encontrado o driver, inclusive ele estando presente no repositorio AUR do Arch Linux, resolvi buscar uma solução para a limitação e foi quando descobri que a &lt;a href="http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/"&gt;dell&lt;/a&gt; disponibilizava em seu site a versão registrada do driver para os consumidores de seus produtos.&lt;br /&gt;&lt;br /&gt;No &lt;a href="http://aur.archlinux.org/"&gt;AUR&lt;/a&gt;, repositório da comunidade Arch Linux, existia o driver para download, porém a versão gratuita com a limitação, e ela vinha em dois pacotes distintos: hsfmodem e hsfmodem-utils. O que você precisa fazer ao instalar o driver é durante o comando yaourt -S hsfmodem , editar os PKGBUILD's tanto do hsfmodem quanto do hsfmodem-utils apontando para o pacote do site da dell.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ yaourt -Ss hsfmodem&lt;br /&gt;aur/hsfmodem 7.68.00.11full-1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Linux drivers for the Conexant HSF Softmodem family (kernel modules)&lt;br /&gt;aur/hsfmodem-utils 7.68.00.11full-1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Linux drivers for the Conexant HSF Softmodem family (userspace tools and libraries)&lt;br /&gt;[deadcow@mosdef ~]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A versão do driver no site da dell é uma versão anterior, &lt;strike&gt;mas com a mesma funcionalidade e sem nenhum impedimento quanto a versão do kernel, como antigamente havia em modems PCTel.&lt;/strike&gt; (update: aparentemente, essa versão do driver NÃO funciona no kernel2.6.26-ARCH) Você então irá editar o PKGBUILD do hsfmodem para:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# $Id: PKGBUILD 41 2008-06-30 17:45:49Z djclue917 $&lt;br /&gt;# Maintainer: Darwin Bautista &amp;lt;djclue917@gmail.com&amp;gt;&lt;br /&gt;# Contributor: Darwin Bautista &amp;lt;djclue917@gmail.com&amp;gt;&lt;br /&gt;&lt;br /&gt;pkgname=hsfmodem&lt;br /&gt;pkgver=7.68.00.09oem&lt;br /&gt;pkgrel=1&lt;br /&gt;pkgdesc="Linux drivers for the Conexant HSF Softmodem family (kernel modules) (DELL VERSION: Registered)"&lt;br /&gt;arch=('i686' 'x86_64')&lt;br /&gt;url="http://www.linuxant.com/drivers/hsf/"&lt;br /&gt;license=('GPL' 'custom')&lt;br /&gt;depends=("hsfmodem-utils&amp;gt;=$pkgver" 'kernel26')&lt;br /&gt;install=hsfmodem.install&lt;br /&gt;source=(http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-$pkgver.tar.gz)&lt;br /&gt;[ "$CARCH" = "x86_64" ] &amp;amp;&amp;amp; source[0]=http://http://linux.dell.com/files/ubuntu/hardy /modem-drivers/hsf/hsfmodem-${pkgver%oem}x86_64oem/hsfmodem-${pkgver%oem}x86_64oem.tar.gz&lt;br /&gt;md5sums=('71bccfcb8caed31b91e605889e94bcc9')&lt;br /&gt;[ "$CARCH" = "x86_64" ] &amp;amp;&amp;amp; md5sums[0]='9cfa801c88f9c61cb26db786d64872c7'&lt;br /&gt;&lt;br /&gt;build() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd $srcdir/hsfmodem-${pkgver%oem}*oem/modules/&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; make CNXT_MODS_DIR=$pkgdir/lib/modules/$(uname -r)/extra modules_install || return 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; make CNXTLIBDIR=$pkgdir/usr/lib/hsfmodem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CNXT_MODS_DIR=$pkgdir/lib/modules/$(uname -r)/extra modules_install&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# vim:set ts=2 sw=2 et:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;E o PKGBUILD do hsfmodem-utils para:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# $Id: PKGBUILD 40 2008-06-30 17:45:31Z djclue917 $&lt;br /&gt;# Maintainer: Darwin Bautista &amp;lt;djclue917@gmail.com&amp;gt;&lt;br /&gt;# Contributor: Darwin Bautista &amp;lt;djclue917@gmail.com&amp;gt;&lt;br /&gt;&lt;br /&gt;pkgname=hsfmodem-utils&lt;br /&gt;pkgver=7.68.00.09oem&lt;br /&gt;pkgrel=1&lt;br /&gt;pkgdesc="Linux drivers for the Conexant HSF Softmodem family (userspace tools and libraries) (DELL VERSION: Registered)"&lt;br /&gt;arch=('i686' 'x86_64')&lt;br /&gt;url="http://www.linuxant.com/drivers/hsf/"&lt;br /&gt;license=('GPL' 'custom')&lt;br /&gt;backup=('etc/hsfmodem/nvm/dynamic')&lt;br /&gt;install=hsfmodem-utils.install&lt;br /&gt;options=(!emptydirs)&lt;br /&gt;source=(http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-$pkgver.tar.gz)&lt;br /&gt;[ "$CARCH" = "x86_64" ] &amp;amp;&amp;amp; source[0]=http://linux.dell.com/files/ubuntu/hardy/modem-drivers/hsf/hsfmodem-${pkgver%oem}x86_64oem/hsfmodem-${pkgver%oem}x86_64oem.tar.gz&lt;br /&gt;md5sums=('71bccfcb8caed31b91e605889e94bcc9')&lt;br /&gt;[ "$CARCH" = "x86_64" ] &amp;amp;&amp;amp; md5sums[0]='9cfa801c88f9c61cb26db786d64872c7'&lt;br /&gt;&lt;br /&gt;build() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd $srcdir/hsfmodem-${pkgver%oem}*oem/&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; make ROOT=$pkgdir install || return 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "TAR hsfmodem-$pkgver" &amp;gt; $pkgdir/etc/hsfmodem/package&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Fix paths in scripts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sed -e "s|$pkgdir/usr/sbin:||" -e "s|$pkgdir||g" -i $pkgdir/usr/sbin/hsf{config,dcpd}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm -R $pkgdir/etc/hsfmodem/nvm/hsfpcibasic2hsfi/Region&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ln -s ../hsfpcibasic2/Region $pkgdir/etc/hsfmodem/nvm/hsfpcibasic2hsfi/&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Install license for non-GPL'ed components&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/license.txt&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm $pkgdir/usr/lib/hsfmodem/{config.mak,LICENSE}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm $pkgdir/usr/lib/hsfmodem/modules/Makefile&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rm $pkgdir/usr/lib/hsfmodem/modules/GPL/{COPYING,hda/Makefile}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# vim:set ts=2 sw=2 et:&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Após a instalação dos pacotes é necessario executar como root o hsfconfig:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[root@mosdef ~]# hsfconfig&lt;br /&gt;Conexant HSF softmodem driver, version 7.68.00.09oem&lt;br /&gt;&lt;br /&gt;If you need assistance or more information, please go to:&lt;br /&gt;http://www.linuxant.com/&lt;br /&gt;&lt;br /&gt;When reporting a problem for the first time, please send&lt;br /&gt;us the file generated by "hsfconfig --dumpdiag".&lt;br /&gt;&lt;br /&gt;Warning: existing driver modules found under:&lt;br /&gt;/lib/modules/2.6.25-ARCH/&lt;br /&gt;Would you like to keep using them? [no] yes&lt;br /&gt;&lt;br /&gt;Please enter region name for modem unit 0 [BRAZIL]: &lt;br /&gt;&lt;br /&gt;Setting region for modem unit 0: "BRAZIL"&lt;br /&gt;&lt;br /&gt;To change, use "hsfconfig --region" or "AT+GCI=&amp;lt;T35code&amp;gt;"&lt;br /&gt;The current region can be displayed by entering "ATI9" in a terminal&lt;br /&gt;program.&lt;br /&gt;&lt;br /&gt;Current parameters: ("hsfconfig --info")&lt;br /&gt;&lt;br /&gt;Config for modem unit 0: /dev/ttySHSF0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Device instance: 0-PCI-14f1:2f00-14f1:2004&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HW revision&amp;nbsp;&amp;nbsp;&amp;nbsp; : Basic2 2.18 Standard DAA 3VoltsIA&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HW profile name: hsfpcibasic2hsfi&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Current region : BRAZIL (T.35 code: 0016)&lt;br /&gt;&lt;br /&gt;The /dev/modem alias (symlink) points to ttySHSF0&lt;br /&gt;[root@mosdef ~]#&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Como vocês podem perceber, a versão oem do driver é registrada, já que não solicita nenhum tipo de licença durante a configuração. Para sua comodidade aqui estão os dois pacotes, assim como seus respectivos PKGBUILD's editados &lt;a href="http://defcola.googlepages.com/hsfmodem-utils-7.68.00.09oem.tgz"&gt;hsfmodem-utils-7.68.00.09oem.tgz&lt;/a&gt; e &lt;a href="http://defcola.googlepages.com/hsfmodem-7.68.00.09oem.tgz"&gt;hsfmodem-7.68.00.09oem.tgz&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-9191589105801270407?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/9191589105801270407/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/instalando-o-modem-hsf-56k-hsfi.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/9191589105801270407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/9191589105801270407'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/instalando-o-modem-hsf-56k-hsfi.html' title='Instalando o modem HSF 56k HSFi Conexant oem no Arch Linux'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-6413066792145200089</id><published>2008-08-08T20:36:00.005-03:00</published><updated>2008-08-09T19:21:38.023-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poo'/><category scheme='http://www.blogger.com/atom/ns#' term='Smtp'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='Smtplib'/><title type='text'>MX Checker em python</title><content type='html'>Há algum tempo atrás eu escrevi um script para meu amigo &lt;a href="http://ph.archlinux.com.br/"&gt;philippe&lt;/a&gt; para checar se um servidor smtp estava configurado para aceitar relay ou não, era bem simples como você mesmo pode ver neste &lt;a href="http://deadcow.archlinux.com.br/2008/07/smtp-diagnostics-em-python.html"&gt;post&lt;/a&gt;, e na ocasião ele me apresentou um &lt;a href="http://www.mxtoolbox.com/diagnostic.aspx"&gt;site&lt;/a&gt; que fazia essa checagem e como eu estava aprendendo python me sugeriu que eu fizesse um script com o retorno parecido com o do site.&lt;br /&gt;&lt;br /&gt;Então eu fiz, e aproveitei para colocar em prática o metódo POO de programar, que também havia aprendido a pouco tempo. Bem o código não ficou lá grande coisa, mas faz o prometido hehe.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/usr/bin/python&lt;br /&gt;# coding: UTF-8&lt;br /&gt;# MX checker by deadcow [at] archlinux.com.br&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import smtplib&lt;br /&gt;from time import time&lt;br /&gt;from sys import argv&lt;br /&gt;&lt;br /&gt;class Check_s:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def __init__(self, daddr = 'Localhost'):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.daddr = daddr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.smtpconn = smtplib.SMTP()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.relay = True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.elapsed = 0&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def Bann_s(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = self.smtpconn.connect(self.daddr)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time() - atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.elapsed = atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = '%s %s [%.3fms]' %(ret[0], ret[1], atime)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return out&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except smtplib.SMTPConnectError, erro:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return erro&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception, erro:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return erro[1]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def Helo_s(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.smtpconn.putcmd('HELO','testing.org')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = self.smtpconn.getreply()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time() - atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.elapsed += atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = '%s %s [%.3f]' %(ret[0], ret[1], atime)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return out&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except smtplib.SMTPException, erro:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return erro&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def From_s(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.smtpconn.putcmd('MAIL FROM:', '&amp;lt;test@testing.org&amp;gt;')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = self.smtpconn.getreply()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time() - atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.elapsed += atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = '%s %s [%.3f]' %(ret[0], ret[1], atime)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return out&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except smtplib.SMTPException, erro:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return erro&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def To_s(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.smtpconn.putcmd('RCPT TO:', '&amp;lt;test@testing.org&amp;gt;&lt;test@testing.org&gt;')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = self.smtpconn.getreply()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time() - atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.elapsed += atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = '%s %s [%.3f]' %(ret[0], ret[1], atime)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ret[0] == 550: self.relay = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return out&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except smtplib.SMTPException, erro:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return erro&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def Quit_s(self):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.smtpconn.putcmd('QUIT')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = self.smtpconn.getreply()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; atime = time() - atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.elapsed += atime&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = '%s %s [%.3f]' %(ret[0], ret[1], atime)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return out&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except smtplib.SMTPException, erro:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return erro&lt;br /&gt;&lt;br /&gt;if __name__ == '__main__':&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mxcheck = Check_s(argv[1])&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'BANNER:'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxcheck.Bann_s()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '\nHELO testing.org:'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxcheck.Helo_s()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '\nMAIL FROM: &amp;lt;test@testing.org&amp;gt;:'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxcheck.From_s()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '\nRCPT TO: &amp;lt;test@testing.org&amp;gt;:'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxcheck.To_s()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '\nQUIT:'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print mxcheck.Quit_s()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if mxcheck.relay == True:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '\nWARNING: This server is open to relay'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print '\nOK - This server is not an open relay'&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Transaction time: %.3f' %mxcheck.elapsed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-6413066792145200089?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/6413066792145200089/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/blog-post.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/6413066792145200089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/6413066792145200089'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/blog-post.html' title='MX Checker em python'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-556269342526620551</id><published>2008-08-03T15:03:00.000-03:00</published><updated>2008-08-03T15:12:00.252-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Email'/><category scheme='http://www.blogger.com/atom/ns#' term='Arch'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>voce@archlinux.com.br</title><content type='html'>&lt;div class="separator" style="text-align: center; clear: both;"&gt;&lt;a href="http://defcola.googlepages.com/yagoo.png" imageanchor="1" style="border: 0pt none ; background-color: transparent; margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://defcola.googlepages.com/yagoo.png" style="border: 0pt none ;" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="text-align: center; clear: both;"&gt;&lt;/div&gt;&lt;br /&gt;Seguindo o exemplo de um usuario do fórum internacional do Arch Linux, resolvi abrir cadastros de email usuario@archlinux.com.br para ajudar na comunidade archlinux-br, se você também é fã do arch linux e gostaria de um email, cadastre-se no fórum do archlinux-br no endereço &lt;a href="http://forum.archlinux-br.org/"&gt;http://forum.archlinux-br.org&lt;/a&gt; e vá até o tópico &lt;a href="http://forum.archlinux-br.org/viewtopic.php?pid=4728"&gt;http://forum.archlinux-br.org/viewtopic.php?pid=4728&lt;/a&gt; e poste seu pedido, o email é de graça e segue o modelo gmail de ser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-556269342526620551?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/556269342526620551/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/vocearchlinuxcombr.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/556269342526620551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/556269342526620551'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/vocearchlinuxcombr.html' title='voce@archlinux.com.br'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-7611894688671351719</id><published>2008-08-01T19:22:00.009-03:00</published><updated>2008-08-02T12:47:38.817-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forwarding'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='senha'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh-agent'/><title type='text'>Usando o ssh-agent para chaves privadas com senha</title><content type='html'>Em diversos sites, quando alguem procura um meio de acessar maquinas remotas através do ssh sem ter que digitar a senha, voce encontra tutoriais dizendo para criar chaves privadas sem senha, o problema todo é que isso acaba com todo o sentido da utilizacao do ssh, que é ter segurança.&lt;br /&gt;&lt;br /&gt;Recentemente apareceu uma vulnerabilidade do openssl em maquinas debian e derivados que permitia a identificação da chave através de brute-force, por conta dessa falha, o openssl só conseguia gerar pequenas possibilidades de chaves, neste caso a utilizacao de um ssh se utilizando apenas de chaves privadas sem senha era fatalmente alvo dessa vulnerabilidade.&lt;br /&gt;&lt;br /&gt;Com a utilizacao do ssh-agent você também poderá acessar suas maquinas remotas sem a utilizacao de uma senha, aliás voce estará utilizando uma senha, mas para seu par de chaves, o que o ssh-agent faz é guardar e manipular suas chaves privadas, respondendo ao servidor quando necessário, sem ter que digitar a senha novamente toda vez que voce se conectar ao servidor.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configurando o ssh-agent&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Inicie o ssh-agent em sua maquina local:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ ssh-agent&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;O comando deverá retorna algo parecido com isto:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;SSH_AUTH_SOCK=/tmp/ssh-kZcqHb8334/agent.8334; export SSH_AUTH_SOCK;&lt;br /&gt;SSH_AGENT_PID=8335; export SSH_AGENT_PID;&lt;br /&gt;echo Agent pid 8335;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Agora você precisará criar uma chave, para isto faça:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ ssh-keygen -t rsa&lt;br /&gt;Generating public/private rsa key pair.&lt;br /&gt;Enter file in which to save the key (/home/deadcow/.ssh/id_rsa): &lt;br /&gt;Enter passphrase (empty for no passphrase):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # entre com sua senha aqui.&lt;br /&gt;Enter same passphrase again:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;nbsp;&amp;nbsp; # repita a senha exatamente como a anterior&lt;br /&gt;Your identification has been saved in /home/deadcow/.ssh/id_rsa.&lt;br /&gt;Your public key has been saved in /home/deadcow/.ssh/id_rsa.pub.&lt;br /&gt;The key fingerprint is: bf:08:b6:a6:18:86:86:de:0d:3b:bf:6f:94:3e:be:80 deadcow@mosdef&lt;br /&gt;[deadcow@mosdef ~]$ &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A grande diferença de um acesso com chaves privadas sem senhas e com senha é que neste estágio quando lhe for perguntado por uma senha, voce deverá digitar uma, de preferencia uma senha forte, que não seja tão simples.&lt;br /&gt;&lt;br /&gt;Agora com a chave privada com senha criada em sua maquina local, é necessário também coloca-la na maquina remota que receberá a conexão, pode ser por ftp, scp, ou outro meio que seja mais comodo a você, uma dica é se utilizar dos pipes:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ cat ~/.ssh/id_rsa.pub | ssh usuario@servidor-remoto.org'cat &amp;gt;&amp;gt;.ssh/authorized_keys'&lt;br /&gt;Password: &lt;br /&gt;[deadcow@mosdef ~]$&amp;nbsp; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Nota: se o servidor remoto estiver rodando uma versão antiga do ssh, é necessário utilizar o nome do arquivo ~/.ssh/authorized_keys2.&lt;br /&gt;&lt;br /&gt;Após este processo, teste a sua chave criada fazendo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ ssh usuario@servidor-remoto.org&lt;br /&gt;Enter passphrase for key '/home/deadcow/.ssh/id_rsa':&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # digite a senha da chave privada&lt;br /&gt;Last login: Mon Jul 21 10:12:59 2008 from servidor-local.org&lt;br /&gt;..&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Adicionando chaves privadas ao ssh-agent&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Agora que você já tem a chave criada com senha e o servidor remoto também, é necessário adicionar essa chave ao ssh-agent digitando o seguinte comando:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ ssh-add ~/.ssh/id_rsa&lt;br /&gt;Enter passphrase for /home/deadcow/.ssh/id_rsa: &lt;br /&gt;Identity added: /home/deadcow/.ssh/id_rsa (/home/deadcow/.ssh/id_rsa)&lt;br /&gt;[deadcow@mosdef ~]$ &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Nota: toda vez que o computador for reiniciado será necessário adicionar novamente a chave privada para que seja iniciada a sessão do ssh-agent.&lt;br /&gt;&lt;br /&gt;Pronto, se você seguiu corretamente as instruçoes, você já poderá conectar-se ao servidor-remoto sem senha:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ ssh usuario@servidor-remoto.org&lt;br /&gt;Last login: Mon Jul 21 10:14:09 2008 from servidor-local.org&lt;br /&gt;..&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Caso você não tenha sucesso, verifique as configurações do servidor remoto e local, sua configuração deverá seguir as regras de autenticaçao do servidor, em caso de duvidas utilize a flag '-v' na sintaxe de sua conexão.&lt;br /&gt;&lt;br /&gt;Referências:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.webmonkey.com/tutorial/Automate_a_Remote_Login_Using_SSH-Agent"&gt;http://www.webmonkey.com/tutorial/Automate_a_Remote_Login_Using_SSH-Agent&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.unixwiz.net/techtips/ssh-agent-forwarding.html"&gt;http://www.unixwiz.net/techtips/ssh-agent-forwarding.html&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://mah.everybody.org/docs/ssh"&gt;http://mah.everybody.org/docs/ssh&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-7611894688671351719?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/7611894688671351719/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/usando-o-ssh-agent-para-chaves-privadas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/7611894688671351719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/7611894688671351719'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/usando-o-ssh-agent-para-chaves-privadas.html' title='Usando o ssh-agent para chaves privadas com senha'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-2171456419209032645</id><published>2008-07-31T23:48:00.000-03:00</published><updated>2008-12-11T04:55:36.444-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='hackerteen'/><category scheme='http://www.blogger.com/atom/ns#' term='bolsa'/><title type='text'>Hackerteen lança desafio pior que muito webgame.</title><content type='html'>&lt;div class="separator" style="text-align: center; clear: both;"&gt;&lt;a href="http://1.bp.blogspot.com/_fiHUvBLBCCE/SJM6faZqNSI/AAAAAAAAAKc/w-BuIXAk-tY/s1600-h/Joker-ritz.jpg" imageanchor="1" style="border: 0pt none ; background-color: transparent; clear: left; margin-bottom: 1em; float: left; margin-right: 1em;"&gt;&lt;img src="http://1.bp.blogspot.com/_fiHUvBLBCCE/SJM6faZqNSI/AAAAAAAAAKc/kYEncRltNEQ/s200-R/Joker-ritz.jpg" style="border: 0pt none ;" /&gt;&lt;/a&gt;&lt;/div&gt;Ontem a Hackerteen, um braço da 4linux que desenvolve o ensino entre os jovens entre 12 e 19 anos, lançou um desafio na internet oferencendo uma bolsa de estudos para o cursos oferecidos por eles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O desafio era descobrir uma mensagem escondida em imagens disponiveis no site deles, embarcando no sucesso do coringa, personagem interpretado por Heather Ledger morto no começo do ano, no novo filme do batman, The Dark Knight. Marcelo Marques, organizador do desafio, ofereceu duas dicas: "A mensagem não está em nenhum texto visível na página" e "será que as imagens são iguais?".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Não que eu ache a hackerteen uma péssima maneira de ensinar jovens (12 a 19 anos) a configurar bind e apache, o que eu acho péssimo é o coitado pagar um bocado de dinheiro achando que vai aprender o mesmo, ou quase o mesmo que um curso de ciencias da computaçao de uma universidade qualquer pode ensinar, ou até mesmo no google, que é uma infinita fonte de informação.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A iniciativa é boa, mas a manobra é fraca, com um simples comando você descobre a mensagem, e como eles oferecem um curso de 'ensino', eu acho que deveriam aguçar melhor o sentido das pessoas que queiram vencer o desafio. Eu já vi jogos web-based com desafios melhores que o deles. poderiam se esforçar mais, já que estão distribuindo uma bolsa de estudos de graça.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Eu e meus amigos demoramos cerca de 1 minuto pra descobrir qual era a mensagem, e não é nada demais, a resolução do desafio é a seguinte:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;echo -e "GET /files-ht/static/joker/t194.gif HTTP/1.1\nHost:www.hackerteen.com\n\n" | nc -w1&amp;nbsp; www.hackerteen.com 80 | strings | grep -i joker&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;logo em seguida será retornada a mensagem:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Ha ha ha ha ha ha. Hum... Voce me achou. Se voce chegou ate aqui, voce e perspicaz, mas seu tempo esta curto.&amp;nbsp; Agora para saber qual o desafio a completar me mande um email: Joker@hackerteen.com&amp;nbsp;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;perspicaz?, nao sei não hein.. bom enviei um email para o email seguinte e logo em seguida chega na minha caixa de mensagens o seguinte 'desafio':&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Muito bem! você chegou até aqui mas precisa avançar!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Agora olhe esse vídeo (&lt;a class="moz-txt-link-freetext" href="http://www.youtube.com/watch?v=ab2Ut87-ESM"&gt;http://www.youtube.com/watch?v=ab2Ut87-ESM&lt;/a&gt;) você não acha que o ator que me interpretou, o Heath Ledger, mereceria um Oscar? Hum... eu vou me dar um Oscar... Ha ha ha ha ha ha... hum... bem... Não é isso que você quer ouvir, não é mesmo? Vamos lá: O desafio a ser feito para você ganhar uma vaga no HackerTeen consiste em:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1 - Criar uma Dissertação (&lt;a class="moz-txt-link-freetext" href="http://pt.wikipedia.org/wiki/Disserta%C3%A7%C3%A3o"&gt;http://pt.wikipedia.org/wiki/Disserta%C3%A7%C3%A3o&lt;/a&gt;) desenvolvendo um dos seguintes temas (você deve escolher apenas um):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Opção 1 - Existe um momento no filme, que Batman é obrigado a rastrear todos os cidadãos para descobrir onde o Coringa está localizado. Algo semelhante está prestes a acontecer na Internet com a aprovação da lei do Senador Azeredo. Rastrear o IP de cada cidadão deve ser Lei ou deve ser um caso de investigação da polícia quando de um crime? Disserte sobre o assunto: &lt;a class="moz-txt-link-freetext" href="http://www.petitiononline.com/veto2008/petition.html"&gt;http://www.petitiononline.com/veto2008/petition.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Opção 2 - Se Batman fosse um Hacker, e o Coringa um Cracker, disserte sobre como, onde (os sites), e os motivos de um duelo entre os dois na Internet, mostrando os problemas nos dias de hoje.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2 - texto deve ter no máximo 3900 caracteres em algum editor de texto ( aproximadamente 1 folha)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3 - Cadastrar-se no formulário (&lt;a class="moz-txt-link-freetext" href="http://www.hackerteen.com/pt-br/fale-conosco"&gt;http://www.hackerteen.com/pt-br/fale-conosco&lt;/a&gt;) do HackerTeen com seus dados&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4 - Você deve enviar o arquivo da dissertação para o &lt;a class="moz-txt-link-abbreviated" href="mailto:batman@hackerteen.com"&gt;batman@hackerteen.com&lt;/a&gt; . Também, anexado no email, deve enviar a imagem da Carta do Baralho que contém a mensagem 'Ha ha...'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5 - No corpo do email, você deve explicar qual foi o procedimento que seguiu para descobrir a Carta do Baralho que continha a mensagem&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6 - Também no corpo do email, você deve enviar seu nome completo, telefone e cidade onde mora.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regras:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1 - O ganhador deve ter entre 12 e 19 anos. A vaga é intransferível. Cada jovem poderá participar com somente 1 dissertação&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2 - Desde já o ganhador autoriza a publicação da dissertação vencedora, no site do HackerTeen&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3 - O HackerTeen não se obriga a retornar nota de dissertação para nenhum dos autores, nem explicações por escrito, fax, email ou de qualquer natureza dos motivos de tal dissertação não ter sido escolhida como vencedora&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4 - O HackerTeen eliminará as participações que não estiverem em contexto de dissertação&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5 - O HackerTeen levará em conta a idade de cada um para a eleição da dissertação vencedora&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6 - Se for detectado 'Copy and Paste' ou cópia de textos na dissertação, esta será automaticamente eliminada&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7 - Haverá apenas uma dissertação vencedora, escolhida pela equipe interna do HackerTeen&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8 - A publicação da redação vencedora se dará no dia 18 de Agosto de 2008&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;9 - O vencedor poderá escolher uma entre as 4 carreiras oferecidas pelo HackerTeen ( Network Admin, PHP programmer, Java Programmer, Security Specialist ). Saiba mais em &lt;a class="moz-txt-link-freetext" href="http://www.hackerteen.com/pt-br/cursos"&gt;http://www.hackerteen.com/pt-br/cursos&lt;/a&gt;.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Eu tenho mais que 19 anos e não poderei participar do desafio, mas se você acabou de comprar um computador e está sem o que fazer da vida, disserte para a hackerteen e seja feliz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-2171456419209032645?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/2171456419209032645/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/hackerteen-lana-desafio-pior-que-muito.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/2171456419209032645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/2171456419209032645'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/08/hackerteen-lana-desafio-pior-que-muito.html' title='Hackerteen lança desafio pior que muito webgame.'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fiHUvBLBCCE/SJM6faZqNSI/AAAAAAAAAKc/kYEncRltNEQ/s72-Rc/Joker-ritz.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-2594035559635366691</id><published>2008-07-31T18:09:00.003-03:00</published><updated>2008-07-31T18:41:50.692-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Smtp'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='Smtplib'/><title type='text'>SMTP Diagnostics em python</title><content type='html'>Meu amigo &lt;a href="http://phalbuquerque.blogspot.com/"&gt;Philippe Ph&lt;/a&gt; me pediu pra escrever um script pra ele em python para testar servidores smtps com problemas, algo do tipo como nesse site &lt;a href="http://www.mxtoolbox.com/diagnostic.aspx"&gt;http://www.mxtoolbox.com/diagnostic.aspx&lt;/a&gt;, só que ele queria uma coisa bem simples, e como tudo no python eh simples o resultado não poderia ser diferente, eu depois tentarei reproduzir essa saída do site bem explicada, com banner e tal, mas por enquanto segue o script que utiliza o modulo smtplib que vem junto com o python.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/usr/bin/python&lt;br /&gt;&lt;br /&gt;from smtplib import *&lt;br /&gt;from sys import argv&lt;br /&gt;&lt;br /&gt;fromaddr = 'hermosa@menina.org'&lt;br /&gt;toaddr&amp;nbsp;&amp;nbsp; = 'cambiate@hombre.org'&lt;br /&gt;msg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 'ipsum lorem'&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; s = SMTP(argv[1])&lt;br /&gt;except SMTPConnectError, e:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print e[1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; s = SMTP(raw_input('Please type another server: '))&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; s.sendmail(fromaddr,toaddr,msg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'WARNING! Your server could be an open relay.'&lt;br /&gt;except SMTPSenderRefused:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Error - Sender Refused.'&lt;br /&gt;except SMTPHeloError:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Error - Helo Error'&lt;br /&gt;except SMTPRecipientsRefused:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Error - Recipients Refused.'&lt;br /&gt;except SMTPDataError:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Error - Data Error.'&lt;br /&gt;except:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Unknown Error'&lt;/pre&gt;&lt;br /&gt;quer alguma linguagem de programação mais simples que essa? tente o &amp;gt;&amp;gt; &lt;a href="http://lolcode.com/"&gt;lolcode&lt;/a&gt; :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-2594035559635366691?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/2594035559635366691/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/smtp-diagnostics-em-python.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/2594035559635366691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/2594035559635366691'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/smtp-diagnostics-em-python.html' title='SMTP Diagnostics em python'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-6126135565154013579</id><published>2008-07-30T23:04:00.001-03:00</published><updated>2008-07-30T23:12:07.296-03:00</updated><title type='text'>Pacman 3.2 released!</title><content type='html'>Acabou de sair no repositório git do pacman a nova versão do gerenciador oficial de pacotes do Arch Linux, segue um '&lt;a href="http://projects.archlinux.org/?p=pacman.git;a=blob;f=NEWS"&gt;changelog&lt;/a&gt;' da nova versão:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Pacman 3.2:&lt;br /&gt;              - removed -A/--add option from pacman frontend&lt;br /&gt;              - added --asexplicit option&lt;br /&gt;              - new remove option --unneeded&lt;br /&gt;              - add -Rss option to remove all dependencies&lt;br /&gt;              - removed useless -e/--dependsonly option&lt;br /&gt;              - config options are now case sensitive&lt;br /&gt;              - added CleanMethod option for variety in cache cleaning&lt;br /&gt;              - new Turkish translation, all others updated and revised&lt;br /&gt;              - handle multiple groups in -Ss and -Qs operations&lt;br /&gt;              - allow -q/--quiet option with -o/--own and -g/--groups options&lt;br /&gt;              - removed hack for packages with unknown installed size&lt;br /&gt;              - add SyncFirst option to pacman.conf&lt;br /&gt;              - support installation of versioned deps : pacman -S "dep&amp;gt;=2.0"&lt;br /&gt;              - add --enable-git-version configure flag to identify&lt;br /&gt;                developmental build version&lt;br /&gt;              - do not duplicate packages in required by list&lt;br /&gt;              - pacman.static is no longer built&lt;br /&gt;              - all error messages use pm_fprintf&lt;br /&gt;              - disable geteuid in cygwin&lt;br /&gt;              - use off_t type for large file support&lt;br /&gt;              - add vercmp test script&lt;br /&gt;              - moved gensync and updatesync to contrib/&lt;br /&gt;              - rewrote pacsearch script in perl&lt;br /&gt;              - paclist script to list installed packages from a repo&lt;br /&gt;              - bacman script to make backup of package from filesystem&lt;br /&gt;              - combined repo-add and repo-remove into one script&lt;br /&gt;              - removed --force option from repo-add&lt;br /&gt;              - add --quiet option to repo-add/repo-remove&lt;br /&gt;              - update libtool version to 1.5.26&lt;br /&gt;              - allow disabling of internal download with new configure&lt;br /&gt;                flag --disable-internal-download&lt;br /&gt;              - pactest can now check file permissions&lt;br /&gt;              - add the possibility to mark the pactests known to fail,&lt;br /&gt;                which allows more informative results of make check&lt;br /&gt;              - libalpm-specific changes:&lt;br /&gt;                - use dynamic string allocation in package structure&lt;br /&gt;                - new functions for manipulating pmdepend_t objects&lt;br /&gt;                - store replaces and force in local database&lt;br /&gt;                - moved deptest functionality to backend&lt;br /&gt;                - add alpm_checkdbconflicts function&lt;br /&gt;                - fix PM_ERR_CONFLICTING_DEPS handling&lt;br /&gt;                - cleanup of pmsyncpkg_t&lt;br /&gt;                - add alpm_sync_newversion function&lt;br /&gt;                - cleanup of alpm_list code&lt;br /&gt;                - refactor of download code&lt;br /&gt;                - download callback API changes&lt;br /&gt;                - removed test_delta_md5sum and test_pkg_md5sum functions&lt;br /&gt;                - add _alpm_archive_fgets function to read line-by-line from&lt;br /&gt;                  an archive&lt;br /&gt;                - read .PKGINFO directly from package file with no temp file&lt;br /&gt;                - native support for both libdownload and libfetch&lt;br /&gt;                - rework delta algorithm (we still need script updates)&lt;br /&gt;                - swap parameters of alpm_pkg_find for consistency with&lt;br /&gt;                  other find functions&lt;br /&gt;                - swap parameters of PM_TRANS_CONV_INSTALL_IGNOREPKG to make&lt;br /&gt;                  more sense&lt;br /&gt;                - fix -Rs when removing multiple items in dependency chain&lt;br /&gt;              - makepkg-specific changes:&lt;br /&gt;                - support for resuming source downloads&lt;br /&gt;                - added zipman option&lt;br /&gt;                - removed -b/--builddeps&lt;br /&gt;                - various portability fixes for BSD and Mac OS X&lt;br /&gt;                - check for valid options in PKGBUILD&lt;br /&gt;                - add --allsource option&lt;br /&gt;                - remove deprecated --usesudo option&lt;br /&gt;                - handle spaces in build directory&lt;br /&gt;                - made keeping docs the default option&lt;br /&gt;                - use pacman version dep resolving&lt;br /&gt;                - fix regression in library stripping&lt;br /&gt;                - make strip paths configurable&lt;br /&gt;              - MANY other bug fixes and small improvements&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;agora é só esperar o empacotamento e pacman -Syu!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-6126135565154013579?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/6126135565154013579/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/pacman-32-released.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/6126135565154013579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/6126135565154013579'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/pacman-32-released.html' title='Pacman 3.2 released!'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-3775791366507222298</id><published>2008-07-30T21:07:00.006-03:00</published><updated>2008-07-31T00:18:45.541-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='IPv6'/><category scheme='http://www.blogger.com/atom/ns#' term='IPv4'/><title type='text'>Pyv6.py: Script de atualização de ipv4 na he.net</title><content type='html'>Eu escrevi esse script porque ainda não tinha visto um script para update de ipv4 no tunnel de ipv6 da he.net que realmente funcionasse, e isso porque uso ele ha alguns anos, este é o meu primeiro codigo em python que considero completo, embora augur, meu grande amigo tenha me ajudado, recentemente o site do tunnel passou por mudanças e tive que reescreve-lo quase que totalmente, o POG do cookie é ideia original do augur, mas que funciona 100% sem a utilização da cookielib, valeu augur!&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/usr/bin/python&lt;br /&gt;# coding: UTF-8&lt;br /&gt;# pyipv6.py by deadcow.&lt;br /&gt;# primeiro codigo meu em python&lt;br /&gt;# agradecimentos a meu amigo augur.&lt;br /&gt;&lt;br /&gt;import urllib, md5, sys, re&lt;br /&gt;&lt;br /&gt;url&amp;nbsp;&amp;nbsp; = 'http://tunnelbroker.net/'&lt;br /&gt;tunid = 00000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Seu Tunnel id.&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uname = sys.argv[1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pword = sys.argv[2]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pword = md5.new(pword).hexdigest()&lt;br /&gt;except:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uname = 'usuario'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Seu usuario&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pword = 'senha' &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &amp;nbsp;&amp;nbsp; # Sua senha&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pword = md5.new(pword).hexdigest()&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip&amp;nbsp;&amp;nbsp;&amp;nbsp; = urllib.urlopen('http://whatismyip.org').read()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if re.search('^Error:',ip) is not None:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Erro: whatismyip.org indisponivel.'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit(-1)&lt;br /&gt;except:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip&amp;nbsp;&amp;nbsp;&amp;nbsp; = raw_input('Enter ip: ')&lt;br /&gt;&lt;br /&gt;def getcookie(x):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return urllib.URLopener().open(x).info()['Set-Cookie'].split(';')[0]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; except IOError,e:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Problemas:\n%s' %e[3]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit(-1)&lt;br /&gt;&lt;br /&gt;cookie = getcookie(url+'index.php')&lt;br /&gt;&lt;br /&gt;data = {'f_user':uname, 'clearpass':'', 'f_pass':pword, 'Login':'Login'}&lt;br /&gt;&lt;br /&gt;agent = urllib.URLopener()&lt;br /&gt;agent.addheader('Cookie', cookie)&lt;br /&gt;data = urllib.urlencode(data)&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conteudo = agent.open(url+'login.php',data).read()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print conteudo&lt;br /&gt;except IOError, e:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hmsg = e[3]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ue = hmsg['Location']&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ue == 'main.php':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = url+'ipv4_update.php'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ag = urllib.URLopener()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ag.addheader('Cookie', cookie)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; da = {'ipv4b':ip,'tunnel_id':tunid,'update':'Submit'}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; da = urllib.urlencode(da)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ct = ag.open(url,da).read()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = re.search('&amp;lt;font color=".{7}"&amp;gt;(.*)&amp;lt;/font&amp;gt;',ct)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print result.group(1)[:45].replace(', ','.')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Erro interpretando html'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except IOError,i:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print i[3]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Erro: login ou senha invalidos.'&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-3775791366507222298?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/3775791366507222298/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/pyv6py-script-de-atualizao-de-ipv4-na.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/3775791366507222298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/3775791366507222298'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/pyv6py-script-de-atualizao-de-ipv4-na.html' title='Pyv6.py: Script de atualização de ipv4 na he.net'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-8871841864461227856</id><published>2008-07-30T16:06:00.001-03:00</published><updated>2008-07-30T17:18:54.402-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='pypcap'/><category scheme='http://www.blogger.com/atom/ns#' term='Arch'/><title type='text'>pypcap: problemas com compatibilidade Pyrex 0.9.3 / Pyrex 0.9.8.4</title><content type='html'>Bom hoje eu estava navegando pelo google, e encontrei essa &lt;a href="http://jon.oberheide.org/blog/2008/07/21/pdpt-passive-dns-port-test/"&gt;tool&lt;/a&gt;, do &lt;a href="http://jon.oberheide.org/"&gt;Jon Oberheide&lt;/a&gt; que verificava em tempo real de modo passivo se um dns estaria ou não vulneravel a nova falha de &lt;a href="http://www.kb.cert.org/vuls/id/800113"&gt;DNS Cache Poison&lt;/a&gt; que o Dan Kaminsky descobriu,até ai tudo bem. se não fosse uma das dependecias da tool, o &lt;a href="http://code.google.com/p/pypcap/"&gt;pypcap&lt;/a&gt;, do dugsong, mesmo autor do dsniff, que eh uma extensão da libpcap para o python, depois de ter instalado com o comando "yaourt -S pypcap" direto, sem editar o PKBUILD no Arch, rodei o arquivo e sempre me retornava isso:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ ./pdpt.py &lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;&amp;nbsp; File "./pdpt.py", line 86, in &lt;module&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DNSMonitor().main()&lt;br /&gt;&amp;nbsp; File "./pdpt.py", line 39, in main&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pc = pcap.pcap(self.opts.device)&lt;br /&gt;&amp;nbsp; File "pcap.pyx", line 171, in pcap.pcap.__init__&lt;br /&gt;TypeError: exceptions must be strings, classes, or instances, not type&lt;br /&gt;[deadcow@mosdef ~]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;bom, perguntei o google sobre o erro e ele nao me respondia nada, aliás até respondia sobre um problema de compatibilidade com o Pyrex e o Python 2.6, mas eu não tinha a noção nem do que o pyrex fazia, a versão do&amp;nbsp; meu python é 2.6 mas sequer o pyrex eu tinha instalado, enfim passei com os olhos fechados sobre os endereços, baixei outra tool que também utilizava o pypcap pra ter certeza que o problema era no mesmo no pypcap, e sim, era.&lt;br /&gt;&lt;br /&gt;Resolvi então compilar na unha o pypcap, derepente podia ter algum erro no código ou coisa do tipo que eu mesmo pudesse concertar, qual não é minha surpresa quando resolvo dar um head no pcap.c ?:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef pypcap-1.1]$ head -n1 pcap.c &lt;br /&gt;/* Generated by Pyrex 0.9.3 on Sun Oct 16 19:38:39 2005 */&lt;br /&gt;[deadcow@mosdef pypcap-1.1]$&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;poisé é, pra isso que o Pyrex servia, só pra esclarecimento a descrição do Pyrex:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Pyrex lets you write code that mixes Python and C data types any way you want, and compiles it into a C extension for Python.  &lt;/blockquote&gt;&lt;br /&gt;Resolvi então ler aqueles endereços que eu passei desapercebido no google, e lá explicava que o pyrex tinha passado por uma mudança na versão 0.9.6 para acomodar o uso do novo estilo de classes do python 2.5, e recomendava a instalação da ultima versão do Pyrex.&lt;br /&gt;&lt;br /&gt;Como eu toda vez que utilizava o pypcap recebia um erro praticamente idêntico ao problema no site, resolvi então instalar o Pyrex na minha maquina e tentar gerar um novo pcap.c para o pacote do pypcap:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef pypcap-1.1]$ su -&lt;br /&gt;Password: &lt;br /&gt;[root@mosdef ~]# pacman -Ss pyrex&lt;br /&gt;extra/pyrex 0.9.8.4-1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Language for writing Python extension modules&lt;br /&gt;[root@mosdef ~]# pacman -S pyrex&lt;br /&gt;resolving dependencies...&lt;br /&gt;looking for inter-conflicts...&lt;br /&gt;&lt;br /&gt;Targets: pyrex-0.9.8.4-1&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Total Download Size:&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 MB&lt;br /&gt;Total Installed Size:&amp;nbsp;&amp;nbsp; 1.25 MB&lt;br /&gt;&lt;br /&gt;Proceed with installation? [Y/n] y&lt;br /&gt;checking package integrity...&lt;br /&gt;(1/1) checking for file conflicts&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [#####################] 100%&lt;br /&gt;(1/1) upgrading pyrex&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [#####################] 100%&lt;br /&gt;[root@mosdef ~]# exit&lt;br /&gt;[deadcow@mosdef pypcap-1.1]$ pyrexc pcap.pyx&lt;br /&gt;[deadcow@mosdef pypcap-1.1]$ head -n1 pcap.c &lt;br /&gt;/* Generated by Pyrex 0.9.8.4 on Wed Jul 30 15:51:07 2008 */&lt;br /&gt;[deadcow@mosdef pypcap-1.1]$ python setup.py config;su -c 'python setup.py install'&lt;br /&gt;...&lt;br /&gt;[root@mosdef deadcow]# python pdpt.py -i eth0&lt;br /&gt;listening on eth0: udp and dst port 53&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;Bingo!, o problema realmente era esse, mas isso podia ficar mais simples se você usa arch:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[deadcow@mosdef ~]$ yaourt -S pypcap&lt;br /&gt;&lt;br /&gt;==&amp;gt; Downloading pypcap PKGBUILD from AUR...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comment by: tom5760 on 20070207 [18:54:30]&lt;br /&gt;A simplified object-oriented Python extension module for libpcap.&lt;br /&gt;&lt;br /&gt;Comment by: tom5760 on 20070213 [16:17:10]&lt;br /&gt;Added license.&lt;br /&gt;&lt;br /&gt;Comment by: rabyte on 20070705 [19:57:41]&lt;br /&gt;Please add the LICENSE file to the source array.&lt;br /&gt;&lt;br /&gt;Comment by: tom5760 on 20070728 [16:03:36]&lt;br /&gt;I never use this anymore, sorry. Someone else can have it if they actually use it.&lt;br /&gt;&lt;br /&gt;Comment by: warl0ck on 20080227 [19:16:38]&lt;br /&gt;Take ownership from Tom, fix the license.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; First Submitted: Wed, 07 Feb 2007 18:54:30 +0000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Last Updated: Wed, 27 Feb 2008 19:17:54 +0000&lt;br /&gt;pypcap 1.1-3 (Unsupported): Python extension module for libpcap.&lt;br /&gt;&lt;br /&gt;==&amp;gt; pypcap dependencies:&lt;br /&gt;&amp;nbsp;- python (already installed)&lt;br /&gt;&amp;nbsp;- libpcap (already installed)&lt;br /&gt;==&amp;gt;&amp;nbsp; Edit the PKGBUILD (recommended) ? [Y/n] ("A" to abort)&lt;br /&gt;==&amp;gt;&amp;nbsp;&amp;nbsp; ----------------------------------------------&lt;br /&gt;==&amp;gt;y&lt;br /&gt;Please add $EDITOR to your environment variables&lt;br /&gt;for example:&lt;br /&gt;==&amp;gt; Edit PKGBUILD with: (replace gvim with your favorite editor)&lt;br /&gt;&lt;br /&gt;==&amp;gt; Edit ./PKGBUILD with: vi&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;É aqui o pulo do gato voce vai alterar, isto tendo o Pyrex na ultima versão instalado na maquina, a flag build() do PKGBUILD de:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;build() {&lt;br /&gt;&amp;nbsp; cd $startdir/src/$pkgname-$pkgver&lt;br /&gt;&amp;nbsp; python setup.py config&lt;br /&gt;&amp;nbsp; python setup.py build&lt;br /&gt;&amp;nbsp; python setup.py install --root=$startdir/pkg&lt;br /&gt;&amp;nbsp; mkdir -p $startdir/pkg/usr/share/licenses/$pkgname/&lt;br /&gt;&amp;nbsp; cp $startdir/src/$pkgname-$pkgver/LICENSE $startdir/pkg/usr/share/licenses/$pkgname/&lt;br /&gt;}&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;para:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;build() {&lt;br /&gt;&amp;nbsp; cd $startdir/src/$pkgname-$pkgver&lt;br /&gt;&amp;nbsp; pyrexc pcap.pyx &lt;br /&gt;&amp;nbsp; python setup.py config&lt;br /&gt;&amp;nbsp; python setup.py build&lt;br /&gt;&amp;nbsp; python setup.py install --root=$startdir/pkg&lt;br /&gt;&amp;nbsp; mkdir -p $startdir/pkg/usr/share/licenses/$pkgname/&lt;br /&gt;&amp;nbsp; cp $startdir/src/$pkgname-$pkgver/LICENSE $startdir/pkg/usr/share/licenses/$pkgname/&lt;br /&gt;}&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;E o resto, todos nós Archeiros conhecemos. Eu realmente não considero um erro do mantenedor do pacote, já que o responsável de manter o código 'up do date' é o programador e não o cara que criou o pacote, mas é uma dica simples que não deixa você com horas de dor de cabeça, abraços.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-8871841864461227856?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/8871841864461227856/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/pypcap-problemas-com-compatibilidade.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/8871841864461227856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/8871841864461227856'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/pypcap-problemas-com-compatibilidade.html' title='pypcap: problemas com compatibilidade Pyrex 0.9.3 / Pyrex 0.9.8.4'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-986906367199387509</id><published>2008-07-23T19:45:00.005-03:00</published><updated>2008-07-23T20:36:17.898-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programacao'/><category scheme='http://www.blogger.com/atom/ns#' term='conky'/><title type='text'>python: seus emails no conky</title><content type='html'>Estou encantado com a facilidade e a praticidade do python, eu confesso que nunca que interessei por essa linguagem, mas depois que me aprofundei melhor descobri um novo mundo. eu escrevi esse codigo usando o feedparser que é um módulo do python, mas que não vem com o pacote python, então se você está no archlinux e ainda não tem o modulo faça:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;pacman -S python-feedparser&lt;/pre&gt;&lt;br /&gt;o site oficial do módulo é &lt;a href="http://www.feedparser.org/"&gt;http://www.feedparser.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;e agora o script de mil linhas:&lt;br /&gt;&lt;pre&gt;#!/usr/bin/python&lt;br /&gt;# coding: UTF-8&lt;br /&gt;# pygmail by deadcow.&lt;br /&gt;# exibe os 3 ultimos emails no gmail.&lt;br /&gt;&lt;br /&gt;from feedparser import parse&lt;br /&gt;&lt;br /&gt;usuario = 'seu-usuario'&lt;br /&gt;senha&amp;nbsp;&amp;nbsp; = 'sua-senha'&lt;br /&gt;&lt;br /&gt;rss = 'https://'+usuario+':'+senha+'@mail.google.com/mail/feed/atom'&lt;br /&gt;child = parse(rss)&lt;br /&gt;&lt;br /&gt;#print len(child.entries),'emails' # descomente para exibir a quantidade&lt;br /&gt;&lt;br /&gt;for data in child.entries[:3]:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print data.title&lt;/pre&gt;&lt;br /&gt;muito simples hein? :D&lt;br /&gt;&lt;br /&gt;*edit: achei muito 'pequeno' o post e resolvi adicionar o pyfeed.py que exibe rss :P&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/usr/bin/python&lt;br /&gt;# coding: UTF-8&lt;br /&gt;# pyfeed.py by deadcow&lt;br /&gt;&lt;br /&gt;from feedparser import parse&lt;br /&gt;from sys import argv&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rss = argv[1]&lt;br /&gt;except:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rss = 'http://g1.globo.com/Rss2/0,,AS0-5597,00.xml'&lt;br /&gt;&lt;br /&gt;child = parse(rss)&lt;br /&gt;&lt;br /&gt;for data in child.entries[:3]:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print data.title&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-986906367199387509?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/986906367199387509/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/python-seus-emails-no-conky.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/986906367199387509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/986906367199387509'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/python-seus-emails-no-conky.html' title='python: seus emails no conky'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-7655346574457035963</id><published>2008-07-19T15:18:00.008-03:00</published><updated>2008-07-19T15:29:59.433-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Exploits of a mom</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://defcola.googlepages.com/exploits_of_a_mom.png"&gt;&lt;img style="cursor: pointer;" src="http://defcola.googlepages.com/exploits_of_a_mom.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-7655346574457035963?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/7655346574457035963/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/exploits-of-mom.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/7655346574457035963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/7655346574457035963'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/exploits-of-mom.html' title='Exploits of a mom'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-8239399196809827742</id><published>2008-07-16T15:02:00.046-03:00</published><updated>2008-12-11T04:55:36.872-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Wallpapers'/><category scheme='http://www.blogger.com/atom/ns#' term='Gimp'/><title type='text'>Wallpaper: Archer Flame 1024x768</title><content type='html'>Eu sempre quis melhorar minhas skillz no Gimp, mas eu já não era grande coisa no PS, imagine no Gimp, mas até que eu achava que me virava bem, até encontrar este blog: &lt;a href="http://razgrizbox.wordpress.com/"&gt;http://razgrizbox.wordpress.com&lt;/a&gt;, ai tentei uns passo-a-passo do site e saiu isso ai. espero que gostem :D&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fiHUvBLBCCE/SH49farQY2I/AAAAAAAAAJg/-offXd26Kcw/s1600-h/arch-flame2.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_fiHUvBLBCCE/SH49farQY2I/AAAAAAAAAJg/-offXd26Kcw/s320/arch-flame2.png" alt="" id="BLOGGER_PHOTO_ID_5223680227742344034" border="0" /&gt;&lt;/a&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fiHUvBLBCCE/SH485r8MxNI/AAAAAAAAAJY/snbh3sMPLLk/s1600-h/arch-flame.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_fiHUvBLBCCE/SH485r8MxNI/AAAAAAAAAJY/snbh3sMPLLk/s320/arch-flame.png" alt="" id="BLOGGER_PHOTO_ID_5223679579541783762" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;Archer Flame 1024x768px&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-8239399196809827742?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/8239399196809827742/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/blog-post.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/8239399196809827742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/8239399196809827742'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/blog-post.html' title='Wallpaper: Archer Flame 1024x768'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fiHUvBLBCCE/SH49farQY2I/AAAAAAAAAJg/-offXd26Kcw/s72-c/arch-flame2.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-370359229750043305</id><published>2008-07-12T22:35:00.008-03:00</published><updated>2008-07-17T16:34:00.306-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='shellscript'/><category scheme='http://www.blogger.com/atom/ns#' term='bashrc'/><title type='text'>Upload automatico no imageshack no linux</title><content type='html'>Eu lendo esse &lt;a href="http://hdoria.archlinux-br.org/blog/2008/01/25/funcoes-legais-para-o-bashrc/"&gt;post&lt;/a&gt; no blog do hdoria, resolvi modificá-lo para subir automaticamente no imageshack.us a screenshot, eu já tinha encontrado diversos programas e atalhos desses no windows, mas ainda não tinha visto nada parecido no windows, e o bom é que você só precisa colocar no seu .bashrc :P &amp;amp;;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;shot () {&lt;br /&gt;   img=$(echo $HOME/SHT$(date +%s).png)&lt;br /&gt;&lt;br /&gt;   if [ -z $1 ]; then&lt;br /&gt;        import -w root -quality 75 $img&lt;br /&gt;        upload $img&lt;br /&gt;   else&lt;br /&gt;        sleep $1&lt;br /&gt;        import -w root -quality 75 $img&lt;br /&gt;        upload $img&lt;br /&gt;   fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;upload () {&lt;br /&gt;   if [ -z "$1" ]; then&lt;br /&gt;       echo "Need arg"&lt;br /&gt;   else&lt;br /&gt;       curl -s -H Expect: -F fileupload="@$1" -F xml=yes \&lt;br /&gt;       http://www.imageshack.us/index.php|grep -E \&lt;br /&gt;       "&amp;lt;image_link&amp;gt;(.*)&amp;lt;/image_link&amp;gt;" | sed \&lt;br /&gt;       's|\(.*\)&amp;lt;image_link&amp;gt;\(.*\)&amp;lt;/image_link&amp;gt;|\2|'&lt;br /&gt;   fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;be happy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-370359229750043305?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/370359229750043305/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/upload-automatico-no-imageshack-no.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/370359229750043305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/370359229750043305'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/upload-automatico-no-imageshack-no.html' title='Upload automatico no imageshack no linux'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1089320344660050373.post-1534707015331562436</id><published>2008-07-11T21:58:00.005-03:00</published><updated>2008-07-17T16:35:25.693-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ícones'/><category scheme='http://www.blogger.com/atom/ns#' term='xfce4'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Alterando os ícones no Arch Linux / Xfce4</title><content type='html'>Eu sempre gostei de customizar o linux ao máximo das possibilidades, e geralmente consigo, porém com algumas limitações, instalei recentemente o Arch linux, uma distro leve e compacta, e antigamente, quando utilizava o Slack, alterava manualmente os ícones do Xfce4, tendo que editar todos os ícones a mão, um por um.&lt;br /&gt;&lt;br /&gt;Meu amigo &lt;a href="http://temasdop0ng.blogspot.com/"&gt;p0ng&lt;/a&gt; me chamou a atenção para  um programa simples e prático pra instalar os pacotes de ícones Tango  (meu favorito aliás), o nome do programa é Tango-Generator, ele é escrito em python e suporta tanto Xfce4 como o Gnome, e há a possibilidade de que no futuro venha a suportar também o KDE.&lt;br /&gt;&lt;br /&gt;A instalação do programa é muito simples, mas se você utilizar o Arch linux a coisa fica mais facil ainda:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[root@mosdef ~]# pacman -S tango-generator&lt;br /&gt;resolving dependencies...&lt;br /&gt;looking for inter-conflicts...&lt;br /&gt;&lt;br /&gt;Targets: tango-generator-3.2.3-1&lt;br /&gt;&lt;br /&gt;Total Download Size:    0.00 MB&lt;br /&gt;Total Installed Size:   0.56 MB&lt;br /&gt;&lt;br /&gt;Proceed with installation? [Y/n] y&lt;br /&gt;checking package integrity...&lt;br /&gt;(1/1) checking for file conflicts                   [#####################] 100%&lt;br /&gt;(1/1) upgrading tango-generator                     [#####################] 100%&lt;br /&gt;[root@mosdef ~]#&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Caso você for instalar o programa á moda antiga, suas dependências são: dbus-python, pygtk, pyxdg, librsvg e imagemagick. A configuração do tango-generator é tão simples quanto ele, você precisará de um arquivo de configuração para o estilo de ícones que você deseja, ou no caso, apenas selecionando os pacotes na lista que é apresentada no programa. Há vários arquivos de configuração disponíveis no próprio site do tango-generator.&lt;br /&gt;&lt;br /&gt;Eu tive problemas com meu dns para resolver o hostname do site do tango-generator, e é importante você tê-lo pois durante a execução do programa, ele faz os downloads dos pacotes de ícones no site, se você tiver problemas adicione a seguinte linha ao seu /etc/hosts:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;216.37.76.11            mejogid.ohallwebservices.com&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Após a instalação, rode o programa como usuário normal, siga as instruções do programa, e espere o download completo dos pacotes de ícones, o programa criará a pasta ~/.icons, que contém os temas de ícones para o xfce4, vá até &lt;span style="font-style: italic;"&gt;User Interface Settings &lt;/span&gt;selecione a aba &lt;span style="font-style: italic;"&gt;Icon Theme&lt;/span&gt; e selecione o nome que você digitou em &lt;span style="font-style: italic;"&gt;Theme Name&lt;/span&gt;, durante a execução do programa.&lt;br /&gt;&lt;br /&gt;Embora o tango-generator faça milagres na aplicação dos ícones, alguns dos ícones default do Xfce4 insistem em continuar, como no caso do xfterm4, o terminal padrão que vem junto com o xfce4, para resolver esse problema, você terá que alterar o ícone padrão do programa, no caso o arquivo /usr/share/icons/hicolor/48x48/apps/Terminal.png, e /usr/share/icons/hicolor/scalable/apps/Terminal.svg para que no topo da window apareça o mesmo ícone que representa o programa.&lt;br /&gt;&lt;br /&gt;Eu escolhi o ícone que representa o terminal nos menus do xfce4, após a utilização do tango-generator, no caso o arquivo ~/.icons/nome do seu tema/48x48/apps/terminal.png e ~/.icons/nome do seu tema/scalable/apps/terminal.svg. você pode escolher um ícone de sua preferencia, desde que respeite o tamanho  a classe do ícone, como no meu caso de 48x48px e scalable.&lt;br /&gt;&lt;br /&gt;como usuário root, faça:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[root@mosdef ~]# cp -f ~/.icons/candido/scalable/apps/terminal.svg  /usr/share/icons/hicolor/scalable/apps/Terminal.svg&lt;br /&gt;[root@mosdef ~]# cp -f ~/.icons/candido/48x48/apps/terminal.png /usr/share/icons/hicolor/48x48/apps/Terminal.png&lt;br /&gt;[root@mosdef ~]# cd /usr/share/icons/hicolor/&lt;br /&gt;[root@mosdef hicolor]# /usr/bin/gtk-update-icon-cache .&lt;br /&gt;gtk-update-icon-cache: Cache file created successfully.&lt;br /&gt;[root@mosdef hicolor]#&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Simples não? embora o texto ensine como alterar o ícone do xfterm4, é possivel alterar outros ícones de outros programas desde que você saiba o que está fazendo. uma dica é procurar por arquivos de ícones nos binários dos programas se utilizando do comando strings:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[deadcow@mosdef ~]$ strings /usr/bin/Terminal|grep icons&lt;br /&gt;/usr/share/icons/hicolor/scalable/apps/Terminal.svg&lt;br /&gt;[deadcow@mosdef ~]$ strings /usr/lib/bmpx/beep-media-player-2-bin|grep icons&lt;br /&gt;/usr/share/bmpx/icons/tray-icons/tray-icon-default.png&lt;br /&gt;/usr/share/bmpx/icons/tray-icons/tray-icon-paused.png&lt;br /&gt;/usr/share/bmpx/icons/tray-icons/tray-icon-playing.png&lt;br /&gt;/usr/share/bmpx/icons/themes&lt;br /&gt;[deadcow@mosdef ~]$&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Referencias&lt;/span&gt;:&lt;br /&gt;   &lt;a href="http://library.gnome.org/devel/gtk/stable/gtk-update-icon-cache.html"&gt;http://library.gnome.org/devel/gtk/stable/gtk-update-icon-cache.html&lt;/a&gt;&lt;br /&gt;  &lt;a href="http://mejogid.ohallwebservices.com/site/index.php?q=node/1"&gt; http://mejogid.ohallwebservices.com/site/index.php?q=node/1&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1089320344660050373-1534707015331562436?l=deadcow.archlinux.com.br' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deadcow.archlinux.com.br/feeds/1534707015331562436/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/alterando-os-cones-no-linux.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/1534707015331562436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1089320344660050373/posts/default/1534707015331562436'/><link rel='alternate' type='text/html' href='http://deadcow.archlinux.com.br/2008/07/alterando-os-cones-no-linux.html' title='Alterando os ícones no Arch Linux / Xfce4'/><author><name>deadcow</name><uri>http://www.blogger.com/profile/11094370818770524686</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17040345218937090487'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>