Postagens

Faz backup, cópia ou usa Git?

Imagem
  Fosse no tempo antes do controle de versão de verdade, por 4 vezes na era recente, eu teria perdido boa parte do trabalho. Isso graças a um membro de uma das equipes das quais faço parte. A pessoa não sabe usar as ferramentas e não tem a humildade de perguntar como se faz, já que não consegue aprender buscando  pela Internet. Antes dos controladores de versão, a gente fazia backups regulares do projeto todo e de arquivos específicos, dependendo das alterações. Isso, claro, gerava muitos problemas. Principalmente depois de um tempo, quando não se lembrava mais o porquê de tal cópia. Era bem comum apagar trechos de códigos importantes. Alguns editores ajudavam, fazendo cópias automáticas, mas assim mesmo, as perdas eram parte da rotina. Daí conheci primeiro o  CVS e cheguei a trabalhar com ele em alguns projetos. Parecia muito bom! Mas tinha seus problemas. Quando eu já conhecia o CVS a ponto de não gostar mais dele, conheci o SVN, que prometeu mais do que entregou, eu acho. Mas usando

Como resolver 99% dos defeitos de mouse sem fio de qualquer fabricante

Imagem
O mouse parece estranho? Meio que falha quando é movido? A seta fica tremula e parece que vai cair da tela? O clique pega mais não pega? Parece que quando clica da uma falhada? A seta tem atraso em relação movimento do dispositivo na não? A solução é trocar as pilhas. 99% dos defeitos de mouse sem fio é causado por baixo nível de energia. O bom é tentar usar pilhas de melhor qualidade ou, se possível, baterias recarregáveis. Nos outros 1% dos casos, vale verificar se o receptor está conectado corretamente. Devido ao baixo preço deste tipo de equipamento, consertar fica praticamente fora de cogitação e ai o jeito é trocar o dispositivo.

Distribuições Linux que já usei

Imagem
1) Conectiva 2 - 1996/7 Porta de entrada. Foi bem difícil. Apesar das facilidades eu não entendia nada. Não tinha driver de modem e nem de placa de rede, mas o vídeo funcionava em 800x600. 2) Caldera Linux - 1997 Pior ainda! Não tinha suporte nenhum ao meu hardware. 3) Redhat - 1998 Consegui evoluir em algo. Tive modem e placa de rede funcionando e modem funcionava até cair a ligação. Depois só reiniciando para voltar. 4) SuSe Linux - 1999 Tinha um buraco negro de espaço em disco. Me fez criar ranço com o sistema de pacotes RPM. 5) Slackware - 1999-2000 Ai sim! Foi aqui que realmente comecei a sair do Windows. Antes a partição do Linux tinha até 20% do disco. Daqui em diante ficou com 80%. A maquina teve boa performance e funcionou tudo! Deu trabalho para configurar, mas eu aprendi muita coisa. Viva o pkgtool. 6) Gentoo - 2003 Esse que trouxe a grande evolução no uso. Ter que montar tudo na mão foi realmente muito bom! 2 dias para in

Rais e os testes dos assets

Imagem
As vezes acontece de um deploy falhar. Não é o esperado. Mas acontece. Dia destes, aconteceu comigo, mas por causa dos assets. Mais precisamente um código javascript. Não é que estava errado ou gerando falhas, mas o código em si não era compatível com o Uglifier, compilador de JS usado por padrão no Rails. O que aconteceu foi que a sintaxe usada funcionava de boa no navegador e em desenvolvimento não dava o erro. Mas em produção dava erro na hora de compilar os assets. E o pior é que não havia o indicativo de onde dava o erro no stack trace. Rodei, então, a tarefa rake assets:precompile em desenvolvimento e, também não deu erro. Mas o erro estava lá em produção. Umas googladas depois, descobri que o Uglifier não "entende" algumas especificações mais recentes do Javascript e era sugerido evitar algumas destas sintaxes. Algo como este código: function baba(param1: 'value'){   // some code } A expressão param1: 'value' não é válida para o Uglifi

Ruby on Rails Flash messages e Bootstrap

Imagem
E chega aquele momento em que você percebe que os nomes do níveis de flash messages do Rails não batem 100% com as classes alert-* do Twitter Bootstrap. A solução é criar um help para fazer um de-para das classes, adicionando o seguinte método ao seu application_helper.rb: def flash_class(level)     case level         when 'notice' then "alert alert-info"         when 'success' then "alert alert-success"         when 'error' then "alert alert-error"         when 'alert' then "alert alert-error"     end end E no local no template onde devem ser exibidas as mensagens, adicionamos um pequeno loop pelos níveis de mensagem que existirem: <% flash.each do |key, value| %>       <div class="<%= flash_class(key) %>">             <%= value %>       </div> <% end %> basta usar normal depois: flash[:success] = "Babá das Cove!" flash[:notice] = &

Spring e Rspec - Conflito quase Certo

Imagem
Você está lá todo feliz e contente codificando. Tudo vai bem até que, sem motivo aparente, seus testes automatizados começam a terminar em erros. Classes não alteradas e métodos que funcionavam, agora com erros inexplicáveis tomam a cena do momento. Depois de muito pesquisar e testar, eis que me lembro do spring. O Spring é um pré carregador de aplicações que visa dar boa performance ao desenvolvimento. Iniciar um servidor Rails com ele fica bem rápido. Mas como ele pré carrega o código, inevitavelmente, caímos naquele problema de cache que tanto nos incomoda nos navegadores.  Ai não tem jeito. Quando estiver executando uma bateria de testes, se um comportamento estranho aparecer, antes de ficar louco tentando mil soluções, pare o spring antes.

Meu Primeiro PC

Imagem
Foi um Frankstein 386 SX 33 com 1MB de Ram. O HD era um Seagate de 20MB e dava pra fazer uma festa com essa máquina. A placa de vídeo era uma Cirrus Logic VGA e o monitor era um VGA bem padrão. E tinha também uma plaquinha som que nem lembro mais qual era. A máquina era mesmo um Frankstein, montado com partes de várias outras máquinas, acabei usando uma caixa de madeira como gabinete. Isso foi temporário, mas eu precisava da máquina funcionando. Foi com ela que desenvolvi meu primeiro programa. Isso foi lá no fim do ano de 1994. Pouco tempo depois, um cliente trocou o gabinete de sua máquina por um mais moderno e seu antigo acabou sobrando. Foi então que o Frank saiu da caixa. Nesse tempo eu usava DOS 6.22 com Windows 3.1. Primeiro, fiz um programa comercial em CA Clipper 5. Era um sistema para uma loja de artigos eletrônicos. Ainda em 1994 iniciei um outro programa para um rede de lojas de vestuário. Este era em Visual Basic com banco de dados Access. Foi um projeto bem s