segunda-feira, dezembro 27, 2010

Interfaceando Microcontroladores - Parte 6

Quase dois meses depois, eis a sexta (e última parte) desta série de posts. O assunto aqui são os displays LCD alfanuméricos. A abordagem aqui é bastante sucinta, estes displays certamente merecem uma série própria de posts.



Como referência, seguem abaixo os links para as demais partes da série:

Parte 1 - Resumo das arquiteturas dos microcontroladores usados como exemplo
Parte 2 - Programação dos periféricos em C
Parte 3 - Entrada e Saída Digital
Parte 4 - Entrada e Saída Digital (continuação)
Parte 5 - Entrada e Saída Analógica e interface com LCD organizado em segmentos

domingo, dezembro 26, 2010

Jogo do Mês: Broken Sword - The Director's Cut

Comprei este jogo de aventura no embalo das promoções de final de ano do GOG.com. Embora a versão original seja de 1996, o GOOG.com está vendendo um remake recente (feito em 2009 para o DS e Wii e portado para o PC agora em 2010). Nos comentários no site fala-se que esta versão estaria "simplificada" em relação à original para atrair jogadores mais "casuais". Como não conheço a versão original, avalio aqui apenas a nova versão.


quarta-feira, dezembro 22, 2010

Windows for ARM ?

O burburinho do dia é o possível anúncio de um versão do Windows (desktop) para processadores ARM, a ser feito na CES no início de janeiro. Segundo algumas fontes, o produto propriamente dito só estaria disponível daqui a 2 anos (e portanto seria o Windows 8).

A maioria não lembra disto, mas um dos objetivos do Windows NT era ser um sistema portável, suportando tanto a arquitetura x86 (na época o 386) como arquiteturas RISC. Ele chegou a ser comercializado em versões para processadores MIPS, Alpha e PowerPC.

O Windows CE também foi projetado para ser portável; após suportar arquiteturas diversas como x86 e MIPS, acabou se concentrando na arquitetura ARM.

Para quem enxerga nisto uma ruptura completa da Microsoft com a Intel, é bom lembrar que a Intel fabrica a tempos processadores com arquitetura ARM (embora é claro que ela prefira as suas próprias arquiteturas).

A Microsoft tem, portanto, as ferramentas e a experiência necessária para adaptar o Windows para a arquitetura ARM. A dificuldade do port de aplicativos vai variar bastante caso a caso. E a Microsoft tem os contatos e a força política para colocar no projeto fabricantes de hardware e acessórios, garantindo uma disponibilidade no mínimo razoável de equipamentos e drivers na época do lançamento.

E qual o motivo de tudo isto? Aparentemente os tablets. Embora a Microsoft venha tentando abrir este mercado literalmente há décadas (alguém lembra do Windows for Pen Computing?), quem emplacou um produto foi a Apple. Planos para tablets com o Windows 7 parecem ser escassos. Não existe nem menção em usar o Windows CE neste tipo de equipamento. O recém lançado Windows Phone 7 não é considerado adequado para tablets.

Minha opinião? É um boato muito plausível mas o ponto crítico para um tablet não é o sistema operacional, mas sim a interface com o operador. A interface do Windows (e a API por trás) me parece muito amarrada ao uso de mouse. Sem mexer nisto, será mais um fracasso.

Alguns links de notícias a respeito:

OSNews
The Register
Bloomberg
Wall Street Journal

O Kit MSP430 Launchpad

Na imensa lista de "coisas que eu gostaria de ter tipo tempo para mexer" está o kit MSP430 Launchpad.

Há muito tempo atrás eu mencionei que a Texas tinha lançado um linha de microcontroladores MSP430 de baixo custo. Este ano ela lançou o complemento perfeito: uma plaquinha de baixíssimo custo (US$4,30) para quem quiser conhecer a plataforma.


terça-feira, dezembro 21, 2010

Será Que Tão Poucos Sabem o Que É Programação Orientada a Objeto?

Entre as minhas "desventuras" deste ano estão algumas tentativas de contratação de desenvolvedores e estagiários. Faz parte do processo aplicar uma provinha nos candidatos entrevistados.

Neste ano eu dei preferência por questões mais básicas e de resposta aberta, na expectativa de fazer o candidato escrever um pouco. A primeira questão era justamente "o que você entende por Programação Orientada a Objeto". Me pareceu "barbada", já que todo currículo diz que o candidato estudou e pratica isto. Eu estava aberto tanto para definições decoradas de livro como para visões pessoais e imperfeitas.

O resultado foi péssimo, poucas respostas faziam sentido. Acho que teve até quem deixou em branco! No entanto, todo este pessoal está formado (ou a caminho de) e escreve programas (profissional ou academicamente) em linguagens como Java e C# (que supostamente impõem OOP). Eu me pergunto o que será que é visto nas aulas.

Talvez a culpa esteja nas IDEs cheia de wizards e outras bruxarias. Por exemplo, no Windows Forms cada formulário corresponde a uma classe (que herda a maioria das funcionalidades de uma classe chamada Form), mas o Visual Studio escreve o grosso desta classe para você e até esconde a parte mais mundana (como a definição dos controles como campos da classe). Talvez tenha gente que nunca tenha reparado que uma classe está sendo definida.

Em tempo: minha tentativa de dizer o que é OOP está aqui; é claro que se alguém me pergunta-se de supetão a minha resposta não seria tão articulada.

segunda-feira, dezembro 20, 2010

domingo, dezembro 19, 2010

Lista: 35 Frases Sobre Programação

Lendo uma lista de 50 frases sobre programação, resolvi selecionar algumas e apresentá-las traduzidas; qualquer que seja a linguagem da sua preferência vai sobrar para ela também:
  • "A programação hoje em dia é uma corrida entre engenheiros de software tentando fazer programas maiores e melhores a prova de idiotas e o universo tentando fazer idiotas maiores e melhores. Até agora o universo está ganhando." - Rick Cook
  • "Andar sobre as águas e fazer software a partir de uma especificação é simples se ambas estiverem congeladas."- Edward V Berard
  • "Uma linguagem de programação é de baixo nível quando exige atenção com o irrelevante." - Alan J. Perlis
  • "Um programa em C é como uma dança rápida sobre chão encerado, executada por pessoas segurando navalhas." - Waldi Ravens
  • "Eu sempre desejei que o meu computador fosse tão fácil de usar quanto o meu telefone; meu desejo se tornou realidade pois eu não consigo mais usar o meu telefone." - Bjarne Stroustrup
  • "O estudo da ciência da computação não consegue transformar qualquer um em um excelente programador, da mesma forma que o estudo de tintas e pinceis não transforma qualquer um em um excelente pintor." - Eric S. Raymond
  • "Não se preocupe se não funcionar direito. Se tudo funcionasse, você estaria desempregado." - Lei de Mosher da Engenharia de Software
  • "Certo, Java PODE ser um bom exemplo do que uma linguagem de programação deve ser. Mas as aplicações escritas em java são um bom exemplo de como as aplicações NÃO DEVEM ser." - pixadel
  • "Considerando o triste estado dos programas de computador, o desenvolvimento de software claramente ainda é uma arte obscura que ainda não pode ser chamada de uma disciplina de engenharia." - Bill Clinton
  • "O uso de COBOL deteriora a mente; o seu ensino deve, portanto, ser considerado uma ofensa criminal." - E.W. Dijkstra
  • "A versão orientada a objeto do 'código espaguete' é o 'código lasanha' - camadas em excesso" - Roberto Waltman
  • "FORTRAN não é uma flor, mas sim uma erva daninha - é dura, raramente floresce e aparece em todo computador." - Alan J. Perlis
  • "Por muito tempo eu não entendi como algo tão caro pudesse ser tão inútil. Aí eu percebi que os computadores são máquinas estúpidas capazes de fazer coisas incrivelmente inteligentes; enquanto que os programadores são pessoas inteligentes capazes de fazer coisas incrivelmente estúpidas. Em resumo, nasceram um para o outro." - Bill Bryson
  • "Na minha opinião egoísta, os programas em C da maioria das pessoas deveria ser identado 6 pés para baixo e coberto de terra." - Blair P. Houghton
  • "A evolução das linguagens: FORTRAN é uma linguagem não tipada. C é uma linguagem fracamente tipada. Ada é uma linguagem fortemente tipada. C++ é uma linguagem cuja utilidade é fortemente exagerada." - Ron Sercely
  • "O bom projeto adiciona valor mais rápido do que custo." - Thomas C. Gale
  • "Falar é fácil. Mostre-me o código." - Linus Torvalds
  • "A perfeição é atingida não quando não se tem mais o que colocar, mas sim quando não se tem mais o que tirar." - Antoine de Saint-Exupéry
  • "C é excêntrico, defeituoso e um enorme sucesso." - Dennis M. Ritchie
  • "Na teoria, teoria e prática são iguais. Na prática, não." - Yogi Berra
  • "Você não consegue um grande software sem uma grande equipe, e a maioria das equipes de software se comporta como famílias disfuncionais." - Jim McCarthy
  • "PHP é um mal menor criado e executado por amadores incompetentes, enquanto que Pearl é um grande e perversivo mal executado por profissionais habilidosos mas pervertidos." - Jon Ribbens
  • "Pearl - A única linguagem que parece a mesma antes ou depois de ser criptografada." - Keith Bostic
  • "Eu inventei o termo 'orientado a objeto', e garanto que não tinha em mente o C++." - Alan Kay
  • "Aprender a programar tem a ver com desenvolvimento de software interativo tanto quando aprender a datilografar tem a ver com a escrita de poesia." - Ted Nelson
  • "Fique atento para bugs no código acima; eu apenas provei que ele está correto, eu não o testei." - Donald E. Knuth
  • "Análise de sistemas é como criar uma criança; você pode fazer um estrago imenso mas não pode garantir sucesso." - Tom DeMarco
  • "Não me interessa se roda na sua máquina! Nós não estamos entregando a sua máquina!" - Vidiu Platon
  • "Medir o progresso de um programa por linhas de código é como medir o processo de montagem de um avião pelo peso." - Bill Gates
  • "A complexidade de depurar é o dobro da de escrever o código. Portanto, se você escrever código os mais inteligente possível, por definição você não será esperto o suficiente para depurá-lo." - Brian W. Kernighan
  • "A maioria dos softwares atuais são como as pirâmides do Egito, com milhões de blocos empilhados um em cima dos outros, nenhuma integridade estrutural, feita apenas pela força bruta e milhares de escravos." - Alan Kay
  • "O problema com os programadores é que você nunca consegue saber o que eles estão fazendo antes de ser tarde demais." - Seymour Cray
  • "Em duas ocasiões [os membros do Parlamento] me perguntaram: 'Diga, Sr Babbage, se eu entrar na máquina números errados ela conseguirá sair as respostas corretas?' Eu não sou capaz de entender a confusão mental capaz de gerar este tipo de pergunta." - Charles Babbage
  • "Codifique sempre como se o cara que for dar manutenção seja um psicopata violento que sabe onde você mora." - Martin Golding
  • "Existem duas maneiras de construir um projeto de software. Uma é fazê-lo tão simples que obviamente não há falhas. A outra é fazê-lo tão complicado que não existem falhas óbvias." - C.A.R. Hoare
Cheguei à lista original a partir do OSNews.

quarta-feira, dezembro 15, 2010

Promoção de Natal do GOG.com

O site GOG.com iniciou ontem a sua promoção de Natal. São quase 300 jogos com descontos de 30 a 50%. Para quem não conhece, o GOG.com vende jogos antigos (mas com compatibilidade garantida com Windows XP e Vista), sem DRM e por preços baixos (as faixas normais são US$5.99 e US$9.99).

Com a promoção, tem jogos a partir de US$2.99. Uma pequena amostra:

quarta-feira, dezembro 08, 2010

Google Entra no Mercado de eBooks

Em um lance aguardado há algum tempo, a Google anunciou no início da semana o Google eBooks e a Google eBookstore.

A Google vem digitalizando livros há bastante tempo, um empreendimento envolto em polêmica pelo fato da Google ter digitalizado livros cujos direitos autorais não estão claros (os chamados "orfãos") e estar tentando um acordo que lhe daria acesso praticamente exclusivo a estas obras (algumas notícias a respeito aqui e aqui).

O serviço de venda de livros está sendo descrito pela Google como "aberto", notadamente pelo fato da Google não estar vendendo um leitor de eBook. Os livros podem ser lidos diretamente na internet, no iPad e dispositivos Android (através de aplicativos da Google) e em alguns leitores de eBook (como os da Sony e o Nook). A grande falta na lista de dispositivos suportados é o Kindle (por enquanto?). No momento a loja está restrita aos EUA.

Curiosamente o iPad é hoje quem tem acesso às três lojas mais badaladas: Amazon, iBooks e Google eBooks. O The Register fez um teste rápido das três opções e deu vitória para a Amazon, por ter uma melhor seleção de livros e um aplicativo de leitura mais eficiente. A Apple leva a pior, com menos opções na loja e um aplicativo que não os agradou (a sua experiência pessoal pode ser diferente!).

O que não impediu Steve Jobs de alardear na metade do ano que a Apple já tinha entregue* 5 milhões de livros, sendo responsável por 22% das vendas de eBooks (ver foto aqui) das editoras participantes do iBooks (grifo meu, isto estava na fala de Jobs não na tela).

* Em todas as opções existe uma grande quantidade de textos grátis, como os encontrados no Projeto Gutenberg. Existem também amostras grátis, o que torna as estatísticas de "entregas" (downloads) menos relevantes do que podem parecer em um primeiro momento.

domingo, dezembro 05, 2010

Novo Som para o Carro: Philips CE120

Com o colapso total do Visteon, precisei procurar um novo aparelho de som para o carro. O meu requisito básico foi ser capaz de tocar MP3 a partir de cartões SD. O formato SD me parece ótimo para a aplicação: dá para gravar um quantidade grande de músicas, o preço é razoável e, mais importante, não fica exposto a trancos acidentais (um problema com as entradas USB).

sábado, dezembro 04, 2010

Cinco Anos de Blog

É difícil acreditar mas na quinta passada (2/12/10) o blog completou 5 anos. Do ano passado para cá não teve muitas novidades e a correria neste final de ano impediu uma comemoração muito especial.

De qualquer forma, aqui estão alguns gráficos mais recentes (clique para ampliar):





Os destaques deste último ano foram:
  • Disponibilização (finalmente) do livro PC Assembler em formato de ebook.
  • A série "Som Aposentado" (1 2 3 4 5 6)
  • A série "Interfaceando Microcontroladores", uma primeira experiência com vídeos no YouTube (1 2 3 4 5 ... falta ainda a última parte!)
  • O Google Groups me deixa na mão (1 2). Está na lista de "urgentes" achar um outro lugar para hospedar os arquivos e acertar todos os links.

quarta-feira, dezembro 01, 2010

Projetando a Interface com o Operador

A interface com o operador (que vou chamar aqui simplesmente de UI) é uma parte crítica de um programa, mas muitas vezes acaba sendo feita com pouco esmero.

Um livro muito bom a respeito é "User Interface Design for Programmers" de Joel Spolsky. A edição impressa está esgotada na Amazon, mas você pode ler hoje mesmo se optar pela versão Kindle. Melhor ainda, parte do material está disponível gratuitamente no site do Joel. É material de quase dez anos atrás mas os princípios continuam valendo.

Uma Interface Intuitiva

"Intuitivo" é um termo muito mencionado quando se fala de UI. As pessoas querem sentar na frente do programa e sair usando. Como se consegue isto?

Um termo que Joel usa é affordance, que ao pé da letra é "permitir" mas que podemos traduzir para "facilitar". Em uma boa interface os objetos "facilitam" o seu uso. É tão óbvio o uso destes objetos que eles parecem "implorar" para serem usados. Esta técnica, entretanto, é limitada quando temos que indicar ações ou escolhas que não tem um equivalente na vida normal. E aí que entra a principal técnica para uma boa interface: a consistência.

Consistência

Se não dá para evitar que o usuário tenha que aprender algo, que ele aprenda somente uma vez. Se ele puder usar o mesmo objeto, da mesma forma, para obter o mesmo resultado, não vai demorar muito para que o seu uso fique intuitivo. Melhor ainda se esta consistência não estiver limitada a um aplicativo mas se extenda a vários.

Isto leva ao que considero a regra de ouro do projeto de UI: O projeto de UI não é lugar de ser criativo. Pode parecer um paradoxo, já que o projeto de UI parece ser lugar para um artista. Embora os aspectos estéticos sejam importantes (e já vou falar deles), um bom projeto de UI consiste em dispor adequadamente elementos padronizados.

Esta consistência visual é incentivada pelos próprios sistemas operacionais, que costumam incluir um bom conjunto de elementos gráficos "prontos". É vital que o projetista conheça os elementos disponíveis, seus recursos e variações e, principalmente, quando eles devem ser usados.

Às vezes existem várias opções possíveis. Neste caso deve-se optar pela que seja mais confortável ao operador. Considere a entrada de um número. Algumas opções:
  • Seleção por radio button: prático se as opções forem poucas e a operação for principalmente pelo mouse.
  • Seleção em um drop list: também para o caso de poucas opções. Tem a vantagem de ocupar menos espaço na tela e a desvantagem das opções não estarem claras.
  • Digitação em um text box: pode ser mais trabalhoso para o operador e para o programador (por envolver consistências) mas é mais prático para uma faixa grande de valores e funciona bem em uma tela com bastante digitação.
O Grande Pecado

Vamos considerar dois elementos básicos da interfaces atuais: os checkbox e os radio buttons (minha experiência é com Windows mas imagino que isto se aplique aos principais SOs atuais). Os elementos padrões do SO possuem uma aparência que automaticamente associamos à forma de operação: checkbox são opções independentes e radio buttons são agrupados em conjuntos onde uma opção exclui as demais.

Uma pequena digressão: será que alguém ainda lembra dos rádios com botões mecânicos onde o pressionamento de um fazia saltar o que já estava pressionado ou esta é uma metáfora cuja origem já se perdeu?

Vamos supor que você ache o checkbox feio e resolva inventar uma aparência diferente (e você certamente não vai estar sozinho nisto). O seu usuário vai ter que aprender que este seu elemento funciona como um checkbox (ou pior, entender um funcionamento parecido mas não igual). O que o usuário ganha em troca deste esforço? Um visual que você acha mais bonito (no que ele pode não concordar).

O pior que você pode fazer, entretanto, é mudar a operação de um elemento padrão. Por exemplo, você faz um checkbox funcionar como radio button (já ví isto). Você acaba de confundir o seu usuário. É um passo esta confusão se transformar em frustração e depois raiva.

Estética

Sim, a estética é importante. Principalmente no que se refere à legibilidade da UI. Cores e fontes diferenciados podem auxiliar a organização da tela, mas devem ser usados com muita parcimônia.

No Windows é bastante trabalhosa a mudança de cores e fontes para quem está programando diretamente a API do Windows. A partir do Visual Basic, estas mudanças ficaram triviais e é natural que alguns desenvolvedores tenham se entusiasmado além da conta.

Uma tela cheia de cores e fontes diferentes confunde a visão do operador. Além disso, o seu cérebro vai ficar tentando achar significados por trás destas pistas falsas.

Por último, é bom lembrar que o Windows já possui recursos para o usuário customizar as cores dos elementos gráficos (alguém ainda lembra dos temas?). Forçar uma cor ou um tamanho de letra vai impedir o funcionamento destas configurações.

Ajudando o Operador a Não Errar

Uma característica das UIs é que elas precisam estar preparadas para erros do operador. É inadmissível que informações sejam processadas sem um mínimo de consistência e particularmente vexaminoso quando um erro fatal ocorre mais adiante porque uma informação inválida ou inconsistente foi aceita.

Um mínimo que deve ser feito é fazer uma consistência dos dados e a apresentação de uma mensagem clara sobre qual foi o erro detectado e quais as principais alternativas para corrigí-lo.

Melhor ainda é examinar alternativas que o impeçam de errar. Retomando o exemplo anterior, uma lista de valores válidos impede os erros que podem ser cometidos na digitação em um campo livre.

Pequenos Cuidados

Um olhar atento a detalhes é importante. Reveja bem os textos utilizados, garanta que não escapou um erro de digitação e que os termos são consistentes entre as telas. Não se esqueça de definir atalhos e de verificar a ordem de tabulação.

terça-feira, novembro 30, 2010

Links Comentados #11: Vírus no Mac, SAP pirateia software da Oracle e Tinta Eletrônica Colorida

Vírus no Mac?

A Sophos resolveu inovar ("abrir novos mercados"?) e disponibilizou um anti-virus gratuito para o MacOS. Os resultados das primeiras duas semanas indicam que a maioria das detecções se referem a vírus ... do Windows! Foram também detectados vírus "genéricos", que independem do sistema operacional.

Um histórico dos malwares para Mac mostra que o problema mais comum tem sido trojans e não vírus.

Mas que os usuários de Mac não fiquem relaxados, pois falhas de segurança são tão certas quanto morte e impostos. Veja aqui a list de falhas corrigidas no update do Mac OS X liberado em 10 de novembro.


SAP "pirateou" Oracle

Você provavelmente leu sobre a condenação da SAP a indenizar a Oracle em US$1.3 bilhões por "propriedade intelectual roubada". Detalhes na imprensa sobre o "roubo" são escassos.

O roubo foi feito pela empresa TomorrowNow comprada pela SAP em 2005 e fechada no final de 2008. Consiste em downloads de softwares da Oracle, utilizados para pegar clientes da PeopleSoftware e Sieble, acão esta confessada pela SAP.

As alegações da Oracle podem ser vistas aqui (PDF). Segundo o documento, a TomorrowNow foi fundada por ex-funcionários da PeopleSoftware, que através de acessos ilegais ao site de suporte da Oracle baixaram softwares e documentos. Este material foi usado para fornecer suporte a clientes da PeopleSoftware (que foi comprada pela Oracle) por preços muito baixos, como parte de uma inciativa da SAP (Safe Passage) de migração destes clientes para os softwares da SAP.

Vem aí a tinta eletrônica colorida?

Como usuário do Kindle estou maravilhado com a qualidade do display de tinta eletrônica para a leitura de textos. E as pesquisas estão a todo vapor para a fabricação de displays coloridos, de baixo custo e com velocidade para apresentar vídeo.

Um professor e um estudante da Universidade de Cincinatti acreditam que o caminho é usar papel como base para o display.

Não creio que esta pesquisa resulte imediatamente em produtos, mas não duvido que até 2020 já seja possível termos o equivalente ao Profeta Diário.

A Vida do Desenvolvedor Windows CE Continua Dura

Retomando o assunto de um post anterior, a situação do desenvolvemos para Windows CE continua complicada.

No ponto que eu tinha parado, no Visual Studio 2005 SP1, as coisas pareciam estar melhorando. Com o VS2005 Standard, você tinha duas opções para desenvolver para o CE: código nativo em C/C++ ou código gerenciado com o Compact .Net Framework, programando em C# ou VB.Net.

No Visual Studio 2008, uma pequena alteração: o desenvolvimento para "Smart Devices" deixou de ser suportado na versão Standard, era preciso comprar a versão Profe$$ional.

Com a ascensão do iPhone e Android, a participação no mercado dos smartphones baseados no CE vem despencando. A reação da Microsoft foi criar algo "diferente", o Windows Phone. E com isto está deixando órfãos os desenvolvedores para o Windows CE: o Visual Studio 2010 não suporta o desenvolvimento para os "Smart Devices", tanto nativo como gerenciado.

Por aqui a maioria das aplicações estão em C e estamos prevendo uma vida longa para o VS2008. Provavelmente não vamos fazer mais experiências com o Compact Framework que, apesar de negativas de pessoas isoladas da Microsoft, claramente está andando de bicicleta no telhado.

Um lembrete para a Microsoft: no mercado de coletores de dados, onde Windows CE tem sido o padrão desde a virado do milênio, a líder é uma divisão da Motorola. E a Motorola parece já ter adotado uma alternativa ao CE na divisão de celulares. E eu já estou estudando Java...

Ruminações Sobre o Desenvolvimento de Software

A queda recente no ritmo dos posts foi devida a um acúmulo de trabalho. Como de costume, envolveu colocar a mão em coisas que eu fiz no passado e coisas que outras pessoas fizeram. Vem aí nas próximas semanas alguns posts sobre desenvolvimento de software, para eu extravasar as coisas boas e ruins que eu vivenciei...

Uma primeira lembrança é que o principal fator no desenvolvimento de software são as pessoas envolvidas. Tanto as pesquisas como os anedotários evidenciam diferenças de uma ordem de grandeza entre o desempenho de pessoas diferentes. Ou da mesma pessoa em momentos diferentes. Algo que às vezes é chamado de peopleware.

Daí eu chego à importância em ter orgulho no código que se escreve. No momento em que você abre mão deste orgulho e declara que o código está pronto porque (a) está com fome (b) chegou o fim do expediente (c) tá pouco se lixando para o resultado, a vaca foi para o brejo.

quarta-feira, novembro 17, 2010

Álbuns dos Beatles na iTune Stores - O Que Isto Representa?

Ontem, 16/11/2010, os álbuns do Beatles passaram a estar disponíveis para compra na iTune Stores. Para a Apple Computers, "a day you will not forget" (um dia inesquecível). Para muitos, nada de especial. Não me afeta diretamente (não tenho iPod, a iTune Store não atende esta terra onde canta o sabiá e já digitalizei os meus CDs).

Não custa lembrar que, no começo da sua vida, a Apple Computers precisou se entender com a Apple Corps dos Beatles. O acordo inicial era simples: a Apple Computers não entraria no ramo da música e a Apple Corps não entraria no ramo de computadores. Os avanços tecnológicos levaram a vários processos e renegociações. Com este anúncio o círculo se fecha - a Apple Computers passa a vender as músicas de propriedade da Apple Corps.

A grande pergunta é quem irá comprar as músicas. Para o fãs mais antigos, que provavelmente já tem os CDs originais, pode ter algum atrativo se oferecerem as versões recentemente remasterizadas. Desconfio também que muita gente só conhece uma pequena parcela das músicas deles; pode ser que este pessoal se interesse em ver "o que mais eles gravaram". Não é um absurdo se pensarmos que 1 foi lançado em 2000 e o mais vendido nos EUA entre 2000 e 2009.

A grande aposta, provavelmente, é a geração que não compra mais CDs. Quem sabe ainda tem muita gente que ainda não conhece os Beatles?


segunda-feira, novembro 15, 2010

Livro do Mês: Med Ship (EBook Grátis!)

O livro do mês é Med Ship, de Murray Leinster. A Baen Book publica este livro e disponibiliza-o gratuitamente em vários formatos de eBook. Graças a isto é o primeiro livro que eu completo a leitura no meu Kindle.


quarta-feira, novembro 10, 2010

EBook Grátis - Programming Windows Phone 7, por Charles Petzold

Charles Petzold é um nome reverenciado pela "velha guarda" de programadores Windows. Nos idos de 1988 ele escreveu o primeiro livro sobre programação para Windows - "Programming Windows". Provavelmente quem aprendeu a programar para Windows até meados dos anos 90 aprendeu com Petzold.

De 88 até 98 foram 5 edições de "Programming Windows", acompanhando o Windows da versão 2 até o Windows 98. Depois disso Petzold escreveu outros livros sobre programação, agora no ambiente .Net, mas não tiveram tanta repercussão (talvez por ele fazer tudo por código ao invés de usar wizards e editores gráficos).

A Microsoft está disponibilizando grátis um novo livro do Petzold: " Programming Windows Phone 7". Com 24 capítulos e quase 1000 páginas, é um livro sério e não uma destas "amostras grátis" geradas pelo departamento de marketing.

O download (em formato PDF ou XPS) pode ser feito em

http://blogs.msdn.com/b/microsoft_press/archive/2010/10/28/free-ebook-programming-windows-phone-7-by-charles-petzold.aspx

terça-feira, novembro 09, 2010

Agora É Definitivo: Google Groups Não Suportará Mais Arquivos

Como relatei algum tempo atrás, o acesso aos arquivos ZIP hospedados no Google Groups estão bloqueados desde junho. Cinco meses depois(!) a Google finalmente se manifesta de forma oficial, através de um e-mail:

"Como você é proprietário de ao menos um grupo dos Grupos do Google que usa mensagem de boas-vindas personalizada, páginas ou arquivos, estamos escrevendo para informar que deixaremos de oferecer suporte a esses recursos a partir de fevereiro de 2011."

Para facilitar a migração para algum outro canto, estão disponibilizando uma opção para baixar todos os arquivos do grupo em um único (já tinha percebido este recurso algumas semanas atrás).

Hora de abandonar a preguiça e achar um novo local para hospedar os arquivos e acertar todos os links no blog.

Interfaceando Microcontroladores - Parte 5

Nesta quinta parte, entradas e saídas analógicas e displays de LCD organizados por segmentos.

segunda-feira, novembro 08, 2010

Seminário RTOS em São Paulo

No próximo dia 20 de novembro, o Portal Embarcados e a Tempo Real Eventos promovem um seminário sobre sistemas operacionais de tempo real. Maiores detalhes no site da Tempo Real.

III Seminário de Programação C & C++ para Sistemas Embarcados

Sábado passado (6/11/2010) ocorreu a terceira edição do Seminário de Programação C & C++ para Sistemas Embarcados, e mais uma vez tive a honra de palestrar. Como nas edições anteriores, o conteúdo técnico foi gerado pelo Portal Embarcados e pelo Grupo C&C++ Brasil e a organização foi da Tempo Real Eventos. O evento contou com o patrocínio da Texas Instruments e o apoio da Microgênios.

Segue o meu relato do evento.


quinta-feira, novembro 04, 2010

Interfaceando Microcontroladores - Parte 4

Nesta quarta parte vamos ver um pouco mais sobre entradas e saídas digitais. Nos exemplos, controle de servomotor, controle de intensidade de LEDs e conexão de teclados.

sábado, outubro 30, 2010

Preparando Vídeos de Apresentações com Narração

Descreve neste post o processo que estou usando para gerar os vídeos da série "Interfaceando Microcontroladores". É provável que este processo esteja longe de ser otimizado, ele envolve vários aplicativos (a maioria livre ou grátis) e é executa no ambiente Windows.

O processo envolve as seguintes etapas:
  • Geração das imagens da apresentação.
  • Geração da narração.
  • Conversão das imagens em vídeo.
  • Geração do vídeo final combinando a narração com o vídeo das imagens.

quinta-feira, outubro 28, 2010

Interfaceando Microcontroladores - Parte 3

Nesta terceira parte vemos as Entradas e Saídas Digitais e exemplos práticos de conexão de Teclas e LEDs.

quarta-feira, outubro 27, 2010

Dois Sites de eBooks Gratuitos

Uma dica rápida de dois sites de eBooks gratuitos, disponíveis em vários formatos:

Baen Free Library

A Baen Books é uma editora de livros de ficção científica que abraçou desde cedo a internet. A "Baen Free Library" contém algumas dezenas de livros, vários de autores conhecidos. Em breve espero postar uma resenha de "Med Ship". Para quem quiser ler um livro pirado, que homenageia os fãs de ficção científica e avacalha com os "eco-chatos", recomento "Fallen Angels".

ManyBooks.net

Este é um site que eu não conhecia ainda. A maior parte do acervo é derivado do Projeto Gutenberg; o responsável pelo site converteu os arquivos texto originais em vários formatos.

segunda-feira, outubro 25, 2010

Interfaceando Microcontroladores - Parte 2

Segue abaixo a segunda parte da palestra "Interfaceando Microcontroladores". Nesta parte é apresentada como é feita a programação dos periféricos internos na linguagem C.

domingo, outubro 24, 2010

Kindle: Primeiras Impressões

Como comentei no post anterior, acabo de receber um leitor de e-books Kindle. Relato aqui algumas considerações filosóficas e as minhas primeiras impressões sobre o aparelho.


sexta-feira, outubro 22, 2010

A Logística na Prática, em Duas Compras

Recebi esta semana duas compras feitas pela internet. Uma de uma grande empresa aqui no Brasil e outra da Amazon. É interessante comparar estas duas entregas, pois ilustram como o mundo ficou pequeno e como as expectativas aumentaram com a internet.

A Compra Nacional

Não vou identificar aqui a empresa, pois ela não vai brilhar muito frente à Amazon mas não posso dizer que tenha sido insatisfatória e ela se saiu bem melhor em compras anteriores.

No final do dia 12/10/10 (um terça feira e feriado) eu comprei um livro (um novo volume da Biblioteca Histórica Marvel). O frete era grátis (bom!) e o prazo previsto era de um dia útil. Como costumo fazer, pedi para entregar no meu trabalho.

O site permite fazer um acompanhamento do processamento do pedido, que eu consultei pelo menos uma vez por dia. A mercadoria foi passada para a transportadora na noite do dia 13/10 (quarta feira). Passaram a 5a e 6a feira e nada. No final do sábado recebi um e-mail avisando que tinham tentado (sem sucesso) entregar, que fariam mais duas tentativas e solicitando "manter alguém para o recebimento".

Este e-mail é claramente automático, mas ficou um pouco antipático nas circunstâncias. Afinal, certamente teria que receber se a entrega não tivesse atrasado tanto em relação ao previsto.

Na segunda feira eu recebi com sucesso o livro.

A Compra na Amazon

Na Amazon eu comprei um Kindle (em breve post comentários sobre ele). A compra foi feita no final do dia 17/10/10 (domingo). O frete (via DHL) custou US$20 (tem mais os custos da importação, mas isto é outra história) e o prazo apresentado foi 22/10/10.

A Amazon tem também o acompanhamento do pedido. No caso, ele permite inclusive ver o rastreamento da DHL. Assim deu para seguir o pacote desde a sua coleta na Amazon (feita no começo da tarde do dia 18). O pacote saiu de um depósito em Nevada, foi para um gateway em São Francisco, de lá para o hub em Cincinnati e de lá para Miami. De lá ele partiu para o Brasil, chegando nesta terra onde canta o sabiá perto da hora do almoço do dia 20. Uma hora depois já tinha sido passado pela alfândega! Teve então algumas movimentações que não entendi, aparentemente ainda no aeroporto.

Às 7:30 do dia 21 o pacote saiu para entrega, chegando em minhas mãos alguns minutos antes das 9:00.

Concluindo

Pode-se dizer que os tempos entre a colocação do pedido e a primeira tentativa de entrega foram praticamente os mesmos nos dois casos. O prazo de entrega previsto não foi cumprido na compra nacional; a compra na Amazon chegou um dia antes do previsto.

A Amazon foi mais ágil para disponibilizar a mercadoria para a transportadora e a transportadora nacional parece ter se atrapalhado um pouco. Por outro lado, não custa lembrar que em um caso o frete foi grátis e no outro custou US$20 (mais uma taxa administrativa da DHL para o desembaraço).

A minha confiança e gosto pelas compras via internet seguem firmes e fortes. Fica somente a lembrança que os prazos previstos são apenas estimativas e que é arriscado contar demais com eles.

quarta-feira, outubro 20, 2010

Interfaceando Microcontroladores - Parte 1

No ano passado eu apresentei a palestra "Interfaceando Microcontroladores" no II Seminário de Programação C/C++ para Sistemas Embarcados. A apresentação não foi perfeita, como relatei aqui, e ficou a promessa de refazê-la aqui no blog.

Embalando para a terceira edição do seminário, resolver repetir parte da apresentação em alguns vídeos curtos. A parte que não vou repetir diz respeito a comunicação serial, que vou abordar de forma mais completa na minha palestra deste ano. Devo avisar que a minha experiência com geração de vídeo é mínima, espero que o resultado seja aceitável (futuramente vou descrever o meu método convulsionado de geração dos vídeos).

Sem mais delongas, segue o primeiro vídeo no qual eu faço um resumo das arquiteturas dos microcontroladores que uso como exemplo. Descrições mais completas destas arquiteturas estão aqui no blog.



Quem quiser pode ver a apresentação original (com 1:35:00) no Portal Embarcados.

segunda-feira, outubro 18, 2010

Ótima entrevista com John Sculley (ex CEO da Apple)

Não costumo publicar links sem muitos comentários adicionais, mas esta entrevista é ótima e merece uns 15 a 30 minutos de leitura (é bem longa):

http://www.cultofmac.com/john-sculley-on-steve-jobs-the-full-interview-transcript/63295

Embora as perguntas e respostas envolvam sempre Steve Jobs, fica claro que Sculley merece ser lembrado por mais que ter sido "o homem que demitiu Jobs da Apple" (o que não corresponde à verdade). E dá uma boa ideia do que move a Apple.

domingo, outubro 17, 2010

Livro do Mês: The Phantom 1936-1937

Embora não tenha sido o primeiro herói mascarado a aparecer nas histórias em quadrinhos, muitos consideram que o Fantasma estabeleceu o padrão de ação, aventura e romance para o gênero.

Ele foi criado em 1936 por Lee Falk (criador também do Mandrake), na forma de uma tira diária. As primeiras três histórias desta tira estão republicadas neste livro "The Phantom - the complete newspaper dailies: Volume One 1936-1937". As primeiras tiras foram desenhadas pelo próprio Lee Falk; a partir da terceira semana os desenhos são de Ray Moore.

terça-feira, outubro 05, 2010

III Seminário de Programação C&C++ Para Sistemas Embarcados

Está marcado para o dia 6 de novembro a terceira edição do Seminário de Programação para Sistemas Embarcados. Teremos palestras sobre comunicação serial, Linux embarcado, desenvolvimento de software seguro e o uso de C++ em sistemas embarcados.

Terei a honra de mais uma vez apresentar uma palestra, desta vez sobre comunicação serial.

Os meus relatos das duas edições anteriores estão aqui e aqui.

Até o dia 22/10 tem um preços especial e descontos para estudantes.

Maiores detalhes no Portal Embarcados e na Tempo Real Eventos.

terça-feira, setembro 28, 2010

Microcontrolador C2000 - Parte 4

Esta série toda começou quando ganhei um kit do C2000, o Piccolo Control Stick. Agora é hora de botá-lo para funcionar.


O Kit

O kit é composto por:
  • Uma placa com o formato de um pen-drive, que é o controlSTICK em si.
  • Alguns jumpers para interligar os pinos do controlSTICK.
  • Uma extensão USB curta.
  • Um CD com o Code Composer Studio v4.1.
  • Um pequeno folheto com as instruções básicas para começar.
O controlSTICK possui um microcontrolador TMS32F28027, uma interface para programação e depuração, dois LEDs (um para indicar alimentação e o outro ligado a um pino de E/S do microcontrolador) e um conector de 32 pinos com os principais sinais do 28027.


O TMS32F28027 é bem respeitável: opera a 60MHz, tem 12K de Ram e 64K de Flash, 9 canais de PWM, 9 timers, 7 canais de ADC, 1 comparador, 1 SCI, 1 I2C e 1 SPI.


Instalação do Software


A instalação do software foi um pouco enjoada. Ao executar no Vista o instalador do Code Composer pediu para desligar o User Access Control durante a instalação. O Code Composer é o ambiente de desenvolvimento da Texas e suporta vários modelos de microcontrolador. Tentei instalar somente o que precisava e acabou faltando o driver da interface de programação/depuração do controlSTICK (é o XDS100, procurando no CD tem o instalador dele separado). A instalação é muito lenta (não colabora que ligar e desligar o UAC requer reiniciar o Windows).

Instalado o Code Composer, é preciso instalar a parte específica do controlSTICK. Isto é feito baixando e instalando o controlSUITE, que por sua vez baixa configurações, exemplos e documentação.

Por último é preciso fazer algumas configurações; basta seguir as intruções passo a passo no folheto.

Colocando Para Funcionar

Para um primeiro teste, nada como um LED piscando. E a Texas já fornece um projeto pronto para isto, o BlinkingLED. É claro que não é nada sofisticado; a forma de controlar o LED não deve merecer muito espaço no livro "2000 Maneiras de Acender um LED":
// iniciações diversas
for (;;)
{
if (CpuTimer0Regs.TCR.bit.TIF == 1)
{
CpuTimer0Regs.TCR.bit.TIF = 0;
GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;
}
}
Basicamente o programa fica em loop infinito testando um bit que indica que o timer atingiu a contagem; quando isto acontece ele limpa este bit e chaveia a saída ligada ao LED.

Abaixo podemos ver o programa funcionando:



Para fechar a série, o tempo e a competência permitindo, vou tentar fazer algo mais complicado.

sábado, setembro 25, 2010

Antena Amplificada Philips

Embora tenha minhas restrições quanto à TV Digital no Brasil, estou com uma TV que possui o decodificador embutido. As primeiras tentativas de assistir aos canais digitais com uma antena tradicional foram totalmente frustrantes: no máximo uma imagem congelada cheia de "artefatos". Isto apesar do aparelho possuir um amplificador (LNA - low noise amplifier) na entrada da antena.

Foi aí que me sugeriram a antena amplificada da Philips, que avalio aqui.

sexta-feira, setembro 24, 2010

Microcontrolador C2000 - Parte 3

Continuando o nosso exame do C2000, vamos ver agora os periféricos integrados. Dependendo do modelo, vamos encontrar uma boa variedade. Além disso, eles tem uma série de características próprias voltadas para aplicações de controle em tempo real.


quarta-feira, setembro 22, 2010

Microcontrolador C2000 - Parte 2

Vamos continuar o nosso estudo do C2000 examinando o seu núcleo, isto é a sua parte que executa instruções - a CPU.


Notícias Sobre a Morte do GOG.com Foram Precipitadas

A minha opinião sobre a saída do ar do GOG.com foi confirmada: foi apenas um (infeliz?) truque de marketing.


Em uma conferência que acabou a pouco, os responsáveis pelo site estão anunciando uma nova versão do site e reafirmando o seu compromisso de distribuir jogos sem DRM e sem necessidade de um cliente para baixar e jogar (como ocorre com o Steam).


O site tem várias novidades: blá, blá, blá, Whiskas sachê, blá, blá, blá. Nada de revolucionário. Aparentemente todos os jogos foram testados no Windows 7 e incompatibilidades foram resolvidas. Em comemoração ao segundo aniversário do site, estão lançando um novo jogo: Baldur's Gate. Quem quiser um pouco mais de detalhes (e uma visão mais deslumbrada) pode ver aqui.

Ah, o site novo só vai entrar no ar amanhã. Por enquanto tem uma contagem regressiva e alguns vídeos repetindo as informações da conferência.

Veredito: LAME.

22/9/10 17:00: Revisado e complementado o texto.

segunda-feira, setembro 20, 2010

Mistério no GOG.com

Já falei várias vezes aqui no GOG.com, um site que vende jogos antigos (alguns muito outros nem tanto) sem proteção e por preços acessíveis (US$5.99 e US$9.99). Como a maioria dos usuários, fui surpreendido por uma mensagem que entrou no ar ontem no final da tarde:

Embora a primeira impressão seja que o GOG fechou, o texto possibilita várias interpretações. Uma atualização do site ao longo do dia não deixou as coisas muito mais claras:

Acompanhei (na medida do possível, afinal tenho que trabalhar) o burburinho a respeito na internet. Por um lado os usuários não tiveram nenhum aviso, por outro existem alguns pequenos indícios de premeditação:
  • A tradicional oferta de fim de semana foi programada para encerrar mais cedo que de costume (domingo ao invés de segunda)
  • Na semana passada o grupo responsável pelo site já estava falando em um anúncio nesta quarta feira
Existem várias teorias rolando. As principais são: (a) quebraram, (b) foram comprados ou (c) é tudo um truque de marketing. No momento estou mais propenso para a última opção. Se confirmada, teremos na quarta feira o anúncio e na quinta a inauguração de uma nova versão do site. E vai ficar marcado como um momento infame, pois vários usuários se desesperaram com a possibilidade de não poder baixar jogos que eles tinham comprado (no meu caso eu costumo baixar logo após comprar e fazer backup).

Por enquanto só resta aguardar.

Atualização 21/9 12:00: mais sinais de que é um truque de marketing: http://www.youtube.com/watch?v=BDRvuKjissQ no fundo parece ter uma nova versão do site.

Vulnerabilidades em Aplicações ASP.Net

A Microsoft divulgou na sexta feira passada uma alerta para uma vulnerabilidade que pode afetar todas as aplicações desenvolvidas com ASP.NET.

O boletim não dá muitas informações, mas alguns detalhes podem ser vistos aqui e aqui. De uma forma muito simplificada, um atacante pode quebrar a criptografia usada nos cookies e no View State do ASP.NET através de dicas fornecidas involuntariamente pelo ASP.NET nos códigos de erro.

Uma forma simples de se proteger contra este ataque, enquanto a Microsoft não libera uma correção, é redirecionar todos os erros para uma mesma página, através da configuração "Custom Errors". Isto é feito colocando no arquivo Web.config algo como:
<system.web>
<customErrors mode="On" defaultRedirect="PaginaErro.htm" />
</system.web>
É fundamental não redirecionar um ou mais erros para outras páginas.

Fiquei sabendo desta notícia pelo blog do Ricardo Oneda.

Microcontrolador Texas C2000 - Parte 1

Aproveitando que ganhei uma "ferramenta de avaliação" do microcontrolador C2000 no TI Day deste ano, vamos ver um pouco sobre ele nesta série de posts.

A família C2000 se propõe a ser uma plataforma para aplicações de controle em tempo real. Para isto ele dispõe de "periféricos integrados de alta performance" e um "núcleo otimizado para operações matemáticas".

domingo, setembro 19, 2010

Livro do Mês: Too Many Cooks

Too Many Cooks é mais um caso do detetive Nero Wolfe, criação de Rex Stout. É também um dos poucos livros da séria a ter uma tradução brasileira (a Companhia das Letras parece ter publicado dez volumes da série).

sábado, setembro 18, 2010

Jogo do Mês: Blake Stone - Aliens of Gold

Blake Stone - Aliens of Gold é um jogo bastante antigo (foi lançado no final de 93) e pouco conhecido, mas tem me distraído bastante. É curioso que eu tenha começado a jogar este jogo pouco antes do anúncio da "ressurreição" do Duke Nukem Forever, pois existe um certa ligação entre os dois.


segunda-feira, setembro 13, 2010

Cuidado com o Reuso de Senhas!

A tirinha xkcd de hoje denuncia o risco da reutilização de senhas*:

Se você é um dos (poucos) que usa senhas diferentes para cada uso, eu tenho um pequeno aperfeiçoamento ao golpe descrito: registrar também as senhas erradas. Afinal, não é improvável que você acidentalmente entre com a senha de um serviço em outro.

As melhores sugestões que eu consigo pensar para senhas para serviços on-line:
  • Use senhas "fortes" (longas, com caracteres variados e uma boa dose de aleatoriedade) para evitar ataques de dicionário.
  • Use senhas diferentes, no mínimo para serviços importantes (aqueles que expõem você ou seus contatos a risco financeiro, divulgação de informações confidenciais, roubo de identidade ou colocação em posição de constrangimento).
  • Usar também identificações de usuário diferentes.
  • Mudar senhas com boa frequência.
  • Estar atento a sinais de compromisso da senha.
Se alguém tiver sugestões (ou correções às minhas sugestões), os comentários estão aí para isto.

* para quem não é versado no inglês: o personagem de chapéu criou uma série de serviços na web com a finalidade de coletar emails, nomes de usuários e as respectivas senhas. Em seguida ele testou os dados coletados nos sites mais populares e em bancos, obtendo algumas centenas de milhares de logins válidos. Felizmente ele não usou estas informações, pois estudos dizem que dinheiro não trazem felicidade, já considera estar abusando o suficiente das pessoas e não tem nenhuma grande crença religiosa política ou religiosa a impor. E ele conclui dizendo que é o mesmo problema que a Google tem...

segunda-feira, setembro 06, 2010

Duke Nukem Forever: De Volta do Mundo dos Projetos Mortos?

Algum tempo atrás falei no cancelamento do Duke Nukem Forever. Pois o improvável parece ter acontecido: o projeto foi retomado e parece estar próximo do termino. Veja aqui mais detalhes.

Os Quinze Anos do Windows 95 - Parte 2

Continuando os meus comentários aleatórios em comemoração dos quinze anos do Windows 95, algumas lembranças sobre a interface com o operador e uma avaliação do seu significado e legado.

domingo, setembro 05, 2010

Os Quinze Anos do Windows 95 - Parte 1

Com um pouco de atraso, seguem algumas ruminações sobre o Windows 95 que fez quinze anos na semana passada.


quinta-feira, setembro 02, 2010

TI Tech Day 2010

Particei ontem do "TI Tech Day 2010", evento anual da Texas Instrument. É a segunda vez que participo, faço abaixo um muito breve resumo (no ano passado eu comecei a preparar um relato extenso para postar aqui e o resultado foi que eu nunca consegui concluir).

domingo, agosto 29, 2010

Hackerspace-SP Inicia Operação

Conforme a wikipedia, um hackerspace é um local onde pessoas com interesses comuns (tipicamente computadores/eletrônica) podem se reunir, socializar e colaborar. Funciona como um laboratório comunitário aberto.


Após algumas semanas de discussão, começou a se materializar o HackerSpace SP, em um porão gentilmente cedido pela Casa de Cultura Digital (CCD). A CCD fica em uma agradável vila que já foi cenário para gravações externas do Castelo Rá Tim Bum.




Quem quiser conhecer mais e participar encontra informações nos links abaixo.

Grupo de discussão
Wiki (provisório)

domingo, agosto 22, 2010

Som Aposentado: Toca Discos Gradiente D35

O toca discos foi o último componente que eu comprei para o meu primeiro sistema de som. Um toca discos bom era caro, e antes mesmo de acabarmos de montar a nossa casa já tínhamos uma filha a caminho, o que reduzia a verba disponível.

Resenha: O Amigo de Infância de Maigret

Mais um livro de Maigret, inédito no Brasil, publicado pela L&PM Pocket.

sexta-feira, agosto 20, 2010

Assista uma palestra de Joel Spolsky

Joel Spolsky, do blog Joel On Software, postou um vídeo com a palestra que ele deu ano passado na conferência "Business of Software". O assunto da palestra é a questão da simplicidade versus opções/features nos softwares. Achei particularmente interessante pelo contraponto ao mantra "menos é mais" do pessoal do 37signals (cujo livro mais recente eu comentei aqui).

Você encontra o vídeo neste link:

http://www.joelonsoftware.com/items/2010/08/19.html

Atenção que é um vídeo longo (52 minutos) em inglês "coloquial", mas com boa qualidade. Se preferir, baixe o vídeo e assista off-line - você pode baixar usando o Download Helper com o Firefox ou diretamente por este link, e ver com o VideoLan.

quinta-feira, agosto 19, 2010

Som Aposentado: Caixas Acústicas "Homemade"

Com a compra do receiver, o passo seguinte foi providenciar as caixas acústicas. Ou, mais precisamente, projetar e montar. E o resultado foi plenamente satisfatório.

quarta-feira, agosto 18, 2010

Descepções com o Mozilla Thunderbird

Como muitos usuários Windows, usei durante anos o Outlook (ocasionalmente a versão "Express" mas principalmente a versão "full"). Embora eu esteja longe de ser um usuário pesado de e-mail, a irritação com o tempo de carga do Outlook foi crescendo a cada dias.

A situação parecia ter sido resolvida quando passei a usar o Thunderbird 2.x. Apesar de alguns pequenos problemas com a formatação de e-mail (como a mania de colocar a assinatura no fim do email em replies e forwards), a carga era praticamente instantânea.

Com a versão 3 do Thunderbird a carga passou a ser demorada. Quando eu faço um forward de mensagem, a minha assinatura não é colocada e os recipientes não enxergam o meu texto.

Hoje apareceu um aviso de uma nova versão, a 3.1.2; a versão que estava rodando era a 3.1.1. Na minha ingenuidade, achei que esta atualização não traria nenhuma mudança visível. Ledo engano!

As coisas começaram mal quando ele avisou que um dos Add-ons (Lightining 1.0b1) não era compatível e foi desabilitado. Felizmente ele encontrou a versão 1.0b2 que é compatível.

O problema seguinte foi uma mudança na organização das pastas. Isto já tinha mudado da versão 2 para a 3 e eu tinha me acostumado com o novo formato, o "Unified View". Uma pesquisa em http://getsatisfaction.com/mozilla_messaging encontrou a solução: o formato é agora escolhido em "View->Folders".

Outro problema foi a mudança na apresentação de mensagens. Outra configuração (Tools->Option->Display->Formating) que foi silenciosamente alterada.

Por último, quando eu abro uma mensagem em uma aba, a lista de folders é escondida. Ainda não descobri como mudar isto de volta.

Nenhuma destas mudanças é mencionada nas "Release Notes".

São (até agora) coisas pequenas mas que podem indicar uma doença que costuma vitimar muitos softwares: o desrespeito pelas configurações do usuário. É o desenvolvedor achando que sabe melhor o que o usuário precisa e se sentindo no direito e obrigação de forçar as suas preferências.

No site que mencionei acima já aparecem alguns usuários furiosos com a 3.1.2. Ainda não cheguei neste ponto, mas confesso estar com coceira de fazer um teste com o Outlook (que de certa forma eu paguei dento do Office e não usei ainda).

terça-feira, agosto 17, 2010

Som Aposentado: Receiver CCE SR-4000

No final de 83 eu já estava com o casamento programado. Apesar do dinheiro curto, estava na minha lista ter o meu aparelho de som. Por enquanto eu tinha somente o tape deck, fui então na Santa Efigênia procurar um receiver. Após passar por todas as lojas, comprei o segundo mais barato que achei (só para não dizer que comprei o mais barato).

segunda-feira, agosto 16, 2010

VII Encontro de Programadores C e C++

Sábado passado participei do VII Encontro de Programadores C e C++. É reconfortante ver que o interesse permanece alto durante os quase cinco anos de existência, com a sala ficando apertada para os mais de 120 participantes.


Segue uma menção rápida ao conteúdo das palestras, que mantiveram a tradição de alto nível.

domingo, agosto 15, 2010

Resenha: In Plane Sight

Já virou uma tradição incluir um dos livros "modernos" dos Hardy Boys nos meus pedidos na Amazon. "In Plane Sight" foi o mais recente deles.


sábado, agosto 14, 2010

Resolvido: Could not load type 'System.Web.UI.ScriptReferenceBase'

Qual desenvolvedor nunca disse "Mas aqui roda direitinho"? Nas minhas aventuras recentes com o ASP.Net um aplicativo apresentou a "simpática" mensagem de erro abaixo quando foi instalado no servidor do cliente e se tentou navegar para uma página com uma pitada de Ajax:

Could not load type 'System.Web.UI.ScriptReferenceBase' from assembly 'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Obviamente eu nem tinha ideia do que era o tal 'System.Web.UI.ScriptReferenceBase'.

Felizmente o Google mostrou que muita gente já enfrentou isto e não é difícil achar a solução: instalar o Service Pack 1 do .NET 3.5 no servidor. Um pouco mais trabalhoso foi achar alguém que explicasse o porque.

A classe 'System.Web.UI.ScriptReferenceBase' foi introduzida no SP1, daí não ser encontrada no .NET 3.5 "original". Sendo um desenvolvedor consciencioso, é claro que a minha máquina de desenvolvimento e o meu servidor de teste estão atualizados. Quando você compila uma aplicação ASP.Net em uma máquina com o .NET 3.5 SP1, são usadas as bibliotecas mais novas do .NET e as classes de referência a script (usadas para implementar o Ajax) tem como classe base a 'System.Web.UI.ScriptReferenceBase'.

Embora o Visual Studio deixe selecionar a versão alvo de .NET, ele não chega ao ponto de permitir distinguir entre .NET 3.5 e .NET 3.5 SP1. Portanto depois que você atualizou a máquina de desenvolvimento os seus programas (que usem o Ajax ou as classes de referência a script) só rodarão em servidores atualizados.

Achei esta explicação neste blog.

Som Aposentado: Tape Deck Sony TC-FX5BS

Em 1982 eu era um engenheiro recém formado. Fitas cassetes já eram corriqueiras há anos e praticamente todo carro tinha um toca-fitas. O meu belo TC-118SD tinha um problema com o chaveamento entre gravação e reprodução, que fazia com que às vezes ele ativasse a cabeça de reprodução ao acionar a gravação, criando uma realimentação que gerava apenas um ruído ensurdecedor e cravava as agulhas dos VUs para no batente. Além disso, ele estava claramente ultrapassado. Foi aí que comprei o TC-FX5BS.