Workshop Produtividade Web 2.0 - Equipes de desenvolvimento de sites produtivas com ferramentas ágeis e padrões web Programadores desanimados? Desmotivados? Sem vontade de cantar uma bela canção?

Ajude o pequeno geek

03/05/2008 21:53 por Elcio

Meu sobrinho Josué, de oito anos de idade, é um pequeno nerd da tecnologia. Vive conectado, ou ajuntando pedaços de PCs velhos tentando inventar a máquina que vai revolucionar o mundo. Tem um caderno de desenhos cheio de projetos de robôs, notebooks futuristas e outros gadgets.

Recentemente ele descobriu o blogging. Abriu um blog no blogspot, o tecnologia-plugado, onde está fazendo clipping de notícias que ele acha interessante. Se você tiver um tempinho e quiser fazer feliz o pequeno nerd, faça uma visita ao blog e deixe um comentário. Valeu!

Adicionar esta notícia no Linkk

Não entre em pânico

31/03/2008 14:03 por Elcio

Você está usando um terminal conectado a um servidor Unix quando as coisas começam a se comportar de maneira estranha. Depois de algum tempo você descobre o problema. Vai até a mesa de um programador novato e descobre que ele, como root, digitou:

# cd
# rm -rf *

O sujeito percebeu a burrada antes de apagar os diretórios /usr e /users. Nesse caso, /users continha os diretórios home. Mas todo o resto do sistema se foi, incluindo /dev, /etc e /bin.

O que você faria? Para complicar as coisas, esta história aconteceu há um bocado de tempo, numa VAX. Ou seja, não era só fazer um boot com um live-CD, fazer um backup dos dados dos usuários e reinstalar o sistema.

O que fazer? Não entrar em pânico. Uma história e tanto.

Adicionar esta notícia no Linkk

Dicas de shell: Greg's Wiki Bash Pitfalls

26/03/2008 10:12 por Elcio

No Greg's Wiki você encontra os Bash Pitfalls, uma lista de problemas comuns entre os programadores bash iniciantes.

Encontrei vários dos meus erros comuns lá. E aprendi um bocado.

Adicionar esta notícia no Linkk

FriendFeed é diferente do Wasabi

21/03/2008 13:57 por Elcio

O Tiago Dória gostou da idéia de se criar um feed pessoal. Em seguida o Cris Dias discordou dele. Os argumentos do Cris são interessantes, ele coloca que a idéia já existia com o Wasabi, que teve o seu momento mas hoje não tem nenhuma relevância.

Eu, porém, vejo uma diferença fundamental entre o Wasabi e serviços como o FriendFeed. Quando me cadastrei no Wasabi, o fiz todo empolgado. Mas eu perdi o interesse logo que percebi que não poderia acompanhar as novidades do Wasabi no Google Reader. Nesse aspecto, o FriendFeed é justamente o que eu queria.

Por outro lado, é claro que eu não vou assinar o feed pessoal de todo mundo cujo blog eu leio. Não me interessam em nada as fotos de fim-de-semana daquele sujeito cujo blog sobre Linux eu acompanho. Nesse aspecto, concordo com o Fabricio Zuardi. Por outro lado, acharia muito interessante o feed pessoal de amigos mais próximos, colegas de escritório, familiares e pessoas que admiro muito. E quando um amigo criar uma conta no Flickr, eu não vou ter trabalho nenhum para ver as fotos.

Bom, para quem quiser, tenho meu feed pessoal no FriendFeed. Cuidado, você vai receber tudo o que eu publico, sobre todos os assuntos!

Adicionar esta notícia no Linkk

Quem você quer ver no 10º ELPI

19/03/2008 14:58 por Elcio

Ano passado tive o privilégio de palestrar nos Encontros Locaweb de Profissionais de Internet. Foi muito divertido. Este ano, olha que interessante, a Locaweb está perguntando quem você quer ver e sobre que temas quer ouvir. Dê sua opinião.

Adicionar esta notícia no Linkk

Intrusividade Windows

17/03/2008 10:43 por Elcio

Esses dias precisei desenvolver alguma coisa em Windows para um cliente. Tenho algumas licensas de Windows aqui para essas emergências, então resolvi instalar o Windows XP no VMWare. Diferente da instalação do meu sistema operacional predileto, que está pronto para ser usado em menos de dez minutos, instalar o Windows é uma tarefa bastante dolorosa, que envolve um instalador chato e demorado, ativação, instalação de anti-vírus, anti-spyware, e aplicações básicas como um leitor de PDF, um editor de código, um pacote de escritório e etc.

Tudo isso me faz morrer de medo de ter que instalar meu Windows duas vezes. No dia seguinte ao da instalação desse Windows, o que incluiu a instalação do Flash, do Captivate, do Acrobat e uma porção de outras coisas, uma pessoa me ligou para lembrar de um compromisso. Resolvi desligar o computador e sair imediatamente para não me atrasar. Quando mandei a máquina desligar, veja a simpática mensagem que o Windows me mostrou:

Instalando atualização 13 de 85 (Windows XP)

Que ficava alternando com essa outra:

Não desligue ou desconecte o computador; ele será desligado automaticamente. (Windows XP)

Foram eternos 43 minutos nisso. E eu morrendo de medo de desligar e estragar minha instalação do Windows, esperei. Pode ser que eu esteja enganado, mas não me lembro de o sistema ter me perguntando se eu gostaria de instalar nesse momento as atualizações que ele baixou, ou de sequer me avisar antes que minha máquina precisava permanecer ligada.

Perdi meu compromisso e passei muita, muita raiva. Sistema operacional simpático.

Adicionar esta notícia no Linkk

Ganhe um curso da Visie no Profissão Web

10/03/2008 21:14 por Elcio

Profissão Web faz 1 ano e quer presentear você!

Olha que legal, o Thiago vai dar presentes às pessoas que participarem de sua promoção, e para o primeiro colocado ele escolheu dar como presente um curso online de acessibilidade da Visie. Lisonjeado.

Parabéns Thiago pelo primeiro aniversário do Profissão Web.

Adicionar esta notícia no Linkk

Photoshop agora roda bem no Linux

20/02/2008 21:00 por Elcio

Google Sponsors Wine Improvements

O Google usa o Wine para oferecer o Picasa, seu gerenciador de fotos, para usuários de Linux. Para isso, o Google financiou o pessoal da CodeWeavers, que desenvolve o Wine. Wine é uma implementação da API do Windows para Linux, muito útil para usuários que querem migrar para Linux mas ainda dependem daquele software que só roda em Windows. E o software que mais impede gente de migrar para Linux é o Photoshop.

Impedia. O Google também pagou à CodeWeavers para melhorar o suporte ao Photoshop no Wine. De quebra, as melhorias feitas ainda ajudaram a rodar uma porção de outros softwares no Linux, entre eles o Flash. Meu amigo DGMike está agora um passo mais perto da migração total ;-)

O que eu fico me perguntando é porque o Google fez isso? Para diminuir seu custo com licenças de Windows? Ou para jogar sua pá de terra na Microsoft?

De qualquer maneira, é um exemplo que mostra bem o que é software livre. Software livre não é necessariamente software grátis. Nesse caso, o Google pagou os custos de desenvolvimento. E o mundo inteiro vai ser beneficiado, sem que você precise pagar de novo por algo que já foi desenvolvido.

Adicionar esta notícia no Linkk

Dicas de shell: testes unitários e commit

12/02/2008 9:55 por Elcio

Todas as tarefas relacionadas a contrução, teste e publicação de um desenvolvimento de software[bb] devem ser automatizadas o máximo possível. Escrever software é interar. Você escreve e testa, escreve e testa, escreve e testa dezenas, às vezes centenas de vezes por dia. As tarefas relacionadas a testar o software, de maneira especial, merecem a automatização que for possível dar a elas. Convenhamos, testar é algo muito chato. E se for complicado testar, será uma tentação irresistível para o programador entregar seu código sem testar adequadamente.

Hoje vamos construir um script de commit no subversion[bb] que, antes de enviar o código, executa todos os testes unitários. Vou trabalhar com Python[bb], mas você não deve ter dificuldades em adaptar isso para a sua linguagem de programação predileta.

A primeira coisa importante é que você entenda que todo script executado no shell tem um valor de retorno. Esse valor é retornado pelo comando, e também armazenado na variável especial $?. Veja estes exemplos:

$ echo $?
2
$ ls test
test
$ echo $?
0
$ if ls test2;then echo O arquivo existe.;fi
ls: test2: Arquivo ou diretório não encontrado
$ if ls test;then echo O arquivo existe.;fi
test
O arquivo existe.
$ if ! ls test;then echo O arquivo não existe.;fi
test
$ if ! ls test2;then echo O arquivo não existe.;fi
ls: test2: Arquivo ou diretório não encontrado
O arquivo não existe.

Os testes foram construídos usando o módulo para testes unitários unittest do Python. Cada teste está, no diretório do projeto, junto do arquivo de código que ele testa. E o nome dos arquivos de teste sempre começam com "test". Assim, o arquivo connections.py é testado pelo testconnections.py.

Veja então nosso shell script, salvo com o nome de commit, que será usado durante todo o projeto para rodar os testes antes do commit:

#!/bin/bash
 
# Começamos com um contador de erros em zero
erros=0
 
# Encontramos cada um dos testes
for i in `find -name "test*.py"`;do
echo TESTANDO: $i
echo
 
# Se o teste falhar, incrementamos a variável erros
if ! python $i;then
erros=$(($erros + 1))
fi
 
echo
done
 
# Se os testes passaram, fazemos commit, caso contrário
# avisamos o usuário
if [ $erros == 0 ];then
# Esse $* passa os parâmetros de linha de comando recebidos para o svn.
svn ci $*
else
echo Testes falharam, commit cancelado.
fi

Tendo feito isso, e colocando esse script em /usr/local/bin, o programador vai trocar svn ci por commit, e os testes serão feitos automaticamente antes do commit. Ele também pode passar parâmetros do svn para o script:

commit -m "Criei o link espacial com saturno"

Adicionar esta notícia no Linkk

Divirta-se: Puzzles do Wendel

23/01/2008 13:26 por Elcio

Exercício de lógica. Esses Puzzles do Wendel me fizeram perder um tempão! Boa diversão, depois conte para a gente aqui nos comentários até onde você foi. IMPORTANTE: não escreva as respostas, senão você estraga a brincadeira dos outros.

Adicionar esta notícia no Linkk

Editores de código para Linux

21/01/2008 12:05 por Elcio

Nosso amigo pergunta por e-mail:

Boa Noite Elcio, Me desculpa me fazer essa pergunta que varias pessoas ja dever ter feito é que pesquisei e não encontrei, a pergunta é qual editores você indica para linux?
uso o editplus no windows.

Como a resposta deve servir para mais gente, publico aqui.

Eu uso o Vim. Mas, como eu costumo dizer para o pessoal aqui, Vim não é para qualquer um. Se você quer aprender, um bom lugar para começar é a página do Aurélio sobre Vim (VI). Mas eu já vou avisando, embora seja muito produtivo e eu esteja completamente viciado nele, Vim não é fácil. É um editor modal, em interface texto, e leva algum tempo para aprender a usá-lo.

Para quem me pergunta sobre editores no Linux, costumo recomendar o Kate.

Kate

Entre os recursos legais do Kate estão o auto-completar, que funciona de um jeito bem diferente da maioria dos editores lendo o texto que você já digitou, a integração com o terminal, a possibilidade de navegar e editar arquivos diretamente via FTP ou SSH, os trechos de código, a seleção de bloco, um excelente replace com expressões regulares.

Se você usa Ubuntu, instale também os pacotes kate-plugins e konq-plugins. Se quiser o Kate em português instale também o kde-i18n-ptbr. Para configurá-lo, vá em Configurações, Configurar Kate. Eu costumo usar assim:

  • Sessões, Comportamento ao Iniciar o Aplicativo: Iniciar uma nova sessão
  • Seletor de Arquivos: Eu adiciono o botão recarregar à lista da direita
  • Plug-ins: Eu ligo os plugins "Complementação XML", "Extensão da Barra de Abas", "Ferramentas HTML", "Filtro", "Inserir Comando", "Navegação Python" e "Trechos de Código".
  • Aparência: ligo "Mostrar o Número de Linhas"
  • Editando: ligo o "Inserir espaços ao invés de tabs" e coloco "Largura da tab" como 2. Também marco o "Remover espaços finais".
  • Identação: coloco "Modo de Identação" em "Estilo Python" e marco "Usar espaços para identar, ao invés de tabs"
  • Abrir/Salvar: ligo "Remover espaços finais"
  • Plug-ins: ligo "Busca Incremental" e "Complementação de Palavras". No segundo, clico em "Configurar…" e coloco a quantidade de caracteres em 2.

No "Navegador para Sistema de Arquivos" você vai ver uma estrelinha, que te dá acesso aos favoritos do Kate. Para adicionar um servidor FTP, adicione um favorito assim:

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

Para um servidor SSH, a sintaxe é a mesma, trocando "ftp://" por "sftp://".

Entre os recursos mais legais do Kate está a integração com comandos shell. Digamos que você queira ordenar determinada lista em seu código. Você seleciona a lista, digita CTRL+\, escreve o comando "find" e dá OK. Bom, você já entendeu, no lugar de find poderia ir qualquer comando do Linux, mesmo uma combinação deles.

Outros Editores

Outros editores que eu costumo recomendar são:

  • Gedit: o editor padrão do Gnome, parece um bloco de notas não é? Então instale o pacote gedit-plugins, depois abra o gedit e vá em Editar, Preferências, Plug-ins. Divirta-se.
  • Komodo: se você não consegue viver sem auto-completar, checagem de sintaxe, tutoriais e assistentes, preview de HTML, macros e muitos botôes e barras de ferramentas, o Komodo é o seu editor. As marcos são escritas em Javascript e você pode criar extensões XPI com XUL, igualzinho ao Firefox. Além disso, o Komodo é multiplataforma. Você pode ter seu editor, com suas macros e extensões, funcionando igualzinho em Windows, Linux e Mac.

Naturalmente, além desses existem dezenas de boas opções de editor de código para Linux. Se você tem alguma dica muito boa, não deixe de comentar.

Adicionar esta notícia no Linkk

Dicas de shell: find

08/01/2008 10:33 por Elcio

Um dos comandos mais úteis no gerenciamento de arquivos no terminal do Linux[bb] é o comando find. Ele permite realizar e automatizar tarefas que na interface gráfica levariam muito tempo. Executar o comando find sem argumentos faz com que ele liste todos os arquivos do diretório atual e de seus subdiretórios.

Para procurar dentro de um diretório específico, informe o caminho ao find:

find caminho/onde/procurar

O find recebe uma série de parâmetros úteis. É bom lembrar que o diretório de procura precisa ser sempre o primeiro parâmetro. Assim, para procurar por todos os arquivos de extensão bak no diretório atual, faça:

find -name "*.bak"

E para procurar dentro de um diretório específico, use:

find caminho/onde/procurar -name "*.bak"

O find permite a você construir uma série de expressões de procura e operação com os arquivos, algumas bastante complicadas (e poderosas). Vamos dar uma olhada em algumas bem simples. Para apagar os arquivos, use -delete. Então, para apagar todos os arquivos bak no diretório atual e em seus subdiretórios, faça:

find -name "*.bak" -delete

Você também pode passar parâmetros numéricos, que funcionam segundo a seguinte lógica:

  • Um número sozinho significa exatamente aquele número, por exemplo: 3
  • Com um sinal de mais, significa maior do que aquele número: +3
  • Com um sinal de menos, significa menor do que aquele número: -3

Para ver uma lista dos arquivos modificados há menos de três dias, faça:

find -mtime -3

Para ver os que foram modificados a mais de três dias, inverta o sinal:

find -mtime +3

As expressões mais comuns para uso com tempo são:

  • -amin - quando o arquivo foi acessado, em minutos.
  • -atime - quando o arquivo foi acessado, em dias.
  • -cmin - quando o arquivo foi criado, em minutos.
  • -ctime - quando o arquivo foi criado, em dias.
  • -mmin - quando o arquivo foi modificado, em minutos.
  • -mtime - quando o arquivo foi modificado, em dias.

Outras expressões bastante úteis são:

  • -regex: funciona como -name, mas recebe uma expressão regular[bb].
  • -size: filtra pelo tamanho do arquivo. É um número seguido de uma letra. As mais comuns são: c - bytes, k - kilobytes, M - megabytes e G - gigabytes.

Por fim, você também pode mandar o find executar operações nos arquivos. Foi o que fizemos no início, quando usamos -delete para apagar arquivos. Dentre as operações, minha predileta é a -exec.

Quando você coloca -exec numa linha de comando do find, tudo o que vem depois até o próximo ";" é entendido pelo find como um comando, que ele vai executar para cada um dos arquivos encontrados. É obrigatório colocar ";" para terminar o comando, se você se esquecer vai receber o seguinte erro:

$ find -exec ls
find: faltando argumento para `-exec'

Onde você quiser passar para seu comando o nome do arquivo, use {}. Por exemplo, para tirar a permissões de execução de todos os arquivos TXT na busca, você pode fazer:

find -name "*.txt" -exec chmod -x {} ";"

Isso vai executar, para cada um dos arquivos encontrados:

chmod -x ARQUIVO ;

O último truque que eu gostaria que você guardasse na manga é que você pode combinar o find com o excelente comando grep. Grep faz buscas dentro de um arquivo. Com o parâmetro -l o grep apenas lista o nome do arquivo se a expressão regular de busca for encontrada. Então, para encontrar todos os arquivos python[bb] que contém o texto "urllib" você pode fazer:

find -name *.py -exec grep -l urllib {} ";"

O find, é claro, tem muito mais recursos e opções. Se quiser mesmo se aprofundar, man find.

Adicionar esta notícia no Linkk

Por que o arquivo ISO abre no compactador de arquivos?

12/12/2007 17:01 por Elcio

Olha que coisa interessante, a Marcelle Ramalho resolveu experimentar o Linux. Pelo texto, dá para perceber que ela é bem iniciante em informática, e sem nenhum contato com o Linux[bb]. Veja esse trecho:

Baixei o arquivo da internet e meu primeiro baque foi gravá-lo em CD. O arquivo é compactado e eu prontamente descompactei-o, pois me parece uma coisa lógica a se fazer. Nada como um arquivo descompactado, não é mesmo? Pelo visto não era tão lógico, já que ao falar para o meu "personal Linux teacher" o que tinha feito ele levou uns minutos para responder: "QUEEEEEEEEEEEEEEEEEEEEE?"

Sim, você entendeu, ela baixou um arquivo ISO e não sabia o que fazer com ele. Essa dúvida é muito comum. E antes de culpar a moça pela desinformação, lembre-se de que ela não tem obrigação nenhuma de saber e foi induzida ao erro pelo Windows[bb], que mostrou o ISO com um comportamento e opções semelhantes ao de um arquivo ZIP, com o que ela já está familiarizada.

E o erro não acontece apenas no Windows. Veja, por exemplo, o que acontece aqui no meu Ubuntu quando eu clico com o botão direito em um arquivo ISO:

Arquivos ISO devem ser gravados em CD, não descompactados

Por que o "Criador de CD/DVD" não é a primeira opção? É muito útil poder abrir um arquivo ISO no compactador e extrair arquivos de lá de dentro, mas quantas vezes você realmente usa isso? A esmagadora maioria das vezes que alguém tem um arquivo ISO, quer simplesmente gravá-lo em CD.

Resolvendo o problema no Ubuntu

Para resolver o problema de verdade, o pessoal do Ubuntu precisaria modificar a distro para que a ação padrão para arquivos ISO seja gravar em CD. Mas você pode fazer isso em seu sistema, de maneira que possa gravar arquivos ISO com um duplo clique. Para isso, clique com o botão direito em um arquivo ISO e escolha "Propriedades". Na janelinha que vai se abrir, clique na aba "Abrir com" e escolha o "Criador de CD/DVD". Assim:

abrircom.gif
Pronto, agora duplo clique em arquivos ISO vão abrir no gravador de CD.

Que venham os leigos

Entre os comentários no artigo da Marcelle, há algumas pessoas que fazem questão de deixar bem claro que ela deveria saber o que é um arquivo ISO, que isso é coisa básica e que ela não deveria tentar peripécias no computador sem primeiro estudar o assunto. Teve até um camarada que sugeriu que ela primeiro lesse o Guia Foca Linux. Essa idéia é um absurdo!

Eu aprecio muito o Guia Foca Linux. Aprendi muita coisa com ele. Mas, definitivamente, não é para qualquer um. Dê uma olhada, por exemplo, na versão para iniciantes. São dezesseis capítulos, ensinando coisas como editar o fstab e gravar os dados do cache RAM em disco editar o .bash_profile dentro do /etc/skel e configurar o iptables para filtrar pacotes pelo mac address, tudo pela linha de comando. Ora, a pessoa só quer acessar a web, editar documentos, assistir DVDs e ouvir música, não é pedir demais querer que ela leia isso tudo primeiro?

Vamos deixar as coisas bem claras: eu e você lemos o manual de cada um de nossos aparelhos, muitas vezes antes de ligar e tentar usar. Nós sabemos ligar o closed caption da TV, programar as memórias do telefone e desligar o flash da câmera digital[bb]. Nós somos nerds. A esmagadora maiora das pessoas não lê os manuais, e é muito feliz assim!

Se você quer reclamar das pessoas que não lêem o manual, vá em frente. Vai gastar um bocado de tempo e energia para nada. Nossa obrigação, como nerds espertos, é desenvolver sistemas tão fáceis que pessoas que não lêem o manual consigam usar.

UPDATE: Conforme o Hudson apontou, eu tinha feito conversão entre as versões do Foca. Corrigido. Obrigado, Hudson!

Adicionar esta notícia no Linkk

Ssh, sftp e rsync em porta diferente do padrão

12/12/2007 0:08 por Elcio

Levei mais tempo do que devia para achar essa solução, então vou deixar registrada aqui, pois pode ter mais gente atrás disso. O protocolo ssh é muito popular no mundo Unix. Com ele você pode administrar seu servidor à distância. O tráfego de dados ssh é todo criptografado[bb], e o protocolo é bastante seguro. Mesmo assim, se você tem usuários em sua máquina com senhas fracas, corre o sério risco de sofrer um ataque de dicionário.

Entre as principais recomendações para tornar seu servidor mais seguro estão:

  • Evite senhas fracas: faça com que seus usuários tenham senhas fortes e não óbvias;
  • Não permita o login como root: assim, para fazer alguma coisa realmente perigosa, um invasor teria que descobrir duas senhas ao invés de uma. No Ubuntu, edite o arquivo /etc/ssh/sshd_config e altere a linha PermitRootLogin para:
    PermitRootLogin no
  • Mude a porta do serviço ssh: a porta padrão para o serviço ssh é a 22. Trocá-la vai dar algum trabalho a um possível invasor. Para isso, no Ubuntu[bb], edite o /etc/ssh/sshd_config e altere o número na linha Port para a porta desejada:
    Port 999

Para se conectar ao servidor, use:

ssh -p999 servidor

Como o protocolo ssh é robusto, seguro e flexível, há vários serviços que rodam sobre ele. Entre os mais populares estão o sftp e o rsync. O sftp é um serviço de ftp sobre ssh. A principal vantagem dele em relação ao ftp comum é que o tráfego é criptografado. Já o serviço rsync é genial, serve para manter sincronizadas cópias de arquivos e diretórios em máquinas diferentes.

Para se conectar via sftp com uma porta diferente da 22, use:

sftp -oPort=999 servidor

Para fazer rsync via ssh numa porta diferente da 22, use:

rsync –rsh='ssh -p42' arquivolocal servidor:/caminho/para/o/arquivoremoto

Adicionar esta notícia no Linkk

Novo Tableless

06/12/2007 20:12 por Elcio

O Diego colocou no ar agora há pouco: www.tableless.com.br

Layout[bb] novo. Eu gostei bastante.

Adicionar esta notícia no Linkk

ClientSide: mostre seu código

04/12/2007 21:20 por Elcio

Está lançado: clientside.com.br.

É um site para falar sobre Javascript, Ajax, CSS, XHTML[bb]. Mas não é um site para opinião e recomendações, é um lugar para você ler sobre código, ler código, e colaborar. O site é aberto ao cadastro e colaboração dos usuários, embora todos os artigos devam ser aprovados pelos editores. Entenda a política do site.

Se você já possui um blog ou site sobre o assunto, pode publicar seus artigos em seu próprio site e apenas um link com um breve comentário no ClientSide. Só não faça isso com cada um dos seus posts, apenas com os melhores. Não é um agregador. Se fosse, eu teria feito para funcionar sozinho. É um site onde você vai ler conteúdo especial, focado no assunto, que foi selecionado por seres humanos de um jeito que as máquinas (ainda) não sabem fazer.

Adicionar esta notícia no Linkk

Eu no [o - ] taligado, sobre startups

30/11/2007 14:44 por Elcio

Logo que saiu o piloto do [o - ] taligado, eu publiquei aqui meus elogios. E não é que o Marco Gomes me convidou para participar da primeira edição? Está no ar: Edição 01, sobre Startups, com esse vosso humilde servo.

Eu, descaradamente, aproveitei a oportunidade para perguntar para o Marco e o Gilberto tudo aquilo que eu tinha vontade de saber ;-)

E me diverti um bocado!

Adicionar esta notícia no Linkk

Ubuntu chega oficialmente ao Brasil

23/11/2007 10:34 por Elcio

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.

Adicionar esta notícia no Linkk

FUD: cuidado, o Google pode invadir seu blog!

22/11/2007 14:10 por Elcio

Para começar, leia o trecho a seguir desta notícia na INFO Online:

Mas, quando tentou o Google, o especialista descobriu que serviço de publicação de blogs Wordpress é vulnerável a pesquisas específicas. O site armazena dados como hashes MD5, que podem conter senhas, de uma maneira visível ao buscador. Bastaria informar um trecho do algoritmo para encontrar dados relacionados ao usuário e suas senhas.

Uau, belo trabalho jornalístico esse hein? Espalhando o medo. Imagine a reação de um leigo, que tenha um um blog Wordpress, ao ler essa pérola da desinformação. Não parece, lendo esse texto, que o Wordpress tem uma seríssima falha de segurança[bb] que pode ser explorada usando o Google? Que se alguém "informa um trecho do algoritmo" vai descobrir uma porção de dados seus? Bom, fui ao site do sujeito e li o artigo em que ele explica como quebrou a senha.

O que aconteceu é que o Wordpress do tal Murdoch foi invadido por um cracker, que criou uma conta de usuário. O Wordpress guarda suas senhas em um formato chamado MD5, um formato de criptografia que transforma qualquer senha num hexadecimal de 32 caracteres, assim:

  • "Sylar" = 7bef5e9683a92c37a266283bf229c2e8
  • "Cap. Nascimento" = 40a4b69d3132bd562dc03e2de30fda3e
  • "Pat Morita" = 261f3880c4eab23075356dbc6b5befc3

O Wordpress faz isso para proteger você. Se alguém invadir seu blog, mesmo assim não vai descobrir sua senha. Então o Murdoch não tinha a senha do sujeito que invadiu o blog dele, tinha apenas o texto "20f1aeb7819d7858684c898d1e98c1bb". O jeito comum de se descobrir essa senha é o chamado ataque de dicionário. Você consegue um enorme dicionário de palavras e nomes comuns, e faz um programa que converte cada um deles para MD5. Se, ao converter algum, você encontrar o tal texto "20f1…", pronto, você descobriu qual é a senha.

O problema é que esses ataques levam tempo, pois o computador tem que processar milhões de palavras. E se a senha não for uma palavra comum do dicionário, ela não vai ser encontrada. Assim, "banana" vai ser encontrada, mas "Xbanana43" não. Acontece que palavras muito, muito comuns, como "banana", ou nomes de pessoas, provavelmente já tem seu hash MD5 publicados em alguma página na web. E, se está publicado, o Google encontra. Por exemplo, procure pelo MD5 de banana.

Então, ao procurar o MD5 da senha do invasor, o Murdoch achou páginas como essa aqui, uma lista de pessoas chamadas "Anthony". Ele resolveu tentar então "Anthony" como senha, e funcionou.

Perceba que isso não torna o Wordpress mais vulnerável, porque a senha ia ser descoberta de qualquer maneira, só ia levar um pouco mais de tempo. E para fazer isso, o sujeito tem que ter acesso ao banco de dados com as senhas. Ou seja, já tem que ter invadido o sistema.

Foi só isso. Não há nenhuma vulnerabilidade no Wordpress que, se alguém vai ao Google e "informa um trecho do algoritmo", vai descobrir seu CPF e número de cartão de crédito. Aliás, será que esse repórter sabe o que significa "algoritmo[bb]"? Aprendi quando era criança, quando minha mãe ouviu meu primeiro palavrão, que gente não devia usar palavras que a gente não sabe o que significa.

Você que usa Wordpress, não precisa se desesperar. Só não use senhas óbvias, não acredite em tudo o que você lê por aí e não entre em pânico.

Só lembrando: em Janeiro tem Oficina de Wordpress na Visie

Adicionar esta notícia no Linkk

Retornando o último número (script Python)

21/11/2007 23:45 por Elcio

Meu amigo DGmike publicou: Retornando o último número (script PHP)

Como eu acho interessante comparar soluções em linguagens diferentes, resolvi escrever o mesmo script em Python[bb]. Veja como ficou:

import re
def ultimoNumero(string):
return re.findall(r"\d+",string)[-1]

Gostou?

Adicionar esta notícia no Linkk