quinta-feira, janeiro 31, 2008

As Maravilhas do 'Marquetês'

Cada vez mais o Marketing consegue criar novas semânticas para os vocábulos e sintaxes existentes. Direto do Joel On Software, um "esclarecimento" da Microsoft sobre o roadmap do SQL Server 2008 (aqui) que vai desafiar a sua compreensão do inglês e um exemplo de como aplicar esta nova semântica em situações mais rotineiras, como na hora de entregar a lição de casa (aqui).

Obs/1: Não costumo publicar apenas links, ainda mais já divulgados por sites de maior prestígio, mas estes textos são simplesmente impagáveis e merecem toda a divulgação possível!

Obs/2: A propósito, estou trabalhando em vários novos posts e a liberação deles com alta qualidade e de forma previsível é vital para os meus fieis leitores, portanto fiquem atentos a futuros esclarecimentos sobre o roadmap do blog...

terça-feira, janeiro 22, 2008

Anúncios Antigos

Para espantos dos mais novos e para lágrimas dos saudosistas, seguem alguns anúncios de micros e software scaneados de revistas antigas.







Um clone menos conhecido do Sinclair ZX-81.



Revista Micro Mundo, 1984


Os vários micros comercializados pela Microdigital. O primeiro micro que comprei (TK 82C) já tinha saído de linha.



Revista Micro Mundo, 1984


A empresa lider em PC no Brasil, Microtec, anuncia o seu segundo modelo.



Revista PC Mundo, 1985


A Medidata, uma empresa especializada em MUMPS, lança o seu PC.



Revista PC Mundo, 1985


As impressoras Grafix, clones das Epson. Minha primeira impressora foi uma Grafix 80.



Revista PC Mundo, 1985


O WYSIWYG na metade dos anos 80.



Revista PC Mundo, 1985

segunda-feira, janeiro 14, 2008

Sherlock Holmes - The Mystery of The Mummy

Um jogo de aventura com Sherlock Holmes, disponível para download por US$9,99. Um bom negócio?

Introdução

Em uma série de posts anteriores eu comentei sobre os jogos do tipo Aventura. Embora atualmente eu jogue bem pouco, ocasionalmente eu dou uma olhada nos sites especializados. Em um deles eu baixei uma revista que continha uma avaliação bem positiva do jogo "Sherlock Holmes - The Awakened". Curioso, fui dar uma olhada no site e descobri que os jogos anteriores da série estavam disponíveis para download por preços decrescentes, culminando com o primeiro, "Sherlock Holmes - The Mystery of The Mummy", por apenas US$9,99.

Compra, Download e Instalação

A compra a partir do site da Frogwares se procedeu de forma bastante normal e resultou em um e-mail contendo um número de série e um link para download.

Na avaliação do "The Awakened" são mencionados downloads grandes, mas, como era um jogo mais antigo, eu esperava algo no máximo do tamanho de um CD. Para minha surpresa, o download do jogo é um único arquivo de 1,7 GBytes (e você só descobre isto quando começar a baixar). Para complicar, o link é válido para um máximo de 6 tentativas e não permite retomada de transferências interrompidas. Felizmente a minha 4a tentativa foi bem sucedida (disparei o download em casa, antes de sair para trabalhar e quando voltei à noite tinha concluído com sucesso). Definitivamente é apenas para quem tem um conexão rápida e estável.

Após a instalação (que não traz surpresas) é preciso ativar o programa via internet (ou e-mail). O número de série fornecido permite um máximo de três ativações.

A Interface e o "Gameplay"

A interface é bastante simples. A visão do local onde você (Sherlock) está é mostrada em 3D, sob o seu ponto de vista (exceto nos "cut-scenes"). Com as setas do teclado você consegue olhar 360o em torno, além de para cima e para baixo. Movendo o cursor do mouse, ele muda de formato em determinadas posições ("hot-spots"):
  • Uma mão apontando indica uma direção para onde você pode ir ou um objeto com o qual você pode interagir.
  • Uma mão meio fechada indica um objeto que você pode pegar.
  • Uma chave de boca indica um ponto ou objeto que pode interagir com um objeto em seu poder.
Como consequência, a maior parte do tempo você está movendo o mouse por toda a tela, procurando um "hot-spot". Para complicar, alguns deles são bem pequenos. Para complicar mais, alguns locais são bastante escuros (eu aumentei o brilho na configuração da minha placa, porém aí as regiões claras ficavam muito claras).

As imagens 3D são muito bonitas e cheias de detalhes (o que acaba sendo um problema, pois a maioria dos objetos apresentados são apenas cenário e não permitem interação).

O jogo utiliza bastante a fala. A qualidade das vozes é muito boa mas pode causar problemas para quem não tiver fluência em inglês e/ou não prestar bastante atenção. O jogo permite apresentar legendas, porém elas são bastante rápidas e não são apresentadas nos "cut-scenes". Felizmente os diálogos mais importantes são automaticamente registrados para leitura posterior.

Como em toda aventura, ao longo do jogo você encontra uma grande quantidade de problemas. No começo a maioria dos problemas são portas e armários fechados (chegou um momento que eu não aguentava mais ouvir "it's locked!"). A maior parte do tempo a solução é achar uma chave (se bem que em um ponto eu estava com três chaves e não conseguia abrir duas portas).

Muitas vezes não está claro o que deve ser feito. Por exemplo, em um determinado momento você encontra uma grande bacia com água e dois baldes com capacidade diferente. É evidente que é o tradicional problema de usar dois baldes para obter um determinado volume, mas qual é este volume? Não existe nenhuma informação ou dica, é preciso ir tentando todas as combinações.

Em alguns casos a solução dos problemas é simplificada. Por exemplo, em um determinado ponto você encontra um quebra cabeça. As peças são encontradas todas juntas e basta usá-las com o quebra cabeça para resolvê-lo. Em outros casos o problema tem que ser resolvido passo-a-passo.

Em diversas ocasiões uma escolha errada pode resultar em morte. Em alguns momentos existe um limite de tempo para resolver o problema (em uma ocasião este tempo é bastante curto). É, portanto, importante salvar com frequência. Inexplicavelmente, existe um limite para seis salvamentos, no sétimo é preciso sobrepor um dos seis anteriores.

O jogo está dividido em várias fases. Felizmente não é possível avançar de fase esquecendo de pegar um objeto, pois normalmente você não consegue voltar aos locais das fases anteriores.

Ajuda

O manual do jogo é bastante sucinto e as pistas dentro do jogo são muitas vezes extremamente vagas.

A partir de um certo ponto resolvi apelar para o UHS - Universal Hint System. O UHS é um sistema que permite ver pistas progressivamente mais explícitas, de forma a preservar ao máximo o prazer de resolver os problemas. O UHS está disponível para acesso via Web (gratuito) ou através de um leitor off-line (cobrado). Eu comprei o leitor em 1999 e em 2002 tive a grata surpresa de receber um e-mail informando que uma versão totalmente nova estava disponível e que era gratuita para quem tivesse comprado nos últimos 3 anos. Recomendo fortemente a quem for fã de aventuras.

Concluindo

"Sherlock Holmes - The Mystery of The Mummy" é um jogo visualmente muito bom e apresenta uma boa variedade de problemas. O enredo é bem razoável (mas não brilhante). A interface com o operador é às vezes irritante, deixando literalmente o jogador a procurar as coisas a esmo no escuro.

Por US$9,99 é uma opção muito interessante para quem deseja um jogo de aventura com interface simples, desde que você tenha condições de fazer o download do jogo.

sexta-feira, janeiro 04, 2008

Críticas

Todo mundo sabe que a unanimidade é burra. E nada como um boa crítica, principalmente na contramão da maioria. Neste post vou comentar dois sites que encontrei na internet.

WAR: Wilson & Alroy's Record Reviews.

Cheguei a este site a partir de um link na Wikipedia. Ele está repleto de críticas ácidas a discos. Eles não gostam muito de rock progressivo. Consideram o Led Zeppelin ladrões. Não dão mais que duas estrelas para o Pink Floyd. Se recusam a fazer críticas de vários artistas conhecidos. Muito divertido, mesmo que não se concorde com as críticas.

Para coroar eles são fãs de Wing. Para quem não conhece, veja o vídeo, acesse o site oficial e leia o que a Wikipedia tem a respeito.

John T. Reed analisa Pai Rico, Pai Pobre

Alguns anos atrás me indicaram o livro Pai Rico, Pai Pobre de Robert T. Kiyosaki como sendo um guia para a sabedoria financeira. A premissa parecia interessante: o autor se propõe a comparar os conselhos dados por seu pai (o Pai Pobre) com os conselhos dados pelo pai de um amigo (o Pai Rico). Eu comprei o livro, li, e não achei grande coisa. Os conselhos me pareceram genéricos, os exemplos não me convenceram e ao final achei que não tinha aprendido nada de novo.

Uma vez que o livro é um best-seller, fui olhar os comentários na Amazon e lá encontrei o link para esta página. Embora a página seja longa, cansativa, com uma formatação bem simples e alguns comentários pareçam pedantes ou dor-de-cotovelo, John T. Reed aponta uma série de falhas concretas no livro.

A começar por uma comparação com uma verão anterior do livro, no qual o "Pai Pobre" é descrito como o melhor professor que ele já teve e o "Pai Rico" não é sitado. Aliás a identificação do "Pai Rico" se revelou um mistério sem solução. Uma serie de afirmações do livro são confrontadas com fatos e até mesmo com outras afirmações no mesmo livro (vide Taking both sides). Uma leitura interessante para quem leu ou não "Pai Rico, Pai Pobre", mesmo para quem gosta do livro (desde que tenha a mente um pouco aberta).

Uma curiosidade adicional são os motivos pelo qual John T. Reed não vende o seu livro Succeeding através da Amazon.

Microcontrolador Texas MSP430

O MSP430 é uma entrada relativamente recente no mercado de microcontroladores. Com consumo muito baixo e uma arquitetura de 16 bits voltada para linguagens de alto nível, ele é uma alternativa muito interessante às consagradas famílias PIC e 8051.

As informações que se seguem vem da documentação do MSP430 (que pode ser obtida aqui), do material fornecido no MSP430 Day e da minha experiência de desenvolvimento de software para os modelos MSP430F2011 e MSP430F2121.
Arquitetura do MSP430

Os microcontroladores PIC e 8051 possuem arquiteturas esquisitas, dividindo a memória em regiões distintas que precisam ser acessadas por instruções especializadas. O resultado é uma dificuldade tanto para a programação assembler como para a construção de compiladores.

O MSP possui uma estrutura de 16 bits, tanto na capacidade de processamento da unidade lógica aritmética como nos registradores de trabalho e no endereçamento de memória. Ram, Flash e controle dos periféricos compartilham este mesmo espaço de endereçamento e são manipulados pelas mesmas instruções de acesso á memória.

Uma diferença em relação ao PIC é que o MSP430 não possui memória EEProm interna. Por outro lado ele dispõe de 4 áreas de 64 bytes de memória Flash que podem ser usadas para salvar parâmetros de forma não volátil.

O MSP dispõe de 16 registradores de 16 bits (R0 a R15), dos quais 12 são de uso geral (R4 a R15). R0 é o contador de programa, R1 é o ponteiro da pilha e R2 é o status do processador. R2 e R3 são geradores de constantes (usados como operando geram os valores 0, 1, 2, 4, 8 e 0xFFFF).

Modelos mais recentes expandem a arquitetura para endereços de 20 bits, para suportar um quantidade maior de memória.

Sistema Flexível de Clock

O MSP430 possui diversas opções de clock, que podem inclusive ser mudadas durante a execução para reduzir o consumo em momentos de espera e aumentar o desempenho na hora de processar.

Dependendo do modelo, existem até 4 fontes possíveis para o sinal de clock:
  • VLOCLK: clock interno de 12KHz de baixíssimo consumo.
  • LFXT1CLK: clock lento gerado por um cristal ou ressonador externo, tipicamente um cristal padrão de relógio de 32.768KHz (que fornece uma base de tempo de 1 segundo bastante precisa).
  • XT2CLK: clock rápido gerado por um cristal ou ressonador externo.
  • DCOCLK: clock interno gerado por um digital controlled oscillator (DCO) de até 16MHz com alguns valores pré-calibrados na fábrica para baixo erro.
Os sinais destas fontes podem ser dirigidos para três usos:
  • ACLK: clock auxiliar para os dispositivos (por exemplo o temporizador), pode ser VLOCLK ou LFXT1CLK, dividido por 1, 2, 4 ou 8.
  • MCLK: clock mestre, usado pela CPU. Pode vir de qualquer uma das fontes dividida por 1, 2, 4 ou 8.
  • SMCLK: clock sub-principal (!), pode ser usado nos dispositivos. Também pode vir de qualquer uma das fontes dividida por 1, 2, 4 ou 8.
Baixo consumo

Com todos os clocks parados (LPM4 - Low Power Mode 4), o MSP430 consome apenas 0,1 uA para manter o conteúdo da Ram.

Numa situação mais comum (LPM3), é mantido ligado apenas o ACLK para permitir acordar o processador após um determinado período de tempo. Neste caso o consumo fica em 0,9 uA (para alimentação em 3V).

Em todos os modos de baixo consumo o processador está parado mas é acordado rapidamente (menos de 1 uSeg para o DCO voltar a oscilar na família MSP430F2xx) quando recebe uma interrupção.

Periféricos Internos

Os vários modelos de MSP430 possuem internamente os periféricos tradicionais de microcontroladores:

  • Entradas e Saídas Digitais: todos os modelos possuem e/s digital com capacidade de interrupção (por borda de subida ou descida), pull-up e pull-down configuráveis.
  • Watchdog Timer (WDT): também presente em todos os modelos, resseta o processador se não for periodicamente desarmado (usado para colocar o processador em uma situação conhecida no caso de alguma falha de programação).
  • Timers: o MSP430 difere um pouco de outros micontroladores pelo fato de cada timer ter um único registrador de contagem e múltiplos registradores de comparação/captura. No modo continuous o registrador de contagem é continuamente incrementado por um dos clock (dando a volta quando atinge 0xFFFF) e interrupções de tempo real são geradas quando o registrador de contagem atingem o valor de um dos registradores de comparação. No modo up a contagem vai de 0 até o valor de um dos registradores de comparação, este modo pode ser usado para gerar um sinal PWM em um pino. Na operação de captura uma interrupção é gerada quando ocorre a mudança de sinal em um pino, neste instante o valor no registrador de contagem é copiado para o registrador de captura.
  • Comparador Analógico: compara o sinal presente em um pino com uma referência interna ou externa. Útil, por exemplo, para detectar bateria baixa.
  • Conversor A/D: não disponível em todos os modelos, codifica o nível de um sinal analógico em um valor digital de 10 ou 12 bits (dependendo do modelo).
  • USART: não diponível nos modelos mais simples, implementa comunicação serial síncrona ou assíncrona.
Os modelos mais sofisticados possuem capacidade de DMA (tansferência automática entre um bloco de memória e um dispositivo), interface I2C, um multiplicador por hardware (útil para endereçar vetores de estruturas) e conversor digital analógico. Alguns modelos incluem um sensor de temperatura.

A família MSP430x4xx inclui ainda um controlador de LCD.

Programação e Debug a Baixo Custo

Os modelos MSP430F20xx permitem programação e debug através de um dispositivo semelhante a um pen-drive (eZ430-F2013), através de uma conexão chamada pela Texas de Spy-By-Wire. O custo deste dispositivo nos EUA é de apenas U$20, no Brasil ele pode ser encontrado por R$100. A única restrição que encontrei foi o baixo número de breakpoints por hardware.

Uma vantagem adicional é que o programador vem com uma versão limitada do IAR Embedded Workbench Kickstart. Trata-se de uma IDE e compilador C bastante razoáveis. A limitação do compilador gratuito é de 4K de código, mais que sufiente para aplicações simples.

Se os até 2K de Flash dos modelos MSP430F20xx forem insuficientes e você optar pelos modelos MSP430F21xx, você vai precisar de um programador JTAG. O MSP-FET430UIF suporta todos os modelos e custa US$100 nos EUA (R$720 no Brasil!). Ele vem com o mesmo pacote de software que o eZ430-F2013.

Uma limitação nos dois casos é a ausência de um software de gravação standalone (por exemplo para uso na produção). Nos dois casos a gravação é feita disparando o Debug na IDE.

Baixo Custo (Em Termos)

Uma limitação para o hobista é que a maioria dos modelos está disponível apenas em encapsulamento do tipo surface-mounted. Apenas os modelos MSP430F20xx estão disponíveis no encapsulamento PDIP).

No folheto que está no site da Texas estão os preços sugeridos para revenda nos EUA, para mil peças. O modelo mais barato (MSP430F2001) estava a $0,55 quando consultei. Entretanto, este modelo tem apenas 1K de Flash e 128 bytes de Ram, o que limita muito suas aplicações principalmente quando programado em C. O MSP430F2121, com 4K de Flash e 256 bytes de Ram, estava a $1,35.

No Brasil, para compras unitárias, o preço é mais alto. O modelo NSP430F2013 (2K de Flash, 128 bytes de Ram, USART) tem preço EUA $1,65, no Brasil é vendido por R$12,23 (preço verificado na Farnell).

Futuramente vou apresentar uma adaptação do meu artigo de conexão de um LED ao PIC para o MSP430.

terça-feira, janeiro 01, 2008

Resoluções de Ano Novo - 2008 Edition

O ano passado foi um ano complicado em vários aspectos. E o balanço das resoluções do ano passado não é muito bom:

Instalar e usar sistema de controle de versão

Cheguei a instalar o subversion no servidor Linux da empresa, mas deu algum problema de direitos de acesso quando fui usar a partir de uma estação Windows. Depois de algumas tentativas acabou atropelado por coisas mais urgentes e indo para a lista de pendências.

Fazer até o fim pelo menos um dos "programas maravilhosos" que eu invento quando estou longe do micro

Com um pouco de boa vontade, o DQTimer cumpriu esta resolução. Sendo um pouco mais rigoroso, o DQTimer é pelo menos uma ordem de grandeza menor que os programas "realmente maravilhosos" que eu cheguei a pensar em fazer.

Aprender e usar Python

Fiz o download, instalei e encostei!

Continuar ignorando Perl e PHP

Esta foi fácil de cumprir.

Não trabalhar mais que 60 horas por semana

Fracasso total! Mais de uma vez eu sucumbi a verdadeiras maratonas na esperança de conseguir zerar o backlog. Pelo menos desta vez consegui descançar para valer nas férias.

Não ficar 30 dias sem colocar um post no blog

Esta ficou na casca. No final das contas o total de posts em 2007 foi quase idêntico ao de 2006, mas a distribuição foi muito pior (consequência acima de tudo do item anterior). As estatísticas de acesso apresentaram uma grande melhora durante o período que consegui postar com mais regularidade, mas cairam com a falta de posts em dezembro.



As novas resoluções para 2008

  • Instalar e usar sistema de controle de versão. Desta vez vai!
  • Fazer até o fim pelo menos dois dos "programas maravilhosos" que eu invento quando estou longe do micro
  • Aprender e usar Python
  • Continuar ignorando Perl e PHP
  • Trabalhar para diminuir as listas de pendências pessoais e profissionais, evitando criar novas pendências.
  • Não trabalhar mais que 50 horas por semana.
  • Melhorar a regularidade de posts no blog. tentar postar duas vezes por semana, não ficar mais de duas semanas sem postar.