22 de November de 2009

Script para fazer balanceamento de links ADSL

Há algum tempo coloquei 2 links ADSL aqui em casa e criei o script abaixo para fazer o balanceamento entre eles. Hoje dei um geral no script e lembrei que nunca havia publicado ele por aqui. Então, lá vai:

#!/bin/bash
#
# Script para fazer o balanceamento de links ADSL
# Para adicionar mais um link é so adicionar um item
# às variaveis IFACES, IPS, GATEWAYS, NETWORKS,
# WEIGHTS e NAMES
#
# É extremamente importante manter a ordem dentro das
# variáveis. O primeiro campo da variável "IFACES"
# corresponde ao primeiro campo da variável "IPS"
# e por aí vai.
#
# Ultima modificacao:  22/11/2009
# Hugo Doria 
 
# Interfaces de rede
IFACES=("eth1" "eth2" "eth3")
 
# IP das interfaces de rede. Isto NÂO é o ip do modem.
# É extremamente importante que siga a mesma ordem das interfaces
# listadas na variável IFACES
IPS=("192.168.254.2" "192.168.254.10" "192.168.254.18")
 
# IP dos Gateways. Geralmente esse é o ip do Roteador ou do modem ADSL
GATEWAYS=("192.168.254.1" "192.168.254.9" "192.168.254.17")
 
# IP das redes que o modem e as interfaces pertencem
NETWORKS=("192.168.254.0/29" "192.168.254.8/29" "192.168.254.16/29")
 
# Peso de cada link. Se os links tiverem a mesma banda, entao deve-se
# colocar 1 para todos. Se um link for maior que outro, entao coloque
# os pesos correspondentes
WEIGHTS=("1" "1" "1")
 
# Nome dos links. Usado para criar um alias da conexão
NAMES=("velox1" "velox2" "velox3")
 
#-----------------------------------------------
# NÂO ALTERE A PARTIR DAQUI
#-----------------------------------------------
 
# Comando padrão de adicionar rota
ROUTEADD="ip route add default scope global"
 
# Comando para deletar uma roda
ROUTEDEL="`which route` del default gw"
 
####################################################
# Deletando as rotas
####################################################
 
for (( X=0; X < ${#IPS[@]}; X++ )); do
    echo "Deletando as rotas para ${IPS[$X]}"
    ${ROUTEDEL} ${IPS[$X]}
done
 
#######################################################
# Limpando as rotas
#######################################################
 
for (( X=0; X < ${#IPS[@]}; X++ )); do
    echo "Limpando as rotas da tabela ${NAMES[$X]}"
    ip route flush tables ${NAMES[$X]}
done
 
#######################################################
# Aplicando as regras das redes
#######################################################
 
for (( X=0; X < ${#IPS[@]}; X++ )); do
    echo "Aplicando a regra da rede ${NETWORKS[$X]}"
    ip route add ${NETWORKS[$X]} dev ${IFACES[$X]} src ${IPS[$X]} tables ${NAMES[$X]}
done
 
#######################################################
# Adicionando as regras
######################################################
 
for (( X=0; X < ${#IPS[@]}; X++ )); do
    echo "Adicionando a regra do ${IPS[$X]} na tabela ${NAMES[$X]}"
    ip rule add from ${IPS[$X]} table ${NAMES[$X]}
done
 
##########################################################
# Regra padrão e limpeza do cache
##########################################################
 
for (( X=0;X < ${#IPS[@]}; X++ )); do
    ROUTEADD="${ROUTEADD} nexthop via ${GATEWAYS[$X]} dev ${IFACES[$X]} weight ${WEIGHTS[$X]}"
done
 
echo "Adicionando a regra padrao"
${ROUTEADD}
 
echo "Limpando o cache"
ip route flush cache
# Fim do script

O script serve para mais de dois links ADSL. Para adicionar mais um link é so adicionar um item às variaveis IFACES, IPS, GATEWAYS, NETWORKS, WEIGHTS e NAMES. Lembre-se sempre de manter a ordem dos itens dentro das variáveis.

18 de November de 2009

Notas de lançamento do Classix 0.3

Classix é um software de consulta à CID-10, ou seja, à 10ª revisão da Classificação Internacional de Doenças, publicada pela Organização Mundial da Saúde. Com o Classix, profissionais da saúde, pessoal administrativo e outras pessoas podem encontrar facilmente o código correspondente a uma condição ou vice-versa.

O desenvolvimento do aplicativo não parou na versão 0.2, e é por isso que tenho o prazer de apresentar os novos recursos do Classix:

  • Melhoria do visual: A interface está ainda mais intuitiva, com um rótulo “Pesquisar:” antes da caixa de texto da pesquisa, em vez do rótulo no botão “Localizar”. Além disso, todos esses controles foram movidos para uma barra de ferramentas, como num navegador da Web, de forma a contribuir com o melhor espaçamento dos controles e incremento da estética.
  • Capacidade de salvar o resultado da pesquisa: Atendendo a pedidos, agora ficou fácil salvar os resultados da pesquisa num arquivo de texto. Uma vez que a pesquisa tenha sido realizada, basta clicar no botão “Salvar como” na barra de ferramentas, e aparecerá um diálogo perguntando o nome do arquivo onde o resultado deve ser salvo.
  • Maior tolerância na pesquisa: Agora a pesquisa desconsidera a presença ou ausência de acentos. Isso é especialmente interessante pelo fato da versão brasileira da CID-10 preservar a ortografia anterior ao Acordo Ortográfico da Língua Portuguesa, de forma que “diarreia” ainda está como “diarréia”, e “sequela” ainda está como “seqüela”. Além disso, convenhamos, o trema não é exatamente fácil de se digitar!
  • Aumento da velocidade da pesquisa: Como já foi exposto nas notas de lançamento da versão anterior, as pesquisas subsequentes são bem mais rápidas que a primeira pesquisa realizada após ligar o computador e iniciar o Classix. Agora o tempo necessário para completar uma pesquisa foi diminuído em 2,5 a 3 vezes, graças a uma verificação realizada na inicialização do aplicativo.
  • Maior integração com o Maemo: Usuários do Maemo verão que agora a barra de ferramentas é apresentada na borda inferior da janela, como é o padrão desse ambiente de trabalho.

Nada mal para menos de um mês de trabalho, hein?

O Classix é software livre, publicado sob a GNU General Public License versão 3.0 ou superior, o que significa que você pode usar sem limitações. O aplicativo pode ser instalado em praticamente qualquer sistema GNU/Linux ou similar, e atualmente estão disponíveis pacotes prontos para as distribuições Ubuntu e Maemo, além do PKGBUILD para Arch Linux (no AUR). O código-fonte, claro, também está disponível, e se você tiver intimidade com a linha de comando poderá instalá-lo sem maiores dificuldades, bastando seguir as instruções do arquivo README.

A próxima versão do Classix deve demorar mais que dessa vez, devido a outros compromissos, então não vou prometer quais ou quantos recursos novos estarão disponíveis. Se você tiver algum pedido, sugestão ou reclamação, sinta-se à vontade para comentar nesse blog, juntar-se à lista de discussão ou abrir um relatório de erro.

17 de November de 2009

segundo festival de software livre em Belo Horizonte

Você que é de BH e região tem um compromisso marcado com a gente(sempre quis dizer essa frase). No dia 28 de novembro, sábado, teremos o segundo festival de software aqui em Belo Horizonte.
Teremos palestras com diferentes temáticas desde filósoficas até mais tecnicas e install fest promovendo a exorcização do seu computador =)
Infelizmente surgiram alguns imprevistos e minha palestra sobre gnome vai ficar para a proxima oportunidade, mas a programação está bem diversificada e com palestrantes de qualidade.
O evento ocorrerá na UNA a partir das 8h da manhã e oficialmente deve ir até as 18h, mas como vocês devem imaginar, extraoficialmente deve ser extendido até o dia seguinte com o tradicional e milenar GULA.

Inscrições até o dia 27 no site www.fslbh.org .

16 de November de 2009

Mais sobre a integração do litl com a web

Recentemente, em meu artigo sobre o lançamento do webbook da litl, mencionei minha preocupação com a falta de interoperabilidade. Hoje Havoc Pennington, um dos grandes nomes do GNOME que participaram da elaboração do webbook, publicou um artigo em seu blog defendendo seu produto como uma resposta ao fato das pessoas frequentemente precisarem de ajuda para usar seus próprios computadores. A falta de opções de hardware e software são mencionados como um grande eliminador da necessidade de configurar e/ou gerenciar o computador, mas ao integrar com a Web optou-se por serviços fora do controle da empresa:

[...] um princípio do projeto do litl é usar todo e qualquer serviço ou aplicativo web existente, em vez de reinventar a roda. Nós decidimos usar o webmail em vez de criar nosso próprio aplicativo de e-mail, nós decidimos usar o Flickr e o Shutterfly em vez de inventar nosso próprio site de armazenamento e compartilhamento de fotos, e por aí em diante. Nós vemos nossa meta como melhorar a web, e ajudar as pessoas a usá-la, em vez de substituí-la por um “jardim murado” de serviços com a marca da litl.

O fato do webbook não ser um “jardim murado” é importante, pois significa que seus usuários poderão compartilhar fotografias com quem não é cliente da litl. Mas as opções parecem restritas: só duas opções de sites de compartilhamento de fotografias, integração com Facebook mas não com Orkut, e por aí vai. Isso é que pode pesar contra, a não ser que existam extensões para quase todas as opções de serviços na Web.

10 de November de 2009

Rounded boxes in gtk

Dear lazyweb,

Is there a GTK+ widget that draws a box with a rounded corner, just like those found in Gwibber? And that I could put my own stuff inside it?

t

Or it’s possible to do this easily?

I’m afraid not, so I will have to do it in HTML/WebKitGTK.

09 de November de 2009

Fórum GNOME at Foz do Iguaçu

Sponsored by GNOME FoundationThanks to the GNOME Foundation, for the second consecutive year I went to Fórum GNOME, in rainy Foz do Iguaçu. (also, for the second year I had problems landing there due to the rain!).

The event was together with Latinoware, the (biggest?) Latin American free software conference. Latinoware itself went a bit strange this year. Maybe there was something wrong with organisation, or it was just the rain. The rain was so strong in the last day that almost only half of the participants went to the conference. :(

For the Fórum GNOME, we got a booth during all the three days and a room for talks during the entire Friday. There were always questions about GNOME 3 by users in the booth, and we spent a great time talking about that and other things with people from all Latin America.

Most of the talks had a focus in the end-user — these were most of the participants in Latinoware. Licio started with his talk explaining how to join GNOME and the GNOME Love Project. Then we got Rodrigo Flores, talking about how to contribute with translation. Alessandro Binhara did a talk about something between Mono, Mono Brasil and Star Wars :) , which was followed by the GNOME Women talk by Izabel and Luciana. Lastly, I did a talk about user experience in GNOME and Tiago filled the room with his talk about theming and customization.

It was awesome to see many enthusiastic friends from GNOME, Ubuntu-BR, Fedora and KDE. Also, during the conference Everaldo and I discussed a lot about how to clean the user interface of some GNOME applications. We didn’t publish it anywhere yet. But we stopped to think how to do it properly. Like what happened with Hylke’s idea for the font dialog (a designer suggested something and was implemented very quickly by a developer), we agreed it would be nice to have a ArtRequests-like page in the wiki, but for designers asking changes to be made by the developers. We still need to organize a lot of our thoughts however :) .

I need to say a big thank you to the GNOME Foundation and to all the people who helped the forum happen. Thank you!

Por que usar GNU/Linux ajuda a preservar o meio ambiente?

LesswattsNo dia 04 de outubro,  a Revista Muito, ligada ao Jornal Atarde aqui de Salvador,  fez uma matéria sobre o "Consumo Verde", quano foi destacada a relação entre software livre e a preservação do meio ambiente. Como eu participei dessa matéria, assinada pela jornalista Katherine Funke, achei que seria importante mostrar, com um pouco mais de detalhes, como isso acontece na prática.

Sendo assim, segue abaixo algumas pesquisas e projetos que demonstram como  usar GNU/Linux ajuda a preservar o meio ambiente:

Diminuição do consumo de energia

Um estudo da IBM em 2009 demonstrou que uma série de medidas adotas pelo sistema operacional GNU/Linux diminuem o consumo de energia de um computador/Servidor. Essas e outras medidas também fazem parte de um projeto internacional, apoiado pela Intel Corporation,   denomindo LessWatts.org .

Dentre os vários projetos existentes nessa iniciativa, gostaria de destacar o  "PowerTop". Esse utilitário  fornece uma análise detalhada da performance de consumo de energia de um computador  - e ainda dá dicas como melhorá-la. Isto porque, o PowerTOP é uma ferramenta do GNU/Linux  que verifica os componentes de software que tornam o consumo de energia do sistema maior do que deveria estando no estado ocioso. A partir kernel versão 2.6.21 , o kernel não tem mais uma  marcação de timer fixada em 1000Hz. Isto pode dá uma enorme economia de energia, porque a CPU fica em modo de baixa energia por longos períodos de tempo durante o sistema ocioso. Para mais informações (em português), acesse aqui.

Além disso, para quem é usuário do Desktop GNOME, é possível usar o "GNOME Power Manager" que permite qualquer usuário configurar as opções de consumo de energia do seu computador.  Normalmente, ele é encontrado no Painel GNOME, como  também em "Preferências" no Menu GNOME, mais especificamente em "Gerenciamento de Energia". 










Aproveitamento de Hardware

Uma das características mais interessantes do GNU/Linux é a sua alta performance em termos de aproveitamento de hardware.  Isso também foi comprovado pela pesquisa da IBM. Segundo ela, o sistema operacional  GNU/LINUX apresenta melhor performance ambiental ao necessitarem de requisitos mínimos de hardwares para funcionar, segundo mostra a tabela abaixo:

Tebelapesquisaharwarelinux

 

Um outro projeto que representa bem essa capacidade é o Linux Terminal Server Project (LTSP). O LTSP é usado como solução para performance de computadores antigos e para implementação de uma rede de baixo custo. Motivo esse que leva esse projeto a ser usado em escolas, telecentros e projetos de metareciclagem por todo mundo.

Com essa solução é possível ter um servidor principal (geralmente um micro de melhor performance, no qual está instalado o LTSP) e vários clientes conectados via rede a este servidor. Assim, com um servidor não muito potente (ex: 3 Ghz e 2 GB RAM) podemos ter, por exemplo, trinta PCs 486s "pendurados"no servidor, rodando softwares de última geração.   Saiba mais (em português)...

LTSP

Muitos usuários de computador não imaginam o que um simples PC é capaz de fazer e o não conhecimento  de soluções  como a "Multihead" no GNU/Linux é um exemplo claro disso. Afinal, como o próprio nome já informa ("MultiHead" vêm do inglês "cabeças múltiplas"),  a idéia do multi-head é  otimização e melhor aproveitamento dos recursos que temos em termos de harware de um computador pessoal.

Em outras palavras, isso significa, por exemplo, usar quatro moniotres, quatro teclados e quatro mouses ligados num mesmo gabinete (vulgo "CPU") para quatro usuários, ao mesmo tempo. Parece milagre? Saiba mais  e veja que não...


Agora, por meio de todos esses projetos (e por outros projetos ligados ao GNU/Linux que ainda possam existir!), fica mais fácil entender porque usar GNU/Linux ajuda a preservar o meio ambiente. :-)

06 de November de 2009

Resolvendo Karmic sem som e com estalos


Quando instalei o Ubuntu 9.10, tive um probleminha que me tomou um pouco de tempo.

A minha placa de som parou de funcionar. Depois de muito pesquisar no Launchpad, descobri o que era. Vou compartilhar a solução, até mesmo porque não sei se já está nos fóruns em português.

O sintoma era essencialmente estalo no alto-falante e nenhum hardware identificado em Preferências > Som. Ou seja, nada de som, apenas estalos.

A minha placa de som é SIS 966 Azalia Audio Controller. Para saber a sua,

lspci | grep Audio

Placa SIS identificada

O que estava causando esse problema era o pacote sl-modem-daemon (daemon do modem Smartlink), que foi instalado por sugestão do “Drivers de hardware”. O próprio Ubuntu 9.10 alertou para a instalação do pacote com um ícone na área de notificação.

Vi nos fóruns muita gente solucionando com um script ou o seguinte comando a cada inicialização:

sudo alsa force-reload

Mas a solução definitiva é remover o sl-modem-daemon:

sudo apt-get remove sl-modem-daemon

A remoção também pode ser feita em Sistema > Administração > Drivers de hardware. Lá, há o botão ‘Remover’. Aí, aparecerá que o daemon do modem Smartlink foi desativado.

Drivers de hardware

Reinicie e seja feliz com o Pulseaudio! Também postei a solução em algum lugar do fórum Ubuntu-PT.

Posted in Ubuntu

04 de November de 2009

litl webbook: some technical comments

litl

So, you’ve probably seen the news: litl webbook released! It’s the result of heavy work of an awesome team! Our website has a lot of information about the product from a user perspective, so I thought it would be nice to bring an overview of the more technical aspects of the litl OS that I find specially interesting. Scott has written some technical notes about our OS too.

Javascript

Almost all UI code is written in javascript using our GObject introspection-based binding called gjs (using SpiderMonkey engine). It was a quite interesting learning experience to write a large amount of UI code in javascript. By the time we started, I think no one in the team had any real experience with javascript. So, it took some time until we all agreed on the javascript programming idioms (the flexibility of the language may “cause” a lot of inconsistencies…) and on how to better/correctly take advantage of its features. Most of what we agreed in terms of coding style is in the gjs style guide. Doing stuff in javascript (i.e. not doing the whole UI in C or any other insanity like this) allowed us to prototype, refactor, rewrite things much faster. And that was crucial for us because the ideas around the UI design changed a lot during the first months of development and we ended up rewriting large chunks of code several times on the way. Doing relatively large scale stuff in javascript definitely requires very clear and strong guidelines in order to keep the code base sane – maybe a bit more than usual.

GNOME & FLOSS stuff

The OS is heavily based on well-known open source projects. Some facts: it’s based on Ubuntu (with great support by Canonical) and the UI is all written with GNOME platform and co. As I said, almost all code is written in javascript using gjs. Most of the UI is Clutter-based. We have our own specialized window and compositing manager that was implemented with our use cases in mind. We’re definitely one of the projects with the largest Clutter-dependent code base. We use GTK+ in just a few places where we needed more complex widgets (i.e. text entry). The web browser is Gecko-based and it’s pretty much implemented as a XUL app running in a separate process than the OS chrome. We use Evince and Totem (as browser plugins), GStreamer, Network Manager, and others. One interesting fact about our development process is that, in the ~2 years of heavy hacking, we had to adapt to major changes in the upstream projects we base our OS on. So, since we started, we had to port our UI to Clutter 0.6, then 0.8, and finally 1.0; had to port gjs to use the then-new GObject introspection scanner; migrated from Network Manager 0.6 to 0.7; and maybe some other major changes that I can’t remember now. We contributed to those projects as much as possible during the process.

No storage, just caching

You probably noticed that the device has “only” 2GB of storage. That won’t sound strange if you see this from a “webbook perspective”. One of the ideas behind the product concept is that the device serves as a much improved window to the web. In other words, the device provides a simple and beautiful way to access web content – among other things. So, we are pretty much only using storage for local caching. We don’t really store any real permanent data on the device. And that brings some interesting challenges on how we implemented the OS. So we had to implement some smart ways to cache as much content as possible and expire the right bits at the right time so that the general experience is nice and smooth. Simple example: the OS provides a way to access all your Flickr photos and videos (which can be a lot of photos and videos btw) but we never permanently store anything on disk. We cache things like rss feeds, profile pictures of your litl contacts, a lot of your Flickr photos and videos, website favicons, installed channels, etc. Each type of content may use a different way of expiring items and all that needs to fit in the relatively small storage space we have. You can guess how fun it was to hack on this. Hacking on syncing was even more fun though :-)

Syncing

Another interesting aspect of the device is that each device is connected to a litl account on our servers and all your stuff (browser cards, channels, settings, contacts, etc) is always synced in our servers. That means if you lose your device and get new one, you would just need to connect your device to same account and all your stuff would be nicely restored. Additionally, multiple devices can be associated to same account. In that case, they will automatically share channels and other things. If you add channel card in one, it will automatically appear on the other. We spent quite some time working on our syncing infrastructure (client and server), dealing some relatively complex problems – especially when dealing with making UI immediately react to sync-related changes in the local and remote datastores. The server side syncing stuff (and other server-side features) is implemented with Google App Engine, some bits in Amazon S3 and Django.

Seamless system updates

The OS comes with a smart update system. No package management involved. No user action needed to get system updates. In practice, we download and install a new OS image and fetch your data again from litl servers while the system is idle. The update system falls back to current image in case something goes wrong with new OS images. The update system allows us to keep updating, adding features, fixing bugs, and then push those updates to our users in a burden-free way.

We had a lot of fun hacking on the litl webbook. It’s always great to work in a team full of very smart people. Definitely learnt a lot in the process. We still have a lot of work to do of course but I already feel very proud of what we’ve accomplished so far. Exciting times!

Update: Saying that the UI is 99,99% Clutter-based is not very accurate. It’s a bit less than that :-)

03 de November de 2009

WordPress Brazilian Translation Project: Case Study


[english version of the last post]

Sometimes democracy without good references and standardization can be a problem for an open source project. Because of the majority will, the group becomes isolated and without prospects for growth.

I remember when Arnaldo Jabor said that democracy can be harmful when governor is in power indefinitely. The alternation of parties is necessary for the smooth progress of democracy. Sometimes the majority does not know what is best. New things can be very good.

That´s the case of WordPress Brazilian Translation Project. They take the principle that decisions should be made democratically, and nothing else. Let’s see where it led:

  • The translation project of WordPress pt-br does not use mailing list. They discuss the adoption of a particular term via forum. I suggested that the purpose of the forum is another and the best way to discuss translation is through mailing list.
  • The translation project of WordPress pt-br does not use any collaborative tool like wiki, to manage module reservation/revision. Although there are few modules, there isn´t an explicit, fast and community tool to know and operate the translation workflow.
  • The translators are not required to know everything, but they should surround themselves with good references. Some teams like GNOME, KDE, XFCE, and many others use Open-Tran and LDP-BR, among other dictionaries/glossaries /references. They also adopt the rules of Brazilian Academy of Letters about the use of capital letters. These technical references prevent the group of accidentally translate “cut” (cut / paste) as “cortar”. We all know that about this Microsoft and Linux agree: “cut” is translated as “recortar”. (But it doesn´t apply to WP BR Team.)
  • Create their own glossary through the forum discussion seems to be tough and an attempt to reinvent the wheel. Currently, the projects try to save energy and achieve standardization (if possible). As I said here, there are good references that avoid creating glossaries and glossaries. The terms that generate conflict are the minority.

When I talked to the WP translator, she understood that the arguments above are arrogant and that the WordPress team relies on efficiency of their tools. I explained to her that the point mentioned above is not arrogance, but something quite basic: it´s the (effective) way the translation teams work.

Adopt mailing list, wiki, reference Open-Tran and LDP-BR, solve inconsistencies and adopt standardization was taken as painful criticism of their work. But, unfortunately, it was. And because of their sorrow, probably they will not follow my suggestions. Those were my ideas, but it could come from other translators. Democracy can be excellent, since together with the desire to improve.

For all that, I felt that her criticism about my patch is poor. She didn´t mention any technical reference: Aurelio, Houaiss, Michaelis, Thesaurus, Priberam, Open-tran, VP, nothing. Only that story: it´s how our group does and do not “disrespect” our decision.

That´s why I congratulate many other l10n teams: GNOME, KDE, XFCE, Fedora, Ubuntu, etc.. The translation of Linux goes hand in hand with good methodology, without ceasing to be democratic. If these issues were reflected by the translation team of WordPress, undoubtedly translators and users will realize the improvement.

Posted in l10n, Software livre

Banco do Brasil, tô achando que é tchau

Eu tô há algum tempo ficando cada dia mais chateado com o Banco do Brasil. Apesar de usar GNU/Linux internamente, e aparecer na mídia como uma instituição aliada do software livre, o banco sempre foi um pé no saco pra quem quer usar softwares e protocolos abertos. A idéia de girico da equipe do BB de usar java para uma “solução de segurança” sempre me deixou sem entender. Por muito tempo isso me obrigava a usar software proprietário se quisesse usar o banco online. Resultado: eu não usava banco pela Internet até a Sun lançar o java como software livre.

Acontece que o navegador que eu uso atualmente não tem suporte a plugins java ainda (porque, claro, o plugin do Java não é um plugin normal, como todos os outros que já funcionam), e eu uso atualmente amd64, e, caso você não saiba, a ’solução de segurança’ do BB só funciona com 32 bits. Como todos sabem, java é portável.

Algumas coisas, como essa, eu consegui passar por cima. Por exemplo: eu estava um dia olhando uma propaganda do banco sobre recursos para o iPhone. Na hora veio na minha cabeça: mas, peraí, iPhone não tem Java! Como, então, se usa iPhone para acessar o banco? Óbvio: retira-se a solução de ’segurança’, que sempre foi uma estupidez inútil, e se permite fazer algumas operações pelo iPhone. Não entendo muito bem por que a cisma com o iPhone, hype é foda, mas de qualquer forma, eu obviamente pensei em fazer meu próprio iPhone! Aqui vai, como!

Instale o Midori, no Debian basta instalar o pacote ‘midori’. Abra o Midori e vá no menu ‘Edit’, opção ‘Preferences’, e na aba ‘Network’ mande o Midori se identificar como ‘Custom’. Adicione a seguinte linha no campo de texto:


Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C25 Safari/419.3

Pronto, você já pode logar no BB online pelo Midori, como se fosse um iPhone. Ḿas pra eu acessar pelo meu navegador normal não pode, né, BB?

Meu iPhone

Nos últimos tempos, minha relação com o banco ficou mais complexa: eu recebo meu pagamento pelo trabalho que faço para a Collabora por transferência internacional, e isso faz de mim um exportador de serviços (que chique, hein?), o que me obriga a usar uma estrutura similar a de empresas no trato com o banco, incluindo usar o horrível, péssimo, mal feito e bugado “Gerenciador Financeiro aplicativo”. Feito na maravilhosa linguagem Java™, que como todos sabem é Write once, debug everywhere™.

Esse pedaço de fail é extremamente chato de mexer, muito complicado. A única coisa fácil que dá pra fazer nele é errar. Mas até funcionava no meu amd64 (a solução de segurança não tava nem aí que ela falhava). Acontece que no último mês eles mudaram a forma como isso é feito, e agora não funciona mais com amd64, então eu precisei usar uma vm 32bits pra fazer o que eu preciso fazer.

Como isso já está beirando o ridículo, e eu sei que a única coisa que me causa esses aborrecimentos é a incompetência técnica do Banco do Brasil, acho que chegou a hora de repensar definitivamente qual banco usar para minhas necessidades bancárias. Sugestões?

01 de November de 2009

Fazendo o Gnome-Shell seu ambiente padrão no Debian

Depois de um comentário do Kov neste blog me mostrando que o Gnome-Shell está no Debian a pouco tempo, através deste POST em seu blog, me lembrei que a grande maioria dos softwares, só não me arrisco dizer todos, que estão nos repositórios do Debian, possuem um manual ou um README.Debian.

E o que isso tem haver com tornar o Gnome-Shell o ambiente desktop padrão do GNOME?

Bom foi lendo o README.Debian que eu aprendi como se faz da maneira certa.

No post anterior a este, eu dei uma dica de como instalar e fazer com que o Gnome-Shell fosse executado no ato do login do GNOME, mas venhamos e convenhamos, era uma baita gambiarra.

Era uma gambiarra por que ele fazia o gnome-shell executar quando o lgoin fosse feito e não que este fosse configurado corretamente para ser o ambiente desktop padrão, assim como o metacity/gnome-pannel são configurados normalmente.

Mas voltando ao ssunto, eu aprendi lendo o README onde está muito claro como isso dever ser feito.

Segue o trecho e o caminho para encontra-lo no seu sistema assim que seu gnome-shell estiver instalado:

A propósito, é bem encorajador :)

flamarion@arvore:~$ less /usr/share/doc/gnome-shell/README.Debian

…..

3. If you have enough corage…

GNOME Shell installs a .desktop file which makes it possible to make
it the default for your session, replacing metacity/gnome-panel. To
make it the default all you need to do is set the following gconf key
to ‘gnome-shell’:

/desktop/gnome/session/required_components/windowmanager

Here’s the gconftool command, if you’re feeling lazy:

$ gconftool-2 -t string -s /desktop/gnome/session/required_components/windowmanager gnome-shell

Não precisa ter medo, isso funciona.

Então esqueçam a dica do .gnomerc que dei anteriormente e usem a forma correta.

Caso não tenha facilidade de fazer isso pela linha de comando você pode fazer a mesma mudança a partir do “Editor de Configurações” que fica no menu Aplicações->Sistema->Editor de Configurações, no seu Debian.

E ele tem esta cara:

gconf

Modifique a chave selecionada para gnome-shell e terá o mesmo efeito que a linha de comando sugerida pelo README.

Espero que tenha ajudado, e obrigado Kov pelo comentário que fez no post anterior e me fez ler um pouco mais a respeito e fazer a coisa da maneira correta.

31 de October de 2009

Hoje eu acordei com uma vontade…

… de saber onde foi parar o código que o Katatudo prometeu por volta de 2004.

Pelo jeito vamos ficar sem, mesmo. Hoje em dia o Leonardo Cardoso, que nos tinha prometido que o trabalho estava sendo feito já saiu da empresa sem cumprir a promessa, e até a minha única esperança e que algo fosse sair, o Cristiano Anderson, parece já ter ido para pastagens mais verdes, também sem cumprir a promessa que fez =(.

Mas agora acho que não precisa mais, né? A propaganda já foi feita, a empresa já foi comprada, todo mundo já pôs o que queria no bolso, uma outra geração de gente pra ser enganada já entrou no mercado. Se esse fosse o único caso de cara de pau no software livre brasileiro eu ficava até feliz. Nossa vontade de querer acreditar em tudo, junto com nossa capacidade de esquecer de tudo bem rápido torna esse tipo de coisa possível. Também torna possíveis alguns discursos políticos muito engraçados, btw.

Quer experimentar o Gnome-Shell no Debian?

Há algum tempo eu venho usando o gnome-shell, mas venho compilando ele diretamente do git.

Por acaso, eu ja deveria saber que estava lá, tentei fazer a instalação via apt (aptitude) no Debian.

Infelizmente para a versão testing ele ainda não está disponivel, mas para minha felicidade estava disponivel no sid, e sem dependencias quebradas, ou seja, instala que é uma beleza.

Caso você use também o testing e queira experimentar o gnome-shell no seu Debian pode fazer o seguinte:

Adicione o sid/unstable no seu sources.list, deixando-o assim :

cat /etc/apt/sources.list

deb http://ftp.br.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.br.debian.org/debian/ testing main contrib non-free

deb http://ftp.br.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.br.debian.org/debian/ unstable main contrib non-free

Se preferir use sid onde está unstable e squeeze onde está testing, mas não vai fazer diferença.

Em seguida edite o /etc/apt/preferences, caso não exista crie e deixe dessa forma:

Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 500

Só para entender, o que fizemos foi o seguinte, adicionar o respositório da versão instavel do debian no sources.list junto com a versão de testes.

E para que, quando você fizer um aptitude safe-upgrade, upgrade ou dist-uprade, ele não assuma os pacotes mais novos como os atualizaveis, obviamente que estão na versão instavel, criamos o preferences onde colocamos uma prioridade maior para a versão de testes dizendo assim que os upgrades devem ser feitos a partir dessa versão.

E ai você vai me perguntar, como que eu instalo então o gnome-shell da versão instavel já que o sistema assume que a versão  de testes é a que prevalece?

É simples, você pode dizer ao aptitude que ele deverá buscar este pacote da versão instavel, da seguinte maneira.

Antes, é logico, você vai atualizar sua lista de pacotes com um:

aptitude update

E instale o gnome-shell assim:

aptitude -t unstalbe install gnome-shell

Coisa linda de Deus, vai baixar da sid só o gnome-shel e suas dependencias e instalar na sua versão testing.

Para ve-lo funcionando é bem simples, faça assim no seu terminal, com seu usuário mesmo:

gnome-shell –replace

Este comando vai te dar a próxima geração do ambiente de trabalho que o gnome trará na sua próxima versão, isso é bom caso você queira mudar para o gnome-shell quando atualizar seu gnome para o 2.30, ou 3.0 se assim for decidido.

Caso queira colocar o gnome-shell em backgroud para continuar usando o terminal é só usar o “&” no fim do comando, assim:

gnome-shell –replace &

E caso queira usar ele como padrão na inicialização pode criar o .gnomerc e lá dentro chamar o gnome-shell, algo assim:

flamarion@arvore:~$ cat .gnomerc
/usr/bin/gnome-shell –replace

Se o .gnomerc não existir, crie no seu home.

Lógico que deve existir uma maneira para que o gnome-shell seja seu ambiente padrão sem ter que usar o .gnomerc, mas eu ainda não sei.

Sei que assim funciona.

Se desejar usar o gnome-shell diretamente do git, na página oficial tem como fazer:

http://live.gnome.org/GnomeShell

Espero que curtam o gnome-shell o tanto que estou curtindo.

Latinoware

Semana passada fui no Latinoware e foi bastante interessante. Lá palestrei sobre nossa equipe de tradução do GNOME e tive algumas experiências interessantes:

  • Foi bacana rever alguns e conhecer boa parte do pessoal do GNOME Brasil. Espero vê-los mais vezes;
  • Também revi o Farid, que trabalha comigo no Archlinux Brasil, ficamos de conversar mais como acabei não podendo ir no último dia devido ao atraso do motorista que ia buscar a gente no Paraguay, não conversamos :-( ;
  • As palestras também foram legais: o Lício falou sobre o GNOME Love, eu falei sobre a equipe de tradução do GNOME para nosso idioma, o Binhara falou sobre o Mono, a Izabel e a Luciana falaram sobre o GNOME Women (eu infelizmente perdi essa palestra :-( ), o Vinicius Depizzol falou sobre a experiência do usuário no GNOME e para finalizar o Tiago falou sobre personalização do GNOME. Um ótimo conjunto de palestras :-) ;
  • Foi legal discutir coisas, tanto técnicas como não técnicas, com as outras pessoas do GNOME e de outros projetos como o Fedora. Aliás esses eventos acabam proporcionando trocas de experiências que contribuem em muito com os projetos de SL. Aliás isso é uma das coisas mais importantes de eventos como esses e tenho que ser bastante grato à Fundação GNOME por me patrocinar e ter a oportunidade de fazer coisas como essa, além de poder participar do evento e conhecer mais pessoas;
  • Depois de assistir uma palestra interessante sobre o Mono com o Binhara e depois de ouvir o Everaldo falar horas e horas disso, fiquei com vontade de aprender a programar nesse ambiente;
  • Conversei com o João Sebastião sobre como podemos fazer a adequação do GNOME para a nova ortografia. Para corrigir algumas coisas nas versões antigas ele fez um script que pode ser bastante útil para agilizar nosso trabalho. Próximos capítulos desta trama serão divulgados aqui neste blog em breve ;-) ;
  • Conheci o Paraguay, e embora este país tenha muitos produtos interessantes a venda ele tem a pior poluição visual que já vi;
  • Não consegui ver as cataratas, aliás faltou tempo para isso :-( ;
  • Minha palestra não teve um grande público, mas acho que deu para passar a mensagem da equipe. O pdf aparecerá em breve por aqui;
  • Foz do Iguaçu é uma cidade bastante esquisita: lá é úmido pra caramba, escurece bem tarde e isso me faz perder a noção do tempo;
  • Não gostei muito de comida Baiana. Tem muita cebola. E eu odeio cebola. Aliás, a coisa que menos comi lá foi comida paranaense;
  • A organização do Latinoware também deixou muito a desejar, já fui em eventos mais bem organizados e acho que o Latinoware também podia ser;
  • Agradeço a fundação GNOME por me patrocinar, ao Leonardo por me indicar para palestrar e a Izabel, que correu atrás de tudo por lá (aliás, depois que organizei junto com amigos a ida do pessoal da minha faculdade pro FISL, aprendi a agradecer as pessoas que fazem acontecer);

É isso aí :-) Que o próximo evento venha logo e que eu tenha a oportunidade de vê-los em breve.

 

27 de October de 2009

Ela chegou! E eu sou papai!



Mariana nasceu dia 20 de Outubro, às 17:26h. Desde então o pai dela não dorme bem à noite.

26 de October de 2009

Vinagre 2.29.1

Olá, internet! Hoje lancei o Vinagre 2.29.1, com features bem legais:

Conexões Reversas (tipo o modo listener do vncviewer):

reverse1reverse2

Eu quero a ajuda de alguém para documentar esta feature:https://bugzilla.gnome.org/show_bug.cgi?id=597110

Possibilidade de mudar a profundidade de cores e usar compressão JPEG (com perdas):

connect1

E uma mini-toolbar no painel dos marcadores:

book1

Leia o anúncio completo (inglês) em http://mail.gnome.org/archives/gnome-announce-list/2009-October/msg00069.html

Se você quer ser informado sobre novidades assim que elas acontecem, siga-me no twitter ou identica.

A propósito, seria interessante se alguém criasse um repositório PPA (Ubuntu) para o vinagre instável. Se você tá interessado, mande um email pra mim!

23 de October de 2009

Nova versão da animação em massinha sobre Software Livre

Bem bacana a nova versão da animação em massinha sobre Software Livre. Nela é possível escutar com muito mais nitidez a narração da história sobre o software livre, junto com uma nova musiquinha de fundo. Apesar de gostar mais da trilha sonora da primeira, o resultado final dessa nova versão ficou muito legal e vale a pena compartilhar. Parabéns ao Kretcheu pela iniciativa e ao Ary Favero Jr pela locução! :-)

Para que todas/os possam comparar e tirar suas próprias conclusões, segue abaixo as duas versões:

VERSÃO 0.2

<object data="http://vimeo.com/moogaloop.swf?clip_id=5863277&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" height="270" type="application/x-shockwave-flash" width="400"> <param name="allowfullscreen" value="true"> <param name="allowscriptaccess" value="always"> <param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=5863277&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1"> </object>

Software Livre - Animação em massinha from kretcheu on Vimeo. Adaptação do Kretcheu e Ary Favero Jr.

 

VERSÃO 0.1

<object data="http://www.youtube.com/v/UvWRhnc_77Y&amp;hl=pt-br&amp;fs=1&amp;" height="344" type="application/x-shockwave-flash" width="425"> <param name="allowFullScreen" value="true"> <param name="allowscriptaccess" value="always"> <param name="src" value="http://www.youtube.com/v/UvWRhnc_77Y&amp;hl=pt-br&amp;fs=1&amp;"> <param name="allowfullscreen" value="true"> </object>

Versão original de Aurélio Heckert e Rozane Suzart.

Linus Torvalds apoia o Lançamento do Windows 7

Linus Torvalds apoia o Lançamento do Windows 7

Em um conferência de Linux no Japão, a Microsoft coloca (de propósito ou não) um ponto de venda do Windows7 em frente ao local. Nosso amigo Linus Torvalds tira uma onda e vai lá “prestigiar” o lançamento.

Fonte da foto.


21 de October de 2009

EMSL2009

emsl-2009

Quem acompanhou a hashtag #emsl no identi.ca já tem uma idéia de como foi o Encontro Mineiro de Software Livre este ano. Para quem esteve lá, resta a certeza de como foi maravilhoso!

O EMSL é o evento que acontece anualmente em terras mineiras para promoção do Software Livre, como o próprio nome já diz. Este ano, foi decidido realizar o evento na cidade de Itajubá, no sul de Minas Gerais. IMHO, não houve melhor coisa! A comunidade Itajubense recebeu o evento de braços muito abertos e não poupou esforços para fazer do evento um grande sucesso. Agradecimentos especiais ao Júlio Cardoso, que aceitou o desafio de levar o evento para lá!

Palestras e mini-cursos: Foram muito legais, entre o que assisti, chamo a atenção especialmente para a do Professor Cláudio Kirner, que soube explicar bem o assunto no pouco tempo que tinha. Com toda certeza é um dos maiores conhecedores do tema que falou: realidade aumentada.

Fora as palestras: Muita diversão, conversa e socialização, do início ao fim do evento. E como todo bom mineiro, fizemos isso quase sempre na mesa de um bar flambando bebidas. Os assuntos: Todos aqueles que nerds adoram. Meus agradecimentos especiais ao Lincoln, farrista que foi o responsável pela “diplomacia” entre times e pessoas durante o evento e a Júlio Neves, pelas piadas e “causos”, ele é mineiro de coração e de fígado também! Ao Cascardo, GNU! Por ter insistido para que eu fosse ao evento. Se tivesse deixado de ir, teria perdido muito.

A cidade: Itajubá é uma cidade muito bonita, limpa, com pessoas agradáveis, mulheres lindas e inteligentes.

Comunidade local: Muito acolhedora, pessoas excepcionais. <miguxo>Por mais que eu fale, não vou conseguir expressar tudo</miguxo>. Lá, todos estão todos prontos para “2 dedim de prosa”. Júlio Neves que o diga =)

Organização e sentimento geral: Apesar de toda a discussão que aconteceu nos meses de organização do evento, acredito que no final, todas as expectativas foram superadas. Com todos que conversei, ficou o sentimento: Foi inesquecível.

Meus agradecimentos a todos que fizeram o evento acontecer, tanto na lista quanto durante o seu acontecimento.

Acompanhe fotos logo logo no site do evento

19 de October de 2009

Recent files Vs. Relevant files

This post could be called “Ideas for GNOME Activity Journal during Zeitgeist Hackfest” too. ;)

Every time I see a list of recent documents in some application, I never see what I am looking for. Checking the recent files on the Places menu of gnome-panel gives me nothing more than some links to pictures or text files I opened some time ago which are far from relevant for me right now. The same happens for similar lists in Gedit menu or other applications.

This very approach is initially being used as default for the new GNOME Activity Journal, which is the application who shows data from the Zeitgeist library. In general terms, the Activity Journal is a huge list of everything you did in your computer, ordered by time.

While having all this information is very useful, displaying it is nothing but tricky. Just listing tons of files sequentially won’t help anyone for finding the file you opened yesterday because the relevance “dimension” is missing.

If I just open some files and close them very quickly, than they shouldn’t be more relevant than the document I worked on for three hours. The photos I saw from my last travel shouldn’t occupy all the list of recent files, as I just spent some seconds in each of them.

Group similar activities can be interesting too. Facebook does that for news feeds and it works quite well. Seeing all the photos from my last travel is only one activity for me. Also, people open and close documents all the time. Make important documents easily accessible is more important than list the last closed one.

Reunião da equipe de traduções do GNOME Brasil

Na noite de outubro 16 de 2009 aconteceu a primeira reunião da equipe de traduções do GNOME Brasil já sobre a nova coordenação do Rodrigo Flores. Infelizmente perdi o início da reunião mas o Rodrigo fez um excelente trabalho em resumir os pontos discutidos e enviou para todos da lista de discussão. O que segue abaixo é o conteúdo deste e-mail, formatado por mim para (espero) melhor destacar os assuntos discutidos:

  1. Manter padrões:
    • Uma das coisas que as vezes falhamos é em manter os padrões. As vezes um tradutor menos experiente acaba colocando maiúsculas onde não deve e isso sai do padrão. O que podemos fazer é criar uma página no wiki com os padrões e ir discutindo eles aqui na lista. Nomes de aplicativos que podem confundir a gente coloca também coloca em tabela.

      Ex: | Eye of GNOME | Visualisador de Imagens do GNOME |

  2. Adequação a nova ortografia:
    • Inicialmente houve 3 alternativas (uma delas meio “inviável):
      • Revisar tudo manualmente (essa é a inviável)
      • Script que corrige palavras, pegando as que mais aparecem (isso deixaria só metade corrigido).
      • Rodar um corretor ortográfico (pareceu ser a mais viável).
    • Há corretores ortográficos já atualizados como o Aspell [1] e dicionários online com a nova ortografia [2]. O Vladimir também sugeriu um dicionário de papel da ABL com a nova ortografia [3].
    • Para quando faremos essa mudança ? Uma sugestão do John Wendell é termos tudo traduzido para o GNOME 3.0 (que pode ser lançado em 5 meses ou 11 meses) e anunciar isso como uma feature.
  3. Regra de crédito de autoria:
    • Decidimos que alguém só pode por seu nome no crédito de autoria se ele traduziu/arrumou o fuzzy de pelo menos 10 mensagens. Mas mesmo que se traduza menos que isso, o nome de quem traduziu vai pro Last Translator e pra mensagem de commit. Esse número pode ser discutido, mas o povo da reunião concordou com 10.
  4. String Freeze Break:
    • O John Wendell esclareceu para os presentes (inclusive para mim) o que era o String Freeze Break (e por que alguns módulos no String Freeze apareciam novas mensagens):
      • [22:36:19      ] rodrigoflores_, deixa eu explicar
      • [16 22:36:31] isso só acontece quando o programador *erra*
      • [16 22:36:56] mas por default as strings novas só aparecem *se* forem aprovadas
      • [16 22:37:17] a pessoa pede, se for aprovado, o cara faz o commit
    • Uma sugestão que ele deu, e que eu concordo é que todos assinem a i18n [4]. Lá vocês ficam sabendo o que foi aprovado e o que não foi e etc.
    • Precisamos também escrever algo no Wiki sobre isso. O Flamarion ficou encarregado disso :-) .
  5. Mudança nas “regras” de promoção:
    • Sugeri adicionarmos o item “Ter traduzido algo não trivial” na regra de promoção tradutor -> revisor. Um dos objetivos pretendidos disso é tentar fazer com que tradutores já em fase de serem promovidos traduzam mais coisas não triviais. A alteração não foi aceita, e os motivos disso foram que traduzir quantidade é diferente de traduzir com qualidade e que, revisores só devem aceitar se acharem que o cara é realmente para termos a confiança de que se o cara mandou pode subir pro repositório sem dor de cabeça. Como quase todo mundo na reunião topou, fica a mudança rejeitada.
  6. Tradução via Web:
    • Uma coisa que eu pedi que todos pensássemos sempre é em como melhorar nosso processo de tradução e nossas ferramentas e uma das coisas que vem aparecendo é a tradução online. O que eu quis salientar é que, IMHO, se isso existir, sou a favor que funcione como é no DL, onde o cara reserva, só ele mexe e depois disso ele marca como pronto. Uma coisa que me contaram (John) e que eu não sabia é que já existem planos para isso ser integrado no DL. Então me dei por satisfeito.
    • Uma coisa levantada nesse tópico (e em alguns pontos do resto da reunião) é que não temos muita documentação para iniciantes. Seria legal se tivéssemos Screencasts, e mais coisa no Wiki que ajude aos novos tradutores. Talvez uma seção “Comece Aqui” já fosse bom. O Flamarion sugeriu uma reunião na qual discutiríamos somente sobre o Wiki. Sou a favor disso e por mim já podemos marcar a data :-) .

Pontos extras (que eu esqueci de comentar)

  • Tradução incremental de documentações grandes:
    • Algumas documentações como o Anjuta são grandes e difíceis de serem traduzidas. Não seria bom se traduzissemos 50 ou 100 strings de cada vez e isso fosse revisado, submetido e a tradução continuasse, ao invés de se traduzir tudo e revisar tudo de uma vez? Isso deixaria o tradutor/revisor mais atencioso e podendo trabalhar aos poucos (isso obviamente pode ser feito por ele mesmo sozinho, mas acho que uma revisão externa sempre ajuda, além do que evitaria ter que corrigir erros recorrentes que estão na tradução inteira).
  • Revisão obrigatória para módulos grandes:
    • Alguns módulos grandes (anjuta e evolution) tem muitas mensagens e um erro ou outro pequeno sempre tem mais chance de aparecer independente do tradutor e da revisão que ele mesmo acaba fazendo (independente se ele é tradutor, revisor ou coordenador). O que eu proponho é que essa revisão seja obrigatória. Isso certamente vai atrasar um pouco o trabalho mas acho que vai melhorar bastante nosso processo.
  1. http://leonardof.org/2009/07/05/dicionario-para-aspell-agora-com-o-acordo-ortografico/pt/
  2. http://www.priberam.pt/DLPO/
  3. http://www.jacotei.com.br/dicionario-escolar-da-lingua-portuguesa-academia-brasileira-de-letras-letras-academia-brasileira-9788504011883.html?ordenarpor=3
  4. http://mail.gnome.org/mailman/listinfo/gnome-i18n
  5. http://mail.gnome.org/mailman/listinfo/gnome-pt_br-list

Se você tiver alguma dúvida, sugestão, bronca ou está interessado em ajudar com as traduções do GNOME (e não estou falando de traduzir para o Ubuntu ou qualquer outra distribuição), não use a seção de comentários deste blog, mas sim se cadastre na lista de discussão[5].

17 de October de 2009

GNOME 2.28 no Archlinux

Após algumas semanas do lançamento do GNOME, já é possível utilizar a versão mais nova desse ambiente de Desktop no Archlinux.

Você pode conferir as notas de lançamento neste link. Alguns módulos, como o GDM por exemplo, estão bastante modificados e um dos principais pontos fortes desta nova versão é que muitas dependências de bibliotecas foram removidas de vários módulos preparando terreno para a versão 3.0.

Além disso, vários aplicativos foram melhorados e há novas features adicionadas em muitos deles. Vale a pena conferir.

 

15 de October de 2009

Você se lembra da minha voz?

Nossa, quanto tempo que não escrevia no meu blog em português!!! Muitas coisas aconteceram desde o meu último post, mas invés de descrever tudo aqui, convido a todos os interessados a dar uma “bizoiada” no meu blog em inglês!

Então, a vida está uma correria só e depois eu volto aqui prá falar mais detalhes sobre a correria toda. Só queria mesmo avisar a todos que o Planeta GNU/Linux Brasil ficou fora do ar por um tempo devido a problemas com o planetplanet, o programa responsável por gerar as notícias e agregar tudo na página web.  O problema foi com uns feeds que não estavam mais validando e o código do planetplanet “quebreva”!

Solução: joguei um WordPress mesmo com um plugin chamado FeedWordPress especializado em tornar o WordPress em um agregador de notícias. Tem até uma interface web para adicionar os feeds e tal!

Bem, atualizem o feed do Planeta e depois eu volto com mais notícias!

06 de October de 2009

The windows source code has been released!

The windows source code has been released!

Ops! praticamente três meses sem postar nenhuma novidade. Porém não tinha como deixar passar em branco este post… está semana estarei de volta as atividades e compartilhando as novidades!

Perceba que o código e bem tosco, porém divertido! o uso do return com o método void main() foi forçar a barra! :cool:


03 de October de 2009

Ubuntu na Info Exame de outubro? #fail

Tenho que adimitir que a revista Info Exame sempre deu uma certa atenção ao Ubuntu, até mais que a outras distribuições. Mas ela é uma revista de informatica e é bem generica.
Na edição ela cometeu uma gafe(por ela podemos dizer o diagramador/ilustrador/ou seja lá que for que faz isso) que pode ser facilmente explicada mas o que não é uma boa justificativa a um erro desse nivel.
ubuntu fail
Confundir ubuntu com macos em um macbook é demais, não?

26 de September de 2009

hntool – uma ferramenta de segurança para Unixes

Resolvi criar uma ferramenta para me ajudar a fazer hardening de servidores linux e facilitar a minha vida no trabalho. Assim nasceu o hntool (hardening tool), uma ferramenta escrita em python cujo objetivo é fazer uma análise simples do servidor e dizer quais as falhas de segurança que existem.

Todas as falhas são niveladas de acordo com risco que podem causar ao servidor. Falhas leves (low), médias (medium) e graves (high). Além destas categorias há mais duas: ok e info.

A ferramenta ainda está em um estágio bem inicial, mas resolvi compartilhá-la logo para ajudar aqueles que querem contribuir com algo e, claro, acelerar o desenvolvimento.

Algumas características:

  • Criei uma estrutura bem modular, baseando-me em outro projeto que mantenho: o namcap. Acredito que com essa estrutura fica muito mais fácil manter e contribuir com o projeto.
  • Não quero que o hntool realize nenhum hardening automaticamente. Quero apenas que ele me avise das falhas que existem. A decisão sobre o que (e como) fazer para consertar a falha cabe ao administrador do sistema.
  • A intenção é fazer com que o hntool sirva para qualquer distribuição, mas no momento eu só tenho testado no Arch Linux.

Usando o hntool

Para testar o hntool é fácil. Baixe-o daqui e descompacte-o. Depois é só entrar no diretório descompactado e rodar:

# python hntool.py

Sim, você só precisa do python.

Segue um exemplo do resultado do hntool (clique para ampliar):

hntool

Acho que deu para entender onde quero chegar, né?

Como contribuir

Você pode contribuir com o hntool de diversas formas: enviando código, patchs, reportando bugs e pedindo recursos. Tudo isso pode ser feito através do bug tracker do github ou enviando um email para contato arroba hugodoria.org.

Todo o código do projeto está disponível no github. Para baixá-lo e gerar seus patchs faça:

$ git clone git://github.com/hdoria/hntool.git

$ cd hntool

(faça suas mudanças no código)

$ git commit -a

$ git format-patch master

Isso irá criar um patch no formato do git. Dessa forma fica melhor para eu aplicá-lo.

A ferramenta também está precisando de um ícone simples e bonito. Sou um zero à esquerda quando se trata de desenho e totalmente incapaz de fazer algo decente. Fica aí a dica. :P

Estrutura modular

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 analyze(self):
		check_results = [[],[],[],[],[]]
		ssh_conf_file = ['/etc/ssh/sshd_config', '/etc/sshd_config']
 
		for sshd_conf in ssh_conf_file:
			if os.path.isfile(sshd_conf):
				fp = open(sshd_conf,'r')
				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[1].append('SSH is using the default port')
				else:
					check_results[0].append('SSH is not using the default port')				
 
				# Closing the sshd_config file
				fp.close()
 
		return check_results
	def type(self):
		return "config"

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.

Há, também, um arquivo README explicando mais detalhes sobre o hntool. Obviamente, ele será melhorado com o tempo.

Bem, pessoal. É isso. Estarei sempre postando novidades desse projeto à partir de agora. :)

24 de September de 2009

Help us to promote GNOME 2.28

Don’t know how? Here are some ideas:

http://live.gnome.org/PromoteTwoPointTwentyEight

I just added this banner in my blog.

GNOME 2.28

18 de August de 2009

Boas sacadas do Gajim e Jabber

No meu GNOME, um dos aplicativos mais executados é com certeza o mensageiro instantâneo Gajim. Atualmente, tenho gostado bastante de alguns recursos, miguxos bem legais de usar. São os recursos de “Humor”, “Atividade” e “Sintonia” que estão disponíveis quando usando um servidor Jabber que implemente o PEP.

Recursos do Gajim

Ativando os recursos:

Janela com recursos do Gajim

Recurso de Humor:

Humor

Recurso de atividades:

Lista de atividades

Recurso de sintonia:

otubo curtindo um som

Como já foi dito, para poder usar os recursos é necessário ter uma conta Jabber em um servidor que implemente o PEP. Não vale ser e-mail do GMaill, pois o Google não implementou no seu servidor o PEP. Caso não tenha uma, é possível criar uma no próprio Gajim, ou em outro client de XMPP, como o Empathy. Para isso é só ir em “Editar > Contas > Adicione”

servidor

Em servidor coloque “jabber-br.org”, avance e escolha um usuário e senha. O servidor Jabber-br é muito bom e administrado pelo amigo Cascardo.

Caso não saiba nada sobre o assunto de Jabber/XMPP recomendo ler o ótimo artigo da AmandinhaKee (aka) Amanda-GNOME.

Obs: Obrigado ao Otubo, por me permitir divulgar seu gosto musical e endereço Jabber.

Atualização: Muitas pessoas me perguntaram sobre o transportes do Gajim para o MSN e outros. Eu indico para leitura este artigo aqui.

04 de March de 2009

Estamos grávidos!

Tenho ótimas notícias!
Paula, minha esposa, está grávida!
Pedro ou Mariana está vindo por aí...

10 de June de 2007

Violent swerves in life

One day, you’re writing code, packaging and translating it, administering systems and giving talks about free software. The next day, you realise you want to go to Law school.

It does not feel any different from starting all over. Fortunately, it feels like it is soon enough.

23 de September de 2006

Thanks, Murphy!

So yeah… I guess I’ll have to take back what I said about clearing the accounts backlog until the end of the weekend, even though I’ve already gone through more than half of it.

Why? Quite simple. My hard disk finally died, after a couple of months spitting out I/O errors and corrupting filesystems all around.

Oh well…