Controle de versão distribuído

February 29th, 2008 § 8 comments § permalink

Há algum tempo atrás, eu falei aqui sobre a necessidade de escolher um controle de versão distribuído. Naquela época eu fiquei entre o Mercurial e o Bazaar por terem uma evolução rápida, poucos problemas e um suporte interessante da comunidade. Outros como o Git eu não cheguei a olhar muito por causa de certas limitações aparentes.

No final das contas, fiquei com o Mercurial porque algumas poucas características do mesmo me pareciam mais agradáveis do que dos demais. A idéia era migrar eventualmente os repositórios Subversion e ficar somente para o Mercurial. O que acabou não acontecendo e, ironia das ironias, o Git, que anteriormente descartara por falta de suporte Windows acabou se tornando a minha opção atual.

Antes que alguém pergunte, não, eu não comprei todo o hype que a comunidade Rails está vendendo sobre o Git. Aliás, toda a vez que a comunidade Rails começa a gritar que algo é interessante, eu já fico com o pé atrás. Ultimamente, parece que isso é receita segura para um evento Zed Shaw.

O que me levou ao Git foi mais simples e mais prosaico. Ironicamente, a despeito do suporte quase inexistente para o Windows (que depende realmente de ferramentas extras), ele suporta melhor o Windows do que o Mercurial. Não, isso também não é uma contradição.

O Mercurial, através do Python, realmente suporta o Windows nativamente. Mas entre rodar e executar operações comuns, há uma grande diferença. Mas configurá-lo para suporte a SSH já é uma coisa que, mesmo com o TortoiseHg depende de algumas operações que, embora eu possa executar com tranqüilidade, não valem para o tipo de esfera de trabalho de alguns projetos meus. Aí entra o Git, que com seu suporte mais do que excelente a Subversion, acabou se tornando uma ponte entre várias empresas e várias formas de trabalho.

Mercurial e Bazaar, embora tenha suporte a conversões para o Subversion, não tem nada com a praticidade do que o Git faz. O resultado é que eu não tenho problemas de configuração, posso usar um controle distribuído dentro da empresa, e tenho pontes fáceis com outros repositórios.

E sim, os zilhões de arquivos que o Git instala são uma porcaria e as ferramentas visuais são um lixo. Mas parece que isso também está sendo resolvido de rapidamente. Ainda temos repositórios Subversion e Mercurial de projetos anteriores que estão sendo migrados na base da necessidade, mas a vida está mais simples.

Seaside em ação

February 28th, 2008 § 0 comments § permalink

Estou sem muito tempo para postar, mas para quem tem interesse o Michael Lucas-Smith–o homem do Seaside na Cincom Smalltalk–postou um vídeo demonstração da versão alpha do WebVelocity.

O WebVelocity é a combinação de Seaside mais ORM que a Cincom Smalltalk está desenvolvendo e, pelo vídeo, dá para ver que o produto é muito promissor. A transposição de um ambiente dinâmico como o Smalltalk para a Web parece que está se dando sem maiores problemas. Agora é só esperar.

Arc, redux

February 28th, 2008 § 3 comments § permalink

O Galvez–de volta à esfera–escreve:

I never cared enough about Lisp to actually learn it but I must say, from 20 minutes of playing and reading the tutorial, Arc really looks like it’s got some clever ideas in it. Whether or not it qualifies as a real language at the moment is irrelevant to me, I’m ok with calling it MzScheme on Rails or something, doesn’t matter.

Regarding Arc

Eu, que não fui com a cara do Arc, não vejo muito sentido em uma linguagem que vai contra basicamente tudo o que se aprendeu nos últimos anos. De que adianta uma linguagem que permite que você faça algo interessante se, na hora de transformar aquilo em algo real, não há suporte.

A desculpa do Paul Graham é a seguinte:

Arc tries to be a language that’s dirty in the right ways. It tries not to forbid things, for example. (…) For now, best to say it’s a quick and dirty language for writing quick and dirty programs.

Eu gosto de linguagens de programação, mas eu preciso de uma justificativa boa para gastar tempo aprendendo uma.

Indireção

February 26th, 2008 § 2 comments § permalink

Acho que não existe coisa pior do que literalmente partir para a pancadaria com um trecho de código e descobrir, horas depois, que o problema não estava no seu código e que você, na realidade identificou um bug no framework que você está usando.

E obviamente, para complicar ainda mais, você não tem acesso ao código do framework e mesmo que tivesse, não teria tempo para depurar código desconhecido. Finalmente, como isso não bastasse, não existe workaround conhecido para o problema.

Haja paciência.

Coisas que meu filho aprendeu no último mês

February 25th, 2008 § 2 comments § permalink

  • Fazer o login no Windows e Linux com senha
  • Jogar Supertux
  • Jogar Need for Speed e ganha em todas as fases
  • Navegar no Carros do Passado

Pão de Cast S02E05 – Os idos de fevereiro

February 24th, 2008 § 0 comments § permalink

Mais um Pão de Cast para animar o final do mês da galera. E esse é monstruoso, com quase uma hora e meia de duração. Esse povo gosta mesmo de falar besteiras e não pede desculpas por isso. De qualquer forma, os assuntos foram:

E uma série de outros assuntos que se você tiver paciência pode conferir nesse novo episódio. Mas cuidado para não morrer esperando o lance terminar. Pausa serve para isso.

The Pragmatic Programmer

February 24th, 2008 § 0 comments § permalink

The Pragmatic Programmer é outro livro sobre desenvolvimento como um ofício escrito em um estilo que é muito interessante e acessível. Dave Thomas e Andy Hunt tem muita experiência na área e isso aparece no texto de uma maneira bem positiva.

Muitos dos conselhos que o livro dá são bem óbvios. Mesmo assim, a maioria delas está naquela categoria em que uma lembrança freqüente é sempre bem-vinda ao longo da carreira. O propósito do livro é ser essa lembrança.

O conselhos do livro são mais fortes nas áreas em que programadores geralmente tem problemas–como comunicação e o trato com a gerência. E isso é muito necessário, especialmente considerando o quão processualmente integrada a programação está se tornando, e como metodologias ágeis estão mudando o campo. Mas há também muita coisa prática sobre temas como prototipação, estimativas, escolha de linguagens e assuntos similares.

Duas das coisas mais interessantes sobre o livro são os desafios e exercício. Os desafios são questões sobre o texto recém-lido, desafiando o leitor a pensar um pouco mais sobre o assunto e assim expandir sua compreensão do que leu, ao mesmo tempo em que descobre como aplicar aquilo ao seu trabalho diário. Os exercício são mais práticos, geralmente envolvendo código, e fixam o conhecimento de maneira mais profunda. São duas boas ferramentas para garantir que o que o livro diz não vai ser esquecido tão facilmente.

Ler o livro me lembrou quão ruim eu achei Software Craftsmanship. É como se McBreen tivesse lido esse livro, tido alguns insights e decidido escrever um livro inteiro em cima do que seria no máximo um artigo ou ensaio.

Obviamente, o livro não é perfeito. Algumas das falhas, como a tendência de considerar Java um exemplo de como as coisas devem ser feitas, tem mais a ver com a época em que o mesmo foi escrito do que com falhas de exposição. São pequenos problemas no que é, de maneira geral, um livro excelente.

No geral, este é um livro prático e atual que pode beneficiar tanto programadores iniciantes–que já terão uma boa base do que fazer e do que não fazer–como programadores experientes–que podem relembrar práticas que podem ter abandonado por limitações de ambiente e carreira. O final do livro é um pouco lento mas vale a pena continuar já que há gemas escondidas em cada seção do mesmo.

Esse é um dos livros que provavelmente vão entrar para a minha biblioteca permanente e que eu recomendo bastante.

RSA SecurID

February 23rd, 2008 § 3 comments § permalink

Esses dias fui pegar no banco Real o novo “token” que eles estão usando para autenticação do Internet banking. Só depois de usar alguns dias é que fiquei curioso para descobrir mais sobre o assunto e fui procurar o dispositivo.

O trequito–em bom mineirês–é um RSA SecurID (só empresas de segurança para inventarem esses nomes brilhantes mesmo) bem padrão. A página na Wikipedia tem mais informações, incluindo a “bela” idéia da RSA de introduzir isso em outros dispositivos. Se depender da usabilidade do mesmo, vai ser duro. Aliás, no caso do que eu tenho, enquanto você não decora o número de série você é obrigado a segurá-lo contra uma boa fonte de iluminação já que o treco é preto e o número escrito em baixo relevo quase invisível.

O que eu acho engraçado é que o Real usa isso só para empresas, deixando o povão com a autenticação comum (que agora, tudo bem, tem um módulo de segurança a mais). Pelo menos o “token” funciona no Linux embora você tenha que carregá-lo para tudo quanto é lugar se quiser acessar a conta.

Eu só espero que daqui a pouco eles não acrescentem mais coisas. Entre a senha, conta, agência, número de série, número de autenticação e mais segunda senha alfanumérica, em breve eu não vou conseguir logar mais na conta do banco de tanto coisa que estão pedindo.

Série Conceitos de Programação

February 22nd, 2008 § 2 comments § permalink

Esta é a segunda sexta-feira em que eu não posto um artigo da série Conceitos de Programação. Eu não esqueci mas confesso que a falta de tempo com os projetos onipresentes e o desenvolvimento dessa pequena aplicação em Seaside cortaram o tempo que eu pretendia dedicar aos artigos nas últimas duas semanas.

Na próxima semana eu pretendo retomar a série e se alguém quiser deixar alguma sugestão para os próximos tópicos aproveite para deixar na área de comentários aqui.

The Seaside Bookshelf, Twitter edition

February 21st, 2008 § 0 comments § permalink

Tudo bem, eu tinha prometido não falar mais do assunto tão cedo mas não resisti. Eu prometo que dessa vez eu paro pelo menos por um tempo suficiente para o blog respirar.

Essa atualização foi uma reestruturação completa da aplicação para corrigir um erro fundamental no modo como eu tinha organizado os componentes. Agora que eu aprendi mais algumas coisinhas, acho que a estrutura ficou mais lógica e mais fácil de manter.

Além disso, adicionei suporte opcional ao Twitter: quando um livro foi adicionado, marcado como sendo lido, ou terminado, uma mensagem é enviada automaticamente se uma conta estiver configurada. Esse suporte exige o Announcements para funcionar.

O código está abaixo:

Se ainda tem alguém baixando isso, divirta-se.

Where am I?

You are currently viewing the archives for February, 2008 at Superfície Reflexiva.