Let it snow, Let it snow, Let it snow …

Entrando no clima de natal, faça seu console nevar com esse código:


#!/bin/bash

LINES=$(tput lines)
COLUMNS=$(tput cols)

declare -A snowflakes
declare -A lastflakes

clear

function move_flake() {
i=”$1″

if [ “${snowflakes[$i]}” = “” ] || [ “${snowflakes[$i]}” = “$LINES” ]; then
snowflakes[$i]=0
else
if [ “${lastflakes[$i]}” != “” ]; then
printf “\033[%s;%sH \033[0;0H ” ${lastflakes[$i]} $i
fi
fi

printf “\033[%s;%sH*\033[0;0H” ${snowflakes[$i]} $i

lastflakes[$i]=${snowflakes[$i]}
snowflakes[$i]=$((${snowflakes[$i]}+1))
}

while :
do
i=$(($RANDOM % $COLUMNS))

move_flake $i

for x in “${!lastflakes[@]}”
do
move_flake “$x”
done

sleep 0.1
done

fonte: sontek

O dia em que o Glade parou, um passeio pelos RADs Opensource

A um ano atras fiz um projeto para o CCJ que envolvia a criação de um sistema de gerenciamento de telecentros, uma versão simplificada de um programa para gerenciar Lan-Houses chamdo Pylan.

O Pylan foi feito em python e gtk, e o primeiro protótipo funcional ficou pronto em 3 semanas, bem rápido, mas como não usei uma ferramenta de RAD para desenhar a interface posso assegurar que pelo menos metade do tempo de coding foi tentando ajustar a interface na mão, principalmente os formulários. Como o projeto tinha tudo para ser um oneshot, isso não era um problema tão grande, já que no futuro poucas mudanças na interface seriam necessárias.

Mas hoje eu vivo uma situação curiosa, apesar de ter minha empresa aberta legalizada e plenamente funcional, sou empregado em tempo integral em outra .A Hyddro foi concebida para ser uma empresa de verdade, e não uma passadora de notas, ela surgiu num vácuo de negociações que surgiu no processo da minha integração ao grupo da empresa em que sou empregado por circunstâncias obtusas, falhas de comunicação, desconfianças e conflito de interesses que são papo de bar, e não pra blog. Ou seja, toco minha empresa fora do horário comercial, e isso cansa, cansa muito e portanto surgiu a necessidade de usar RAD no produtos da empresa.

Surgiram clientes em potencial para uma versão atualizada do Pylan, que bancariam seu desenvolvimento por alguns meses, e um outro cliente que abriria a portas para um novo mercado, o das lan houses e cyber cafes com linux. Um mercado cheio de soluções pela metade, ruins ou emuladas via dosbox, mas que tem um potêncial muito grande se bem trabalhado.

Voltando, ferramentas de RAD permitem desenhar as interfaces dos programas de forma independente do código, tudo clicando e arrastando, depois é só escrever as classes e os métodos para se conecetar com a interface, reduzindo drásticamente o tempo de desenvolvimento, o que pra mim é fundamental já que não vou conseguit manter um emprego integral e tocar meu negócio sem isso…

No linux existem algumas ferramentas desse tipo:

  • Netbeans possui uma ferramenta de RAD integrada ao IDE, para java.
  • QTDesigner, cria arquivos .ui , que podem ser aproveitados por programas feitos em C++, python, ruby, java, C#  usando QT.
  • Glade, cria arquivos xml para biblioteca GTK, para liguagem C/C++, python, ruby, java etc…
  • wxGlade, cria código em python, c++, perl , lisp ou um xml que pode ser importado pela aplicação.
  • Mono, cria interfaces para qualquer liguagem integrada ao CLR/.NET, C#, IronPython, IronRuby etc…

Usei várias madrugadas para desenvolver protótipos em cada uma dessas soluções, considerando minhas necessidades:

  • Multiplataforma
  • Desempenho decente em Windows e Mac
  • Visualmente bem integrado com a plataforma que está rodando
  • Fácil de instalar, sem muitas dependências
  • Velocidade no desenvolvimento
  • Desenvolvimento Ágil

Mono


O primeiro protótipo que desenvolvi foi em Mono, e digo que foi a experiência mais fantástica em desenvolvimento desktop que já tive !

O monodevelop, não fica no seu caminho, ele é realmente útil, simples de usar e intuitivo, C# é bem parecido com Java, possui bibliotecas bem resolvidas e uma boa compatibilidade com bibliotecas livres desenvolvidas para .NET (sim isso existe).

É Super multiplataforma, rodou bem rápido no Linux, Windows e Mac, se integrou visualmente muito bem no Linux e no Windows… no Mac ficou bem estranho. O ubuntu já vem com mono instalado, no windows tive que instalar o GTK#, no mac tive que instalar o mono e o GTK#, mas em todos os casos foi bem tranquila as instações e o tempo de download das bibliotecas.

Existem bibliotecas como a NUnit para testes, e bons depuradores e profilers integrados no monodevelop.

Levei pouco mais que 4 horas para terminar o protótipo, simplesmente fantástico.

Mas o mono tem um problema sério, o projeto é constantemente trolado pela microsoft e pela comunidade opensource, só pra se ter uma idéia existem milhares de tutoriais e scripts para tornar sua distro mono-free. Tem até distro que seu único diferencial é não ter mono !

Netbeans

No netbeans tive uma experiência de produtividade parecida com a do Mono, com a vantagem de usar swing, não tive que instalar nada na hora do deploy, bastou apenas executar o Jar. O Swing integra nativamente o ‘look’ da aplicação, mas não o ‘feel’, o programa ficou estranho em todos os sistemas, e ficou lento … muito lento. Lendo a respeito, a galera diz que o swing não recebe atenção dos desenvolvedores do java a pelo menos 5 anos, deve ser verdade.

Por mais que eu tenha gostado o desempenho e a pobreza de widgets o tirou da jogada.

QTDesigner

A qualidade gráfica e a riqueza de widgets é fenomenal, outstanding, mas todo seu potencial só é atingido usando C++, eu queria muito usar python, não que não seja possível, mas tenho minhas dúvidas já que o pyQT é desenvolvido por uma empresa independente da nokia.

Outra coisa que pega é que o PyQT exige pagamento de licença no caso de softwares comerciais, o software é livre, mas vou receber pra melhora-lo, tenho muitas dúvidas.

WXGlade

Bem rápido de desenvolver, tem muitos widgets legais, é comparavel como  QT nesse ponto, a portabilidade é fantástica, basta instalar um pacotinho e o sistema funciona como se fosse nativo. É uma ótima opção, muito bem documentado, mas possui bugs e isso é um tanto preocupante.

Glade

Foi minha primeira opção, a ferramenta é muito boa, da pra integrar com o pygtk tranquilamente. O grande problema é que para rodar pygtk no windows é necessária a instalação de meia dúzia de pacotes, além do python claro, o que incha o sistema. No Mac roda sob o X11 o que não é legal. Apesar de tudo, ele é melhor integrado com o GNOME e tem uma qualidade superior aos outros, o Pylan é feito em PyGTK e funciona muito bem.

Meu drama é que após redesenhar toda interface do pylan no glade o programa travou, e não consegue mais abrir o xml gerado… Fiquei na mão, abri um bug report, mas perdi a confiança no sistema.

Agora estou aqui, dividido, com uma deadline, estou bastante inclinado a usar WX com python ou QT com C++, e agora ?

Reviravoltas e novidades

O silêncio

Eu odeio deixar o blog as moscas, mas ao mesmo tempo não gostaria de transforma-lo em um twitter, com posts rápidos sem profundidade. Aconteceu muita coisa desde que roubaram minha bike.

A dobravel

Desisti da blitz ,a bike não me aguenta, após 2 semanas e 5 visitas a bicicletaria ficou claro pra mim que ela não foi uma boa escolha para o meu porte. Passei ela para a minha namorada , e fiquei sem bike para uso no dia a dia. Dois meses depois , engordei e perdi músculos, nunca imaginei que a bike faria tanta falta.

A estradeira

Ganhei 1/3 de um consórcio pago de uma moto estradeira. Motos estradeiras são aquelas motos com um tanque grande, com grande autonomia, feitas para rodarem + de 300 Km sem parar, sem esquentar, com potência suficiente para ultrapassagens. Eu gosto muito de viajar, decidi continuar pagando. Estou em dúvida entre uma kasinski mirage 250 nova ou uma virago / intruder/ shadow usada. O plano inicial era investir um pouco mais e pegar uma Sportster usada, mas tenho que pegar essa moto rápido.

Aonde cair morto

Comprei meu AP, fica nos confins da Zona Leste, mas foi oque os preços mais que inflados dos imóveis em São Paulo e os limites estranhissimos do programa minha casa minha vida permitiram. É uma cobertura decente em um bairro de classe média com condomínios e casas grandes. O legal de pegar a cobertura é que eu posso ter um cachorro, e espaço para minha máquina de fliperama e até para construir outras máquinas de fliperama, yeah !

Casório

Com a compra da casa, caiu a última barreira entre minha resistência em casar, na igreja e de papel passado. Imagine um rasta chegando de uma estradeira ao altar , e levando a noiva num sidecar com latinhas amarradas na traseira. É , vai ser assim 🙂 Aguarde novidades

2009-09-16 no Twitter

  • YES !!! Descobri como mudar o RPM das ventoinhas do macbook pro no linux, chega de cozinhar os dedos ! #
  • YES ! YES ! aprendi a ligar o backlight do teclado via linha de comando :0) finalmente meu linux tá ficando usavel no macbook pro #
  • @stevelacerda , no slackware 🙂 O engraçado é que não tem GUI pra essas coisas bobas 😛 #
  • @stevelacerda a máquina tava resetando por causa da temperatura, não sei pq as ventoinhas nunca passavam de 1000 RPM #
  • @regilacerda hahha in reply to regilacerda #
  • caraca, os sensores de luz , acelerometros tudo aparece no /sys , ou seja, só não funfa por falta de software e não compatibilidad #
  • levando em conta que o linux tb pode gravar na NVRAM posso dizer que o linux é 100% compativel com o mbp, mas faltam daemons #
  • escrevendo um script pra monitorar o macbook pro 🙂 próximo passo, fan RPM ,kbdleds e backlight on demand ! #
  • a quem interessar possa , demonio e monitor de temperatura do macbook pro : http://github.com/liquuid/macsmc #
  • ai, meus olhos doem :http://digitaldrops.com.br/drops/2009/09/desktop-da-hello-kitty.html #
  • veja pq sua distro linux não é livre : http://bit.ly/lgLOP , #troll #
  • whiplash se superou, agora ao abrir o portal ele abre uma pagina inteira de propaganda, flash e gifs animados #FAIL #
  • @tduarte deu sorte, eu fui a 4 quarteis diferentes, fui convocado, me mandaram pro CPOR, fiz um monte de exames e provas … in reply to tduarte #
  • @tduarte tomaram minhas medidas, um tenente coronel informalmente falou que eu seria dispensado pois só tinha 35 vagas todas já preenchidas #
  • @tduarte preenchidas por parentes e militares de outras unidades, então quase um ano de idas e vindas a quarteis fui dispensado #
  • Opensolaris implementou no Nautilus um substituto `a altura do TimeMachine do OSX, fantastico, pena que nunca vai ter pra linux #
  • @uira pq ZFS usa licença livre BSD que não é koshir suficiente pra entrar no kernel do linux, e via fuse é muito limitado in reply to uira #

Powered by Twitter Tools