Primeiras impressões do Ubuntu 10.04
16 de Abril de 2010, 0:00 - sem comentários aindaAntes de colocar minhas impressões segue uma pequena historinha:
Eu sempre fui um simpatizante do Ubuntu. Acho que ele é bastante importante e, sem dúvida, merece todo o destaque que vem recebendo. Além disso, gosto muito das idéias do Mark Shuttleworth e do jeito que ele toca a distribuição.
Gosto tanto do Ubuntu que sempre o recomendo quando me perguntam qual distribuição utilizar. Apesar disso, eu nunca parei para usá-lo como sistema principal. É aquela velha história: em casa de ferreiro ...
NOTA: Um dos motivos pelo qual eu nunca usei o Ubuntu a fundo é que eu sou extremamente satisfeito com o Arch Linux. É distribuição ideal para mim. Funciona exatamente como eu penso e preciso. Mas, claro, ela não é perfeita e acredito que só sirva para a minoria dos usuários.
Entretanto, esses dias eu precisei criar um pacote deb para o HnTool, mas não tinha nenhuma máquina Debian (ou derivada) por perto. Foi aí que eu resolvi remover o Arch do meu computador do trabalho e instalar o Ubuntu 10.04 Beta.
Impressões:
Baixei o beta, dei boot no LiveCD e, de cara, fiquei surpreso com a arte do sistema. A tela de boot é linda e o tema padrão do GNOME também. A velocidade de boot é bastante satisfatória e melhor do que a maioria das distros.
Fiquei um pouco decepcionado em ver que o GNOME está meio parado no tempo (IMHO, o KDE4 está bem melhor), mas isso não é bem culpa da distribuição, né?
Pelo LiveCD o Ubuntu funcionou perfeitamente. Detectou a maior parte do meu hardware (vídeo, rede, som etc), com exceção do meu teclado. Fiquei surpreso, pois é um abnt2. Fui nas configurações e mudei meu teclado sem problemas. Infelizmente o instalador pediu para eu configurar meu teclado novamente ao invés de usar as configurações que eu tinha feito.
A instalação foi super simples e direta. O particionador funcionou como deveria, assim como a criação dos usuários. Na verdade, a instalação foi tão direta que não tenho nem muito o que comentar aqui.
Eu notei que muita gente não gostou do fato dos botões das janelas estarem no canto esquerdo agora. Confesso que achei estranho no começo, mas depois de 10 minutos já estava confortável com isso. Acho que com um pouco de boa vontade as pessoas irão se acostumar rapidamente com o novo layout.
O Ubuntu Software Center (um adicionar/remover programas da vida) também é legal e bonito. O único problema que tive com ele foi a ausência de uma opção para remover vários softwares ao mesmo tempo. Eu tive que sair removendo um por um (e olha que desinstalei vários, hein).
Boa parte dos aplicativos que uso estão disponíveis nos repositórios do Ubuntu (Chrome, smplayer, nmap, wireshark, kismet, aircrack-ng, thunderbird etc). Codecs proprietários também estão, mas não por padrão. Foi preciso ativar novos repositórios. Senti falta do skype e do handbrake também. Recomendo a adição dos repositórios do medibuntu.org para resolver estes problemas.
As notificações ficaram melhores e aparecem para tweets, emails, mensagens instântaneas e, claro, coisas do próprio sistema. O legal é que agora parece que elas realmente fazem parte da distribuição e não tem mais aquela mistura de várias notificações diferentes como antigamente.
A parte de impressão funcionou muito bem. O Ubuntu detectou todas as minhas impressoras de rede e perguntou se eu queria imprimir uma página de teste assim que escolhi a impressora que desejava. E né que ele imprimiu certinho?
Uma coisa que eu não gostei foi que o Firefox (e consequentemente o Chrome quando eu importei as preferências) agora usa o Yahoo como buscador padrão. Boooooooo. Shame on You!! (EDIT: Na versão final o Google voltará a ser o padrão. Valeu pela correção, Laudeci).
De forma geral achei o desempenho do Ubuntu pior que o do Arch Linux, mas ele não chega a ser ruim. Pelo contrário, tem o melhor desempenho dentre as distribuições "populares" que testei.
O Ubuntu One simplismente não funcionou comigo e dava erro toda hora:
Outra coisa engraçada que aconteceu é que quando eu usava a opção "Open with another application..." alguns softwares apareciam duplicados:
Eu sei que resolver esses problemas é muito fácil pelo terminal. Mas minha ideia aqui é usar o máximo da interface gráfica e recorrer o mínimo possível para a linha de comando.
Considerações finais:
Como eu já imaginava, o Ubuntu é um excelente distribuição e realmente é indicada para a maior parte dos usuários novatos ou que não querem ter muito trabalho. O desempenho é melhor do que eu esperava, a detecção de hardware e impressoras funciona muito bem e a nova arte é muito bonita. Sem dúvida, o Shuttleworth e a Canonical estão no caminho certo. Parabéns. ;-)
Infelizmente ela não é a distribuição ideal para mim. Gosto de coisas mais simples (KISS FTW) e mais poder. O Ubuntu vai continuar na minha estação de trabalho por mais algum tempo e eu devo rever minha análise quando eu completar um mês de uso. Mas meu desktop e notebook continuarão rodando Arch Linux. ;-)
HnTool 0.1 liberado
9 de Abril de 2010, 0:00 - sem comentários aindaSeguindo o principio do "release early, release often", estamos orgulhosos de liberar a primeira versão do HnTool, uma ferramenta cujo objetivo é fazer uma análise simples do servidor e dizer quais as falhas de segurança que existem.
Nesta primeira versão você terá:
- Suporte ao Arch Linux, CentOS, Debian, Fedora, Gentoo e Ubuntu.
- Testes para Apache, PHP, Portas, PostgreSQL, SSH e outros.
- Relatório em HTML ou terminal.
- Estrutura interna modular e fácil de contribuir.
Temos muitas ideias para as próximas versões do HnTool, entre elas:
- Módulos para MySQL, FTP, DNS, Squid, Iptables, Samba, DHCP, cups
- Um report mais detalhado, mostrando como corrigir a falha encontrada
- Opção para atualizar os módulos pela própria ferramenta
- Analisador web, através de upload de arquivos de configuração
- Suporte a traduções
Baixando e instalando
Para instalar o HnTool pelo fonte, baixe-o desde endereço e faça:
$ tar xvf hntool-0.1.tar.gz
$ cd hntool-0.1
# python setup.py install --prefix /usr/ --root /
Se você usa Arch Linux você pode instalar o HnTool através do pacote criado:
$ wget http://hntool.googlecode.com/files/hntool-0.1-1-i686.pkg.tar.xz
# pacman -U http://hntool.googlecode.com/files/hntool-0.1-1-i686.pkg.tar.xz
NOTA: Por enquanto só há pacote para o Arch Linux. Se você usa alguma distribuição baseada em rpm ou deb e sabe criar pacote, por favor, não se acanhe. Crie um e adicione em um bug report. Se precisar de um guia, pode usar o PKGBUILD que fiz para criar o pacote do Arch Linux.
Usando
Para rodar o HnTool basta executar o seguinte comando:
# hntool
Isso irá gerar um relatório no terminal:
Se preferir, você pode gerar um relatório em HTML com o comando:
# hntool -t html > index.html
Para maiores informações rode:
# hntool -h
Reportando Bugs
O HnTool está em um estado tão inicial e com tanto código sendo adicionado frequentemente que, com certeza, você vai encontrar vários bugs. Por favor, não deixe de relatá-los em http://code.google.com/p/hntool/issues/list.
Contribuindo
Contribuir com o projeto é fácil. Você pode dar sugestões, reportar bugs e pedir novas funcionalidades. Além disso, você pode contribuir criando módulos. Veja como é fácil:
Todos os módulos seguem a seguinte estrutura:
Como falei, resolvi criar o hntool de forma modular. A estrutura de um modulo é, mais ou menos, assim:
import os class rule: def short_name(self): return "ssh" def long_name(self): return "Checks security problems on sshd config file" def __init__(self, options): pass def analyze(self, options): check_results = {'ok': [], 'low': [], 'medium': [], 'high': [], 'info': []} ssh_conf_file = ['/etc/ssh/sshd_config', '/etc/sshd_config'] for sshd_conf in ssh_conf_file: if os.path.isfile(sshd_conf): try: fp = open(sshd_conf,'r') except IOError, (errno, strerror): check_results['info'].append('Could not open %s: %s' % (sshd_conf, strerror)) continue lines = [x.strip('\n') for x in fp.readlines()] # Checking if SSH is using the default port if 'Port 22' in lines or '#Port 22' in lines: check_results['low'].append('SSH is using the default port') else: check_results['ok'].append('SSH is not using the default port') # Closing the sshd_config file fp.close() return check_results def type(self): return "files"
Explicando melhor:
- short_name(self): Uma string contendo o nome curto do modulo. Ele será usado, por exemplo, na hora de listar todos os módulos existentes (hntool -l).
- long_name(self) : Aqui é a descrição do módulo. Também será mostrada na listagem dos módulos.
- analyze(self): É aqui que fica o código de verdade. O resultado desse método deve ser sempre uma lista com 5 elementos, que correspondem aos níveis de segurança encontrados - ok, info, low, medium e high, respectivamente.
- type(self): Cada módulo será de um tipo. "files" para módulos que lidam com arquivos de texto simples(/etc/passwd, por exemplo) ou de configuração. "services" para módulos que lidam com serviços.
Autores
Muita gente foi importante para este release, contribuindo com sugestões, bugs reports, código e, claro, apoio. Muito obrigado, Alexandro Silva, Aurélio Heckert, Candido Vieira, Elton Pereira, Italo Valcy, Késsia Pinheiro, Rafael Gomes, Rafael Gonçalves Martins, picoloto, Sebastian SWC. :-)
Bem, é isso. Aguardem novidades na versão 0.2.
A melhor coisa da páscoa
5 de Abril de 2010, 0:00 - sem comentários aindaA páscoa é aquela velha história: temos que agradecer a aquele que lutou, morreu e ressuscitou por nós. Goku, claro.
Além disso, temos que comer muito chocolate (oba!), o que não deixa de ser muito bom. Mas, sem dúvida, a melhor coisa da páscoa é isso aqui:
Não tem preço.
Promoção Visa/Walmart: piada, falta de respeito ou os dois?
3 de Abril de 2010, 0:00 - sem comentários aindaNa última terça-feira rolou uma promoção conjunta da Visa com Walmart onde a idéia era o seguinte: se rolassem 5 mil tweets com tag #JuntosPeloDescontoVisa o bundle do Guitar Hero 5 custaria apenas R$189 no site da loja. A meta foi logo alcançada e a idéia, que era ótima na teoria, acabou sendo uma enorme piada na prática. Um FAIL total por parte das duas empresas.
O problema aconteceu porque praticamente não haviam unidades em estoque. Quase todo mundo ficou de fora da brincadeira. E o pior de tudo: na verdade ainda haviam várias unidades do produto em estoque, mas não na promoção.
Isso causou uma indignação geral e a tag, que era #JuntosPeloDescontoVisa, passou a se chamar #FudidosPeloDescontoVisa. A reclamação foi tanta que a tag foi parar nos Trends Topics do twitter.
Reconhecendo a cagada que fez as empresas prometeram liberar mais 100 unidades no dia seguinte, à partir das 17h. Não era a solução justa, mas já era alguma coisa. No dia seguinte eu me preparei todo e fiquei de olho no relógio para fazer minha compra.
Foi aí que eu percebi que sou um cara muito inocente, pois a merda foi ainda pior. O site simplismente não aguentava o tráfego e dava pau toda hora. Eu tentei de vários navegadores e com uma conexão dedicada, mas não teve jeito. Sempre acabava encontrando essa tela:
Em alguns momentos eu conseguia fazer boa parte do processo, mas recebia a seguinte mensagem:
Não existe forma de frete para o cep informado. Favor escolher outro endereço.
Como assim, Bial?
Duas vezes eu consegui chegar na tela final da compra, mas quando ia confirmar o pedido eu via que o desconto não havia sido dado. Seria esse o famoso golpe do cartão? Oo
Depois de tudo isso eu me pergunto:
- Se eles queriam 5000 tweets para liberar a promoção, quantas guitarras deveriam colocar à disposição?
- Se já haviam visto a demanda pelo produto no primeiro dia, porque não melhoraram a qualidade de seus servidores para que o site não ficasse indisponível no segundo?
- O que acontece com as pessoas que chegaram no final do processo, mas não conseguiram o desconto?
- O que acontece com as pessoas que compraram, inoncemente, pelo valor sem o desconto?
Falta de respeito total, não? Era minha primeira compra no site do Walmart e fiquei extremamente decepcionado. Perderam um ótimo cliente.
GreenSQL – Protegendo seu MySQL de SQL Injection
12 de Março de 2010, 0:00 - sem comentários aindaO número de aplicações WEB tem aumentado bastante nos últimos anos, mas, infelizmente, os desenvolvedores parecem não se preocupar com a segurança delas. É cada vez mais comum encontrarmos vulnerabilidades nas páginas WEB e uma das mais populares é a SQL Injection. Felizmente, existem algumas ferramentas que servem para proteger suas aplicações desta falha. Uma [...]