domingo, dezembro 27, 2009

Os Álbuns dos Beatles - Abbey Road

Após o inferno das gravações de "Get Back" e duas tentativas mal sucedidas de produzir um álbum a partir delas, George Martin ficou surpreso quando Paul ligou no primeiro dia de julho de 1969 e disse: "Nós queremos fazer um ou outro álbum. Você quer produzir para nós, realmente produzir?". No fundo os Beatles sabiam que estavam chegando ao fim como grupo e queriam encerrar com algo realmente bom. E "Abbey Road" é soberbo.

Embora somente duas músicas devem ser conhecidas do "público em geral" ("Come Together" e "Something"), todas as músicas tem a qualidade e o esmero que se espera de uma obra-prima. A sonoridade é, na minha opinião, uma evolução em relação aos trabalhos anteriores.

A capa é outro ícone do pop e rock, tendo sido utilizada e imitada inúmeras vezes.

Vamos às músicas:

Come Together

Composição de John claramente inspirada em uma música de Chuck Berry ("You Can't Catch Me"), da qual foi copiada a primeira frase. Apesar do resultado ser bastante diferente, o detentor dos direitos processou Lennon. Como parte do acordo, Lennon gravou "You Can't Catch Me" e outras músicas de Chuck no seu álbum solo "Rock'n'Roll". Independente de tudo isso, Chuck Berry e John mantiveram sempre profunda admiração mútua.

Something

A "música de Lennon/McCartney preferida de Sinatra" foi composta por George Harrison. Um clássico, é a segunda música dos Beatles em número de covers, perdendo somente para "Yesterday".

Maxwell's Silver Hammer

Composição de Paul. Os outros Beatles manifestaram repetidas vezes seu desagrado com ela e John se recusou a participar da gravação. A gravação demorou três dias, fora uma sobreposição de um sintetizador Moog, o que perturbou ainda mais os demais Beatles.

Oh! Darling

Várias décadas atrás, lembro quando alguma banda perto de casa estava ensaiando e os infelizes escolheram justo esta música. Composição de Paul, que gravou um vocal incrível. Para isto foram necessárias inúmeras tentativas - Paul fazia uma única tentativa no início de cada dia, tentando capturar alguma qualidade única que desaparecia após a tentativa.

Octopus's Garden

Uma bela composição de Ringo.

I Want You (She's So Heavy)

Composição de John, com vários aspectos marcantes como a duração (quase oito minutos, a maioria instrumenta), o som pesado e o uso do sintetizador Moog para gerar " ruído branco". A música é cortada bruscamente em um momento inesperado, no fim do lado A do LP (é os discos tinham dois lados no passado!).

Here Comes The Sun

Bela canção de George. John não participou da gravação, por estar se recuperando de um acidente de carro. Carl Sagan queria incluir esta música nas gravações colocadas na Voyager, mas a EMI não liberou os direitos (afinal, sabe-se lá quanta pirataria rola entre os alienígenas!).

Because

Música de John, inspirada pela "Moonlight Sonata" de Beethoven (com as notas tocadas em ordem contrária). O acompanhamento inclui um sintetizador Moog (tocado por George). A música é cantada por John, Paul e George em harmonia sobreposta três vezes (resultando em nove vozes).

You Never Give Me Your Money

Este música de Paul abre o medley - dezesseis minutos de músicas curtas (alguma incompletas) mixadas em sequência sem separações. A música começa com piano e um vocal suave. A música vai se transformando em um som mais pesado, com o solo pesado George. No final ela vai baixando de volume para emendar com a música seguinte.

Sun King

Composição de John, que canta com belas harmonias de Paul e George. No final, após uma mistura sem sentido de inglês, italiano, espanhol e português, a música é cortada bruscamente pela bateria de Ringo para introduzir a música seguinte.

Mean Mr Mustard

Outra composição de John, cortada pela entrada da música seguinte.

Polythene Pam

Também composta por John, é uma música mais pesada, marcada pelo violão de John gravado de forma a parecer uma guitarra e a guitarra distorcida de George. A música termina com um crescendo para juntar com a próxima.

She Came Through The BathRoom Window

Música de Paul. Segundo algumas fontes, o solo de guitarra é de Paul.

Golden Slumbers

Começa suavemente como uma canção de ninar, após a entrada da bateria, Paul (que a compôs) passa para um estilo vocal mais agressivo.

Carry That Weight

Também de Paul, retoma o tema de "You Never Give Me Your Money"

The End

Quando foi convidado a fazer parte dos Beatles, Ringo tinha somente um pedido: não ter que tocar solos. E o único solo que ele gravou com os Beatles foi justamente em "The End". O (curto) solo de bateria vem logo no começo da música e é seguido por solos arrasadores de guitarra, tocados por Paul, George e John. Os solos são cortados por um piano e Paul canta "And, in the end, the love you take/ Is equal to the love you make", encerrando o medley.

Her Majesty

"The End" já seria um bom final para o álbum de despedida dos Beatles, mas eles decidiram acrescentar uma surpresa. Após "The End" foram colocados 14 segundos de silêncio e esta pequena composição de Paul que inicialmente se encaixava entre "Mean Mr. Mustard" e "Polythene Pam".

27/12/09: "Moonlight Sonata" é de Beethoven, não Bach.

sábado, dezembro 26, 2009

Biblioteca Histórica Marvel II


Há um ano e meio atrás eu comentei sobre alguns volumes da série Biblioteca Histórica Marvel, que está sendo publicada pela Panini. Após aqueles quatro volumes eu me esqueci da série, até dois meses atrás quando eu estava olhando as prateleiras de uma livraria e de deparei com o volume 1 do Demolidor e com os volumes 2 e 3 do Homem Aranha. Comprei o Demolidor e depois fui procurar na internet que outros volumes tinham sido lançados. Acabei achando por um preço razoável outros dois volumes: O Poderoso Thor Volume 1 e Os Vingadores Volume 2. São estes três volumes que eu comento aqui.

sexta-feira, dezembro 25, 2009

Natal - Jingle Bell Rock

Jingle Bell Rock é uma música de 1957 no estilo rockabilly, inspirada em Jingle Bells.

Para quem tiver alguma habilidade no violão ou guitarra, eis um (dentre vários) vídeos do YouTube ensinando a tocar:



Aqui está uma versão instrumental mais diferenciada (a aula correspondente está à venda por alguns dólares, nada sei sobre a confiabilidade da empresa ou a qualidade do material).



Para encerrar, uma versão daquelas que só os anos oitenta é capaz de nos trazer:



Feliz Natal para os meus leitores!

segunda-feira, dezembro 21, 2009

Placa FreeScale DEMO9S08LL16 - Parte 1


A placa FreeScale DEMO9S08LL16 é uma placa destinada a demonstrar os recursos do microcontrolador MC9S08LL16. Possui uma boa variedade de periféricos, onde se destaca o display LCD. A conexão a um PC para carga de software e depuração é feita através de um cabo USB comum (incluso no kit). Junto com o kit vem a Special Edition do CodeWarrior for Microcontrollers.



domingo, dezembro 20, 2009

Os Álbuns dos Beatles - Let It Be


Let It Be é um álbum bastante complexo. Por exemplo, todos os Beatles já se referiram a ele de forma depreciativa, apesar de conter grandes sucessos como "Let It Be", "Get Back" e "Across The Universe". Embora tenha sido o penúltimo álbum gravado, foi o último a ser lançado.

Para entender isto, é preciso saber que antes de "Let It Be" tivemos "Get Back".

quinta-feira, dezembro 17, 2009

Porque eu Desinstalei o Google Chrome

Quando o Chrome foi lançado eu, como muita gente, fiquei curioso e o instalei. Usei ocasionalmente por alguns dias, mas depois acabei esquecendo. Dois dias atrás tive uma surpresa: apareceu uma notificação no micro informando que fazia tempo que eu não usava o Chrome, que existia uma nova versão que ele já tinha baixado e me oferecendo as opções para atualizar o Chrome ou desinstalá-lo. Um link "porque isto está sendo apresentado para você" abriu uma página sem muitas informações.

quarta-feira, dezembro 16, 2009

O Que Eu Estava Fazendo Quando Completei 30 Anos

Aviso: este é mais um dos meus posts de divagações e lembranças.

Na segunda feira o meu amigo Caloni marcou os seus 30 anos com um post curioso. Tanto no texto dele como em alguns comentários se percebe uma certa importância dada ao trigésimo aniversário. Achei isto curioso, pois não me lembro de nenhuma comemoração especial quando passei por isto. Como comentei no início do ano, o tempo tem passado rápido para mim. Foi daí que tentei lembrar o que acontecia nesta época (1989).

Eu já estava casado há quase cinco anos e com uma filha com quase quatro. Ou seja, a vida familiar já estava bem encaminhada. O trabalho era perto de casa, dava para ir comer e descansar um pouco todo dia na hora do almoço.

No lado profissional, estava no meu segundo emprego, a Humana Informática. Não sabíamos então, mas 1989 seria um ponto alto da empresa. As vendas vinham dobrando ano após ano. A equipe tinha crescido a ponto de estarmos divididos em duas casas na Rua Alvarenga, uma delas para o pessoal de desenvolvimento. Se a memória não falha, estávamos trabalhando na versão 2 do software Zapt, um programa de comunicação de dados capaz de operar em background no DOS e com uma linguagem script embutida. Naquele tempo os micros (XTs) ainda ficavam em um "laboratório" ao invés de sobre as mesas.

No final do ano minha primeira volta aos EUA, para ir a uma Comdex imensa em Las Vegas (onde o que impressionou foram as demonstrações da versão 3 do Windows). Neste viagem ainda fizemos uma demonstração do Zapt na Peter Norton Computing. Foi em Santa Monica que eu assisti pela TV a queda do Muro de Berlim.

Não tenho certeza, mas acho que nesta época eu tinha em casa um poderoso 286 galopando a 12MHz. Acho também que já tinha uma placa VGA, com um monitor monocromático (monitores coloridos eram artigos de luxo). A foto abaixo é mais recente, de 1992 (os buttons na parede são lembrança da Comdex, o micro em destaque é um Apple ][, do PC aparecem somente o monitorzinho VGA mono e o teclado - mouse? para que?).


Algumas nuvens escuras estavam no céu, e a tempestade viria no começo do ano seguinte. A inflação mensal estava indo para dois dígitos, na esteira do fracasso do plano Cruzado e seus derivados. No final de 89 o salário era pago e reajustado semanalmente.

Finalmente eu iria votar para presidente, mas as opções não eram muito tranquilizadoras. Candidaturas de políticos mais tradicionais (como Ulisses Guimarães) não decolavam. O favorito no início do ano era Luís Inácio da Silva, que era bem diferente do Lula atual. Com uma barba ao estilo de Fidel, um discurso bem à esquerda e a recusa em assinar a constituição que tinha ajudado a escrever (devido à ausência de um assembleia constituinte exclusiva), era uma figura assustadora para muitos. O resultado foi a eleição do Collor (apesar de avisos e sinais claros) que com o seu "brilhante" plano econômico iria arrasar a Humana e muitas outras empresas.

Só para completar, devo confessar que 1989 foi o ano em que pela primeira vez me senti mais velho. Foi quando Emerson Fittipaldi começou a ter destaque pelas vitórias na CART, o que motivou uma estagiária a perguntar: "Mas este cara é bom piloto mesmo?". Vai ser mais ou menos o mesmo quando alguém perguntar para o Caloni, ao ver o Bruno Senna correr no ano que vem, se o Airton Senna era tudo isto mesmo...

22/12/09: Correção de erro crasso de concordância.

terça-feira, dezembro 15, 2009

FreeScale MC9S08LL16 - Parte 4

Vamos completar neste post a nossa descrição do microcontrolador FreeScale MC9S08LL16.

Módulos de Timer e PWM - TPM

O MC9S08LL16 possui dois módulos TPM, cada um com dois canais.

O coração de cada TPM é um contador de 16 bits, que é alimentado por um clock dividido por um prescaler. O clock pode ser gerado internamente pelo ICS (BUSCLK ou ICSFFCLK) ou um sinal externo conectado ao pino TCLK. O prescaler divide este clock por uma potencia de 2 de 1 a 128. O contador é avançado a cada clock até atingir o valor contido no registrador de módulo, quando então retorna para zero. É possível gerar uma interrupção quando o contador retorna a zero (counter overflow).

Cada canal do TPM possui um registrador de 16 bits. Dependendo da configuração do canal, várias funções podem ser realizadas:
  • captura de entrada: o registrador do canal recebe o valor do contador na borda de subida, descida ou ambas de um sinal presente em um pino. Isto permite, por exemplo, medir a largura e frequência de pulsos.
  • comparação e controle de saída: quando o contador atinge o valor contido no registrador uma interrupção é gerada e/ou o sinal de um pino é alterado (para zero, um ou o contrário do que estava).
  • PWM alinhado na borda: o sinal de um pino de saída é colocado em um nível quando o contador dá a volta e no outro nível quando o contador atinge o valor do registrador. Este é o PWM tradicional. Se estiverem sendo gerados sinais PWM com os dois canais do mesmo TPM os dois sinais terão uma mudança no mesmo instante (a causada pelo overflow do contador).
  • PWM alinhado ao centro: neste modo o contador do TPM funciona de forma ligeiramente diferente, incrementando de zero até o valor do módulo e depois decrementando de volta a zero. As mudanças no pino de saída ocorrem quando o contador atinge o valor do registrador. Desta forma, o período do PWM passa a ser determinado pelo dobro do módulo e a largura do pulso pelo dobro do valor no registrador do canal. Mais importante, se estiverem sendo gerados sinais PWM nos dois canais o que ficará alinhado no tempo será o centro dos pulsos não a borda. Este tipo de PWM é necessário para algumas aplicações de controle de motor.
Confuso? Um pouco. Poderoso? Muito!

Interface Serial - SCI

A SCI é uma interface de comunicação assíncrona com as seguintes características:
  • Full duplex
  • Buffers para transmissão e recepção
  • Geração interna de baudrate
  • Interrupções de recepção, pronto para transmissão, fim de transmissão e outras
  • Geração e conferência de paridade
  • Suporte a caracteres com 8 ou 9 bits
Módulo SPI

O módulo Serial Peripheral Interface implementa comunicação no padrão SPI em modo mestre ou escravo, tanto em modo full duplex como com sinal de dados bi-direcional. O clock de comunicação no modo mestre é gerado internamente e tanto a transmissão como a recepção são bufferizadas. O sinal de seleção do escravo (SS) pode ser tratado automaticamente tanto no modo escravo como mestre.

O módulo suporta todas as combinações de polaridade e fase e permite comunicação tanto com o bit mais significativo primeiro como com o bit menos significativo primeiro.

Uma interrupção pode ser gerada a cada byte transmitido/recebido.

Interface I2C

O módulo I2C implementa a comunicação I2C com as seguintes características:
  • Suporte a opeação multi-master
  • Geração automática do clock
  • Geração e detecção automáticos de start e stop
  • Geração e detecção de acknowledge
  • Tratamento automático de endereço, com suporte a endereços de 10 bits
  • Interrupção de recepção e transmissão de byte
Interface para LCD

Um dos destaques do MC9S08LL16 é a sua capacidade de controlar um LCD com até 192 segmentos, através de até 32 pinos.

Cada segmento do LCD é controlado individualmente; o formato do segmento é definido na sua fabricação. O LCD do kit DEMO9S08LL16 contém alguns usos típicos: segmentos com uma figura inteira (como o logotipo da FreeScale), segmentos que juntos compõem uma figura (como os da bateria) e segmentos organizados para apresentação de caracteres.


O MC9S08LL16 controla tantos segmentos através da multiplexação, com os segmentos organizados no LCD em uma matriz. Até 8 pinos podem ser dedicados ao chamado backplane, selecionando cada um deles um conjunto de até 31 segmentos. O módulo LCD cuida de fazer a "varredura" dos pinos do backplane, acionando um de cada vez. Para cada pino de backplane selecionado os demais 24 pinos são acionados com o valores correspondendo aos segmentos do conjunto. Graças à rapidez da varredura, à persistência do LCD e à persistência da visão ficamos com a impressão de todos os segmentos serem acionados simultaneamente.

Uma vez configurado o módulo LCD o processo de multiplexação e varredura fica transparente. Os segmentos são controlados através dos bits em conjunto de 32 registradores.

O módulo LCD é também responsável pela geração das tensões necessárias para o display. Através de ajustes nas tensões pode-se fazer um ajuste do contraste.

Referências

As informações para estes posts foram retiradas dos seguintes documentos da FreeScale, que você pode baixar do site:
  • MC9S08LL16 Series Data Sheet
  • MC9S08LL16 e MC9S08LL8 Reference Manual
Duas boas referências sobre o HCS08 são os livros do Fábio Pereira:
Posts Futuros Sobre o Assunto

Nos próximos dias pretendo publicar um ou dois posts sobre a placa de demonstração do MC9S08LL16.

Vários dos assuntos tratados tem ligação direta com a minha palestra no "Seminário C&C++ para Sistemas Embarcados 2009" e serão objeto de uma futura série de posts.

domingo, dezembro 13, 2009

Os Álbuns dos Beatles - Yellow Submarine

Yellow Submarine não foi considerado propriamente um álbum de estúdio pelos próprios Beatles e devo admitir que tenho o LP não me dei ao trabalho de comprar o CD.

O projeto do filme de mesmo nome teve muito pouco envolvimento dos Beatles. O álbum contém somente quatro músicas inéditas dos Beatles, mais duas músicas já publicadas anteriormente (a faixa título que apareceu em Revolver e "All You Need Is Love" que foi um single na Inglaterra e fez parte na versão americana do álbum Magical Mystery Tour). O segundo lado do LP continha a trilha orquestral do filme, composta por George Martin.

Mesma as músicas inéditas são re-aproveitamento de faixas compostas originalmente para os álbuns anteriores.

sábado, dezembro 12, 2009

FreeScale MC9S08LL16 - Parte 3

Continuando a nossa descrição rápida do microcontrolador FreeScale MC9S08LL16, vamos ver alguns recursos de entrada e saída.

Entrada e Saída Digital

O MC9S08LL16 possui 40 pinos associados a cinco portas de E/S digital, denominadas PTA a PTE. Destes 40 pinos, 2 podem ser usados somente para saída (PTB2 e PTC6).

Praticamente todos estes pinos são compartilhados com outros periféricos e a direção de cada pino é controlada isoladamente. A associação entre os bits das portas e os pinos correspondentes depende dos periféricos estarem ou não habilitados, do tipo de periférico (analógico ou digital) e da direção configurada:

Se um periférico analógico estiver habilitado, os bits ficam desassociados dos pinos, tanto para leitura como para escrita.

Se um periférico digital estiver habilitado, um pino de saída estará desassociado do bit correspondente, mas o sinal em um pino de entrada poderá ser lido no bit correspondente.

Se nenhum periférico estiver habilitado:
  • um pino configurado para saída será controlado pelo bit correspondente. A leitura do bit retorna o valor que foi escrito.
  • um pino configurado para entrada será lido no bit correspondente. Escritas neste bit serão ignoradas.
Para cada pino de E/S digital pode ser ativado um resistor interno de pull-up e pode ser selecionado um modo que limita a taxa de alteração mas reduz a emissão de interferência eletro-magnética (controle do slew-rate). É possível selecionar também um modo que aumenta a capacidade de gerar e absorver corrente de 2 para 10 mA; entretanto existe um limite total de corrente (100 mA) que precisa ser observado.

Os pinos compartilhados com a função LCD são do tipo open-drain.

Os pinos da porta A podem ser configurados para gerar interrupção por nível ou mudança de sinal. A polaridade do nível ou o sentido da mudança são configuráveis. Todas estas configurações são independentes para cada um dos oito pinos. Esta função é chamada Keyboard Interrupt (KBI) mas pode ser usada para outros fins além da detecção de teclas.

Conversão Analógica Digital - ADC

O módulo de conversão analógica digital é composto de um conversor de 12 bits por aproximação sucessiva (SAR) e um multiplexador analógico. Ele pode converter sinais presentes em até oito pinos do microcontrolador (um por vez). Dois destes pinos são compartilhados com o LCD, cuidado deve ser tomado para não ativar as duas funções (LCD e ADC) simultaneamente neste pinos, pois o módulo LCD gera tensões incompatíveis com o ADC.

Além dos sinais nos pinos, podem ser selecionadas para entrada do ADC um sensor de temperatura interno e várias tensões de referência.

Uma conversão pode ser disparada por software ou pelo relógio de tempo real (TOD). É possível configurar também conversões sucessivas. O fim de uma conversão pode ser determinado consultando um bit no registrador de controle do ADC ou através da geração de uma interrupção.

O resultado da conversão pode ser lido como 8, 10 ou 12 bits.

Comparador Analógico - ACMP

O ACMP permite comparar dois sinais analógicos; um destes sinais pode ser uma referência interna de 1.17V. O resultado da comparação pode ser lido em bit de um registrador de controle do ACMP e, opcionalmente, colocado em um pino de saída. É possível também gerar um interrupção na subida, descida ou qualquer mudança do resultado da comparação.

A figura abaixo mostra o diagrama de blocos do comparador analógico:

quarta-feira, dezembro 09, 2009

FreeScale MC9S08LL16 - Parte 2

Demorou um pouco, mas estou retomando os meus posts sobre o microcontrolador Freescale MC9S08LL15 que eu comecei aqui.

terça-feira, dezembro 08, 2009

O ClimateGate

"Todos tem uma agenda, menos eu" - Michael Crichton

Dois anos atrás eu comentei sobre o livro State of Fear, que foi duramente atacado por defender uma posição contrária à teoria do aquecimento global causado pelas atividades humanas. Os críticos a esta teoria estão de volta com a corda toda, graças ao chamado "ClimateGate".

domingo, dezembro 06, 2009

Os Álbuns dos Beatles - The Beatles


"The Beatles" é o primeiro álbum de verdade após "Sargent Pepper's", já que "Mystery Magical Tour" não foi concebido como um álbum. No lugar da capa repleta de detalhes de Sgt Pepper's, uma capa completamente branca, com The Beatles em relevo (a imagem ao lado é da capa do CD, onde o relevo foi substituído por impressão em cinza), o que lhe valeu a alcunha de "Álbum Branco".

sábado, dezembro 05, 2009

Utilitário: Avidemux

Ao fazer os posts sobre o Spoke-o-dometer, surgiu a ideia de mostrar o projeto em funcionamento através de um vídeo. Peguei a minha câmera digital Kodak e um velho tripé e filmei 20 segundos. O resultado foi um arquivo .mov de mais de 8MBytes de tamanho com uma imagem tamanho 640x480 ("VGA") extremamente escura e um barulho de fundo irritante.

É nestes momentos que é útil o Avidemux, um utilitário "livre" (e multiplataforma) para manipulação de vídeos. Neste post vou falar sucintamente dos recursos deste software (sob Windows), particularmente os que uso para gerar os vídeos para o blog. O site do Avidemux é http://fixounet.free.fr/avidemux/.

quinta-feira, dezembro 03, 2009

Dicas para quem vai passar a noite esperando a chuva passar

Já é costume aqui em Sampa: chega o final da tarde, vem a chuva e com ela os alagamentos. Muitas vezes o jeito é ficar no trabalho até mais tarde, esperando a água baixar e o transito melhorar. Seguem duas dicas para quem (também) está nesta situação.

Transito Agora

O site é um pouco mais pobre do que eu gostaria, mas dá uma ideia geral do estado de confusão do transito: http://cetsp1.cetsp.com.br/monitransmapa/agora/


Os detalhes das regiões são meio pobres. Atenção na tela acima para o "Cone" (na parte de baixo, ao lado da interrogação) que abre a tela de ocorrências (clique para ampliar):

Os códigos na primeira coluna são decifrados no site colocando o cursor na linha. Se você olhou a lista acima, já deduziu que a chuva começou pouco depois das 16:00 e que o código 317 é alagamento.

Passatempos Gratuitos

Nas minhas recentes férias eu comprei uma destas revistinha de "Problemas de Lógica". São aqueles problemas em que é dada uma lista de pistas e você tem que descobrir quais as combinações corretas. Para facilitar, os problemas vem com uma matriz para você anotar as combinações que você já descobriu serem válidas ou inválidas.

Como parece ser algo bastante "automatizável", fui procurar na web se alguém tinha feito um programa para solucionar estas coisas (dica: a tradução para inglês é "logic grid puzzle solvers"). Não encontrei mas achei um site que publica diariamente problemas deste tipo (e outros, como Sudoku) em formato PDF:

http://www.printable-puzzles.com/printable-logic-puzzles.php

O mesmo autor tem um site de problemas para solução on-line: http://www.puzzlebaron.com/.

quarta-feira, dezembro 02, 2009

Quatro Anos do Blog

No dia 2 de dezembro de 2005 foi ao ar o primeiro post do DQSoft. Vejamos um rápido balanço do que rolou neste período.

quinta-feira, novembro 26, 2009

Resenha de Livro: Binary

Binary é um thriller de 1972. O autor é John Lange, que hoje se sabe ser um pseudônimo de Michael Crichton.

A primeira vez que li este livro foi na adolescência; só fiquei sabendo que era de Crichton depois da sua morte. Recentemente o achei na casa do meu pai e resolvi relê-lo.

O tema do livro é o duelo intelectual entre um policial e um rico amalucado que pretende matar um milhão de pessoas em um atentado.

As marcas registradas das obras de Crichton estão todas nesta obra: base num assunto tecnológico bem pesquisado, um ritmo forte e uma luta intelectual entre o "mocinho" e o "bandido". O livro é relativamente curto e intrigante a ponto de não se querer largar.

É interessante observar como alguns pontos do livro resistiram a estas mais de três décadas. O protagonista do livro se sente incomodado pela mudança de foco da segurança de pessoas de países como a Rússia e a China para cidadão americanos; em parte a preocupação voltou para os estrangeiros, mas o nível geral da preocupação com atentados certamente aumentou muito. A postura das forças de segurança também mudou bastante, basta imaginar como seria o livro se o herói fosse Jack Bauer. Os computadores aparecem com relativo destaque: o bandido obtêm o trajeto da arma que vai roubar através de um terminal conectado por linha discada. É claro que nos dias de hoje seria hackeando através da internet. Um outro detalhe técnico é no momento em que o mocinho se desloca até a delegacia de polícia para receber um documento em uma tele-impressora (será que alguém consegue imaginar ainda o que é isto?). Uns quinze anos atrás seria através de um fax e ele não precisaria ir muito longe para achar um. Hoje em dia seria através da internet, talvez diretamente para o seu smartphone.

Conclusão

Binary é um ótimo romance policial. Talvez um pouco curto e algumas ideias parecem não terem sido desenvolvidas até o fim. Infelizmente está esgotado e é encontrado apenas em sebos. É uma pena, pois é muito melhor que muita coisa que você encontra por aí.

Recomendado (se você conseguir achar).

terça-feira, novembro 24, 2009

Mini Abóbora


Um projeto simples de hardware, na linha das brincadeiras com LED do Evil Mad Scientist. Em um passeio em Embu das Artes, encontrei uma pequena abóbora de porcelana. A peça era para ser usada como suporte para haste de incenso, mas resolvi dar um uso diferente.

domingo, novembro 22, 2009

Os Álbuns dos Beatles - Magical Mystery Tour


Logo após o lançamento de Sargent Pepper's, os Beatles entraram em um período confuso. Não existiam mais as pressões de lançar dois álbuns por ano e eles tinham abandonado as apresentações ao vivo. O empresário deles, Brian Epstein, morreu. Paul passou a assumir uma certa liderança do grupo, mas as decisões geravam brigas ou apatia. Com frequência as músicas passam a ser de um único Beatle, com os demais ausentes ou trabalhando apenas como banda de apoio.

O primeiro projeto lançado pós Epstein foi Magical Mystery Tour, um filme de uma hora feito para a TV. A crítica após a exibição na Inglaterra foi tão ruim que o filme não chegou a ser exibido nos EUA. Mesmo os lançamentos em VHS e DVD, posteriores à separação dos Beatles, conseguiram atrair alguma atenção.

Para o filme os Beatles compuseram seis novas músicas. Alguns anos antes, eles certamente gravariam alguns covers ou Paul e John se forçariam a criar mais algumas daquelas composições que são mágicas para todos mas que vinham tão facilmente para eles. Os tempos eram outros, entretanto, e a solução foi criar um formato único de duplo EP (um disco de vinil de sete polegadas, tocado a 45 rpm, com uma a duas músicas de cada lado). O formato EP não era comum fora da Inglaterra, mas já existia uma infame tradição nos EUA de lançar as músicas dos Beatles em coleções diferentes dos álbuns ingleses (aproveitando o fato de que logo cedo os Beatles pararam de incluir nos álbuns ingleses as músicas lançadas em singles). Desta forma Magical Mystery Tour foi lançado nos EUA (e em outros países, como o Brasil) na forma de um LP contendo no lado A as seis músicas do filme e no lado B cinco músicas lançadas anteriormente em singles. Este formato acabou sendo adotado para os CDs.

sexta-feira, novembro 20, 2009

Atualização rápida - cadê os posts?

Nos anos anteriores a minha meta era "dois posts por semana, não ficar duas semanas sem um post". Este ano eu ultrapassei em muito isto e de abril a setembro eu devo ter postado pelo menos três vezes por semana.

Desde outubro não estou mantendo este ritmo. O que aconteceu? Primeiro, estava me concentrando na minha "mega palestra" para o Seminário C&C++ para Sistemas Embarcados. Segundo, eu decidi tirar férias em um período menos usual, final de novembro. O problema é que vários projetos escorregaram e as últimas semanas foram de correria para sair sem deixar grandes pendências.

O que me faz estar trabalhando hoje, que é feriado em São Paulo. Trabalhar sozinho num feriado tem suas vantagens. Diria até que o problema não é trabalhar em um feriado, mas trabalhar num dia comum: levei hoje 20 minutos de casa ao trabalho; num dia normal são 35 a 40 minutos (esta semana teve um acidente que parou a Marginal e eu demorei 75 minutos, mesmo sabendo do acidente e desviando).

A "seca" de posts talvez se estenda por mais algum tempo: semana que vem estou viajando e tenho um compromisso pessoal em meados de dezembro que deve consumir bastante tempo.

segunda-feira, novembro 16, 2009

Seminário C&C++ para Sistemas Embarcados 2009


Sábado (14/11/09) ocorreu a edição 2009 do Seminário C&C++ para Sistemas Embarcados. Foi novamente um seminário muito especial, entre outras coisas por envolver uma área onde temos uma forte atividade de desenvolvimento de hardware e software no Brasil.

segunda-feira, novembro 09, 2009

Microcontrolador FreeScale HCS08

Como parte dos preparativos para a minha palestra no Seminário "C & C++ para Sistema Embarcados 2009", eu ganhei um kit da FreeScale com o microcontrolador MC9S08LL16, da família HCS08. Neste post e nos próximos vou comentar um pouco sobre este microcontrolador e o kit.

sábado, novembro 07, 2009

Os Álbuns dos Beatles - Sgt Pepper's Lonely Hearts Club Band


Sargent Pepper's é figurinha certa em todas as listas de de melhores e mais influentes álbuns de música popular.

Gravado ao longo de mais de seis meses, ele aprofunda a experimentação e o estilo psicodélico dos dois álbuns anteriores (Rubber Soul e Revolver). As referência a drogas já não passam mais desapercebidas (começa a ocorrer até o contrário, com a invenção de referências inexistentes).

Este álbum marca o início da liderança de Paul, com John passando a contribuir menos composições.

terça-feira, novembro 03, 2009

Curtas: Micro da Microsoft, Bing, Kindle e Google Maps Navigation

Algumas notícias curtas da semana passada, com os meus temerários comentários.

Micro da Microsoft

Como foi amplamente noticiado, a Microsoft está abrindo lojas e está vendendo micros nelas. Os micros são de fabricantes tradicionais (HP, Acer, etc), mas personalizados para a Microsoft (no que ela chama de Signature Initiative). Esta personalização inclui pré-instalar alguns produtos da Microsoft, o que era de se esperar. A surpresa é que a Microsoft está vetando aquele monte de softwares inúteis que os fabricantes normalmente colocam nos micros. Além disso, ela se propõe a ajudar na instalação de outros softwares, inclusive de concorrentes, com o objetivo do cliente sair da loja 100% satisfeito.

A Microsoft espera que esta iniciativa leve os fabricantes a reverem o software que colocam nos micros na fábrica e com isto melhore a "experiência" dos usuários (usando o termo em voga com os marketeiros).

Notícia lida no OSNews.

Anúncio do Bing

Marketing não costuma ser o forte das empresas de tecnologia, principalmente quanto voltado para usuários não técnicos. A Microsoft teve recentemente um grande fracasso (os anúncios com Jerry Seinfeld), um relativo sucesso (a série Laptop Hunters) e desistiu de patrocinar um episódio de Family Guy (o que pode ter sido uma imensa mancada ou um lance brilhante para obter publicidade a baixo custo).

Agora, este anúncio do Bing eu ainda não sei como catalogar...



Fonte: The Register.

Kindle

Com o lançamento internacional do Kindle, começaram a aparecer as primeiras análises do Kindle aqui no Brasil (por exemplo aqui). Na Noruega, entretanto, o "Conselho do Consumidor" já alertou que o aparelho viola várias leis norueguesas de proteção ao consumidor:
  • A linguagem dos "termos e condições" não é clara o suficiente
  • O conteúdo fornecido é preso ao equipamento
  • Falta de garantia de privacidade
  • Garantia de apenas um ano, comparado com os cinco anos exigidos na Noruega
Fonte: The Register

Google Maps Navigation

Em 1969, pressionada por um processo anti-trust (que se estenderia por 13 anos), a IBM anunciou o unbundling de software e serviços. Até então a IBM alugava os seus computadores com software e serviços incluídos, o que dificultava a concorrência de hardware e software. Quarenta anos depois, continua a briga sobre o que pode ou não se incluído "de graça" em um produto de informática.

A Google anunciou um serviço gratuito de navegação para o Android versão 2, invadindo um mercado hoje lucrativo.

Talvez não seja coincidência que a Apple tenha recentemente adquirido uma empresa de mapas.

Fonte: The Register

sábado, outubro 31, 2009

sexta-feira, outubro 30, 2009

Abóbora Assassina - Parte 3

Neste post vamos ver o firmware da "Abóbora Assassina". Como o hardware, ele é baseado no meu artigo sobre controle de servomotor e foi desenvolvido em C.

quinta-feira, outubro 29, 2009

Abóbora Assassina - Parte 2

Prosseguindo na minha descrição da "Abóbora Assassina", segue uma descrição do hardware. Como no meu artigo sobre controle de servomotor (que serviu de base para este projeto), o hardware é baseado no PIC12F269.

terça-feira, outubro 27, 2009

Abóbora Assassina - Parte 1

Um dos projetos que eu estou tocando para o Dia das Bruxas é a "Abóbora Assassina" (Robotic Snap-O-Lantern no original). Seguem as minhas aventuras com este projeto.

segunda-feira, outubro 26, 2009

Tirando a 2a Via do CRLV em Osasco

Alguns documentos não podem, infelizmente, ser emitidos no Poupatempo. Um deles é a segunda via do Certificado de Registro e Licenciamento de Veículo. Todo ano recebo o CLRV em casa, pelo correio, após pagar todas as taxas pela internet. A segunda via é muito mais complicado que isto.

Embora alguns momentos lembrem a máxima "criar dificuldades para vender facilidades", a boa notícia é que dá para fazer todos os procedimentos em uma manhã ou tarde. Apesar das minhas pequenas trapalhadas, não demorei muito mais que quatro horas.

quarta-feira, outubro 21, 2009

Padrão é uma coisa tão boa que cada um quer ter o seu!

Não está entre as minhas especialidades o "desenvolvimento Web", apesar de ter passado num exame de certificação da Microsoft sobre o assunto. Um par de anos atrás fiz duas "aplicações Web" usando Web Forms; nestes dois casos testei a aplicação principalmente dentro do Visual Studio, o que significou testar com IE6. Na época fiz uma tentativa rápida de acessar com o Firefox e vi uma série de problemas. Como no meu caso dava para impor o uso com o IE6 (eram aplicações de uso interno), deixei para lá. Mas sempre sobrou uma pontinha de descontentamento e curiosidade.

Estou alterando uma destas aplicações e agora está mais difícil de ignorar os problemas: vários deles ocorrem no IE8 quando ele não está no modo compatibilidade. Aliás, é uma brincadeira divertida abrir uma página, ficar ligando/desligando o modo compatibilidade e ficar observando o que muda.

O que me surpreendeu foi ter um problema com um tag que parece trivial: <hr /> (linha horizontal). No meu caso, eu tinha especificado uma cor. E a cor não aparece no IE8 com modo de compatibilidade desligado. Após uma busca intensa achei a seguinte página:
http://www.wickham43.net/horizontalrule.html

Onde alguém teve a paciência de testar os vários atributos de <hr /> em vários browsers. O resultado é assustador: aparentemente não existem dois browsers que façam exatamente a mesma coisa. Quem quiser conferir é só acessar a página acima com vários navegadores.
Para quem estiver interessado no caso específico da cor do <hr />:
  • o IE costumava usar o atributo "color" (que não é mais considerado pelo IE8 "nativo")
  • outros browser usam "background-color"
  • os parâmetros "height" e "border" (ou a ausência deles) afetam a apresentação
A forma de obter uma linha que apareça de forma consistente em todos os browser consiste em especificar estar quatro atributos:

<hr style="color: blue; height: 2px;" />

É claro que novas versões de browser saem a toda hora e não será surpresa se algum deles resolver interpretar este comando de forma diferente.

segunda-feira, outubro 19, 2009

Firefox Bloqueia Add-ons da Microsoft - Atualização

Foi retirado o bloqueio no ".Net Framework Assistant" (usado para implementar o Click-Once), conforme anunciado neste post. A equipe do Firefox está "trabalhando duro" para fornecer uma forma dos usuários que desejarem poderem desligar o bloqueio do outro add-on (WPF plugin).

Agora de manhã, ao usar o Firefox aqui no trabalho, somente o WPF plugin foi bloqueado.

Continuo sendo da opinião de que a decisão de instalar, remover, bloquear e liberar add-ons (e outros softwares) deve ser do usuário; os desenvolvedores devem dar as melhores informações possíveis para que isto possa ser feito de uma forma consciente.

domingo, outubro 18, 2009

Os Álbuns dos Beatles - Revolver


Após a gravação de Rubber Soul, os Beatles tiraram três meses de folga. era o fim da maratona de dois álbuns por ano. Pouco depois do lançamento de Revolver eles parariam com os shows, deixando para trás esta outra maratona. Os Beatles se concentravam nas suas obras de estúdio.

Revolver marca definitivamente o início da fase psicodélica dos Beatles. O contato com as drogas marca as composições, embora muitos só percebessem isto no álbum seguinte. O som se afasta do folk que permeou os álbuns anteriores e se aprofunda no rock com destaque para as guitarras. Nota-se também que os Beatles passam a trabalhar menos com grupo, várias faixas não contam com a presença dos quatro.


sábado, outubro 17, 2009

Firefox Bloqueia Add-ons da Microsoft

Ao abrir o Firefox hoje recebi o aviso de que dois add-ons da Microsoft estavam sendo bloqueados: "Microsoft .Net Framework Assistant 1.1" (extensão) e "Windows Presentation Foundation" (plugin). Não foi oferecida nenhuma opção de não efetuar o bloqueio.

Nestas últimas semanas a Fundação Mozilla vem adotando uma postura mais "agressiva" na verificação das versões dos plug-ins instalados, será que não está passando da conta? Vejamos alguns detalhes sobre este bloqueio.

terça-feira, outubro 13, 2009

Adaptando o Servomotor de Parabólica

O servomotor que eu usei nos posts anteriores pode ser facilmente adaptado para ser conectado mecanicamente a coisas diversas. O roteiro para isto está no Robótica Simples:

http://www.roboticasimples.com/artigos.php?acao=16

Seguem alguns comentários sobre a minha adaptação.

domingo, outubro 11, 2009

Os Álbuns dos Beatles - Rubber Soul

Rubber Soul foi o último disco feito dentro do esquema "dois álbuns por ano". Apesar de toda a pressão, cansaço e correria, é uma obra prima e contém somente composições próprias. Embora os próprios Beatles tenham ressalvas a algumas das músicas, o nível foi tão elevado que Brian Wilson (dos Beach Boys) enxergou no álbum um marco - o primeiro álbum a deixar de ser alguns sucessos cercados de canções menores (fillers).

Rubber Soul pode ser considerado o início da guinada dos Beatles do pop para o psicodelismo. Temas e letras se afastam da simplicidade "rapaz-ama-garota". A instrumentação se sofistica, particularmente a cítara em "Norwegian Wood". A percussão de Ringo se diversifica, com maracas, tamborins e até uma caixa de fósforo. Os efeitos passam a ser mais comuns, como o fuzz no baixo em "Think for Yourself" e a forte compressão no piano em "The Word". Sobreposições (overdubs) passam a aparecer em todas as faixas.

sexta-feira, outubro 09, 2009

Usuários Windows, Preparem-se Para 13 de Outubro

O próximo dia 13 é um "Patch Tuesday", e atinge um novo recorde: 13 atualizações, das quais 8 consideradas críticas pela Microsoft. Todas versões suportadas do Windows tem algo a ser atualizado. Inclusive o ainda não liberado comercialmente Windows 7 (cortesia do IE 8). O reboot aós a atualização é líquido e certo (vide o "bulletin 5" no link abaixo, que requer reboot e se aplica a todos os sistemas).

Alguns detalhes já foram disponibilizados pela Microsoft:

http://www.microsoft.com/technet/security/bulletin/ms09-oct.mspx

Maiores detalhes serão disponibilizados somente após a liberação das atualizações, para dificultar ataques sobre estas vulnerabilidades antes da liberação das atualizações. Digo dificultar, pois algumas destas fraquezas já estão sendo exploradas.

Fonte: The Register

quinta-feira, outubro 08, 2009

Controlando um Servomotor com um PIC

Prosseguindo na minha exploração do "servo de parabólica", apresento aqui o hardware e software de um pequeno teste de controle, usando um processador PIC.

Neste teste utilizo dois botões, um para mover o motor para "esquerda" e outro para "direita" (é claro que estas direções dependem da posição de montagem do motor).

quarta-feira, outubro 07, 2009

O Caso das Senhas de Webmail, Problemas com Certificado Digital e Outros

Nos últimos dias li algumas notícias sobre problemas de segurança que proporcionaram manchetes bombásticas, acusações e briguinhas entre os fãs de várias plataformas. Seguem abaixo o resumo do que eu entendi sobre o assunto.

Divulgação na Internet de Senhas de Webmail

No final do mês passado e começo deste mês surgiram na internet extensas lista de logins e respectivas senhas para os serviços mais populares de Webmail. As primeiras listas eram relativas ao Hotmail e surgiram manchetes falando em "vazamento" das senhas. As acusações de incompetência da Microsoft perderam força com o surgimento, pouco depois, de listas semelhantes para GMail, Yahoo! e AOL.

A Microsoft já confirmou que não armazena as senhas e é muito provável que o mesmo se aplique aos demais (o que é armazenado é um hash). Portanto a ideia de um vazamento não parece fazer sentido.

A hipótese mais aceita é a das senhas terem sido obtidas por sites falsos simulando as telas de login dos webmail (phishing). Colabora com isto o fato das listas conterem alguns erro claros de digitação. Uma outra hipótese, um pouco menos provável, é os dados terem sido obtidos através de key loggers (programas que capturam o que o usuário está digitando).

Alguns links sobre o assunto:

http://www.theregister.co.uk/2009/10/05/hotmail_passwords_leaked/
http://www.theregister.co.uk/2009/10/06/gmail_webmail_phish/

Escolhendo Senhas Seguras


Algumas firmas de segurança analisaram as listas publicadas para verificar que tipos de senha estão normalmente sendo usadas. O resultado não foi animador. Das 10.000 senhas de Hotmail publicadas, 64 são o singelo "123456" e 18 são "123456789".  42% das senhas possuem somente letras minusculas e 19% possuem apenas dígitos.

A recomendação clássica é senhas longas, misturando letras minúsculas, maiúsculas, dígitos e caracteres especiais. Este tipo de senha é difícil de ser descoberta por tentativas automáticas. É também difícil de ser lembrada, o que explica o seu baixo uso. Mesmo quando usadas, existem dois outros riscos comuns: anotar a senha ou usar a mesma senha para vários serviços.

Informações sobre as análises das senhas:

http://www.theregister.co.uk/2009/10/07/hotmail_phish_password/

Problemas com Certificados Digitais

Uma das seguranças contra phishing é o certificado digital, que deveria ser uma garantia de que um site é realmente quem afirma ser. Infelizmente isto também está sob ataque.

O truque consiste em colocar um zero binário (nul) dentro de determinados campos de um certificado digital. Algumas aplicações consideram o nul como o fim do texto, ignorando o que vem a seguir. Desta forma algumas aplicações consideram iguais o que outras consideram diferentes. Um exemplo óbvio é na URL; um certificado emitido para www.paypal.com\0falso (onde \0 representa um nul) pode ser confundido com um certificado para www.paypal.com.

Parece coisa teórica, não? Entretanto um sujeito conseguiu obter de uma autoridade certificadora (CA) um certificado deste e postou aqui. Aparentemente a CA não fez uma boa consistência dos dados e não percebeu que tinha algo estranho acontecendo.

Uma das aplicações que se confunde com isto é a CryptoAPI da Microsoft. Esta API é usada por muita gente que roda sob Windows, em particular pelos browsers IE, Chrome e Safari. Todos eles são, neste momento, vulneráveis a este ataque. O Firefox já foi alterado para se proteger (não está claro se ele não usa a CryptoAPI ou se está fazendo uma consistência adicional).

Os links para as notícias:

http://www.theregister.co.uk/2009/07/30/universal_ssl_certificate/
http://www.theregister.co.uk/2009/10/05/fraudulent_paypay_certificate_published/

Nos comentários do segundo link acima tem discussões intermináveis sobre de quem é a culpa. A verdade é que a autoridade certificadora, a CryptoAPI e os browsers tem todos a oportunidade de validar os dados e bloquear o certificado suspeito. E, no entanto, não fizeram isto ainda.

terça-feira, outubro 06, 2009

Controlando um Servomotor

Como comentei no meu post anterior, um dos meus projetos para o dia das bruxas envolve controlar um motor. Dois empecilhos me impediam de aventurar a controlar um motor: a falta de conhecimento sobre o assunto e o desconhecimento de onde encontrar um motor apropriado.

Felizmente encontrei os posts abaixo na intenet:

Controlando Motor Servo de Parabólica com Arduino
Servomotores de Posição e Rotação

que me apresentaram o servomotor utilizado para controlar a posição de antenas parabólicas.

segunda-feira, outubro 05, 2009

Se Preparando Para o "Dia das Bruxas"

Devo admitir que nunca fui entusiasta da mania de copiar expressões e festejos de outros países. Em particular, a comemoração do Halloween no Brasil sempre me pareceu estranha. Até, é claro, isto servir de desculpa para alguns projetos.

domingo, outubro 04, 2009

Os Álbuns dos Beatles - Help!


De certa forma pode-se dizer que Help! fecha uma fase dos Beatles. O lado A, com as músicas usadas no filme de mesmo nome, mostra um domínio da fórmula "rock and roll pop". No lado B, os últimos covers (os próximos álbuns conteriam somente composições próprias) e Yesterday (que anuncia uma variedade maior de estilos e músicas individuais).

Para o caso de alguém ainda não saber, as posições dos braços na capa não correspondem às letras H E L P.  As posições corretas foram tentadas mas consideradas pouco atraentes visualmente. As posições na capa correspondem (totalmente por acaso) a N U J V.

Ao contrário dos álbuns anteriores, Help! foi remixado (por George Martin) para o lançamento do CD, para garantir uma boa mixagem estéreo.


quarta-feira, setembro 30, 2009

A Importância das Continuidade nos Descontos e Acréscimos

Ao fazer o post de ontem sobre o engano da Soldafria nas suas promoções, eu acabei lembrando de algo mais sério e conceitual.

Como muitas empresas, a Soldafria pratica descontos por quantidade (algo louvável) mas, conscientemente ou não, acaba incorrendo em uma situação clássica. Vou tomar como exemplo os preços do transistor 2N2222 (um transistor de uso geral em aplicações de amplificação de baixa potência e chaveamento):



terça-feira, setembro 29, 2009

Promoções Insólitas

Parece que a Soldafria está oferecendo promoções dignas do The Daily WTF:


Seminário: C & C++ Para Sistemas Embarcados 2009

No dia 14 de novembro teremos a segunda edição deste evento organizado pela Tempo Real. E novamente teria a honra de apresentar uma palestra. O evento do ano passado foi muito bom (como relatei aqui), o que só aumenta a responsabilidade.



Detalhes e a grade de palestras podem ser vistas em

http://www.temporealeventos.com.br/?area=118

O objetivo da minha palestra será dar uma passada sobre as formas mais comuns de ligação de microcontroladores a outros dispositivos, apresentando exemplos em C.

Lembrando, este evento surgiu de ideias das comunidades Grupo C&C++ Brasil e do Portal Embarcados.

domingo, setembro 27, 2009

Os Álbuns dos Beatles - Beatles For Sale


A maratona continua, e no final de 64 é lançado o quarto álbum, gravado entre excursões pelo mundo à fora. Nada mais apropriado que as feições cansadas da foto da capa e o título "Beatles à venda".

Os Beatles retornam ao esquema de mesclar canções próprias (todas assinadas Lenon/McCartney) com convers extraídos do repertório dos shows. As novas canções foram compostas nos intervalos das excursões; tipicamente um dos dois tinha a ideia inicial e a apresentava para o outro que ajudava a completá-la.

A sofisticação das composições e gravações continua, com os Beatles estando mais presentes nas sessões de edição e mixagem. As músicas de Lenon acentuam o caráter mais auto-biográfico e sombrio.

Como em "A Hard Day's Night", apesar das gravações terem sido feitas em quatro canais o CD foi lançado com a mixagem mono.

sábado, setembro 26, 2009

Livro de Setembro: The Dangerous Transmission


A última vez que comentei sobre os Hard Boys, eu tinha acabado de ler uma versão facsimile de 1929. O livro ao lado representa a outra ponta da série, tendo sido publicado em 2004.

No post anterior eu mencionei a série "clássica" de 57 volumes, publicada de 1927 a 1979. Em 1979 uma batalha judicial levou os Hardy Boys para uma outra editora, surgindo os "Hard Boys Digests", publicados de 1979 a 2005, do qual o volume ao lado faz parte.

Outras séries foram publicadas em paralelo, notadamente "Hardy Boys Casefiles" que mudou radicalmente o enfoque e a personalidade dos Hardy Boys, mas isto fica para outra ocasião.

domingo, setembro 20, 2009

Os Álbums dos Beatles: A Hard Day's Night


Menos de dois anos após o primeiro compacto, saia o terceiro álbum dos Beatles. Desta vez todas as composições eram próprias (e, caso único, todas de Lenon-McCartney). John Lenon domina a composição sendo responsável pela maioria das músicas.

Com a Beatlemania em seu auge, "A Hard Day's Night" contém em seu lado A as músicas do filme de mesmo nome (que aqui nestas terras recebeu o infame nome "Os Reis do Ie-ie-ie"). O nome original vem de um malaproprismo de Ringo (menção incorreta de uma expressão corriqueira).

Além da crescente sofisticação das composições, o som é marcado pela nova guitarra de 12 cordas de George. Algumas músicas (I'll Cry Instead, Things We Said Today) revelam preocupações além do "garoto ama garota".

Embora todas as músicas tenham sido gravadas em quatro canais, o que permite uma mixagem estéreo decente, o álbum foi lançado em CD na versão mono.

sábado, setembro 19, 2009

Registro Eletrônico de Ponto - Final

Concluindo os meus comentários sobre a Portaria 1.510 do Ministério do Trabalho e Emprego, apresento aqui a minha visão quanto ao impacto desta portaria para os fornecedores e compradores de sistemas de registro eletrônico de ponto.

As normas estabelecidas pela portaria inclui requisitos bem diversos em relação à maioria dos sistemas em uso. É bastante provável que não esteja sendo comercializado no momento um sistema que atenda à portaria ou mesmo que possa ser adaptado facilmente. Alguns requisitos de hardware, como a impressora integrada, a memória à prova de apagamento e alteração e mesmo a porta USB não me parecem ser de fácil acréscimo a equipamentos já existentes, particularmente modelos com tecnologia mais simples ou antiga.

Isto significa que os empregadores que já utilizam sistema eletrônico de ponto provavelmente terão que substituir os seus equipamentos. Os requisitos técnicos e os novos procedimentos administrativos irão certamente pressionar custos e elevar preços.

Quem está em processo de adquirir um sistema eletrônico de marcação de ponto certamente desejará uma garantia de que o investimento poderá ser aproveitado após a entrada em vigor das regras.

Os fabricantes de equipamento terão que investir no desenvolvimento de sistemas que atendam às novas normas. Alguns destes fabricantes revendem atualmente modelos estrangeiros, cuja adequação poderá ser mais difícil. Não pode ser ignorada a possibilidade das normas serem revistas, adiadas ou abandonadas antes de entrar em vigor.

Os empregadores, além dos custos dos equipamentos, terão os custos associados à impressão (não somente o papel mas também os procedimentos operacionais relativos à sua compra, estocagem e substituição periódica).

Para o trabalhador, existe a perspectiva de passar a ter um comprovante físico das marcações de ponto e a expectativa de uma fiscalização mais efetiva.

Para todos os envolvidos existirá o desgaste da implantação e depuração de um novo sistema, tecnicamente mais complexo que os atuais.

Não será surpresa se algumas empresas decidirem retornar a métodos não eletrônicos, pelo menos enquanto esperam a poeira abaixar.

sexta-feira, setembro 18, 2009

Registro Eletrônico de Ponto - Parte 4

Prosseguindo com os meus comentários sobre a Portaria 1.510 do Ministério do Trabalho e Emprego (MTE), comento agora a certificação do Registrador Eletrônico de Ponto (REP).

Como vimos na parte anterior, existem normas muito específicas para o hardware e software do REP; a Certificação visa verificar se um equipamento atende estas normas.


quinta-feira, setembro 17, 2009

Registro Eletrônico de Ponto - Parte 3

Prosseguindo com os meus comentários sobre a Portaria 1.510 do Ministério do Trabalho e Emprego, analiso aqui os meus entendimentos sobre o hardware e software do Registrador Eletrônico de Ponto (REP).

Como vimos nas partes anteriores, o REP é o equipamento onde o ponto é registrado; ele deve servir exclusivamente para isto.

quarta-feira, setembro 16, 2009

Registro Eletrônico de Ponto - Parte 2

Continuo aqui a colocar os meus comentários sobre a Portaria 1.510 do Ministério do Trabalho e Emprego, falando agora sobre as consequências do ponto de vista de sistema.

A portaria divide um Sistema de Registro Eletrônico de Ponto (SREP) em duas grandes partes: o Registrador Eletrônico de Ponto (REP) e o Programa de Tratamento de Registro de Ponto.

terça-feira, setembro 15, 2009

Registro Eletrônico de Ponto - Parte 1

No final de agosto o Ministério do Trabalho e Emprego publicou a Portaria 1.510, que regulamenta o Registro Eletrônico de Ponto. As normas estabelecidas por esta portaria afetam significativamente o registro de ponto de forma eletrônica, em termos de operação, sistema, hardware e software. Além disso, estabelece um "Certificado de Conformidade" obrigatório para os equipamentos (e os respectivos "programas residentes").

Neste post e nos próximos vou colocar o meu entendimento e comentários sobre esta portaria.

segunda-feira, setembro 14, 2009

Adeus ao Google Code Jam 2009

Não é de hoje que eu me meto a tentar fazer coisas demais ao mesmo tempo e acabo fazendo nada ou muito pouco. Apesar dos post que eu coloquei por aqui, a verdade é que me preparei muito mal e estive sempre desfocado nas provas.

Para a primeira rodada, o regulamento estipulava três tentativas (sexta, sábado e domingo), com cada concorrente podendo participar de duas. Minha inscrição era para sábado e domingo, já prevendo que estaria cansado na sexta à noite.

Na sexta recebi e-mail avisando que estava liberada a participação nas três tentativas. Acompanhei desde o começo a prova de sexta à noite, mas não consegui enxergar como atacar nenhum dos três problemas.

No sábado eu estava com uma pequena reforma no jardim andando, o que certamente não ajudou. Por falta de planejamento, não almocei antes (a prova começou às 13:00) e portanto tive o incômodo da fome. Consegui resolver o primeiro problema (o mais fácil) mas demorei um tempo grande (1:45) devido a besteirinhas. Com 45 minutos sobrando, ataquei o terceiro problema e não concluí a tempo. Por alguns instantes tive a ilusão de ter perdido por falta de cinco minutos, mas assim que a prova foi liberada para treino descobri que a minha solução estava incorreta (por não ter lido direito o enunciado).

Sobrou a última tentativa no domingo - e eu confundi o horário! Ao iniciar a prova já tinha perdido uns 45 minutos. Novamente ataquei primeiro o primeiro problema (o mais fácil), desta vez consegui resolver mais rápido (1:15), mas falhei na primeira tentativa por não tratar corretamente um caso de contorno. Comecei a atacar o terceiro problema com meia hora restando, mas abandonei quando faltavam 5 minutos.

O mais interessante é que com a desclassificação veio uma sensação de alívio, por ter uma coisa a menos a tocar.

Pretendo ainda comentar no blog algumas das questões desta rodada. No próximo ano só vou participar se tiver conseguido me preparar de verdade.

sábado, setembro 12, 2009

Os Álbums dos Beatles - With The Beatles


Por mais surpreendente que possa parecer nos dias de hoje, os planos de George Martin e Brian Epstein eram para os Beatles lançarem dois LPs e quatro compactos por ano. Considerando que os Beatles faziam questão de gravar material próprio, isto exigia uma grande capacidade de composição - e isto não faltou neste início de carreira.

Oito meses após o lançamento de Please Please Me era lançado With The Beatles, com oito novas composições próprias. Entre os dois, dois compactos ('From Me To You'/'Thank You Gir'l e 'She Loves You'/'I'll Get You'). Uma semana depois, mais um compacto ('I Want To Hold Your Hand'/'This Boy'). E o LP não continha nenhuma das seis músicas dos compactos!

"With The Beatles" foi para o topo das paradas, substituindo "Please Please Me". Com estes dois álbums os Beatles ocuparam o topo por 51 semanas consecutivas.

Várias músicas deste disco tiveram uma número grande de takes e receberam sobreposições (overdubs). No último dia de gravação começou a ser usado gravador de quatro faixas, o que aumentava a flexibilidade tanto da gravação quanto da mixagem. Os Beatles começavam a fugir do "som ao vivo" do primeiro LP e partir para obras mais complexas.

Embora algumas destas músicas sejam consideradas menores (tanto pelos Beatles como por críticos) é evidente o avanço dos Beatles como compositores e interpretes.

Vamos às músicas:

It Won't Be Long

Composta principalmente por John, que assume o vocal solo, contém algumas características típicas dos primeiros sucessos, como o formato pergunta-e-resposta e os "yeah-yeahs" (que fizeram o estilo ser chamado de "iê-iê-iê" no Brasil).

All I've Got to Do

Composição de John, cantada pelo próprio. Nas palavras dele, uma música feita para o mercado americano pois telefones não faziam parte da vida dos garotos ingleses.'

John estava tentando copiar o estilo de Smokey Robinson (compositor de "You Really Got A Hold On Me", também presente no disco). Nos primeiros discos dos Beatles era comum eles adorem os estilos dos seus ídolos, que rapidamente ultrapassaram.

All My Loving

Composta e cantada por Paul, é uma espécie de country acelerado, o que é destacado pelo solo de George. Faz até hoje grande sucesso nos shows de Paul, de alguma forma a música parece convidar quem a escuta a cantar junto.

Don't Bother Me

A estreia de George como compositor. Com uma temática mais sombria que as músicas dos Beatles na época, nunca foi considerada grande coisa por George. O clima da música é gerado por um vocal "dobrado" de George, forte reverbação nas guitarras e alguns instrumentos diferenciados na percurssão.

Little Child

Composta por Jonh e Paul para ser cantada por Ringo, acabou sendo cantada por eles mesmos, que a consideravam uma canção menor, apenas para completar o álbum (filler). A harmônica de John tem bastante destaque; quem toca o piano é Paul.

Till There Was You

Cover de uma balada sem guitarras elétricas, mostrando a versatilidade dos Beatles em atingir diversos tipos de plateia. O vocal é de Paul.

Uma curiosidade: Beto Guedes gravou uma versão em português (com um forte sotaque mineiro) chamada "Quanto Te Vi" - veja no YouTube.

Please Mister Postman

Um cover que fazia inicialmente parte das apresentações ao vivo no Cavern. Vocal principal de John ("double tracked").

Roll Over Beethoven

Como disse John, se você quiser chamar rock and roll de outra coisa, chame de Chuck Berry. Cover com George nos vocais.

Hold Me Tight

Composta principalmente por Paul (que faz o vocal principal). Considereda fraca por eles mesmos.

You Really Got A Hold On Me

Outro cover, com vocais soberbos de John e George. George Martin toca o piano.

I Wanna Be Your Man

Composição que John e Paul fizeram para os Rolling Stones (e completada num canto de sala na frente dos Stones!), acabou sendo aproveita para ser o vocal de Ringo no disco.

Devil In Her Heart

George assume os vocais deste cover.

Not A Second Time

Música e vocais (double tracked) de John. Mais uma vez, John estava tentando copiar o estilo de Smokey Robinson.

Money

Para completar o disco, um cover enérgico com Lenon mais uma vez nos vocais e várias sobreposições de piano por George Martin.

Projetos com Sucesso - IV

Fechando esta série de posts, algumas considerações sobre atitudes do projetista que acredito colaborarem para um projeto ter sucesso. Esta lista vem principalmente em resposta a situações que me incomodam tanto ao gerenciar outras pessoas como ao analisar o meu próprio comportamento.

Preocupe-se com o Sucesso do Projeto

Um projeto bem sucedido provavelmente terá boas consequências. Pode ser um reconhecimento vindo de outros, um aumento na auto-estima ou a simples sensação agradável de ter feito algo que deu certo.

Já um projeto mal sucedido, mesmo que não seja por sua causa, provavelmente o prejudicará.

Dentro das suas possibilidade, lute para que o projeto tenha sucesso.

Não Seja Ingênuo

Este é um conselho duro de dar, pois a ingenuidade é uma coisa muito pura e bonita. Mas ela traz problemas sérios nos projetos. Não assuma que todos os envolvidos estão interessados no sucesso do projeto. Valide o que se fala com o que é feito. Documente decisões, reuniões e visitas.

Você precisa ter cuidado redobrado nos contatos com clientes. Já vi pequenos deslizes serem silenciosamente registrados por pessoas sorridentes que posteriormente os usam para atacar o profissional sem nenhuma piedade.

Se algo der errado, o ingênuo é a pessoa perfeita para ser o "bode expiatório", pois estará totalmente desprotegida.

Tome Cuidado com Preconceitos

Não estou falando especificamente de preconceitos de raça ou religião (que infelizmente ainda ocorrem) mas de qualquer tipo de julgamento precipitado com base em aspectos irrelevantes. Aparência e modo de falar são duas fontes muito comuns disso. Na nossa área somam-se a escolha de linguagens, ambientes e ferramentas.

Lembre-se que isto vale para os dois lados e tanto para indivíduos como empresas. Não pré-julgue os outros.

Tenha Senso de Urgência

Somos todos forçados a enfrentar no dia a dia uma série de "falsas urgências", tipicamente aquelas em que alguém "senta em cima" de uma decisão por semanas ou meses e depois quer os resultados "para ontem". Uma consequência nefasta disto é o sentimento contrário, o de que prazo é irrelevante, tanto faz concluir um projeto hoje, amanhã ou na semana que vem (afinal o salário é o mesmo...).

Embora na maioria dos casos um prazo não seja questão de vida ou morte, com frequência temos prazos importantes sejam por eventos externos (fora do controle de todos), por considerações econômicas ou mesmo por motivos psicológicos. Um pequeno exemplo é que terminar algo sexta feira à tarde significa concluir dentro da semana; terminar na manhã da segunda seguinte significa deixar escorregar para a próxima semana.

Além da sensibilidade a estes prazos importantes, o desenvolvedor deve estar sempre visando o término do projeto. É mais ou menos com o "instinto assassino" de um centro-avante: o que todo mundo quer é que ele conclua a jogada e faça o gol, não que fique correndo e driblando sem produzir resultado.

Mantenha a Concentração

Depois da incompetência, a fonte mais comum dos erros é a distração. Leia com atenção as especificações. Pense antes de codificar. Releia o que você codificou.

Os erros por distração, quando ocorrem com frequência, irritam quem está companhando o andamento do projeto, que acaba concluindo que está diante de incompetência.

Tenha cuidado especial em conjugar Concentração com o Senso de Urgência; a tendência das pessoas é em se fixar em somente uma delas e sacrificar a outra.

Não Tenha Medo de Pedir Ajuda

Um clássico no The Daily WTF é a história de Paula Bean, a programadora que em vários meses produziu apenas meia dúzia de linhas de código (e com um erro de ortografia na mensagem). Durante todo o tempo ela informava aos supervisores e colegas que o projeto estava andando bem.

Já observei cousa semelhante (em menor escala): ao enfrentar uma tarefa para qual não está preparada a pessoa fica insistindo sem resultados enquanto finge estar avançando. Se você perceber que está "empacado" busque orientação. Você vai aprender mais rápido, o projeto vai avançar e todos ficarão mais felizes.

Mantenha Controle do Estado do Projeto

Independente de um cronograma formal, o projetista deve ter sempre claro o que já foi feito e o que falta fazer. É extremamente irritante alguém dizer que o projeto "está pronto" e quando se pergunta sobre alguma parte específica receber respostas como "esta parte ainda não" ou "esqueci disto".

Junto com esta lista de pendências você deve ter as suas estimativas de prazo, mesmo que seja para o seu próprio controle. Uma meta ajuda a focar o esforço. Ao final do projeto compare as suas estimativas com o real; onde tiver errado feio procure descobrir o motivo e se algo deve ser feito diferente em um projeto futuro.


Espero que estas considerações ajudem vocês a terem mais projetos com sucesso. Lembre-se que são apenas a minha opinião e que nem de longe as considero condições necessárias ou suficientes para o sucesso.

quarta-feira, setembro 09, 2009

Google Code Jam 3009 - Watersheds

Vamos examinar agora o segundo problema da rodada de qualificação. Tive bastante dificuldade em enxergar uma forma de resolvê-lo, mas quando a achei a solução foi (na minha opinião) bastante eficiente.

O Problema

Resumindo o enunciado oficial:
  • Devem ser resolvidos até 100 casos de testes (T).
  • Em cada caso de teste é fornecido um mapa de elevação, que consiste em uma matriz de H linhas por W colunas de células. No small input o tamanho do mapa pode ser até 10x10 e no large input até 100x100.
  • Para cada célula é fornecida a sua altitude, que é um número inteiro (0 a 9 no small input e 0 a 9999 no large input).
  • Considera-se que a chuva que cai em cada célula irá ficar na célula ou fluir para uma das quatro células vizinhas (ao Norte, Sul, Leste e Oeste), conforme as altitudes delas. Se todas as células vizinhas tiverem altitude igual ou maior, a água ficará na célula que é considerada um dreno (sink). Caso contrário, a água irá pra a célula vizinha com altitude mais baixa. No caso de empate, escolhe-se a altitude mais baixa na ordem Norte, Oeste, Leste e Sul.
  • Formam-se assim bacias, que são conjuntos de células cuja água flui, direta ou indiretamente para o mesmo dreno. No small input garante-se que existirão no máximo 2 bacias, no large input podem ser até 16.
  • As bacias são identificadas por letras minúsculas de cima para baixo da direita para a esquerda.
  • O resultado solicitado é uma tabela com as identificações das bacias de cada célula.
A melhor forma de entender o problema é examinando um exemplo, no caso com um mapa 3 x 3.
No primeiro desenho temos o mapa com as altitudes. As setas no segundo indicam a direção da água. As cores no terceiro mostram as bacias, que são identificadas com as letras no último desenho.

Minha Solução

Percorrer as células determinando a direção da água é bastante simples, a questão é como determinar as bacias.

Minha primeira ideia era ir agrupando as células em conjuntos à medida em que determinava o fluxo. O que atrapalhava esta ideia era a possibilidade de ter uma bacia em formato de U, onde eu estaria determinando dois conjuntos separados que mais adiante eu teria que agrupar.

A coisa simplificou bastante quando me veio a ideia de olhar o resultado do final para o começo, seguindo a água no sentido contrário ao fluxo. Partindo de cada dreno temos uma árvore onde cada pai tem no máximo quatro filhos. Aproveitando o exemplo anterior:

Meu algoritmo ficou o seguinte:
  • Percorrer o mapa, determinando que são os drenos e marcando de onde vem a água para cada célula (o que cria as árvores).
  • Numerar as bacias, partindo de cada dreno e percorrendo cada célula da árvore correspondente.
  • Percorrer o mapa de cima para baixo, da esquerda para direita, para associar as letras corretas à numeração criada no item anterior.
Cada célula é armazenada em uma estrutura com os seguintes campos:
  • altitude
  • de onde vem a água (usei um bit para indicar cada uma das quatro direções possíveis)
  • um flag que indica se é um dreno
  • a bácia à qual a célula pertence
O código abaixo possui uma pequena alteração em relação ao que usei no Code Jam. Aqui map é uma matriz de duas dimensões, no meu código original era um vetor (matriz de uma dimensão) acessado através de lin*100+col (que no fundo é o código que o compilador vai gerar).
//
// Google CodeJam 2009 - Qualification Round, Problem B
// DQuadros
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
int alt;
char flows;
char sink;
char basin;
} Cell;

Cell map [100][100];
char letter [26];

#define FLOW_NORTH 1
#define FLOW_WEST 2
#define FLOW_EAST 4
#define FLOW_SOUTH 8

// recursive tree travel
void mark (int l, int c, char b)
{
map[l][c].basin = b;
if (map[l][c].flows & FLOW_NORTH)
mark (l-1, c, b);
if (map[l][c].flows & FLOW_SOUTH)
mark (l+1, c, b);
if (map[l][c].flows & FLOW_WEST)
mark (l, c-1, b);
if (map[l][c].flows & FLOW_EAST)
mark (l, c+1, b);
}

void main (void)
{
int iCase, nCases;
int H, W;
int lin, col, i;
char b;
int neighb [4]; // North, West, East, South.
int min;

scanf ("%d\n", &nCases);
for (iCase = 1; iCase <= nCases; iCase++)
{
// read dimensions
scanf ("%d %d\n", &H, &W);

// init map
for (lin = 0; lin < H; lin++)
{
for (col = 0; col < W; col++)
{
scanf ("%d ", &map[lin][col].alt);
map[lin][col].sink = 0;
map[lin][col].flows = 0;
}
}

// determine flow
for (lin = 0; lin < H; lin++)
{
for (col = 0; col < W; col++)
{
// find to where it will flow
if (lin == 0)
neighb [0] = 99999;
else
neighb [0] = map[lin-1][col].alt;
if (col == 0)
neighb [1] = 99999;
else
neighb [1] = map[lin][col-1].alt;
if (col == (W-1))
neighb [2] = 99999;
else
neighb [2] = map[lin][col+1].alt;
if (lin == (H-1))
neighb [3] = 99999;
else
neighb [3] = map[lin+1][col].alt;
min = 0;
if (neighb [1] < neighb[min])
min = 1;
if (neighb [2] < neighb[min])
min = 2;
if (neighb [3] < neighb[min])
min = 3;
if (map[lin][col].alt <= neighb[min])
{
// it's a sink
map[lin][col].sink = 1;
}
else
{
// mark where it comes from
switch (min)
{
case 0: // to North, from South
map[lin-1][col].flows |= FLOW_SOUTH;
break;
case 1: // to West, from East
map[lin][col-1].flows |= FLOW_EAST;
break;
case 2: // to East, from West
map[lin][col+1].flows |= FLOW_WEST;
break;
case 3: // to South, from North
map[lin+1][col].flows |= FLOW_NORTH;
break;
}
}

}
}

// follow trees from sink to upper lands
b = 0;
for (lin = 0; lin < H; lin++)
{
for (col = 0; col < W; col++)
{
if (map[lin][col].sink)
{
mark (lin, col, b);
b++;
}
}
}

// assign letters
for (i = 0; i < 26; i++)
letter[i] = 0;
b = 'a';
for (lin = 0; lin < H; lin++)
{
for (col = 0; col < W; col++)
{
if (letter [map[lin][col].basin] == 0)
letter [map[lin][col].basin] = b++;
}
}

// print result
printf ("Case #%d:\n", iCase);
for (lin = 0; lin < H; lin++)
{
for (col = 0; col < W; col++)
{
i = lin*100+col;
if (col > 0)
printf (" %c", letter [map[lin][col].basin]);
else
printf ("%c", letter [map[lin][col].basin]);
}
printf ("\n");
}
}
}