Miniature Effect

Depois de ver tantas propagandas e fotos usando este efeito, ontem resolvi brincar um pouco e aplica-lo à esta foto. Acho que o resultado ficou bem interessante. Vou procurar outras fotos minhas que possam ficar legal com esse efeito.

Miniature

Praia do rosa em miniatura

Miniature 3

Torres, Praia Grande

Miniature 2

Porto Alegre

API para UART

Problema do dia: como definir uma API para uma porta serial, quando ela não existe e é emulada em software através de uma porta USB? Condições de contorno, pra variar não são triviais: não há libc, não há kernel, nem select’s, nem fopen’s.
Fazer a USB se anunciar como um device serial foi a parte trivial do problema, ok, não tão trivial, pois a spec da USB é bastante gigante.

Update: Decidida a API necessária, com essas quatro funções pode-se manipular a vontade uma porta serial-usb:

  • getc
  • putc
  • read
  • write

Histórias de ninar de um engenheiro

Hoje no trabalho, enquanto escrevia um driver novo pra kernel do linux, tivemos uma discussão sobre histórias de ninar de engenheiros, físicos, computólogos, matemáticos, etc… esse povo todo das exatas. A primeira história que lembramos foi a versão ‘exatas’ para os três porquinhos que começa assim:

… Era uma vez três porquinhos ( P1, P2 e P3) e um Lobo Mau, por definição, LM, que vivia os atormentando. P1 era sabido e fazia Engenharia Elétrica e já era formado em Engenharia Civil.
P2 era arquiteto e vivia em fúteis devaneios estéticos absolutamente desprovidos de cálculos rigorosos. P3 fazia Comunicação e Expressão Visual na ECA. LM, na Escala Oficial da ABNT, para medição da Maldade (EOMM) era Mau nível 8,75 (arredondando a partir da 3ª casa decimal para cima)…

Obviamente começamos a pensar em outras histórias, contando as coisas divertidas que fazemos diariamente. Falando de Linux, transistores, FPGAs, spinlock’s, threads, BUG_ON()… não sei se daria uma história muito engraçada, afinal, que criança iria entender! Mas com certeza demos muitas risadas. Algo nessa linha representa as bobagens que inventamos:

Era uma vez um Driver feliz, que funcionava perfeitamente na sua kernel 2.6.18… mas os tempos passaram, e melhorias foram feitas no código da kernel. O Driver feliz estava ficando triste por estar desatualizado, então seu fiel programador resolveu atualizar suas funcionalidades para ele ser ainda mais feliz.

O seu fiel programador não sabia muito sobre as grandes novidades do kernel, e também tinha dormindo nas aulas sobre kernel threads e spinlock’s. Não sabendo dessas novidades, o programador achou melhor não incluir todos aqueles spinlock’s que o Driver feliz tinha.

O Driver feliz então ficou muito triste, pois só fazia kernel panic’s, não conseguia mais ser feliz. Era agora um Driver infeliz… Mas eis que então um superprogramador surge para salvar o Driver feliz da sua infelicidade. O superprogramador não tinha dormido nas aulas de spinlock’s, e em pouco tempo fez o Driver feliz voltar a ser o mais feliz de todos os drivers.

Espero nunca contar algo tipo isso pros meus futuros filhos! Mas, talvez seja inevitável… vou ter que esperar para descobrir.

LCD Bring Up

Uma das vantagens de se trabalhar desenvolvendo hardware é o prazer de ver alguma componente novo funcionando em uma placa. Essa semana tive a felicidade de fazer um LCD funcionar. Depois de bater cabeça com drivers que mereciam um refactor e constantes estranhas – que deveriam virar máscaras com um monte de OR’s – descobri o problema: um dos sinais que devia estar sempre em 1 ou 0 estava alternando de valores enlouquecidamente 0101010101…

Arrumado isso e voilá! LCD funcionando.

LCD com um pinguim!

LCD com um pinguim!

Pena que essa placa não tem um módulo de GPRS… se tivesse o PedroFone tava pronto, mas quem sabe em breve… por enquanto dá pra fazer um PedroTablet, mas acho que não teria muito mercado.