Corporate Speak: Endereçável

October 29th, 2009 § 2 comments § permalink

en•de•re•çá•vel
adjetivo
1. Algo que pode ser endereçado
2. Aquilo que foi ou será endereçado

— Dicionário Corporativo, Superfície Reflexiva

en•de•re•ça•do
adjetivo
Tratado; corrigido; mitigado; repassado; contornado; delegado; ignorado

— Dicionário Corporativo, Superfície Reflexiva

en•de•re•çar
verbo transitivo
1. Tratar; corrigir; mitigar; repassar; contornar; delegar; ignorar
2. Ato de tornar algo endereçável
3. (corruptela do inglês to address) Começar a pensar ou lidar com algo

— Dicionário Corporativo, Superfície Reflexiva

O lado negro da força

August 27th, 2009 § 8 comments § permalink

Dez horas da manhã, eu recebo um e-mail com uma singela planilha de Excel para revisar. Clico na planilha, ela começa a abrir e o Excel trava.

Legal, cliente de e-mail dos infernos–eu penso.

Queimo o processo do Excel e tento abrir a planilha de novo. Nada, o Excel trava de novo. Pontinha de dúvida bate, será que alguma coisa cagou na instalação dele?

Queimo o processo de novo e tento abrir outro arquivo. Excel trava. Nesse momento, bate a preocupação: caramba, se o Excel não está funcionando, como é que eu vou revisar a planilha e atualizar as outras coisas que estão pendentes. Pior, vou ter que acionar o help-desk, esperar um técnico aparecer–Caramba! Eu preciso desse Excel funcionando.

Nessa hora já estou hiper-ventilando. Voltando ao passado distante de programador, abro uma janela do console, encontro o arquivo de preferência do Excel e removo o arquivo. Tento tudo de novo e nada.

Finalmente, já desesperado, lembro que tenho o OpenOffice rodando–resquício também da época em que programava e fazia questão de usar software livre, nada dessas coisas corporativas e só de vez em quando para alguma coisa mais simples. OpenOffice trava também.

Começo a pensar que o problema deve ser no arquivo. Veja se não tem nada pendente de processos, abro um arquivo diferente e tudo funciona as mil maravilhas. Pelo visto, quando tentei abrir o outro arquivo da primeira vez, o processo ainda estava pendente e travou também.

Peço à pessoa para enviar outra versão do arquivo e consigo abrir. Ufa! Dia, vida, trabalho–todos salvos.

É só aí que caí a ficha: eu fui convertido ao lado negro da força.

Acho que vou precisar de terapia depois disso.

Usem linguagens dinâmicas

August 11th, 2009 § 46 comments § permalink

Senhoras e senhores da classe de 2009:

Usem linguagens dinâmicas.

Se eu pudesse lhes oferecer somente um conselho para suas carreiras futuras de programação, seria o de usar linguagens dinâmicas. Os benefícios a longo prazo das linguagens dinâmicas já foram provados por milhares de programadores enquanto o resto dos meus conselhos não tem qualquer outra base se não minha própria conturbada experiência.

Eu lhes darei esses conselhos agora.

Aproveite o poder e expressividade de uma linguagem homoicônica. Ou esqueça que elas existem. Você nunca vai entender o poder e expressividade de uma linguagem homoicônica até passar quarenta horas acordado depurando um heisenbug. Mas acredite quando eu digo que, daqui a vinte anos, você vai olhar para trás, para todo código que você escreveu e desejar que ele tivesse sido escrito em uma linguagem homoicônica. Seu código atual é elegante, mas nem tanto.

Não se preocupe com a quantidade de linhas que você escreve. Ou preocupe-se, mas saiba que contar linhas de código é tão efetivo quando tentar contar parênteses em Lisp. O tipo de métrica que realmente vai lhe trazer problemas é a quantidade de declarações de tipo presente em seu código–justamente o código que vai falhar em uma madrugada movida a cafeína e fazer você amaldiçoar o compilador com todas as suas forças pelo pretenso sistema de tipagem segura.

Escreva uma linha de código a cada dia que assuste outros programadores.

Comente.

Seja cuidadoso com o código das outras pessoas. Não tolere pessoas que não são cuidadosas com seu código e introduzem problemas de manutenção nas elegantes estruturas que você construiu.

Não use marcações TODO, HACK ou FIXME em seu código.

Não perca tempo em discussões sobre linguagens de programação. Algumas vezes a sua está à frente no índice TIOBE, outras vezes ela está atrás. A corrida para entrega do código é longa e, no final das contas, suas linhas são as únicas quem contam.

Lembre-se dos forks e patches que seu repositório recebeu. Esqueça os comentários sobre a qualidade do código. Se conseguir fazer isso, me diga como.

Jogue fora a documentação obsoleta. Guarde o código antigo.

Faça forks do código alheio.

Não se sinta culpado por ainda não ter aprendido Assembly. Os melhores programadores que eu conheço não aprenderam até precisarem. Alguns dos mais excepcionais programadores que eu conheço preferem não aprender.

Beba café em quantidades moderadas. Seja bondoso com suas mãos. Você vai sentir falta delas quando a LER atacar.

Talvez você escreva um compilador, talvez não. Talvez você escreva um driver para o kernel do Linux, talvez não. Talvez você programe sistemas de inteligência artifical em ML, talvez não. O que quer que você faça, lembre-se que isso é tão relevante quando decidir se você vai usar o Emacs ou o Vi.

Aproveite bem os testes que você escreveu. Use-os da melhor maneira que puder. Não tenha medo dos que os outros dizem sobre TDD ou o que as pessoas pensam sobre BDD. Sanidade no desenvolvimento é a maior ferramenta que você vai ter em toda sua carreira.

Comemore cada build bem sucedido mesmo que você esteja sozinho no datacenter e ninguém mais possa compartilhar sua alegria.

Escreva um Makefile pelo menos uma vez, mesmo que depois nunca mais você vá usar algo similar.

Não leia revistas sobre tecnologias da Microsoft. Elas somente vão deprimir você pela pura estupidez da re-implementação.

Conheça os luminares de programação. Você vai sentir falta de saber o que Alan Turing e Donald Knuth fizeram algum dia. Seja gentil com seus colegas programadores. No futuro, eles são aqueles que provavelmente vão lhe apontar para o código que você precisar no momento certo.

Entenda que linguages aparecem, se tornam populares e desaparecem com a mesma facilidade mas há algumas que você deve prezar. Trabalhe muito para reconhecer as características boas de cada linguagens que você usa porque, quanto mais tempo de programação você tiver, mais vai precisar reconhecer quando e para quê certas técnicas e linguagens servem.

Programe em C durante um tempo, mas abandone a linguagem antes que ela lhe convença que controle manual de memória é uma coisa boa. Programe em Haskell algum tempo, mas abandone a linguagem antes que ela lhe convença que mensagens de erro absurdas são parte do fluxo normal de programação. E lembre-se de aprender uma nova linguagem de quando em quando.

Aceite certas verdades inalienáveis: linguagens do mercado como Java e C# são uma porcaria, tipagem dinâmica é melhor do que tipagem estática e sua carreira de programação vai terminar um dia. E quando ela terminar, você vai fantasiar que, quando você era um pogramador hot shot, linguagens de mercado eram boas–mas só pelo dinheiro–, que tipagem estática era mais segura e que sua carreira não terminaria nunca.

Respeite aqueles cujas carreiras já terminaram porque eles contribuíram bastante para o lugar em que você está.

Não espere que ninguém lhe ensine como programar melhor. Talvez você tenha um bom mentor. Talvez você tenha acesso a bons livros e documentação. Mas você nunca sabe quando essas coisas vão desaparecer.

Tenha uma biblioteca reusável mas não coloque coisa demais nela ou, quando você precisar, vai descobrir que a maioria do código lá está obsoleto ou é horrível demais para ser usado.

Seja cuidadoso com os algoritmos de terceiros que você usa, mas seja paciente com aqueles que os criaram. Algoritmos são como bichos de estimação. As pessoas que os criaram sempre pensam que eles são confiáveis, limpos e rápidos mas a verdade é sempre diferente e eles raramente valem o bytecode que geram.

Mas confie em mim quando eu falo de linguagens dinâmicas.


Melhor desfrutado ao som de “Wear Sunscreen” do qual é uma óbvia paródia.

Desvios

March 16th, 2008 § 9 comments § permalink

Estou ficando cada vez mais convencido que a melhor maneira de ver uma coisa não acontecer para você é falar que ela vai acontecer.

Comecei o ano achando que não trabalharia com Rails durante o mesmo. Considerando os projetos que estavam para entrar, a movimentação do mercado aqui em Belo Horizonte, tudo indicava que seria um ano fraco. E principalmente porque eu também queria me afastar um pouco de Ruby e explorar mais outra linguagem. O resultado é que agora vou trabalhar basicamente em tempo integral com Rails e tecnologias relacionadas. Eu não estou achando ruim, é claro. Entre .NET e Ruby ou entre ASP.NET e Rails, eu fico sem dúvida com a segunda opção.

No campo de linguagens, resolvi que exploraria mais Lisp. Eu já brinco com a linguagem há anos, mas nunca fui tão fundo. Com meu interesse por Seaside crescendo, acabei foi indo mais para o lado do Smalltalk. Pelo visto, Smalltalk vai acabar sendo a linguagem do ano. Eu já tinha explorado bem mais Smalltalk do que Lisp, mas é bom poder verificar ambientes diferentes, experimentar o que está acontecendo de novo, e ver que a linguagem–que ainda permanece a minha favorita em elegância–está ganhando cada vez mais espaço.

Agora é só utilizar a estratégia no próximo ano: pensar no que eu quero fazer (inconscientemente, é claro, ou não vale) e jurar que não vou fazer. Vai que dá certo? :-)

Precisando de pegar um solzinho

March 13th, 2008 § 0 comments § permalink

Vão me acusar de nepotismo, mas meu irmão está mandando ver no blog: Tô precisando pegar um solzinho. Essa foi antológica. :-)

Concurso e Conceitos de Programação

March 9th, 2008 § 7 comments § permalink

Segundo os logs de acesso deste blog, o dia de hoje representou o momento em que o mesmo ultrapassou os mil leitores conhecidos nos diversos feeds disponíveis. Eu não sei se acredito nas estatísticas ou não, mas vou supor por um momento que sejam verdadeiras e aproveitar para brincar um pouco.

Concurso

A primeira brincadeira é um concurso. Leitores freqüentes sabem que este ano eu estou pensando bastante sobre a questão de paradigmas de programação–especialmente no que tange ao desenvolvimento Web. O objetivo do concurso é simples: escreva um texto sobre esse assunto. Você pode:

  • Descrever algo que está pensando sobre o assunto
  • Introduzir algo que aprendeu e que modificou sua forma de pensar sobre desenvolvimento Web
  • Explicar as falhas do seu framework favorito e como você as corrigiria
  • Etc

De fato, qualquer coisa nesse linha vale. O prêmio vai para o texto que eu pessoalmente considerar mais interessante sobre o assunto. Para participar, basta enviar um e-mail como a URL do texto ou criar um trackback ou pingback para este texto.

E falando no prêmio: eu tenho uma cópia–nova, intocada–do Code Complete, segunda edição, do Steve McConnell, considerado um melhores livros sobre boas práticas em desenvolvimento. Não é autografado, mas é um livro muito bom e acho que cabe bem em qualquer biblioteca de programação.

Conceitos de Programação

A segunda brincadeira é tentar continuar a série Conceitos de Programação através de textos de convidados. Se você tem interesse em escrever um texto no estilo dos que eu estava fazendo–e eu espero poder contribuir novamente a partir da semana que vem–entre em contato comigo no email mtblog [arroba] reflectivesurface [ponto] com.

O único requisito é que o texto seja similar aos que já foram feitos (balanço de material explicativo e código de exemplo). Obviamente, eu me reservo o direito de adequar o texto ao estilo do Superfície Reflexiva, mas isso não significa mudar o conteúdo do mesmo. Quando muito, inserir alguns sub-títulos, reformatar código para se encaixar na coluna de texto e coisas similares.

Espalhem

Agora é hora de testar se existem leitores mesmo. :-) Quem sentir vontade, espalhe a notícia do concurso e quem sabe podemos criar um diálogo interessante sobre o tema e presentear alguém.

We are the blog

March 5th, 2008 § 7 comments § permalink

We are the blog.
Open your markup and surrender your feed.
We will add your informational diversity and style
distinctiveness to our own.
Your templates will adapt to serve our content.
Resistance is futile.

A dança do salmão

December 29th, 2007 § 2 comments § permalink

Como não gostar de um clipe com uma piranha que canta hip-hop e um baiacu que faz beatboxing? :-)

Horrível

July 10th, 2007 § 5 comments § permalink

Comprei esses dias o Warcraft III: Reign of Chaos com a extensão The Frozen Thone. É, esse mesmo, o antigão. Estava 20 reais em uma loja aqui perto e eu resolvi comprar uma versão original já que sempre gostei do jogo e nunca tinha jogado antes–nem pirateado. :-)

Eu sou um cara que joga pouco. Não gosto muito de jogos demasiadamente “espalhados” (jogos em que você tem que ficar correndo para lá e para cá) e tendo a preferir aqueles em que você tem que seguir uma história mais do que competir contra unidades e unidades inimigas. Meus favoritos, nesse caso, são o Heretic e o Hexen–tirando os chefões, é claro. Detesto chefões finais que você tem que derrotar na base de milhares de recursos adquiridos ao longo do jogo.

E sou horrível por sinal. Depois de dezenas de tentativas, só consegui bater o computador do Warcraft III duas vezes. E isso porque o cenário meio que coibia o crescimento do computador. Ainda bem que eu só consigo jogar uma vez a cada dois ou três dias. Se não já tinha morrido de vergonha. :-)

Balanço cultural de maio

June 2nd, 2007 § 2 comments § permalink

Maio foi um mês em que eu quase não consegui ler ou fazer qualquer outra coisa. Entre a misteriosa mazela e o trabalho em níveis maiores que o normal, acabei não fazendo muita coisa. O resultado foi isso:

  • 2 livros
  • 5 filmes
  • 29 episódios de séries

O número de episódios de séries vistos foi maior porque vi a metade final da última temporada de Stargate SG-1 de uma só vez, como já comentei anteriormente aqui.

Nos livros, li Eifelheim, também comentado aqui e How to Build a Time Machine, um divertido comentário sobre as possibilidades físicas de viagens nos tempos por Paul Davies, um físico e conhecido autor de livros de disseminação científica.

Nos filmes, me diverti muito com a exageradérrimo Snakes on a Plane, me encantei com O Labirinto do Fauno, mas não me empolguei tanto com Diamante de Sangue que, apesar de mostrar um problema real e chocante, foi desnecessariamente exagerado.

Esse mês, se conseguir, espero ler um pouco mais. Vários livros na fila.

Where Am I?

You are currently browsing the Humor category at Superfície Reflexiva.