Pelo menos o GIMP tem bom humor

10 Agosto, 2009

Todo mundo fala mal dele. Dizem que o GIMP é feio, bobo, chato e cara de mamão, principalmente quando o comparam com o Photoshop e se decepcionam por ele não ser (mais) um clone do consagrado programa Adobiano. Não me atrevo a comparar os dois softwares, afinal como eu já disse uma vez, comparar software é dificílimo.

Uso ele para editar as imagens que eu posto aqui e de vez em quando restaurar uma foto, só, e posso de dizer que pra essas tarefas básicas vale a pena tê-lo instalado em sua máquina, ou mesmo no seu pendrive. Hoje estava editando o banner da PaPonline (a rede de IRC favorita de 11 entre 10 cajucultores) e precisei redimensionar a imagem, no formato GIF animado. Eis que me aparece isso:

E assim, mais uma vez o GIMP salvou o dia em CPUville! </powerpuff> Deixo uma questão no ar: em que versão será que ele vai ganhar  os famosos poderes de super-vaca?


Watchdog mínimo em shell

20 Julho, 2009

O @ThalesPinheiro da PaPonline (o que ganhou a promoção) me pediu para fazer um programa que checasse se outro programa está rodando de tempos em tempos e, caso não estivesse, que o executasse de novo, em outras palavras, um watchdog.

Terminal 1 X 0 GUI

Terminal 1 X 0 GUI

Como o programa monitorado rodaria sob Linux e era um problema relativamente simples me propus a fazer o watchdog em shell script mesmo. Inicialmente pensei em fazer um script com fluxo de execução paralelo ao programa, fazendo uma verificação a cada intervalo de tempo de acordo com o que foi passado como parâmetro para o script.

Com o script já pronto me ocorreu que recursividade seria bem melhor nesse caso, afinal ficar verificando uma coisa que o shell pode disparar, como um evento, é um trabalho bem idiota. O resultado ficou assim (parecido com um outro programa bem famoso):

#!/bin/bash
x=$*;:(){ $x;:;};:

Entendeu? Não?! Eu explico. A primeira linha do programa é só pra indicar ao terminal que aquele arquivo deve ser executado com o bash, o shell favorito de 11/10 linuxeiros. Na linha de baixo eu declaro uma variável x que recebe os parâmetros passados ao script, que é o comando a ser executado. Por exemplo:

$ ./watchdog.sh servidor_xyz -porta 8080

No exemplo o conteúdo de x é igual a “servidor_xyz -porta 8080“. Mais adiante eu defino a função : (dois pontos) que é basicamente uma função que executa o comando passado ao script e quando a execução termina, por qualquer motivo, a função faz recursividade, ou seja, chama ela mesma. Após encerrar a declaração da função eu a executo e pronto, acabou o programa.

Sintaxe, sintaxe; algoritmos à parte. Se você não conhece shell script pode ser que alguma coisa não tenha ficado clara, mas o objetivo deste artigo não é ensinar shell script. Aqui você encontra alguns cheatsheets que podem te ajudar a entender melhor a sintaxe.

O resultado não é perfeito. Se você quiser encerrar o script pode ser que não consiga e precise matar o terminal que o chamou para pará-lo, mas como eu o fiz na intenção de ser algo bem simples acho que não há necessidade de me preocupar com isso. Em alguns casos isso pode se tornar uma feature, tipo, ao rodar um fork bomb. :)


O problema do problema do Linux

18 Julho, 2009

Síndrome do espelho

...é um paciente com a síndrome do espelho.

Me irrita ver pessoas que usaram alguma distro por um ou dois DIAS e acham que já sabem “o problema do Linux”. Putz! Eu que venho usando várias delas todos os dias, há anos, não sei ainda! Me irrita mais ainda quando os usuários de Linux respondem a essas pessoas com argumentos dignos de vergonha. Todos querem explicar a dificuldade de adoção do coitado do penguim nos desktops, mas porquê?

A primeira e mais óbvia explicação é que esse papo, mesmo batido, ainda dá muito Ibope. Quando sai em um blog famoso um artigo sobre materiais para estudo, debates que vão influenciar em algo importante, uma idéia nova nascendo, algo realmente construtivo dá pra contar nos dedos os comentários. Agora vá contar os comentários de um artigo do gênero SO X vs. SO Y! É gente sendo banida, leitores se atacando, resumindo: um Google nos acuda.

Um software, por mais simples que seja, é dificílimo de comparar. Qual o melhor leitor de PDF’s? O que oferece mais recursos? O que oferece só os recursos que você precisa? O mais leve? O da interface mais bonitinha? Não dá pra comparar dois simples leitores de PDF, pior ainda sistemas operacionais, a classe de software mais complexa que existe (acho).

Um grupo de pessoas quer resolver seus problemas usando os mesmos softwares. Olhando de perto cada uma tem um problema diferente e inevitavelmente alguns softwares vão ser bons pra umas pessoas e ruim pra outras. Qual deles vai desempenhar melhor tal tarefa é uma questão extremamente pessoal e discutir isso é tão sem cabimento como querer discutir a afirmação de que a melhor banda de rock é o AC/DC. ;)

Muito se fala sobre Linux ser difícil de usar. Propositalmente ou não, isso é verdade. O Linux é difícil de usar, o MacOS é difícil de usar e o Windows pfff… nem se fala! mas as coisas vão se tornando menos difíceis à medida em que vamos aprendendo. Dizer que o Linux é difícil por não querer aprender a usá-lo é infantil, você que usa dizer que ele “não é para você, fulano” é estupidez.

Sempre usei programas de edição de imagem com interfaces Photoshop-like. Toda vez que precisava usar o GIMP pra dar um retoque, por mais besta que fosse, era um parto. Despi-me de qualquer preconceito e passei a ter mais paciência com meus próprios erros e limitações. Hoje é muito mais rápido fazer qualquer coisa com ele. Tenho mais exemplos como esse, mas estão no bolso da minha outra calça. :) Assim como há vários argumentos contra e a favor do Linux, todos muito pessoais e nenhum que possa servir de verdade incontestável e absoluta.

Obviamente há pontos em que nossos sistemas precisam melhorar e para isso existem os bugzillas, launchpads e relatórios de erros da vida. O problema do problema do Linux é que não existe “O problema do Linux”. Ele é um (vários?) problema pra cada usuário. Portanto cada um que guarde o seu problema do Linux pra si e vamos mudar de assunto que esse já passou da validade.

Mais do mesmo.


É hoje!

29 Maio, 2009

Estão vendo este banner aqui do lado direito do blog? (leitores do feed, venham dar uma olhada) Pois é, como o título sugere é chegada a hora do maior evento de Software Livre do Nordeste desse ano, o III Encontro Nordestino de Software Livre e ao mesmo tempo o IV Festival de Software Livre da Bahia, e eu como bom usuário de software livre que sou não poderia deixar de comparecer.

A vocês que não vão, acompanhem o tópico #ENSL no meu Twitter aqui do lado, vou tuítar um comentário ou outro de lá. E quem não tiver paciência para os 140 caracteres aguardem um resumão com fotos e tudo mais que só vou postar a partir de depois de amanhã pois o evento tem dois dias de duração. É isso!

Agora tenho que sair correndo que já estou atrasado, como sempre. :)


FLISOL, pra quem estava com o pé atrás

30 Abril, 2009

Sábado dia 25 aconteceu o FLISOL – Festival Latinoamericano de Instalação de Software Livre – aqui em Salvador, na faculdade Área1. Eu tive aula no dia de manhã (esse tipo de evento, em geral, começa de manhã a acaba de tarde) e só deu pra assistir as duas últimas palestras. Mesmo assim acho que cabe falar um pouco do que eu vi para incentivar quem está com o pé atrás, como eu estava, a comparecer nos próximos eventos da comunidade.

logo_flisol

Um conselho: não vá na hora do almoço. Eu fui e me senti meio perdido, o pessoal da organização estava fora de seu posto e os visitantes espalhados por aí. Quando todos voltaram vi que estavam muito animados em voltar para a sala. Bom sinal! :) Na verdade, o FLISOL aconteceu em duas salas ao mesmo tempo. Enquanto ocorriam as palestras em uma ocorria o INSTALLFEST na outra, onde os visitantes levavam seus computadores para instalar softwares livres. Não cheguei a ver, mas dizem que tinha bastante gente por lá também.

OFF: Pela primeira vez vi alguém usando uma camiseta da Red Bug ao vivo e a cores! Isso sem falar nas camisetas do evento, do Fedora, do openSuSE, etc. Até pensei em ir com minha camisa do MeioBit, mas fiquei com medo de ser linchado lá. :P

Voltando às palestras… a primeira palestra (depois do intervalo do almoço) foi do Cristiano Furtado (ex-JasonnFedora) sobre a distribuição Ekaaty, baseada no Fedora e seu uso na educação. Não consegui entender muito bem o propósito da distro, talvez porque ela tem muitos. Só usando pra saber. O pessoal da distribuição está produzindo um material bem didático para ensinar os usuários como usar os softwares da distro, que possui várias customizações, para vários tipos de usuários.

O discurso de Cristiano foi bem light e deu pra notar pelas perguntas que ele fez e que fizeram a ele que nem todo mundo ali já era usuário do Linux, ao contrário do que eu imaginava. Inclusive sentou perto de mim um cara da turma da maçã, empunhando seu MacBook e iPhone. Grandes coisas… sou mais meu notebook Compaq com Ubuntu (a raposa e as uvas?). B)

A segunda palestra foi mais técnica, pero sin perder la ternura. O Alexandro Silva falou sobre um caso de sucesso de integração de um servidor Active Directory, da Microsoft, com clientes Red Hat, na SSP-BA. Lembra daquele acordo do governo estadual com a Red Hat que falamos aqui? Pois é, me rendeu uma bela palestra.

Ambos os palestrantes se mostraram interessados na hora de ouvir as perguntas dos espectadores. Eu que sou tímido fiz três perguntas e as três foram respondidas. Foram sorteados vários brindes: camisas, CD’s e um vaucher para certificações da Sun. Assim todos tiveram um motivo a mais para sair somente depois do final. ;)

Ao contrário dos eventos da Microsoft, que são meio chatos*, eu gostei tanto deste que vou comparecer no ENSL/FSLBA nos dias 29 e 30 de maio (falarei mais sobre ele em outra oportunidade). Participem, é de graça, divertido e não arranca pedaço.

*Ou eu dei azar. Fui no Heroes Comunnity Launch. Foi legal também, mas nem se compara ao FLISOL.

UPDATE: O Rafael Gomes postou um álbum com 56 fotos do evento.


Steve Ballmer: “O Windows, como conhecemos hoje, já era…”

1 Abril, 2009

O atual CEO da Microsoft, Steve Ballmer, enquanto não está atirando cadeiras nos seus funcionários ou falando mal da Apple e do Linux (que ele diz ser o principal rival do Windows) está tomando decisões sobre o futuro da sua empresa, e a última notícia vinda dele, através do blog da equipe de desenvolvimento do Windows, é bastante perturbadora: “O Seven será a última versão do Windows como conhecemos hoje”.

Segundo Ballmer, após o lançamento da nova versão do Windows – que foi adiantado, tendo em vista conta o semi-fracasso do Vista – a equipe de desenvolvimento se dedicará a aprimorar a plataforma Azure, que será a base para as próximas versões do Windows. Para quem nunca ouviu falar, o Azure é um sistema para aplicações na nuvem (o tão comentado cloud computing) que nada mais é do que a substituição dos aplicativos desktop pelos serviços web.

“O Windows, como conhecemos hoje, já era. O futuro está na nuvem!” – diz Ballmer. Decerto, ele tem bastantes motivos para afirmar isso. A pirataria, um desses motivos, é uma das maiores fontes de prejuízo na indústria de software e com os aplicativos rodando na web a pirataria simplesmente não existe, pois o software é um só, que não pode ser modificado: aquele instalado no servidor da produtora do software. “Esse novo conceito de Windows será a prova de crackers” – afirma, de novo.

Migrando todos os aplicativos do Windows para a nuvem o SO poderá ser fornecido gratuitamente, já que o sistema operacional será basicamente os utilitários de hardware e de disco, com o mínimo de recursos possível. É a velha máxima… de graça até injeção na testa. O resto, digo, todos os aplicativos serão responsabilidade do navegador. Já estão disponíveis versões do Office, do Explorer e do Paint (que foi terceirizado e teve seu nome alterado para picnik) na web. Os próximos aplicativos a irem para a web serão Campo Minado e Paciência.

A forma de cobrar pelo software também mudará. Ao invés de adquirir uma licença de uso o usuário poderá pagar mensalmente para acessar sua conta no serviço ou então pagar uma pequena quantia a cada utilização. O meio de pagamento é o cartão de crédito. “Se o cara não possui cartão de crédito ele nunca teve dinheiro pra comprar uma licença do Windows mesmo. Azar dele (fazendo careta)!” – Ballmer, sendo ele mesmo.

Quem não quiser migrar para a nova plataforma de imediato deverá ficar com o Windows 7, que só custará um pouco mais caro que o Vista, ou seja, troco de pinga. Como o novo conceito de Windows não admite nenhum aplicativo além dos navegadores a Microsoft se compromete a atualizar o Windows 7 até 2012, dando tempo aos desenvolvedores para migrar TODO o software legado para a web. Se o mundo não acabar nesse ano, deixará de existir a plataforma Windows, como conhecemos hoje.

Dizem que 2012 será o ano do Linux.

Fonte: Engineering Windows 7, blog oficial do Windows 7.


Desafio

26 Março, 2009

A corrida por um computador melhor parece que não acaba para alguns. Sempre estão colocando mais memória, comprando outro HD (espaço nunca é suficiente), uma placa de vídeo melhor, um sistema de resfriamento para essa parafernália toda não torrar… infelizmente, para o bolso dessas pessoas, a indústria sempre estará lançando novos produtos e de nada adianta ter um hardware top de linha se o software não souber aproveitá-lo.

Comprei meu notebook com 256MB de RAM, em 2007. Na época eu ainda usava Windows, então formatei o HD e coloquei o XP em dual boot com Ubuntu. A diferença de performance era brutal, o Gutsy colocava o XP no bolso. Um tempo depois tirei o módulo de 256MB e coloquei dois de 1GB de RAM. Desde então nunca mais rodei Windows, nem pra comparar.

O processador é um Sempron Mobile 3500+ que roda a 1,8GHz, single core. Não tenho do que reclamar. Enquanto isso, vejo pessoas com máquinas infinitamente melhores que a minha reclamando de sua performance. Por isso resolvi lançar este desafio. Tá, não é bem um desafio, é mais uma comparação… vejam o screenshot:

consumo_thumb

Clique para ampliar.

Neste momento meu computador estava rodando Ubuntu 8.10, com os seguintes programas em primeiro plano:

  • Cliente VNC, conectado;
  • Gerenciador de arquivos (com 4 pastas abertas em abas, sendo uma delas FTP)
  • Tocador de música reproduzindo mp3, com visualização ativada;
  • Monitor do sistema;
  • Cliente MSN;
  • Operações de arquivo (copiando uma imagem .iso de 2,5GB de uma partição pra outra);
  • Relógio do sistema, com calendário aberto (previsão do tempo e iluminação do globo terrestre como extras).

Tudo isso ocupando 359,6MB de memória de 1,9GB, com processador em 52% da capacidade e quase nada de swap (ou memória virtual, como queira): 4,8MB de 2GB. A comparação é bem simples, basta abrir programas no seu sistema operacional que façam as mesmas coisas que os do screenshot, executando as mesmas tarefas. Vence o desafio aquele screenshot que obtiver mais pontos. Um ponto pode ser obtido por:

  • Consumo de memória física menor;
  • Consumo de memória virtual menor;
  • Consumo de tempo da CPU menor; Faça a seguinte regra de três: (qtd. de núcleos da sua CPU * clock) /1,8GHz = consumo do tempo da CPU/porcentagem equivalente para minha CPU.

O screenshot vencedor terá direito a um post pagando pau sobre o sistema operacional ou programa escolhido aqui no iCaju. Tá certo que o Ubuntu não é um primor de performance, mas pelo menos tenho CERTEZA que não vou precisar puxar o saco do Windows. :D


OptiPNG: scripts para automatizar

30 Janeiro, 2009

Está no Windows e já está cansado de ter de ficar arrastando um arquivo por um para o optiPNG? Ou mesmo tendo de ficar digitando um por um?

Ok, eu ajudo. Abra o bloco de notas e escreva:

for %%a in (*.png) do optipng “%%a”

Feito isso, salve como qualquercoisa.bat (pode ser optipng.bat, keatonrocks.bat ou icaju.bat, desde que continue sendo um arquivo .bat).

Agora coloque esse arquivo no mesmo diretório (pasta, como preferir) que está o optiPNG, depois coloque as imagens desejadas neste mesmo diretório e corra (rode) o arquivo .bat criado.

Esse pequeno script fará o trabalho de fazer o optiPNG optimizar todos arquivos PNG que estiverem no mesmo diretório que ele.

Simples? Sim. Inútil? Não.  (Sim, lei do menor esforço!)

PS.: para quem não sabe, arquivos .bat são arquivos em lote do Windows. As vezes eles podem conter vírus, não sendo muito recomendado rodar qualquer coisa que você encontre na internet, mas este é um script simples que não lhe causará problema. Tudo que há ali é um laço (pra repetir o comando até otimizar todos os arquivos) e o próprio comando que executa o optiPNG.

Ps2.: o Ygor (Mamutti) pode criar um para Linux, porque eu não faço a menor idéia de como se faz isso para Linux.