<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Pognation</title>
	<atom:link href="http://pognation.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pognation.wordpress.com</link>
	<description>May the POG be with you!</description>
	<pubDate>Sun, 20 Jul 2008 17:27:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Começando no Erlang</title>
		<link>http://pognation.wordpress.com/2008/07/18/comecando-no-erlang/</link>
		<comments>http://pognation.wordpress.com/2008/07/18/comecando-no-erlang/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 18:45:18 +0000</pubDate>
		<dc:creator>linuxlich</dc:creator>
		
		<category><![CDATA[Erlang]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[erl]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/?p=31</guid>
		<description><![CDATA[Olá, sou o mais novo membro do Pognation (vulgo blog do Stallone xD) e vou começar a postar sobre minhas experiências malucas com linguagens, começando com ERLANG.
Segundo o sagrado Wikipedia, Erlang é uma linguagem de programação concorrente e funcional, dinâmicamente tipada. Originalmente desenvolvida pela Ericsson, liberada como opensource em 1998.
O paradigma funcional (Haskell, OCaml, F#, [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Olá, sou o mais novo membro do Pognation (vulgo blog do Stallone xD) e vou começar a postar sobre minhas experiências malucas com linguagens, começando com ERLANG.</p>
<p>Segundo o sagrado Wikipedia, Erlang é uma linguagem de programação concorrente e funcional, dinâmicamente tipada. Originalmente desenvolvida pela Ericsson, liberada como opensource em 1998.</p>
<p>O paradigma funcional (Haskell, OCaml, F#, só para citar alguns outros exemplos) é difícil de &#8220;digerir&#8221; para o desenvolvedor acostumado somente com Orientação a Objetos (no meu caso, Delphi, Ruby, C#, Java, Python). Mas como acredito que aprender uma linguagem nova me torna melhor em outras (know your enemy! Brincadeirinha ^^), vamos matar esse leão!</p>
<p>Ah, estou no Archlinux, então se virem para instalar o Erlang em suas distros favoritas :P</p>
<p>01 - Instaladno o Erlang<br />
<code># pacman -S erlang</code></p>
<p>Assim teremos o ambiente Erlang instalado e sua shell, o erl.</p>
<p>Abra a shell do Erlang:</p>
<p><code>$ erl<br />
<em>Erlang (BEAM) emulator version 5.6.3 [source] [smp:2] [async-threads:0] [hipe] [kernel-poll:false]<br />
Eshell V5.6.3  (abort with ^G)<br />
1&gt;</code></p>
<p>Vamos brincar com a calculadora:</p>
<p><code>1&gt; 4*4.<br />
<em>16<br />
2&gt;</code></p>
<p>OBS.: Nunca se esqueça do ponto(.) no final da expressão!</p>
<p>Ficar mofando no shell é maçante, então vamos criar um programa de exemplo (feche o erl com CTRL + C, depois A):</p>
<p>Abra seu editor favorito e crie o arquivo exemplo.erl com este conteúdo:</p>
<p><code>-module(exemplo).<br />
-export([double/1]).<br />
double(X) -&gt; 2*X.</code></p>
<p>Programação funcional é meio estranha, mas não é difícil entender que este programa dobra o valor de um número.</p>
<p>Agora abra o erl novamente, na mesma pasta do programa de teste e compile-o:</p>
<p><code>1&gt; c(exemplo).<br />
<em>{ok,exemplo}</code></p>
<p>E agora veja o resultado chamando o nosso &#8220;programa&#8221;:</p>
<p><code>2&gt; exemplo:double(10).<br />
<em>20<br />
3&gt;</code></p>
<p>Agora vamos explicar algumas coisas neste programa:</p>
<p><code>-module(exemplo).</code></p>
<p>Programas Erlang são criados em arquivos de texto com a extensão .erl, e o nome do arquivo deve ser igual ao nome do módulo(uma convenção semelhante ao Java). Quando usamos uma função em outro módulo, a sintaxe padrão é nome_do_módulo:nome_da_função(argumentos). Por isso temos:</p>
<p><code>2&gt; exemplo:double(10).</code></p>
<p>A segunda linha do programa nos informa que o módulo exemplo contém uma função chamada double que recebe um argumento(X em nosso exemplo) e que esta função pode ser chamada fora do módulo exemplo(algo como encapsulamento público):</p>
<p><code>-export([double/1]).</code></p>
<p>Tudo bem até aqui, certo? Respirem fundo para o exemplo clássico de programa que calcula o fatorial de um número:</p>
<p><code>fatorial.erl<br />
<em>-module(fatorial).<br />
-export([fac/1]).<br />
fac(1) -&gt; 1;<br />
fac(N) -&gt; N * fac(N - 1).</code></p>
<p>Compile o programa no erl:</p>
<p><code>1&gt; c(fatorial).<br />
<em>{ok,fatorial}</code></p>
<p>E faça um teste calculando o fatorial de 4:</p>
<p><code>2&gt; fatorial:fac(4).<br />
<em>24</code></p>
<p>Agora vamos às explicações:</p>
<p>A primeira linha de código da função:</p>
<p><code>fac(1) -&gt; 1;</code></p>
<p>Nos diz que o fatorial de 1 é 1, e o &#8220;;&#8221; indica que há mais &#8220;exemplos&#8221; desta função.</p>
<p>Na segunda e última linha:</p>
<p><code>fac(N) -&gt; N * fac(N-1).</code></p>
<p>Utilizamos a recursividade para calcular o fatorial do argumento que será passado à função, aliás, acostumem-se com isso, pois loops são todos feitos assim no Erlang! *head explodes*</p>
<p>Esse foi o primeiro de uma série de posts sobre minhas aventuras no paradigma funcional, estou aprendendo ainda, mas espero poder dividir isto com a galera esperta que frequenta o blog :)</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=31&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/07/18/comecando-no-erlang/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Django Pagination - Paginação fácil no Django</title>
		<link>http://pognation.wordpress.com/2008/07/18/django-pagination/</link>
		<comments>http://pognation.wordpress.com/2008/07/18/django-pagination/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 04:20:09 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[programação]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[django-pagination]]></category>

		<category><![CDATA[paginação no django]]></category>

		<category><![CDATA[pagination]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/?p=18</guid>
		<description><![CDATA[Estava eu, rodando pela internet no site da comunidade oficial do django quando me deparei com dois novos screencasts nesse site, e como sou bem curioso fui olhar.
O primeiro nem me chamou muito a atenção, a não ser pelo nível de organização do cara que é bastante interessante, porém no segundo ele apresentou uma aplicação [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Estava eu, rodando pela internet no <a href="http://www.djangoproject.com/community/">site da comunidade oficial do django</a> quando me deparei com dois novos screencasts <a href="http://www.eflorenzano.com/blog/post/first-two-django-screencasts">nesse site</a>, e como sou bem curioso fui olhar.</p>
<p>O primeiro nem me chamou muito a atenção, a não ser pelo nível de organização do cara que é bastante interessante, porém no segundo ele apresentou uma <a href="http://code.google.com/p/django-pagination/">aplicação</a> chamada django-pagination, que torna muito fácil fazer paginação utilizando o <a href="http://www.djangoproject.com/">framework django</a>.</p>
<p>A utilização da mesma se dá de maneira bem fácil e é sobre isso que vou discorrer neste artigo, de acordo com as alterações que o autor do artigo original citou no screencast.</p>
<p>01 - Instalando a django-pagination para ser usada em todos os projetos;</p>
<p>Como feito no primeiro screencast (que citei o site acima) eu instalei a django-pagination junto com o meu django e em seguida linkei para o site-packages para poder ser usada em qualquer projeto, vamos então aos passos:</p>
<p>a) Baixe o source do google-source pelo SVN:</p>
<p><code># cd /var/www/apps/python/<br />
svn checkout http://django-pagination.googlecode.com/svn/trunk/ django-pagination</code></p>
<p>Logo após terminar, registre no site-packages do seu sistema, como eu uso o Archlinux, e sendo ele um *nix que suporta bash&#8230; resolvi usar o script pylink citado pelo autor para fazê-lo de maneira mais prática:</p>
<p>b) Crie o script em um arquivo chamado pylink:</p>
<p><code>pylink<br />
#!/bin/bash<br />
ln -s `pwd`/$1 `python -c &#8220;from distutils.sysconfig import get_python_lib; print get_python_lib()&#8221;`/$1</code></p>
<p>c) Dê permissão para que os usuários possam utilizá-lo:</p>
<p><code># chmod 755 pylink</code></p>
<p>Aqui no Archlinux eu também linkei ele para uma pasta de binários locais que eu utilizo:</p>
<p><code># ln -s `pwd`/pylink /usr/local/bin/pylink</code></p>
<p>d) Agora é só utilizá-lo para adicionar o pagination no site-packages do seu sistema:</p>
<p><code> # cd django-pagination/<br />
# pylink pagination</code></p>
<p>Com o django-pagination instalado podemos então modifcar o projeto:</p>
<p>02 - Alterando o arquivo settings.py do projeto;</p>
<p>Primeiramente é preciso adicionar os TEMPLATES_CONTEXT_PROCESSORS logo embaixo das MIDDLEWARE_CLASSES no arquivo settings.py do projeto no qual estaremos instalando a aplicação django-pagination:</p>
<p><code>settings.py<br />
TEMPLATE_CONTEXT_PROCESSORS = (<br />
&#8220;django.core.context_processors.auth&#8221;,<br />
&#8220;django.core.context_processors.debug&#8221;,<br />
&#8220;django.core.context_processors.i18n&#8221;,<br />
&#8220;django.core.context_processors.media&#8221;,<br />
&#8220;django.core.context_processors.request&#8221;,<br />
)</code></p>
<p>Logo após também é necessário adicionar a aplicação pagination no seu settings.py:</p>
<p><code>settings.py<br />
INSTALLED_APPS = (<br />
&#8216;django.contrib.auth&#8217;,<br />
&#8216;django.contrib.contenttypes&#8217;,<br />
&#8216;django.contrib.sessions&#8217;,<br />
&#8216;django.contrib.sites&#8217;,<br />
&#8216;django.contrib.admin&#8217;,<br />
&#8216;twitter&#8217;,<br />
&#8216;pagination&#8217;,<br />
)</code></p>
<p>E, em seguida adicionar o middleware da aplicação também no arquivo settings.py do projeto:</p>
<p><code>settings.py<br />
MIDDLEWARE_CLASSES = (<br />
&#8216;django.middleware.common.CommonMiddleware&#8217;,<br />
&#8216;django.contrib.sessions.middleware.SessionMiddleware&#8217;,<br />
&#8216;django.contrib.auth.middleware.AuthenticationMiddleware&#8217;,<br />
&#8216;django.middleware.doc.XViewMiddleware&#8217;,<br />
&#8216;pagination.middleware.PaginationMiddleware&#8217;,<br />
)</code></p>
<p>Por incrível que pareça não é necessário alterar nada nos models nem nas views do projeto e simplesmente alterando o templete conseguimos implementar a paginação utilizando a django-pagination.</p>
<p>03 - Alterando o template:</p>
<p>As alterações no template consistem em:</p>
<p>a) Adicionar a tag {% load pagination_tags %} no topo do template:</p>
<p><code>public.html<br />
{% load pagination_tags %}<br />
&lt;html&gt;</code></p>
<p>b) Adicionar a tag {% autopaginate v n %} antes do loop que vai preencher a página. Onde v é a variável que contém os registros que vamos carregar no loop e n é o número de registros que queremos exibir por página, sendo o n padrão igual a 20. Segue um exemplo:</p>
<p><code>public.html<br />
{% autopaginate tweets 10 %}<br />
{% for tweet in tweets %}<br />
&lt;p&gt;&lt;b&gt;{{ tweet.user.username }}&lt;/b&gt; said: {{ tweet.message }}&lt;/p&gt;<br />
{% endfor %}</code></p>
<p>c) Adicionar a tag {% paginate %} logo após o loop, para aparecer o rodapé de navegação na página:</p>
<p><code>public.html<br />
{% autopaginate tweets 10 %}<br />
{% for tweet in tweets %}<br />
&lt;p&gt;&lt;b&gt;{{ tweet.user.username }}&lt;/b&gt; said: {{ tweet.message }}&lt;/p&gt;<br />
{% endfor %}<br />
{% paginate %}</code></p>
<p>E vualá, você terá 10 registros sendo exibidos por página&#8230;</p>
<p>Você pode se perguntar: Eu estou carregando todos os registros para somente apresentar 10 por vez, e vou recarregar toda vez que eu mudar de página? Isso vai ficar muito lento!</p>
<p>Exatamente, se você adicionar a tag {% autopaginate v n %} antes do seu loop só serão carregados os registros dá página em que você estará navegando. Então segundo as palavras do próprio autor: Você não precisa nem hesitar em não usar a django-pagination em seus projetos.</p>
<p>Obrigado pela atenção e até a próxima.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=18&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/07/18/django-pagination/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
		<item>
		<title>Desligando o Linux com o botão Power do Computador</title>
		<link>http://pognation.wordpress.com/2008/07/02/desligando-o-seu-linux-com-o-botao-power-do-computador/</link>
		<comments>http://pognation.wordpress.com/2008/07/02/desligando-o-seu-linux-com-o-botao-power-do-computador/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 01:50:29 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Archlinux]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[acpi]]></category>

		<category><![CDATA[acpi shutdown]]></category>

		<category><![CDATA[Arch]]></category>

		<category><![CDATA[power button]]></category>

		<category><![CDATA[shutdown button]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/?p=16</guid>
		<description><![CDATA[Essa já não é novidade nenhuma e eu tenho plena certeza de que há mais meios de configurar esta tarefa porém nenhuma mais POG do que esta.
Na realidade não tão POG, pois o nosso amigo Gnome utiliza-se da mesma técnica que o Paulo Matias usou para realizar esta simples tarefa. Então vamos à grande explicação [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Essa já não é novidade nenhuma e eu tenho plena certeza de que há mais meios de configurar esta tarefa porém nenhuma mais POG do que esta.</p>
<p>Na realidade não tão POG, pois o nosso amigo Gnome utiliza-se da mesma técnica que o <a href="http://matias.archlinux-br.org/">Paulo Matias</a> usou para realizar esta simples tarefa. Então vamos à grande explicação com um pouco de história.</p>
<p>Estava eu, sentado na frente do computador, quando tive a brilhante idéia de que meu Linux não tinha algum monitor do botão de power, e sempre conversando com o Paulo via Jabber ou IRC terminei falando pra ele, pois num teste recente pude conferir que o FreeBSD já vinha com essa opção ativada por padrão.</p>
<p>O que me assustou foi que ele já veio falando todos os métodos de como montar a tal e já tendo em mente todas as possíveis linguagens de programação (na mente dele Python e C) logo pensando no quesito de que o arquivo iria ficar aberto pelo tempo que o computador ficasse ligado, o Paulo levou em consideração criar o programa na linguagem C.</p>
<p>A técnica se baseia em ter um arquivo aberto sendo lido sempre para que quando você apertar o botão de liga/desliga do computador (não o do teclado) o mesmo acesse o arquivo e desligue o computador.</p>
<p>Eu realizei os testes no meu Archlinux, e como o Paulo também usa Archlinux, tudo ocorreu como esperado, vamos então a instalação e configuração de tal script.</p>
<p>A instalação dá-se de maneira bem simples, copie e cole o código abaixo em um arquivo com nome de acpi-power-button-monitor.c em qualquer lugar de seu computador (no meu caso eu copiei na ~/).</p>
<pre>
<code>acpi-power-button-monitor.c

/* ACPI power button monitor.
* Copyright (c) 2008 Paulo Matias
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
*   1. Redistributions of source code must retain the above copyright
*      notice, this list of conditions and the following disclaimer.
*   2. Redistributions in binary form must reproduce the above copyright
*      notice, this list of conditions and the following disclaimer in the
*      documentation and/or other materials provided with the distribution.
*   3. The name of the author may not be used to endorse or promote
*      products derived from this software without specific prior written
*      permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;assert.h&gt;

int main() {
        static char buf[128];
        FILE *fp;

        assert((fp = fopen("/proc/acpi/event", "r")));

        while(1) {
                fgets(buf, sizeof(buf), fp);
                if(!strcmp(strtok(buf, " "), "button/power")) {
                        system("halt");
                        break;
                }
        }

        fclose(fp);

        return 0;
}
</code></pre>
<p>Depois só precisamos compilar o código com o seguinte comando:</p>
<p><code>$ gcc -Os acpi-power-button-monitor.c -o acpi-power-button-monitor<br />
</code></p>
<p>E então copiar o arquivo compilado (programa já pronto para execução) para a pasta padrão dos programas da sua distribuição Linux. No caso do Archlinux esta pasta fica em /usr/bin:</p>
<p><code># mv acpi-power-button-monitor /usr/bin<br />
# chmod 755 /usr/bin/acpi-power-button-monitor<br />
</code></p>
<p>E depois também precisamos chamar este programa na inicialização do Linux, modificando no arquivo /etc/rc.local no caso do Archlinux:</p>
<p><code># vi /etc/rc.local<br />
</code></p>
<p><code>#!/bin/bash<br />
#<br />
# /etc/rc.local: Local multi-user startup script.<br />
#<br />
/usr/bin/acpi-power-button-monitor &amp;<br />
</code></p>
<p>Com o programa sendo inicializado juntamente com o Linux, podemos então simplesmente testá-lo a partir da próxima vez que ligarmos o computador.</p>
<p>Lembrando que o mesmo consome 380Bytes de memória ram, irrisório para os computadores de hoje.</p>
<p>Obrigado e até a próxima.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=16&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/07/02/desligando-o-seu-linux-com-o-botao-power-do-computador/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
		<item>
		<title>Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!</title>
		<link>http://pognation.wordpress.com/2008/06/24/ajude-a-sustentar-a-wikipedia-e-outros-projetos-sem-colocar-a-mao-no-bolso-e-concorra-a-um-eee-pc/</link>
		<comments>http://pognation.wordpress.com/2008/06/24/ajude-a-sustentar-a-wikipedia-e-outros-projetos-sem-colocar-a-mao-no-bolso-e-concorra-a-um-eee-pc/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 22:55:06 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Off Topic]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/?p=15</guid>
		<description><![CDATA[Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!
…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!</strong><br />
…e também a pen drives, card drives, camisetas geeks, livros e mais! O <a href="http://br-linux.org"></a>BR-Linux e o <a href="http://efetividade.net"></a>Efetividade lançaram uma <a href="http://br-linux.org/2008/campanha-wikipedia"></a>campanha 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 <a href="http://br-linux.org/2008/campanha-wikipedia"></a>participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=15&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/06/24/ajude-a-sustentar-a-wikipedia-e-outros-projetos-sem-colocar-a-mao-no-bolso-e-concorra-a-um-eee-pc/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
		<item>
		<title>AutoFS: Montando seus drivers automaticamente no Archlinux</title>
		<link>http://pognation.wordpress.com/2008/06/04/autofs-no-archlinux/</link>
		<comments>http://pognation.wordpress.com/2008/06/04/autofs-no-archlinux/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 16:48:59 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Archlinux]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[AutoFS]]></category>

		<category><![CDATA[autofs4]]></category>

		<category><![CDATA[desmontar drivers no archlinux]]></category>

		<category><![CDATA[montagem automatica de drivers no archlinux]]></category>

		<category><![CDATA[montar drivers no archlinux]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/?p=14</guid>
		<description><![CDATA[Assim como eu traduzi o artigo da wiki (http://wiki.archlinux.org/index.php/AutoFS_HowTo) para o português em (http://wiki.archlinux-br.org/Autofs) também vou adicionar um post aqui (para me lembrar em um futuro distante claramente) sobre o AutoFS.
O que é o AutoFS?
AutoFS é um pacote que suporta a montagem/desmontagem de drivers automaticamente, ou seja, ele monta e desmonta os devices automaticamente quando [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Assim como eu traduzi o artigo da wiki (<a href="http://wiki.archlinux.org/index.php/AutoFS_HowTo">http://wiki.archlinux.org/index.php/AutoFS_HowTo</a>) para o português em (<a href="http://wiki.archlinux-br.org/Autofs">http://wiki.archlinux-br.org/Autofs</a>) também vou adicionar um post aqui (para me lembrar em um futuro distante claramente) sobre o AutoFS.</p>
<p><strong>O que é o AutoFS?</strong><br />
AutoFS é um pacote que suporta a montagem/desmontagem de drivers automaticamente, ou seja, ele monta e desmonta os devices automaticamente quando você tenta acessá-los. Com ele é possível montar CDs, DVDs, disquetes, Pendrivers e mais alguns.</p>
<p><strong>Instalação e configuração:</strong><br />
Assim como a grande maioria dos pacotes do Archlinux, vamos utilizar o pacman para instalação:<br />
<code><br />
# pacman -Sy autofs<br />
</code></p>
<p><strong>01 - Edite o arquivo:</strong><br />
<code><br />
/etc/autofs/auto.master<br />
</code><br />
Apague todo o conteúdo do arquivo e adicione a seguinte linha:<br />
<code><br />
/media /etc/autofs/auto.media</code></p>
<p>Obs: Não esqueça de criar uma linha extra no arquivo (aperte ENTER depois da útlima palavra (media)). Se você não adicionar uma linha em branco depois da linha acima, a daemon do AutoFS não vai funcionar corretamente.</p>
<p>Se, no final deste artigo, o AutoFS não desmontar corretamente seus drivers, substitua a linha acima por esta:<br />
<code><br />
/media /etc/autofs/auto.media &#8211;timeout=3<br />
</code></p>
<p><strong>02 - Crie o arquivo /etc/autofs/auto.media com o seguinte conteúdo:</strong><br />
<code><br />
cdrom -fstype=iso9660,ro,nodev,nosuid :/dev/cdrom<br />
floppy -fstype=auto,async,nodev,nosuid,umask=000 :/dev/fl<br />
usbstick -fstype=auto,async,nodev,nosuid,umask=000 :/dev/sda1<br />
</code></p>
<p>Talvez você precise alterar os devices (isso varia de acordo com cada sistema). Se você está usando um driver de DVD-ROM, provavelmente vai precisar de suporte para UDF, sendo assim mude a linha do cd escrita acima para:<br />
<code><br />
cdrom -fstype=auto,ro,nodev,nosuid :/dev/cdrom<br />
</code></p>
<p><strong>03 - Crie o arquivo:</strong><br />
<code><br />
/etc/default/autofs<br />
</code><br />
e adicione a linha abaixo:<br />
<code><br />
TIMEOUT=1<br />
</code></p>
<p><strong>04 - Abra o arquivo:</strong><br />
<code><br />
/etc/conf.d/autofs<br />
</code><br />
e edite a linha daemonoptions:<br />
<code><br />
daemonoptions=&#8221;-g&#8221;<br />
</code></p>
<p><strong>05 - Crie a pasta /media:</strong><br />
<code><br />
# mkdir /media<br />
</code></p>
<p><strong>06 - Carregue o módulo autofs4:</strong><br />
<code><br />
# modprobe autofs4<br />
</code></p>
<p><strong>07 - Suba a daemon do autofs:</strong><br />
<code><br />
# /etc/rc.d/autofs start<br />
</code></p>
<p>Para inicializar normalmente a daemon em todo boot, adicione a mesma e o módulo nas suas respectivas arrays no arquivo /etc/rc.conf.<br />
Para mais dúvidas ou possíveis problemas, visite a wiki oficial do archlinux-br <a href="http://wiki.archlinux-br.org/Autofs">http://wiki.archlinux-br.org/Autofs</a>.</p>
<p>Até mais.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=14&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/06/04/autofs-no-archlinux/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
		<item>
		<title>Configurando o MPD no Archlinux com Sonata</title>
		<link>http://pognation.wordpress.com/2008/05/31/configurando-o-mpd-no-archlinux-com-sonata/</link>
		<comments>http://pognation.wordpress.com/2008/05/31/configurando-o-mpd-no-archlinux-com-sonata/#comments</comments>
		<pubDate>Sat, 31 May 2008 23:50:08 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Archlinux]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Arch]]></category>

		<category><![CDATA[MPD]]></category>

		<category><![CDATA[Music Player Daemon]]></category>

		<category><![CDATA[Sonata]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/?p=12</guid>
		<description><![CDATA[Eu acredito que assim como uma grande maioria das pessoas que gostam de ouvir músicas no computador eu também sofro sofria em manter um player aberto ali na tray pedindo para ser clicado e ficava me perguntando qual a próxima vez que eu iria apertar next pra ele tocar.
Procurando um pouco (não tanto quanto eu [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Eu acredito que assim como uma grande maioria das pessoas que gostam de ouvir músicas no computador eu também <span style="text-decoration:line-through;">sofro</span> sofria em manter um player aberto ali na tray pedindo para ser clicado e ficava me perguntando qual a próxima vez que eu iria apertar next pra ele tocar.</p>
<p>Procurando um pouco (não tanto quanto eu pensava porque eu já tinha uma &#8220;idéia&#8221; de qual programa usar, porém ainda não tinha &#8220;tomado coragem&#8221; para procourar como configurar o mesmo) terminei achando um jeito fácil de manipular as músicas e deixá-las tocando em background sem influênciar nada. Nem mesmo se o X estivesse ou não ligado. E de quebra ainda ganhei um servidor para ouvir música de onde eu estiver no planeta (mas não vou extender esse artigo à essas configurações).</p>
<p>O milagroso programa se chama MPD (Music Player Daemon) isso mesmo, uma daemon para tocar as músicas de acordo com sua playlist criada antecipadamente. O melhor de toda a história é que, assim como a grande maioria das daemons criadas para o Linux o MPD também tem vários clientes gráficos pra manipulá-lo.</p>
<p>Vou escrever aqui os passos que segui para instalação e configuração do MPD com o cliente Sonata que escolhi porque é feito em gtk (só uso o mesmo pra manipulação de playlists e por músicas para tocar).</p>
<p><strong>01 - Instalando os pacotes nescessários:</strong><br />
<code><br />
# pacman -S mpd sonata<br />
</code><br />
<strong>02 - Criando os arquivos de configuração:</strong></p>
<p>O arquivo principal para configuração do mpd é o /etc/mpd.conf e, quando instalamos o MDP, já vem um arquivo de configuração exemplo (/etc/mpd.conf.example), então podemos usar o mesmo de base:<br />
<code><br />
# cp /etc/mpd.conf.example /etc/mpd.conf<br />
# vi /etc/mpd.conf<br />
</code><br />
Agora com nosso arquivo de configuração já quase pronto podemos fazer as edições finais:</p>
<p>Descomente a linha:<br />
<code><br />
#music_directory &#8220;path_to_yoru_music_collection&#8221;<br />
</code><br />
E a edit por exemplo para:<br />
<code><br />
music_directory &#8220;~/.mpd&#8221;<br />
</code><br />
Nessa pasta é onde colocaremos todos os links simbólicos para as pastas onde realmente estão nosssas músicas. Ficando por exemplo assim:<br />
<code><br />
$ cd ~/.mpd<br />
$ ln -s ~/mp3 mp3<br />
</code><br />
Depois de adicionar todas as patas (somente as raízes) como links simbólicos dentro da pasta ~/.mpd, então podemos criar nosso banco de dados:<br />
<code><br />
# mpd &#8211;create-db<br />
</code><br />
O script de criação irá adicionar todas as músicas que estão linkadas simbolicamente dentro da pasta ~/.mpd.</p>
<p><strong>03 - Subindo a daemon e  chamando o Sonata:</strong><br />
<code><br />
# /etc/rc.d/mpd start<br />
$ sonata &amp;<br />
</code><br />
Após o Sonata estar aberto, ele se conectará automaticamente ao MPD, vá na aba Library, escolha quais arquivos (serão listados os links simbólicos como pastas) quer adiconar à playlist, botão direito com eles selecionados e ADD, logo após, vá na aba current (playlist das músicas que estão/irão tocando/tocar) e clique duas vezes em qualquer arquivo para começar.</p>
<p>Você também pode apertar com o botão direito na playlist e escolher as opções Repeat e Random para ele ficar tocando aleatóriamente(Random) todas as músicas da sua playlist repetidamente(Repeat).</p>
<p>Depois de começar a tocar você pode escolher se fica ou não com o Sonata aberto na tray, eu preferi fechar o meu e, independente disso, o MPD fica tocando as músicas em background, mesmo eu desligando o X. Perfeito não?</p>
<p>Até a próxima.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=12&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/05/31/configurando-o-mpd-no-archlinux-com-sonata/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
		<item>
		<title>Bug na ataulização da libgpm do Arch Linux</title>
		<link>http://pognation.wordpress.com/2008/05/31/bug-na-ataulizacao-da-libgpm/</link>
		<comments>http://pognation.wordpress.com/2008/05/31/bug-na-ataulizacao-da-libgpm/#comments</comments>
		<pubDate>Sat, 31 May 2008 17:27:07 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Archlinux]]></category>

		<category><![CDATA[Bugs]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Arch]]></category>

		<category><![CDATA[bug]]></category>

		<category><![CDATA[libgpm]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/?p=8</guid>
		<description><![CDATA[Bem, depois de um tempo afastado (motivos de força mair me fizeram sair do Archlinux e ir para algumas outras distros tentar a vida), e pelo menos motivo, quando voltei ao Archlinux, percebi que havia algumas modificações nos pacotes durante a instalação, e depois da mesma (instalação) ocorreram alguns bugs, um deles é recente e [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Bem, depois de um tempo afastado (motivos de força mair me fizeram sair do Archlinux e ir para algumas outras distros tentar a vida), e pelo menos motivo, quando voltei ao Archlinux, percebi que havia algumas modificações nos pacotes durante a instalação, e depois da mesma (instalação) ocorreram alguns bugs, um deles é recente e como não sei se ainda foi arrumado e aconteceu com mais pesosas, vou postar aqui.</p>
<p>O bug é um problema que ocorre durante a atualização da libgpm, e já vi bastante gente o &#8220;resolvendo&#8221; simplesmente colocando ela na blacklist dos pacotes à serem atualizados.</p>
<p>Porém entrando no canal oficial de suporte percebi que já haviam enfrentado o mesmo problema de uma maneira bem simples e de melhor resultado: reinstalando o pacote (mas sem reinstalar todas as dependencias), ficando assim o comando do nosso velho amigo pacman:<br />
<code><br />
# pacman -Rd gpm &amp;&amp; pacman -S gpm<br />
</code><br />
Depois de executar esse comando o pacman vai simplesmente remover e instalar novamente o pacote já atualizado que estará funcionando normalmente.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=8&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/05/31/bug-na-ataulizacao-da-libgpm/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
		<item>
		<title>Configurando cpufreq no Archlinux</title>
		<link>http://pognation.wordpress.com/2008/03/10/configurando-cpufreq-no-archlinux/</link>
		<comments>http://pognation.wordpress.com/2008/03/10/configurando-cpufreq-no-archlinux/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 13:43:57 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Archlinux]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[cpufreq]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/?p=7</guid>
		<description><![CDATA[Oi denovo. Talvez essa dica, para algumas, pessoas possa ser encarada como um &#8220;economizador de energia&#8221;, porém eu estou usando o cpufreq aqui no meu computador por motivos de preservar não só a energia, mas também o cpu.
Antigamente (desde antes de eu usar &#8220;duh&#8221;) quando era aberto algum site contendo animações em flash (muitos hoje [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Oi denovo. Talvez essa dica, para algumas, pessoas possa ser encarada como um &#8220;economizador de energia&#8221;, porém eu estou usando o cpufreq aqui no meu computador por motivos de preservar não só a energia, mas também o cpu.<br />
Antigamente (desde antes de eu usar &#8220;duh&#8221;) quando era aberto algum site contendo animações em flash (muitos hoje em dia) o cpu simplesmente enlouquecia, ficava com overloading demais (não me pessam para explicar o motivo), desde então procurei sobre algumas soluções, a primeira foi utilizar o firefox(GTK) ao invés do opera(QT) como browser para sites com flash, mas mesmo assim, ainda havia alguns que eu pude notar que ainda faziam o mesmo overloading (principalmente aqueles com propaganda em flash).<br />
Sendo assim, como eu NÃO queria usar nenhum anti-não-sei-o-que-lá-plugin resolvi o problema com o cpufreq, cuja configuração é bem fácil, sem complicações e rápida, só precisamos atentar para os módulos a serem subidos e qual o nosso processador.<br />
Primeiramente há uma vertente do cpufreq para a família de processadores AMD que se chama powerNOW, como eu possuo um processador da família intel, logo vou configurar o cpufreq para o mesmo, então vamos lá:</p>
<p><strong>1 - Download das DAEMONS:</strong><br />
Como há pacotes dentro do repositório oficial do Archlinux para as duas daemons qeu vamos utilizar, este processo se torna bastante simples através do gerenciador de pacotes pacman;<br />
<code><br />
# pamcan -Sy cpufreqd<br />
# pacman -Sy cpufrequtils<br />
</code><br />
<strong>2 - Upando os módulos necessários:</strong><br />
Para que o cpufreq trabalhe corretamente, precisamos subir alguns módulos, são eles:<br />
<code><br />
# modprobe acpi<br />
# modprobe acpi_cpufreq<br />
# modprobe cpufreq_stats<br />
# modprobe cpufreq_powersave<br />
# modprobe cpufreq_conservative<br />
# modprobe cpufreq_ondemand<br />
# modprobe cpufreq_userspace<br />
</code><br />
Nota: powersaver, conservative e ondemand são exatamente os governors que temos para escolher.</p>
<p><strong>3 - Verificando e configurando quais freqüências seu processador pode utilizar:</strong><br />
Para verificar as freqüências disponíveis para o seu processador utilize:<br />
<code><br />
$ cpufreq-info<br />
</code><br />
Atente para as seguintes linhas:<br />
<code><br />
hardware limits: 2.40 GHz - 3.00 GHz<br />
available frequency steps: 3.00 GHz, 2.40 GHz<br />
available cpufreq governors: userspace, ondemand, conservative, powersave, performance<br />
</code><br />
Como você pode notar, eu tenho que setar minhas configurações de acordo com a resposta do cpufreq, logo vamos editar o arquivo de configuração do mesmo:<br />
<code><br />
# vi /etc/conf.d/cpufreq<br />
</code><code><br />
governor=&#8221;ondemand&#8221;<br />
min_freq=&#8221;2.4GHz&#8221;<br />
max_freq=&#8221;3GHz&#8221;<br />
</code><br />
Aqui, setei as variáveis min_freq e max_feq de acordo com a reposta do cpufreq-info, como citado anteriormente, também setei o governor como ondemand, pois eu quero que o processador trabalhe de acordo com a necessidade.<br />
Caso você esteja usando um notebook, pode setar em powernow, ou ondemand, sendo a primeira para economizar energia.</p>
<p><strong>4 - Subindo as DAEMONS necessárias:</strong><br />
<code><br />
# /etc/rc.d/cpufreq<br />
# /etc/rc.d/cpufreqd<br />
</code><br />
Pronto, agora é só aproveitar.</p>
<p><strong>5 - Configurando o arquivo de inicialização do Archlinux (rc.conf)</strong><br />
Só para maior comodidade, vamos configurar o arquivo de inicialização, teremos que alterar doias arrays, o de MODULES e o de DAEMONS:<br />
<code><br />
# vi /etc/rc.conf</code></p>
<p>MODULES=(e100 mii slhc acpi acpi_cpufreq cpufreq_stats cpufreq_powersave cpufreq_conservative cpufreq_ondemand cpufreq_userspace snd-mixer-oss snd-pcm-oss snd-page-alloc snd-pcm snd-timer snd snd-hda-intel soundcore)</p>
<p>DAEMONS=(syslog-ng cpufreq cpufreqd dbus hal network !autofs !netfs !crond adsl sshd dnsmasq upnpd alsa fam firewall kdm)</p>
<p>Nota: Atente que há vários outros módulos subidos, porém terminei colando minhas arrays por motivo de ordem de chamada, configure o seu de acordo com o demonstrado acima.</p>
<p>Bom, é isso aí, tenho notado que não há mais overloading, e como estou usando simplesmente 600MHz abaixo da freqüência normal do meu computador, não notei tanta queda de processamento, mesmo assim, caso eu precise de mais, o cpufreq mesmo se encarrega de aumentar o mesmo.</p>
<p>Espero que aproveitem, até mais.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=7&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/03/10/configurando-cpufreq-no-archlinux/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
		<item>
		<title>Pós instalação do Archlinux para Servidores</title>
		<link>http://pognation.wordpress.com/2008/01/21/pos-instalacao-do-archlinux-para-servidores/</link>
		<comments>http://pognation.wordpress.com/2008/01/21/pos-instalacao-do-archlinux-para-servidores/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 05:31:21 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Archlinux]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[acesso remoto]]></category>

		<category><![CDATA[dnsmasq]]></category>

		<category><![CDATA[firewall]]></category>

		<category><![CDATA[iptables]]></category>

		<category><![CDATA[openssh]]></category>

		<category><![CDATA[pós instalação]]></category>

		<category><![CDATA[rc.conf]]></category>

		<category><![CDATA[roteador]]></category>

		<category><![CDATA[roteando]]></category>

		<category><![CDATA[router]]></category>

		<category><![CDATA[servidor]]></category>

		<category><![CDATA[ssh]]></category>

		<category><![CDATA[upnp]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/2008/01/21/pos-instalacao-do-archlinux-para-servidores/</guid>
		<description><![CDATA[Quando eu comecei esse blog eu fiquei pensando sobre o que escrever, e na realidade vi que existem poucas coisas que realmente são necessárias, uma delas (que era pra ser o primeiro post) era o de montar um servidor caseiro com usando a distribuição Archlinux, sendo que o mesmo só tivesse uma única placa de [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Quando eu comecei esse blog eu fiquei pensando sobre o que escrever, e na realidade vi que existem poucas coisas que realmente são necessárias, uma delas (que era pra ser o primeiro post) era o de montar um servidor caseiro com usando a distribuição Archlinux, sendo que o mesmo só tivesse uma única placa de rede :)</p>
<p>Neste post eu vou desconsiderar que quem terminou de instalar o Arch em seu computador tenha feito alguma modificação na instalação padrão do mesmo (ou seja base full com as configurações que ele sugere).</p>
<p><strong>1 - Configurando a internet</strong></p>
<p>Considerei para os determinados fins que minha rede seria totalmente colocada no switch ou seja, meu modem e os demais computadores estão todos ligados no switch, assim como o meu servidor Archlinux. Sendo assim podemos começar a configurar a internet no servidor:<br />
<code><br />
# pppoe-setup<br />
</code><br />
Aqui você precisará ler um pouco de inglês para seguir as instruções, ele irá pedir:<br />
<code><br />
a. Seu usuário (usuário da adsl)<br />
b. Seu servidor dns (caso seja automático, simplesmente escreva &#8220;server&#8221; sem as aspas e tecle )<br />
c. Sua senha (senha do usuário adsl)<br />
d. Método do Firewall, aqui escolha 2 (MASQUERADE)<br />
</code><br />
Depois de terminar de configurar seu discador simplesmente poderá discar com pppoe-start.</p>
<p>Obs: É de suma importância que você ligue o modem antes de todos os computadores espetados no switch, sendo o servidor Arclinux o seguinte, e somente depois que o mesmo estiver inteiramente ligado (e bootado), você poderá terminar de upar sua rede (sem ordem necessária).</p>
<p>Bom, levando em consideração que você obteve sucesso na conexão:<br />
<code><br />
# ping [qualquer host]<br />
</code><br />
Obs: Estou usando [ ] para indicar que pode ser qualquer host, porém precisará informar um host (ex: ping www.archlinux-br.org)</p>
<p>Agora que sua conexão já foi verificada (o ping retornou normalmente) poderemos então atualizar o nosso sistema:<br />
<code><br />
# pacman -Syu<br />
</code><br />
Entre com &#8220;y&#8221; como resposta para todas as perguntas e espere que o pacman atualize seu servidor. Logo após reinicie a máquina:<br />
<code><br />
# reboot<br />
</code><br />
<strong>2 - Adicionando o primeiro usuário</strong></p>
<p>Bom, até aqui nenhum segredo, simplesmente conectamos o nosso servidor na internet e fizemos com que ele se atualizasse toda a base de pacotes. Vamos então configurar então o nosso primeiro usuário:<br />
<code><br />
# adduser<br />
</code><br />
Novamente será apresentado um dialog interativo, siga os passos.</p>
<p><strong>3 - Configurando o teclado</strong></p>
<p>No  meu caso uso Brasil-ABNT2, creio que todos estejam usando o mesmo:<br />
<code><br />
# loadkeys /usr/share/Kbd/Keymaps/i386/qwerty/br-abnt2<br />
</code><br />
<strong>4 - Configurando o nosso sistema para que fique em português</strong></p>
<p>Obs: O pacman ainda que em seu funcionamento rotineiro esteja com o locale (configurações locais) funcionando perfeitamente, contém um bug (até quando eu estive fazendo esse artigo) que se você executar os comandos:<br />
<code><br />
# pacman -Sc<br />
</code><br />
ou<br />
<code><br />
# pacman -Scc<br />
</code><br />
Ele exibirá se você tem certeza que deseja deletar o cache, simplesmente escolhendo &#8220;s&#8221;, como informado, ele ignora, pois não tem o locale neste caso, logo se for escolher remover o cache do pacman, entre com a reposta em inglês, no caso &#8220;y&#8221;.</p>
<p>Configurações de regiões:<br />
<code><br />
# vi /etc/locale.gen<br />
</code><br />
Remova o comentário das linhas:<br />
<code><br />
pt_BR.UTF-8	UTF-8<br />
pt_BR		ISO-8859-1<br />
</code><br />
Salve o arquivo (no caso do vi :wq), e execute o comando:<br />
<code><br />
# locale-gen<br />
</code><br />
Ele irá gerar todas as configurações para que seu sistema esteja em pt-br. Edite o arquivo principal de configuração do sistema:<br />
<code><br />
# vi /etc/rc.conf<br />
</code><br />
Editem as seguintes linhas para que fiquem assim:<br />
<code><br />
locale = &#8220;pt_BR.UTF8&#8243;	   (UTF-8)<br />
timezone = &#8220;Sao_Paulo/America&#8221;<br />
hostname = &#8220;&#8221;<br />
keymap=&#8221;br-abnt2&#8243;<br />
</code><br />
Obs: Todas as aspas deverão ser usadas, e em  por convenção eu uso  como opção, ou seja,  seria alguma coisa opicional, ou então como precinar  seria apertar a tecla enter. Ou seja, em hostname, por exemplo entre com &#8220;archlinux&#8221;.</p>
<p>Agora reiniciaremos o computador:<br />
<code><br />
# reboot<br />
</code><br />
Bom, temos o computador com o sistema base atualizado e configurado para a nossa lingua, com o teclado funcionando também (muitos utilizam a configuração do teclado na instalação do sistemas, mas se você também for apressado igual eu, esqueceu de configurar :-))</p>
<p><strong>4 - Configurando acesso remoto seguro</strong></p>
<p>Vamos começar a instalar os programas para compartilhar a internet, antes de mais nada vamos instalar o openssh (para suporte remoto, e configurar o mesmo para que não seja tão &#8220;vulnerável&#8221; quanto a configuração padrão)<br />
<code><br />
# pacman -Sy openssh<br />
# vi /etc/ssh/sshd_config<br />
</code></p>
<p>Descomente e mude a linha:<br />
<code><br />
Port 22 p/ Port x (sendo x o número que você escolher, simplesmente interprete que precisaremos mudar a porta padrão, para evitar os bots que ficam escaneando os computadores, e precisaremos mais tarde, lembrar da mesma porta para podermos fazer acesso remoto em nosso servidor).<br />
</code><br />
Descomente também:<br />
<code><br />
LoginGraceTime 1m<br />
PermitRootLogin no<br />
StrictModes yes<br />
MaxAuthTries 2<br />
MaxStartupes 5:80:10<br />
PermitTunnel no<br />
</code></p>
<p>Salve e Feche. Com essas configurações (as opções são autoexplicativas) temos como fazer acesso remoto em nosso servidor sem precisar nos preocuparmos com os scan bots, vamos editar então mais algumas opções:<br />
<code><br />
#vi /etc/hosts.deny<br />
</code><br />
Comente a linha:<br />
<code><br />
ALL:ALL:DENY<br />
</code><br />
<strong>5 - Roteando a internet com o DnsMasq</strong></p>
<p>Pronto, agora já estamos com o nosso acesso remoto devidamente configurado. Seguiremos então para compartilhar a internet entre os outros computadores da rede:<br />
<code><br />
# pacman -Sy dnsmasq<br />
</code><br />
O pacman vai instalar o dnsmasq que usaremos como servidor proxy e dns.<br />
<code><br />
# vi /etc/dnsmasq.conf<br />
</code><br />
Vamos descomentar as linhas:<br />
<code><br />
domain-needed<br />
bogus-priv<br />
filterwin2k<br />
interface=eth0<br />
Primeira dhcp range (existem mais de uma linha de dhcp range no arquivo de configuração, descomente a primeira)<br />
</code></p>
<p>Salve e feche o arquivo, então editemos o outro:<br />
<code><br />
# vi /etc/sysclt.conf<br />
net.ipv4.ip_forwared=1<br />
kernel.syssrq=1<br />
tcp_syncookies=1<br />
</code><br />
Salve e feche também este arquivo, então teremos nossa internet sendo compartilhada, mas ainda não acabou, eu ainda vou configurar o firewall e realizar algumas modificações para que seu servidor seje totalmente automático, bastando somente ligá-lo para que o mesmo já esteja compartilhando a internet automaticamente.</p>
<p><strong>6 - Instalando o firewall</strong></p>
<p>Finalmente estamos quase terminando o servidor, só falta cuidar um pouco da parte de segurança do mesmo. Vamos então instalar um firewall.<br />
<code><br />
# pacman -Sy iptables<br />
# iptables-save<br />
# vi /etc/ppp/firewall-masq<br />
</code><br />
No arquivo de configuração do firewall, comente a seguinte linhas:<br />
<code><br />
iptables -t filter -P INPUT DROP<br />
</code><br />
Depois em baixo da linha &#8220;iptables -t filter -F adicione a seguinte linha:<br />
<code><br />
iptables -t filter -P FORWARD ACCEPT<br />
</code><br />
Comente também as seguintes linhas e seus respectivos grupos:<br />
<code><br />
Allow incoming SSH<br />
Log &amp; Deny the rest of the privileged ports<br />
Log &amp; Deny NFS<br />
Log &amp; Deny X11<br />
Log &amp; Deny XFS<br />
Deny TCP connection attempts<br />
</code><br />
Pronto, seu firewall está configurado. Vamos então instalar mais alguns serviços, (igd e upnp).</p>
<p><strong>7 - Instalando e configurando o servidor UPNP</strong></p>
<p>Primeiramente, quando escrevi este artigo não se encontravam os dois pacotes nos repositórios community, porém estavam os 2 no aur, logo vamos fazer o download dos mesmos:<br />
<code><br />
# wget http://aur.archlinux.org/packages/Linuxigd/Linuxigd.tar.gz<br />
# wget http://aur.archlinux.org/packages/Libupnp/Libupnp.tar.gz<br />
</code><br />
O processo de instalação no Archlinux sem o pacman também se dá de maneira bem simples, basta descompactar o pacote, gerar o .pkg (binário) e usar o pacman (ops) para instalar:<br />
<code><br />
# tar -zxvf Libupnp.tar.gz<br />
# cd Libupnp<br />
# makepkg<br />
# pacman -U Libupnp.pkg (o pacote gerado pelo makepkg)<br />
</code><code><br />
# tar -zxvf Linuxigd.tar.gz<br />
# cd Linuxigd<br />
# makepkg<br />
# pacman -U Linuxigd.pkg (o pacote gerado pelo makepkg)<br />
</code><br />
Agora com os 2 pacotes instalados, vamos então startar a daemon upnpd<br />
<code><br />
# /etc/rc.d/upnpd start<br />
</code><br />
Pronto, servido upnp rodando :)</p>
<p><strong>8 - Configurando arquivo de inicialização (parte de DAEMONS)</strong><br />
<code><br />
# vi /etc/rc.conf<br />
</code><br />
Deixe a lista de Daemons assim:<br />
<code><br />
(sys-log network !netfs !crond adsl sshd dnsmasq upnp)<br />
</code><br />
Agora só precisamos reiniciar o computador vuala, servidor upado e compartilhando a internet até com direito à upnp.</p>
<p>Espero que tenham gostado, até o próximo post.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=6&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2008/01/21/pos-instalacao-do-archlinux-para-servidores/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
		<item>
		<title>Montando um Ambiente de Desenvolvimento Python / Django no Archlinux</title>
		<link>http://pognation.wordpress.com/2007/12/17/montando-um-ambiente-de-desenvolvimento-python-django-no-archlinux/</link>
		<comments>http://pognation.wordpress.com/2007/12/17/montando-um-ambiente-de-desenvolvimento-python-django-no-archlinux/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 23:52:32 +0000</pubDate>
		<dc:creator>pognation</dc:creator>
		
		<category><![CDATA[Archlinux]]></category>

		<category><![CDATA[Django]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://pognation.wordpress.com/2007/12/17/montando-um-ambiente-de-desenvolvimento-python-django-no-archlinux/</guid>
		<description><![CDATA[Aloha geral!
Quem diria, um pouco de correria e deixei o blog um de lado, nada de complicações nas instlações do Archlinux, nada legal sobre o que postar&#8230;
Acredito que com o passar do tempo meus posts terminem sendo cada vez menos &#8220;necessários&#8221; por assim dizer&#8230;
Há mais ou menos um mes, isso mesmo um mes&#8230; comecei a [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Aloha geral!</p>
<p>Quem diria, um pouco de correria e deixei o blog um de lado, nada de complicações nas instlações do Archlinux, nada legal sobre o que postar&#8230;<br />
Acredito que com o passar do tempo meus posts terminem sendo cada vez menos &#8220;necessários&#8221; por assim dizer&#8230;</p>
<p>Há mais ou menos um mes, isso mesmo um mes&#8230; comecei a criar interesse por um framework web escrito em Python, cujo nome é Django&#8230; Desde então juntando material e estudando, estudando e tentando aprender alguma coisa, quando no final resolvi ajudar o pessoal do www.djangobrasil.org e fui instalar as coisas necessárias no meu Arch.<br />
Foi quando eu vi que no repositório, assim como eu também faria, só tinha a versão stable do Django (que enquanto este artigo foi escrito, encontrava-se na versão 0.96) e para rodar o site do djangobrasil eu precisaria instalar a versão 0.97.</p>
<p>Tudo bem, fui começar a ler a documentação e achei bem simples, a parte da instlação à qual iria fazer seria sem o Apache e o modpython, pois eu ainda estaria só brincando e poderia usar o servidor que vem junto com o Django. Então fui até o www.djangobrasil.org e cliquei no Guia de Instalação (http://www.djangobrasil.org/documentacao/instalar/) foi então que, seguindo ao pé da letra para isntalar a versão 0.97 (lembra-se que a 0.96 já estava no pacman?) eu me deparei com o problema de que não conseguia instalar seguindo o tutorial.</p>
<p>Bom, como as tentativas/erros e bastante (digo bastante porque foi bastante memso) persistência, consegui instalar o django, sem utilizar o setup.py (para quem já leu o tutorial oficial de instalação, sabe do que estou falando), e então que, resolvi criar este pequeno artigo de como montar um ambiente de desenvolvimento Python/Django no seu Archilinux, espero que com o passar do tempo os blogs da comunidade aumentem e terminem fazendo mais tutoriais de instalação.<br />
Então, sem mais demora, vamos ao processo de instalação:</p>
<p><strong>1 - Instalando  e configurando o Subversion:</strong></p>
<p>Como está descrito no site do projeto (www.djangoproject.com) o Django está hospedado em um servidor Subversion, logo precisaremos dele para manipular baixar o Django. Instalando assim no Arch:<br />
<code><br />
# pacman -S subversion<br />
</code><br />
Graças ao bom e velho Pacman esse nosso trabalho fica bem fácil&#8230; Agora precisaremos de um pouco de configuração, isso fica à quesito de cada um, porém como o meu interesse era ajudar o projeto djangobrasil, eu resolvi configurar o meu Subversion como eles indicam na página de contribuição do projeto (http://code.google.com/p/djangobrasil/wiki/Contribuindo) vamos então supor que você terminou de instalar o seu subversion e gerar/editar o arquivo de configuração:<br />
<code><br />
$ svn help<br />
$ vi ~/.subversion/config<br />
</code><br />
Vou colar só os pedaços que eu editei:<br />
<code><br />
[miscellany]<br />
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.pyc *.pyo *.project *.pydevproject<br />
enable-auto-props = yes<br />
[auto-props]<br />
*.py = svn:eol-style=native<br />
*.html = snv:eol-style=native<br />
*.css = svn:eol-style=native<br />
*.xml = svn:eol-style=native<br />
*.json = svn:eol-style=native<br />
*.c = svn:eol-style=native<br />
*.cpp = svn:eol-style=native<br />
*.h = svn:eol-style=native<br />
*.sh = svn:eol-style=native;svn:executable<br />
*.txt = svn:eol-style=native<br />
*.png = svn:mime-type=image/png<br />
*.jpg = svn:mime-type=image/jpeg<br />
Makefile = svn:eol-style=native<br />
</code><br />
As outras linhas eu simplesmente deixei como estavam (comentadas).</p>
<p>Agora com o nosso subversion devidamente instalado e configurado, podemos então começar a baixar o que nos interessa, voltando ao Guia de instalação:</p>
<p><strong>2 - Instalando o Python 2.5</strong><br />
<code><br />
# pacman -S python<br />
</code><br />
Isso mesmo, com o pacman facilitando a nossa vida todos os Archeiros simplesmente só tem o trabalho de ver o mesmo baixando e instalando tudo automaticamente.</p>
<p><strong>3 - Instalando e configurando um banco de dados:</strong></p>
<p>Nesta parte fica a par de quem vai instalar o banco, como eu estou só começando no django então eu escolhi instalar o bom e velho conhecido de aplicações pequenas (sqlite), temos então a versão 3 no pacman também, logo:<br />
<code><br />
# pacman -S sqlite3<br />
</code><br />
<strong>4 - Baixando e instalando o django-trunk a partir do repositório Subversion:</strong></p>
<p>Aqui, assim como no item acima podemos colocar a pasta do projeto em qualquer lugar no nosso sistema, como eu tive em mente de que na realidade, não deixa de ser uma cópia de trabalho do projeto django, resolvi coloca-lo na minha home mesmo.<br />
<code><br />
$ cd<br />
$ svn co http://code.djangoproject.com/svn/django/trunk django-trunk<br />
</code><br />
O subversion irá baixar o django inteiro para nós, simplesmente precisamos esperar equanto o mesmo é baixado.<br />
Vamos então instalar ele sem a necessidade de utilizar (isso mesmo, como eu creio que mais pra frente será feita a versão oficial do django a 0.97, então poderei baixar a partir do pacman, enquanto isso não acontece eu simplesmente evitei de instalar pelo arquivo setup.py por pura e simplesmente paranóia). Vamos então simplesmente linkar (diferente do modo de como eu vi no Guia de instalação) a pasta django de dentro de django-trunk (/home/user/django-trunk/django), para onde foi instalado o nosso Python (/usr/lib/python2.5/site-packages), ficando o comando assim:<br />
<code><br />
# mkdir /usr/lib/python2.5/site-packages<br />
# ln -s /home/usr/django-trunk/django /usr/lib/python2.5/site-packages/django<br />
</code><br />
Pronto agora é só abrirmos o python para testar:<br />
<code><br />
$ python<br />
$ &gt;&gt; import django<br />
</code><br />
Se não retornar nenhum erro, é porque tudo ocorreu como esperado.</p>
<p><strong>5 - IDE</strong></p>
<p>Aqui fica aquele velho ditado, sempre usando o editor de texto de qual gostamos, como eu termino usando o bom e velho emacs (com o python-mode), não tenho porque divulgar o mesmo.. e causar algum flamewar com os VI users&#8230; Então instale os que vocês quiserem.</p>
<p>Espero que tenha ajudado aos Archers que querem começar a desenvolver em Django a instalar a versão trunk, não tem complicação nenhuma, só a de que no Guia de instlaação da página oficial está considerando que você esteja usando Ubuntu/Debian.</p>
<p>Obrigado, e até a próxima.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/pognation.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/pognation.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pognation.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pognation.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pognation.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pognation.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pognation.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pognation.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pognation.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pognation.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pognation.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pognation.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pognation.wordpress.com&blog=1960777&post=5&subd=pognation&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://pognation.wordpress.com/2007/12/17/montando-um-ambiente-de-desenvolvimento-python-django-no-archlinux/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/pognation-128.jpg" medium="image">
			<media:title type="html">pognation</media:title>
		</media:content>
	</item>
	</channel>
</rss>