<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-6679308705681702513</atom:id><lastBuildDate>Wed, 24 Feb 2010 22:36:08 +0000</lastBuildDate><title>LKVenia</title><description></description><link>http://lkraider.eipper.com.br/blog/</link><managingEditor>noreply@blogger.com (LKRaider)</managingEditor><generator>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-342200919173624898</guid><pubDate>Wed, 03 Feb 2010 12:54:00 +0000</pubDate><atom:updated>2010-02-03T05:14:13.006-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>blogger</category><title>Blogger Reverse Publishing</title><description>Blogger is &lt;a href="http://blogger-ftp.blogspot.com/2010/01/deprecating-ftp.html" alt="Deprecating FTP - Friday, January 22, 2010"&gt;disabling S/FTP publishing support&lt;/a&gt; from their platform. As of now, they are not offering any solution other than moving the blogs to being hosted by Blogger (either with custom urls or not).&lt;br /&gt;&lt;br /&gt;Blogger claims S/FTP will be disabled because a Google infrastructure for doing so is being deprecated and will become unavailable.&lt;br /&gt;&lt;br /&gt;In my view, a third option could be put in place that would still allow users to host their own content and not rely on S/FTP on Blogger's side: I call it &lt;b&gt;Reverse Publishing&lt;/b&gt;. It works like this:&lt;br /&gt;&lt;br /&gt;You use Blogger interface to manage your content, and having selected Reverse Publishing no visible URL is setup for you, but you receive an API key to access all content through &lt;a href="http://code.google.com/apis/blogger/" alt="Blogger APIs"&gt;GData API&lt;/a&gt; calls.&lt;br /&gt;&lt;br /&gt;On your server you run a script (PHP most likely) that when activated pulls your blog data through the Blogger GData API and deploys it on your server, essentially doing the same work that the old S/FTP publishing did on Blogger side, just without using S/FTP at all.&lt;br /&gt;&lt;br /&gt;If Blogger opts to support that, it could even go so far as to 'ping' your script when new content is available, so it can start pulling it automatically when you publish on the Blogger interface.&lt;br /&gt;&lt;br /&gt;I would like to see Blogger staff comments about this idea. If they could enable such an option on their side, I'm sure an opensource script for doing the work on our side could be pulled off quite rapidly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-342200919173624898?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2010/02/blogger-reverse-publishing.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-3983725127832714894</guid><pubDate>Sat, 12 Sep 2009 18:54:00 +0000</pubDate><atom:updated>2009-09-12T11:57:06.176-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>python</category><category domain='http://www.blogger.com/atom/ns#'>twitter</category><title>Python flames</title><description>#pythonbrasil&lt;br /&gt;&lt;br /&gt;No final, Niemeyer quer um Python mais "mantenível" para grandes empresas, seja estável, sustente uma plataforma (mesmo quebrada) por tempo indeterminado em favor do código do cliente, tenha controle de acesso a atributos mais rígido.... basicamente, onde a visão da linguagem tome um segundo plano em relação ao code-base existente. Então, ele realmente quer Python ou alguma outra linguagem, apenas com sintaxe Python-like?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-3983725127832714894?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2009/09/python-flames.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-351450228970713252</guid><pubDate>Thu, 23 Apr 2009 00:28:00 +0000</pubDate><atom:updated>2009-04-26T18:20:14.110-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>mac</category><title>Using OS X Terminal keys on a Macbook Pro</title><description>The default key settings on the Mac OS X (10.5) Terminal are pretty weird, especially on a Macbook Pro, and took me a while to figure them out and setup as I wanted.&lt;br /&gt;&lt;br /&gt;This is how it works:&lt;br /&gt;&lt;br /&gt;«fn» + left/right arrows is equivalent to home and end&lt;br /&gt;«fn» + up/down is equivalent to page up/down&lt;br /&gt;&lt;br /&gt;Problem is, by default, these keys don't send escape sequences, and don't work as expected. This is how I setup my terminal keys:&lt;br /&gt;&lt;br /&gt;On the Terminal preferences, go to the Settings item, and choose the Keyboard tab.&lt;br /&gt;Find these keys and edit them (note that the \033 you can get by pressing the &lt;b&gt;esc&lt;/b&gt; key):&lt;br /&gt;&lt;br /&gt;End - send string to shell: \033[4~&lt;br /&gt;Home - send string to shell: \033[1~&lt;br /&gt;Page down - send string to shell: \033[6~&lt;br /&gt;Page up - send string to shell: \033[5~&lt;br /&gt;Shift page down - scroll to next page in buffer&lt;br /&gt;Shift page up - scroll to previous page in buffer&lt;br /&gt;&lt;br /&gt;These bindings should get you close to what you'd expect from a sane terminal. There are a few more settings I use to setup Bash (and other programs that use readline), which are located on the .inputrc file on your home dir.&lt;br /&gt;&lt;br /&gt;Edit &lt;u&gt;~/.inputrc&lt;/u&gt; and add this:&lt;br /&gt;&lt;pre name="code" class="python"&gt;&lt;br /&gt;# Be 8 bit clean.&lt;br /&gt;set input-meta on&lt;br /&gt;set output-meta on&lt;br /&gt;set convert-meta off&lt;br /&gt;&lt;br /&gt;# Auto completion options&lt;br /&gt;set show-all-if-ambiguous on&lt;br /&gt;set completion-ignore-case on&lt;br /&gt;&lt;br /&gt;# Keybindings&lt;br /&gt;"\e[1~": beginning-of-line       # Home key&lt;br /&gt;"\e[4~": end-of-line             # End key&lt;br /&gt;"\e[5~": history-search-backward # Page Up&lt;br /&gt;"\e[6~": history-search-forward  # Page Down&lt;br /&gt;"\e[3~": delete-char             # Delete key&lt;br /&gt;"\e[5C": forward-word            # Ctrl+right&lt;br /&gt;"\e[5D": backward-word           # Ctrl+left&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;With these settings, «shift» + «fn» + up/down scrolls the buffer, and «fn» + up/down searches your history based on what you typed on the line.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;References:&lt;/u&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tech.inhelsinki.nl/gnu_developement_under_mac_os_x/"&gt;GNU development under Mac OS X&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-351450228970713252?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2009/04/using-os-x-terminal-keys-on-macbook-pro.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-5496626687094758772</guid><pubDate>Mon, 10 Nov 2008 18:32:00 +0000</pubDate><atom:updated>2008-11-10T11:21:02.391-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>c++</category><category domain='http://www.blogger.com/atom/ns#'>editors</category><category domain='http://www.blogger.com/atom/ns#'>programming</category><title>Code::Blocks Oblivion</title><description>&lt;a href="http://www.codeblocks.org/"&gt;Code::Blocks&lt;/a&gt; is a cross-platform programming editor/IDE written using &lt;a href="http://wxwidgets.org/"&gt;wxWidgets&lt;/a&gt;. I use it to program in C++ with wxWidgets in Linux and &lt;a href="http://wiki.codeblocks.org/index.php?title=Code::Blocks_and_Cross_Compilers"&gt;cross-compiling&lt;/a&gt; with &lt;a href="http://www.mingw.org/"&gt;MinGW&lt;/a&gt; to &lt;a href="http://www.winehq.org/"&gt;win32&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By default it comes with a white theme, while I prefer darker colors for programming. So I put together a color scheme that suits me better, following the Oblivion Tango color theme available in Gedit by default, with a few changes. Here's what it looks like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lkraider.eipper.com.br/blog/uploaded_images/codeblocks_oblivion-782033.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 343px;" src="http://lkraider.eipper.com.br/blog/uploaded_images/codeblocks_oblivion-782028.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you want to try it, get the file &lt;a href="http://lkraider.eipper.com.br/blog/codeblocks_oblivion.conf"&gt;codeblocks_oblivion.conf&lt;/a&gt; and use the command &lt;span style="font-weight:bold;"&gt;cb_share_config&lt;/span&gt; to merge it into your ~/.codeblocks/default.conf .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-5496626687094758772?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2008/11/codeblocks-oblivion.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-1322640516700907386</guid><pubDate>Fri, 07 Nov 2008 04:52:00 +0000</pubDate><atom:updated>2008-11-06T20:57:25.572-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>python</category><title>Selfish Python</title><description>No post «&lt;a href="http://diaspar.blogspot.com/2008/11/o-porqu-do-self-explcito-ser-que-agora.html"&gt;O porquê do self explícito... será que agora vai?&lt;/a&gt;» Pedro Werneck demonstra, passo a passo, uma implementação do funcionamento das classes em Python utilizando apenas dicionários e funções.&lt;br /&gt;&lt;br /&gt;Fica claro o modo como Python resolveu implementar o suporte à orientação à objeto, de maneira bem simples e prática, sem mágicas obscuras para tentar fornecer algum suporte sintático questionável, como seria se fosse sem explicitar o self.&lt;br /&gt;&lt;br /&gt;Pessoalmente, já estava confortável com a utilização do self explícito (a ponto de sentir falta disso em C++ :) e esse post só veio para ajudar a entender melhor o funcionamento "por detrás dos panos", que é muito interessante.&lt;br /&gt;&lt;br /&gt;Pontos extras por ter mostrado o funcionamento das metaclasses, e como as classes em Python não são nada especiais em termos de implementação.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-1322640516700907386?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2008/11/selfish-python_06.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-1049770191729753722</guid><pubDate>Fri, 05 Sep 2008 01:49:00 +0000</pubDate><atom:updated>2008-09-04T19:39:40.099-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>xmpp</category><category domain='http://www.blogger.com/atom/ns#'>ubuntu</category><title>Pidgin e Google Talk group chat</title><description>O GTalk tem função de group chat, porém se você usa o Pidgin irá apenas receber um link para acessar pelo navegador, usando um cliente em Flash.&lt;br /&gt;&lt;br /&gt;Investigando um pouco, descobri que é possível entrar no group chat usando o próprio Pidgin, ou até mesmo criar uma sala:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;ao receber um convite, siga o link e quando aparecer o botão para iniciar o cliente Flash, selecione para ver o código fonte da página.&lt;/li&gt;&lt;li&gt;Procure pela string de conexão, algo parecido com: &lt;span style="font-style: italic;"&gt;private-chat-12345678-dead-beef-feed-fedcba987654@groupchat.google.com&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;No menu "&lt;span style="font-weight: bold;"&gt;Amigos&lt;/span&gt;" do Pidgin, selecione "&lt;span style="font-weight: bold;"&gt;Adicionar bate-papo...&lt;/span&gt;"&lt;/span&gt;&lt;span&gt; e preencha o campo de sala com a parte antes do &lt;span style="font-style: italic;"&gt;@&lt;/span&gt; da string anterior e o servidor com &lt;/span&gt;&lt;span&gt;&lt;span style="font-style: italic;"&gt;groupchat.google.com&lt;/span&gt; e clique em Adicionar.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Pronto, você já tem a sala na sua lista e já pode conversar&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;O mesmo vale para criar novas salas, é só criar uma string para o nome da sala que seja compatível e conectar. Se ela não estiver sendo usada uma nova sala será criada e você pode convidar pessoas para entrar (menu "&lt;span style="font-weight: bold;"&gt;Conversa&lt;/span&gt;" -&gt; "&lt;span style="font-weight: bold;"&gt;Convidar...&lt;/span&gt;").&lt;br /&gt;&lt;br /&gt;Se você tem uma conta Jabber, pode criar salas no servidor &lt;span style="font-style: italic;"&gt;conference.jabber.org&lt;/span&gt; da mesma forma, ou mesmo ver as salas já existentes pelo menu "&lt;span style="font-weight: bold;"&gt;Ferramentas&lt;/span&gt;" -&gt; "&lt;span style="font-weight: bold;"&gt;Lista de salas&lt;/span&gt;", selecione sua conta Jabber, clique em "Obter lista" e preencha com o endereço do servidor.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;Fontes:&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://mkokotovich.blogspot.com/2007/12/google-talk-groupchat.html"&gt;Error 404: Google Talk Groupchat&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.nata2.org/2007/07/06/google-talk-group-chat-integration-with-jabber-chat/"&gt;Harper Reed: Google Talk group chat integration with Jabber Chat&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-1049770191729753722?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2008/09/pidgin-e-google-talk-group-chat.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-3957953209054764349</guid><pubDate>Fri, 18 Jul 2008 04:05:00 +0000</pubDate><atom:updated>2008-07-17T21:21:46.206-07:00</atom:updated><title>Promoção para ajudar a Wikipédia e outros projetos</title><description>O &lt;a href="http://br-linux.org"&gt;BR-Linux.org&lt;/a&gt; e &lt;a href="http://www.efetividade.net/"&gt;Efetividade.net&lt;/a&gt; estão novamente promovendo campanha para fazer doação para a Wikipédia e outros projetos importantes relacionados à livre difusão de conhecimento (software ou não).&lt;br /&gt;&lt;br /&gt;Segue o texto de chamada da campanha:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!&lt;/b&gt;&lt;br /&gt;…e também a pen drives, card drives, camisetas geeks, livros e mais! O &lt;a href=http://br-linux.org/&gt;BR-Linux&lt;/a&gt; e o &lt;a href=http://efetividade.net/&gt;Efetividade&lt;/a&gt; lançaram uma &lt;a href=http://br-linux.org/2008/campanha-wikipedia/&gt;campanha&lt;/a&gt; para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e &lt;a href=http://br-linux.org/2008/campanha-wikipedia/&gt;participe&lt;/a&gt; - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Quem tiver um blog, não deixe de participar também.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-3957953209054764349?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2008/07/promoo-para-ajudar-wikipdia-e-outros.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-4493374088473705822</guid><pubDate>Tue, 10 Jun 2008 04:12:00 +0000</pubDate><atom:updated>2008-06-10T21:05:26.135-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>python</category><title>Cálculo da variância em Python</title><description>Este post segue uma seqüência iniciada no blog &lt;a href="http://kodumaro.blogspot.com/2008/06/variancia-com-linguagem-funcional.html"&gt;Kodumaro&lt;/a&gt;, comparando a implementação de alguns cálculos de estatística usando linguagens como Lisp, C e depois seguido de Ruby no blog &lt;a href="http://programandosemcafeina.blogspot.com/2008/06/clculo-da-varincia-com-ruby.html"&gt;Programando sem cafeína&lt;/a&gt;, e &lt;a href="http://kodumaro.blogspot.com/2008/06/variancia-em-smalltalk.html"&gt;Smalltalk&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Como estou vendo um pouco de estatística na faculdade agora, me animei para tentar uma implementação em Python também.&lt;br /&gt;&lt;pre name="code" class="python"&gt;&lt;br /&gt;import math&lt;br /&gt;&lt;br /&gt;def arithmetic_mean(dataset):&lt;br /&gt;    """&lt;br /&gt;    Simple arithmetic mean (average)&lt;br /&gt;    &lt;br /&gt;    Example:&lt;br /&gt;    &gt;&gt;&gt; arithmetic_mean([10,100,1000])&lt;br /&gt;    370&lt;br /&gt;    """&lt;br /&gt;    return sum(dataset) / len(dataset)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def root_mean_square(dataset):&lt;br /&gt;    """&lt;br /&gt;    RMS (quadratic mean)&lt;br /&gt;&lt;br /&gt;    Example:&lt;br /&gt;    &gt;&gt;&gt; root_mean_square([10,100,1000])&lt;br /&gt;    580.25856305616037&lt;br /&gt;    """&lt;br /&gt;    return math.sqrt(sum(x**2 for x in dataset) / len(dataset))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def var_num(dataset, mean_function=arithmetic_mean):&lt;br /&gt;    """&lt;br /&gt;    Divisor for variance calculation&lt;br /&gt;    """&lt;br /&gt;    mean = mean_function(dataset)&lt;br /&gt;    return sum((x - mean)**2 for x in dataset)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def populational_variance(dataset):&lt;br /&gt;    """&lt;br /&gt;    Population variance&lt;br /&gt;    &lt;br /&gt;    Example:&lt;br /&gt;    &gt;&gt;&gt; populational_variance([10,100,1000])&lt;br /&gt;    199800&lt;br /&gt;    """&lt;br /&gt;    return var_num(dataset) / len(dataset)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def sample_variance(dataset):&lt;br /&gt;    """&lt;br /&gt;    Sample variance&lt;br /&gt;    &lt;br /&gt;    Example:&lt;br /&gt;    &gt;&gt;&gt; sample_variance([10,100,1000])&lt;br /&gt;    299700&lt;br /&gt;    """&lt;br /&gt;    return var_num(dataset) / (len(dataset) - 1)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Preferi implementar como funções simples pois assim é fácil de aplicar sobre qualquer conjunto de dados iterável como listas, tuplas, dicionários ou sets.&lt;br /&gt;&lt;br /&gt;Na função de numerador da variância, um dos parâmetros é a função de média que se deseja utilizar para o cálculo, com o padrão sendo a média aritmética (pois como nota o blog Kodumaro, o uso da função depende de quem pediu o cálculo ;).&lt;br /&gt;&lt;br /&gt;Vale notar também o uso de &lt;a href="http://www.python.org/dev/peps/pep-0289/"&gt;generator expressions&lt;/a&gt; para os somatórios, que substituem as mais tradicionais &lt;a href="http://www.python.org/dev/peps/pep-0202/"&gt;list comprehensions&lt;/a&gt; nesse caso por questão de performance, principalmente para grandes conjuntos de dados.&lt;br /&gt;&lt;br /&gt;Apliquei ainda doctests simples para validar os resultados das funções.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-4493374088473705822?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2008/06/clculo-da-varincia-em-python.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-5498587613198555842</guid><pubDate>Sat, 26 Apr 2008 01:35:00 +0000</pubDate><atom:updated>2008-04-28T21:18:54.336-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>ubuntu</category><title>Dist-upgrade Hardy</title><description>Just dist-upgraded my Gutsy laptop to Hardy and a few issues have come up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gateway 5570Z &lt;/span&gt; &lt;span style="font-style: italic;"&gt;(model 5570-2607)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="sound" name="sound"&gt;&lt;/a&gt;&lt;span style="border-bottom: 1px solid grey; font-weight: bold;"&gt;Sound&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:monospace,courier new;font-size:85%;"  &gt;00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) [8086:27d8 (rev 02)]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After the upgrade there was no more sound, whereas it was working fine in Gutsy. Needs further investigation.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;PARTIALLY SOLVED&lt;/u&gt;: Seems the bug is on the headphone output detection. I had external speakers connected to the headphone out and no sound was playing, either on the internal or external speakers. If I unplug the external speakers, sound comes out from the internal ones. If I plug the external, no sound is heard again, only if I manually check the Headphone key on the volume control app. Definitely a bug.&lt;br /&gt;&lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/126157"&gt;https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/126157&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="wifi" name="wifi"&gt;&lt;/a&gt;&lt;span style="border-bottom: 1px solid grey; font-weight: bold;"&gt;WiFi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:monospace,courier new;font-size:85%;"  &gt;03:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was using a manually compiled ndiswrapper on Gutsy, and on the upgrade it was probably replaced. Tried using the new b43 driver, which installed fine and even activated the device, but it isn't detecting my wireless network, so I'm going back to ndiswrapper. Seems ndiwrapper doesn't like loading in Hardy tho... hmm.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;SOLVED&lt;/u&gt;: the ndiswrapper module doesn't like to be loaded after the ssb module, so you must remove b44 and ssb, load ndiswrapper and then load ssb and b44 back again. Fun.&lt;br /&gt;&lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/188621"&gt;https://bugs.launchpad.net/ubuntu/+source/linux/+bug/188621&lt;/a&gt;&lt;br /&gt;&lt;a href="https://bugs.launchpad.net/ubuntu/+bug/214917"&gt;https://bugs.launchpad.net/ubuntu/+bug/214917&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="keyboard" name="keyboard"&gt;&lt;/a&gt;&lt;span style="border-bottom: 1px solid grey; font-weight: bold;"&gt;USB Keyboard&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I use an external usb keyboard when at home, and Hardy is having issues in detecting the numeric keypad... any key I press there is completely ignored. Needs further investigation.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;SOLVED&lt;/u&gt;: completely stupid bug, it is fixed by going in System-&gt;Preferences-&gt;Keyboard and disabling &lt;b&gt;Allow to control the pointer using the keyboard &lt;/b&gt;on the Mouse Keys tab.&lt;br /&gt;Thanks to this blog post: &lt;a href="http://nancib.wordpress.com/2008/03/17/fixing-the-borked-numeric-keypad-in-ubuntu-hardy/"&gt;Fixing the borked numeric keypad in Ubuntu Hardy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="touchpad" name="touchpad"&gt;&lt;/a&gt;&lt;span style="border-bottom: 1px solid grey; font-weight: bold;"&gt;Touchpad&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Just doesn't works (completely disabled). A major regression from Gusty, where it was perfectly detected and functioning. No solution yet, just a workaround:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:monospace,courier new;font-size:85%;"  &gt;sudo rmmod psmouse &amp;amp;&amp;amp; sudo modprobe psmouse&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;this makes it work, kind of, since no advanced synaptic driver functions are enabled (like the scroll button, tap gestures, touch scrolling, etc).&lt;br /&gt;&lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/191024"&gt;https://bugs.launchpad.net/ubuntu/+source/linux/+bug/191024&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a id="firefox" name="firefox"&gt;&lt;/a&gt;&lt;span style="border-bottom: 1px solid grey; font-weight: bold;"&gt;Firefox 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Firefox 3 is great, but I was having speed issues with it, in that accessing a Flickr picture (for instance) would make it use 100% cpu and lockup. Since it was using my old FF2 profile, I created a new one (Alt+F2 -&gt; firefox -ProfileManager) and tried the same pages, and sure enough it worked fine. So I just imported the old bookmarks to this new profile, installed a few extensions and all was good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-5498587613198555842?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2008/04/dist-upgrade-hardy.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-8122819195102752298</guid><pubDate>Wed, 19 Mar 2008 02:34:00 +0000</pubDate><atom:updated>2008-03-18T19:59:33.057-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>free software</category><title>Votação Open Source Initiative</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Opensource.svg/180px-Opensource.svg.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 180px;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Opensource.svg/180px-Opensource.svg.png" alt="" border="0" /&gt;&lt;/a&gt;Votações serão abertas logo para o Executive Board na &lt;a href="http://opensource.org/"&gt;Open Source Initiative&lt;/a&gt; (OSI), principal entidade que promove o movimento.&lt;br /&gt;&lt;br /&gt;Quem está se candidatando é &lt;a href="http://en.wikipedia.org/wiki/Bruce_Perens"&gt;Bruce Perens&lt;/a&gt;, um dos fundadores originais da organização, lá nos tempos do Netscape, e ele precisa de votos da comunidade para poder entrar como Board Member agora.&lt;br /&gt;&lt;br /&gt;A preocupação atual dele é com a proliferação de licenças open source que são OSI-certified, especialmente porque a organização atualmente conta com diversos membros que estão mais ligados ao mundo corporativo do que à comunidade open source em si. Ele defende a redução desse número de licenças para 4, retirando a redundância atual (muitas licenças são parecidas ou iguais na prática) e facilitando a troca de código entre elas.&lt;br /&gt;&lt;br /&gt;Bruce Perens era do Debian, e criou a idéia de Open Source enquanto foi líder de projeto no Debian, defende a idéia de Software Livre e da GPLv3, além de estar ligado a diversos projetos importantes, como o &lt;a href="http://www.linuxbase.org/"&gt;Linux Standard Base&lt;/a&gt; (LSB), entre outras organizações voltadas ao suporte de projetos e difusão do Open Source e do Software Livre.&lt;br /&gt;&lt;br /&gt;Para votar, acesse &lt;a href="http://techp.org/p/7"&gt;http://techp.org/p/7&lt;/a&gt;, leia a mensagem e vote.  &lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-8122819195102752298?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2008/03/votao-open-source-initiative.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-1342489482313924357</guid><pubDate>Fri, 07 Mar 2008 05:07:00 +0000</pubDate><atom:updated>2008-03-06T21:39:21.042-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>opendocument</category><title>Aprovar ODF como norma ABNT</title><description>Vote a favor da aprovação do ODF como norma brasileira (ABNT) para padronização de documentos de escritório.&lt;br /&gt;&lt;br /&gt;Entre no &lt;a href="http://www.abntnet.com.br/consultanacional/projetodet.aspx?ProjetoID=1994"&gt;site de votação&lt;/a&gt;, faça o cadastro e vote.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aproveite para fazer campanha contra a aprovação do formato MS OpenXML como padrão ISO. Pode usar esse banner que montei no Inkscape, baseado no banner da &lt;a href="http://www.openxml.info/"&gt;openxml.info&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lkraider.eipper.com.br/img/ooxml_nao_apto.svg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 399px; height: 82px;" src="http://lkraider.eipper.com.br/img/ooxml_nao_apto.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div style="font-size: 78%; margin-top: -0.5em;"&gt;Clique na imagem para baixar a versão em SVG.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://creativecommons.org/licenses/by-sa/3.0/"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer; width: 80px; height: 15px;" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-1342489482313924357?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2008/03/aprovar-odf-como-norma-abnt.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-1966794574105288895</guid><pubDate>Fri, 12 Oct 2007 05:40:00 +0000</pubDate><atom:updated>2007-10-11T23:13:28.877-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>packaging</category><title>CowBuilder + CCache</title><description>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I'm a &lt;a href='http://www.getdeb.net'&gt;GetDeb&lt;/a&gt; contributor, building &lt;a href='http://www.ubuntu.com/getubuntu'&gt;Ubuntu&lt;/a&gt; packages of new applications. The build system I use is CowBuilder (pbuilder/cowdancer) plus CCache to speedup the process.&lt;br/&gt;&lt;br/&gt;Following is a simple guide to setup such an environment on an Ubuntu system.&lt;br/&gt;&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Install packages: &lt;blockquote style='font-family: courier new;'&gt;&lt;font color='#666666'&gt;&lt;em&gt;sudo apt-get install cowdancer ccache&lt;/em&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Edit &lt;span style='font-style: italic;'&gt;~/.pbuilderrc&lt;/span&gt; : &lt;blockquote style='font-family: courier new; font-size: 0.9em;'&gt;&lt;font color='#009900'&gt;## Overrides /etc/pbuilderrc&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color='#009900'&gt;# Default distribution&lt;/font&gt;&lt;br/&gt;DISTRIBUTION=feisty&lt;br/&gt;COMPONENTS=&lt;font color='#ff6600'&gt;"main restricted universe multiverse"&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color='#009900'&gt;# Repositories&lt;/font&gt;&lt;br/&gt;MIRRORSITE=http://br.archive.ubuntu.com/ubuntu&lt;br/&gt;&lt;br/&gt;&lt;font color='#009900'&gt;# Bash prompt inside pbuilder&lt;/font&gt;&lt;br/&gt;export debian_chroot=&lt;font color='#ff6600'&gt;"pbuild$$"&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color='#009900'&gt;# Faster dependency resolution&lt;/font&gt;&lt;br/&gt;PBUILDERSATISFYDEPENDSCMD=&lt;font color='#ff6600'&gt;"/usr/lib/pbuilder/pbuilder-satisfydepends-gdebi"&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color='#009900'&gt;# CCache setup&lt;/font&gt;&lt;br/&gt;export CCACHE_DIR=&lt;font color='#ff6600'&gt;"/var/cache/pbuilder/ccache"&lt;/font&gt;&lt;br/&gt;export PATH=&lt;font color='#ff6600'&gt;"/usr/lib/ccache:${PATH}"&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;EXTRAPACKAGES=ccache&lt;br/&gt;BINDMOUNTS=&lt;font color='#ff6600'&gt;"${CCACHE_DIR}"&lt;/font&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Create CCache directory (user 1234 is default inside cowbuilder): &lt;blockquote style='font-family: courier new;'&gt;&lt;font color='#666666'&gt;&lt;em&gt;sudo mkdir /var/cache/pbuilder/ccache&lt;br/&gt;sudo chown &lt;font color='#333399'&gt;1234&lt;/font&gt; /var/cache/pbuilder/ccache&lt;/em&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Create the build environment: &lt;blockquote style='font-family: courier new;'&gt;&lt;font color='#666666'&gt;&lt;em&gt;sudo cowbuilder --create --distribution feisty&lt;/em&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ol&gt;After the (rather long) download and install procedure you can start compiling your own packages like this:&lt;br/&gt;&lt;blockquote style='font-family: courier new;'&gt;&lt;font color='#666666'&gt;&lt;em&gt;sudo cowbuilder --build flv2mpeg4_0+svn3-1~getdeb1.dsc&lt;/em&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br/&gt;The resulting package can be found in &lt;em style='font-family: courier new;'&gt;/var/cache/pbuilder/result/&lt;/em&gt;&lt;i/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-1966794574105288895?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2007/10/cowbuilder-ccache.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6679308705681702513.post-8778589521903652355</guid><pubDate>Fri, 05 Oct 2007 04:10:00 +0000</pubDate><atom:updated>2007-10-11T16:20:45.387-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>software patents</category><title>Software Patents</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lkraider.eipper.com.br/blog/uploaded_images/patent-virtualdesktop-page2-791075.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://lkraider.eipper.com.br/blog/uploaded_images/patent-virtualdesktop-page2-791072.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Guess who patented that?&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Look closely at the icons.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;amp;Sect2=HITOFF&amp;amp;d=PG01&amp;amp;p=1&amp;amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.html&amp;amp;r=1&amp;amp;f=G&amp;amp;l=50&amp;amp;s1=%2220030189597%22.PGNR.&amp;amp;OS=DN/20030189597&amp;amp;RS=DN/20030189597"&gt;Guess again.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6679308705681702513-8778589521903652355?l=lkraider.eipper.com.br%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://lkraider.eipper.com.br/blog/2007/10/software-patents.html</link><author>noreply@blogger.com (LKRaider)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item></channel></rss>