Archive for the 'Humor' Category

Easter Egg no Google Reader

Entre no Reader, digite a seguinte sequencia no teclado:

cima, cima, baixo, baixo, esquerda, direita, esquerda, direita, b, a

A palavra Ninja! irá aparece na busca, a barra a esquerda irá ter um skin diferente e todos os contadores ficarão com valor 30 (mensagens não lidas). A referência nerd da coisa (obrigado Thomas) é que existe um jogo chamado Contra, do Nintendinho, onde esta sequência dá ao jogador 30 vidas. Esse código também é chamado de Konami Code, e é bem documentado pela Wikipedia em http://en.wikipedia.org/wiki/Konami_Code.

Mais um daqueles códigos que o pessoal dava a vida para conseguir, e que eu sempre fui incapaz de aprender de cor!

Dia a dia do programador

Na série “Uma imagem que vale por mil palavras”

Extraído de http://stuffthathappens.com/blog/wp-content/uploads/2008/04/programmer-job.png

Como eu sempre digo, 95% dos bugs terminam com um “Ahhhhhhhhhhhhhhhhhh…”, seguido da constatação de que o problema foi criado pela interface cadeira-teclado.

Frase do Dia

“There are only two kinds of languages: the ones people complain about and the ones nobody uses.”

-Bjarne Stroustrup(Criador do C++)

Estilo Microsoft de ser…

You need to a flashplayer enabled browser to view this YouTube video

You need to a flashplayer enabled browser to view this YouTube video

Uma palavra apenas: ridículo….

A arte de programar

Por Oliver Widder (http://itmanagement.earthweb.com/cnews/article.php/12035_3726831_2)

Programadores de verdade

Do sempre genial XKCD (http://imgs.xkcd.com/comics/real_programmers.png)
PS: isto me lembra uma palestra em um curso da UNICAMP sobre segurança onde um dos alunos, que iria falar sobre segurança da JVM, disse que uma das únicas formas de quebrar a dita cuja era com um ráio cósmico passando pelo HD e mexendo em bits. E o pior é que ele ficou chatedo quando a sala toda começou a rir!

Commodore SX-64 versus MacBook Air

Commodore SX-64 versus MacBook Air

Miguel, não resisti…

Python

Python

De XKCD

Turing completeness (Pra que linguagens de programação?)

Pessoal, primeiro queria me desculpar por minha ausência neste blog nos últimos tempos… Infelizmente eu acho que eu sou o colaborador mais esparso por aqui e não tenho grandes perspectivas de melhorar minha taxa :-/ De qualquer forma, como o Miguel ainda não me expulsou, continuo na ativa para a felicidade (ou não) dos dois leitores deste blog (não fossem os comentários de outras pessoas e as estatísticas do blog eu chegaria a acreditar piamente que só o Raphael e o Bruno lêem este blog nos últimos tempos… obrigado pela participação de todos!). :)
Como todos devem saber, o Raphael e o Bruno vêm há algum tempo em uma discussão (às vezes) quase religiosa com dezenas de comentários sobre o artigo “Viva a diversidade!” do Miguel. Muita gente deve estar cheia de ler os comentários deles! Eu, inclusive, já passei por uma fase assim, mas acabei lendo todos os comentários em batch depois. Acho que é isto que levou o Miguel a “censurar” (será?) os dois. :) De qualquer forma, acho que este blog deve ser um meio livre de expressão. Se eles querem se matar discutindo um assunto que, a meu ver, não tem muito sentido, deixa eles lá.

De certa forma, discussões grandes como esta acabam gerando ligações com assunto muitas vezes nada a ver com a discussão principal. E foi exatamente isso que me chamou a atenção neste comentário do Raphael. Mais especificamente, a seguinte parte me chamou a atenção: “Em última análise, TODAS as linguagens são possíveis de se fazer QUALQUER tipo de construção lógica. Se não fosse assim, elas não seriam Turing-Complete, tampouco mereceriam o nome “Linguagem de Programação”.”

Isso me lembrou de um fato que eu aprendi há muito tempo e que é uma daquelas coisas que não mudam sua vida porque provavelmente você nunca mais vai ter que lembrar dele no seu dia-a-dia mas fazem com que tudo faça sentido (se um dia você estiver buscando a essência das coisas, como eu acho que o Raphael estava quando ele escreveu esta frase).

Turing completeness é um conceito que, na verdade, estrapola linguagens de programação. Qualquer máquina abstrata ou linguagem de programação que seja capaz de executar qualquer tarefa computacional é classificada como turing complete.

Quando você desce o nível, das linguagens de programação de alto nível para as coisas mais essenciais, como assembly e linguagem de máquina, você vai descobrir que ser turing complete nada mais é do que ser capaz de executar pouco mais de meia dúzia de instruções. Descendo mais o nível, veríamos que para projetar um circuito lógico capaz de executar todo este conjunto de instruções você precisaria de apenas um tipo de portas lógicas: ou só NANDs ou só NORs. Você não vai precisar de mais que dois transistores para fazer cada uma destas portas lógicas. Duvida? Aqui e aqui.

Desta forma, eu acho que toda esta discussão sobre qual linguagem de programação é melhor realmente é inócua. Parodiando o célebre post de Linux Torvalds, homens de verdade precisam apenas de máquinas turing complete. Nada mais!

E é por isso que eu conclamo todos vocês a largarem toda esta porcariada de frameworks, modelos de programação, orientação à objeto, programação funcional, lambdas e o escambal e passemos todos a projetar tudo que precisamos fazer em termos de NANDs (por um gosto pessoal eu prefiro o NAND ao NOR, mas, para não parecer inflexível, acho que podemos liberar o NOR também). Caso alguém realmente precise de algo de mais alto nível, são permitidos os instructions set mínimos ou, já que eu sou uma pessoa benevolente, o uso da linguagem Whitespace, que, segundo o artigo sobre instruction set mínimo, chega perto de algo minimalista (mas não deixa de ser uma linguagem de alto nível, na minha opinião, então use com parcimônia). Coisas como Path language nem pensar. Elas não são suficientemente minimalistas, por mais que a home page dela te faça pensar o contrário.

Com estas tecnologias (e apenas com elas!) acho que daqui há uns 200 anos conseguiremos chegar num nível tecnológico suficiente para termos blogs funcionando novamente. Quem sabe assim eu não ganho tempo suficiente para pensar no meu próximo artigo… :)
Nota: Antes que alguém me acuse de reacionário: esta é uma obra de ficção. Qualquer relação dela com seu autor ou com qualquer outra pessoa é azar deles.

Porque não usar Emacs, segundo um amante de Vi

[http://userfriendly.org/cartoons/archives/07sep/xuf010710.gif]

PS: Esta charge, apesar de engraçada, vai contra a crença do autor de post de que Emacs é muuuuuuuuuito melhor do que Vi.

Frase do dia

Make something idiot-proof and someone will invent a better idiot.

Certificação de programador

Está no ar uma nova certificação de programação que com certeza vai servir perfeitamente para a grande maioria dos programadores do mundo. Chama-se “Works on my machine certification”.

Mais informações aqui.

Sudo

Sanduiche

Autocrítica

Foto de uma palestra do pessoal da Motorola…

Será que o tema era “interface de celular” ?

Pra quem ainda não entendeu, a Nokia é finlandesa….

Burlando o castigo…

..ou “Diferentes formas de se simplificar a tarefa de escrever 500 vezes na lousa ‘Nunca mais irei jogar aviões de papel nos meus colegas’ quando se é um geek”.

http://www.jeffpalm.com/fox/index.html

Next Page »