Roberto Teixeira

Roberto Teixeira

Roberto Teixeira  //  Technologist and regular nerd helping a small company called Intel build great software products.

Jun 13 / 11:29pm

Bússola Política

Já que virou modinha e o Rudá me encheu para fazer isso, aqui vai meu resultado no Political Compass:
Libertário e centro-direita. Nenhuma surpresa, acho.

Comments (0)

May 29 / 2:26am

VENDE-SE: MacBook com 4GB de RAM

Você sempre quis sentir-se cool e não sabia como? Você queria que os outros o olhassem com inveja e nunca conseguiu? Você quer usar um sistema operacional que não pareça feito em 1970, mas ainda quer poder se sentir um hacker? MacBook é a solução!

Estou vendendo meu MacBook preto de 2008:

  • Inigualável processador Intel Core 2 de 2.1GHz (64 bits)
  • 4GB (dois cartões de 2GB SO-DIMMs) de 800MHz DDR2 SDRAM
  • Disco de 160GB
  • SuperDrive
  • MacOS X 10.5 Leopard
  • iLife ‘09
  • Microsoft Office 2008 (3 licenças)
  • iSight 2Mb (web cam embutida)
  • WiFi 802.11n
  • Bluetooth integrado
  • Controle remoto
  • Duas fontes
  • Capa de notebook

Tudo isso por apenas R$ 2.800,00!

Q&A

Posso instalar Linux nele?
Pode! Instale um Linux com kernel de 64 bits para maior valor na hora de mostrar para os amigos como você é hacker elite!

Odeio Windoze, mas se eu quiser instalar um XP só para falar mal, pode?
Sim, pode. Dá para instalar Windows XP, Windows Vista e até mesmo o Windows 7!

E dá para fazer dual boot?
Claro que dá! Você pode manter seu Windows ou Linux para poder comparar e reclamar depois que começar a usar o MacOS e descobrir como é maravilhoso usar um sistema operacional de verdade!

E tem algum jeito de rodar programas do Windows ou do Linux?
Sim! Você pode usar várias soluções, dentre as quais os pagos VMware e Parallels, mas há também o Virtualbox que é gratuíto.

Cara, eu tenho um PlayStation 1 aqui. Quer trocar?
Não. Não quero fazer trocas. Note que o título deste post específicamente fala em venda, não troca.

E se for um…
Não tenho interesse em trocas.

Ok, e como eu faço para entrar em contato?
Você pode deixar um comentário (lembre-se que eu tenho acesso ao seu endereço de email) ou simplesmente me mande um email: robteix@robteix.com.

Comments (0)

May 14 / 2:41am

A volta da Lei Azeredo

O título é impreciso, já que o projeto jamais sumiu, apenas foi “esquecido” por nós por um tempo. De qualquer modo, com o projeto da infame “Lei Azeredo” já aprovado pelo Senado e às vésperas de votação pelo Congresso, acho oportuno lembrar a todos sobre uma tirinha que ficou famosa há um par de anos, quando o Senado estava para votar o projeto, uma flatulência estatizante e policial do Exmo. Sr. Senador Eduardo Azeredo. Sem mais delongas: com vocês A Nova Internet Brasileira, de Guilherme Manika.
Convido a todos a postarem links para a tirinha em seus blogs e twits como uma forma bem-humorada de protesto contra um projeto de lei antologicamente latino-americano.

Comments (0)

May 6 / 9:20pm

Novo garoto-propaganda da Intel

E confesso que ainda acho impressionante o presidente dos EUA chamar-se Barrack Hussein Obama.

Comments (0)

May 5 / 2:54am

Marketspeak

Hey! Did you missed maretking series? Let’s continue!

Nunca gostei de marketing, não é segredo para ninguém. Também sempre admiti que, salvo alguns casos peculiares de imitação descarada, eu nunca entendi muito bem o processo pelo qual decisões de marketing são tomadas.

Como alguém eventualmente decidiu que o melhor nome para seu produto seria Azure, ZuneJogl ou Amarok? Não que eu tenha melhores sugestões. Não é realmente uma crítica, mas uma dúvida. Mas por mais que o marketing me deixe confuso, confesso que às vezes ele também me diverte. A descrição do JavaFX (o Silverlight da Sun) é:

JavaFX is an expressive, rich client platform for creating and delivering rich internet experiences across all the screens of your life.

Ouvi hoje pela manhã de um funcionário da Sun.

Comments (0)

May 4 / 1:10am

Frases do feriadão

Estou viajando e resolvi, por puras razões egoistas, documentar algumas frases ouvidas durante a aventura. Optei por não identificar os resposáveis, já isto não vem ao caso. Atualizando on-the-go.

Não se preocupe, a polícia nunca parou a gente…” – Uma mãe em resposta à minha declaração de que não me sentia à vontade em levar seu filho de 10 meses de idade no banco de trás do meu carro sem acompanhante – ela ia em outro carro – nem bebê-conforto em viagem de Curitiba, PR até Mafra, SC.

“Só que ele tá errado, né?  Normalmente as crianças não crescem no ritmo normal, mesmo.” – Uma mãe, protestando contra comentário de seu pediatra de que seu filho não estava se desenvolvendo em um ritmo normal.

Você tem que começar a pensar que agora você vai ter uma criança e vai precisar ser mais responsável.”  – Mesma mãe me dando sermão.

“Mãe, tô saindo pra dar uma volta, cuida do nenê!” – Ainda a mesma, desta vez para sua mãe.

O Beto Richa me traiu, aquele filho da puta! Prometeu emprego na prefeitura se se elegesse, mas até agora nada…” – Lição de cidadania tratando de supostas promessas de campanha do atual prefeito de Curitiba. Nota: a pessoa que se considerou traída não vota em Curitiba.

“Preciso comer um peixinho hoje porque segunda eu tenho um exame de sangue marcado…” – Um senhor sobre a necessidade de se preparar para que o colesterol não esteja muito alto nos exames.

“É só para ajudar a descer o remédio” – Resposta de um diabético quando pego em flagrante – de novo – comendo doce.

“Tinha que pesar?” – Pergunta do mesmo, oportunamente feita na hora de pagar o almoço em um restaurante de comida por quilo.

Comments (0)

Apr 20 / 11:44am

Síndrome de Arrumar o Mundo

Noutro dia eu estava conversando com uns amigos sobre um artigo que havia lido que tratava das peculiaridades da vida pessoal de desenvolvedores. Eu comentei que sofro de algo que acredito ser consequência direta de uma longa vida como programador: aquilo que chamo de Síndrome de Arrumar o Mundo (SAM). Não me refiro àquela coisa que é bastante comum na adolescência, em que todos queremos revolucionar o mundo. A SAM é bem mais específica.
patch -p1 < fix-world-2.0.diff
A SAM materializa-se em uma aparente compulsão por arrumar coisas que detecto como bugs no mundo. Se vejo algo errado, eu inconscientemente acho que é minha obrigação arrumar o mais rápido possível. Algo que acho que é relacionado à SAM é aquela noção de mundo onde uma regra é para ser seguida. Um exemplo clássico para mim são as travessias de pedestres.
Eu sei que os motoristas locais não vão parar, mas eu me sinto na obrigação de tentar passar de qualquer modo. E o faço. Eu sempre tento passar, gesticulo e reclamo. Quando, por outro lado, estou ao volante, eu sempre paro para as pessoas passarem na faixa de pedestres. O interessante é que a maioria fica olhando para você com cara de bunda sem entender nada. E eu, por minha vez, fico irritado com o pedestre que não passa. É um defeito meu. Eu simplesmente acho que a regra está ali para ser seguida. Outro caso similar no trânsito são as rotatórias ou rótulas. A regra da rotatória não poderia ser mais simples: quem já está na rotatória tem a preferência. Infelizmente, os motoristas de São Paulo são incapazes de compreender isso, de forma que é comum você ter de freiar bruscamente porque alguém entrou na rotatória e achou que tinha a preferência, assim como é comum alguém que está na rotatória parar para esperar você entrar. Para mim isso é deveras irritante. Claro que a SAM manifesta-se fora do trânsito também. Quando vejo alguém fazendo um comentário burro em um blog, eu me vejo incapaz de resistir ao impulso de ir lá mostrar a ignorância dos outros face à minha inteligência superior. Recentemente resolvi que a SAM precisa ser combatida em mim. Não sei se apenas decidi ou se aprendi que não posso/devo mudar as pessoas, mas o fato aí está. Combater a minha SAM não é tão simples, claro. Como tudo é muito inconsciente, eu preciso fazer um esforço contínuo e consciente para evitar me intrometer. Se um dia eu atropelar alguém na faixa de pedestres, eu finalmente saberei que consegui me curar e sou normal.

Comments (0)

Apr 16 / 7:36am

Melhorando a acessibilidade visual do Mac OS X

Quando eu tinha 10 anos, eu tive algo que até hoje muita gente acha estranho quando menciono: uma úlcera na córnea. Confesso que não lembro de muita coisa daquela época, mas a dor continua vívida da minha mente. É algo que até hoje me assusta, quando por um motivo ou outro eu acho por um momento que a dor voltou. Também lembro fortemente das idas a Porto Alegre para o tratamento preparatório anterior à cirurgia e a recuperação posterior. A partir de então passei a necessitar de lentes corretivas. Também aprendi que minha visão no olho direito (afetado pela úlcera) jamais poderia ser normal, devido à cicatriz que ficou próxima ao centro da córnea. O efeito da cicatriz é a criação de uma "segunda imagem". Algo como isso:
Com o tempo, minha visão foi piorando bastante. Há alguns anos descobri a razão: fui diagnosticado com ceratocone.
O ceratocone é uma doença cuja correção ainda elude a oftalmologia. Ela causa vários sintomas, dentre os quais:
  • Sensibilidade a luz
  • Coceira nos olhos
  • "Fantasmas" ou "sombras"
  • Visão noturna reduzida
Meu maior problema é que além da segunda imagem que eu já tenho por causa da cicatriz, o ceratocone adiciona mais diversas. A imagem abaixo mostra mais ou menos como eu vejo o site do Estadão atualmente:
Você não precisa pensar muito para entender que ler é uma atividade cansativa para mim. Felizmente meu olho esquerdo funciona consideravelmente melhor, de forma que eu se eu fechar o olho direito, a coisa fica muito melhor. Mas tente fechar um olho por um tempo prolongado e verá que isso é também extremamente cansativo. Felizmente, o efeito das sombras tende a diminuir quanto maior/mais próximo for aquilo que eu estiver vendo. Desde 1998 passei a utilizar funcionalidades de acessibilidade. A "lente de aumento" (magnify.exe) do Windows e o zoom do Mac OS X. No Linux, eu simplesmente optava por utilizar uma resolução bastante pequena, já que acessibilidade no Linux só é boa para quem não precisa.
Eis que ao utilizar o Windows 7, descobri que a Microsoft estava agora trazendo uma nova versão do magnify.exe que funciona maravilhosamente bem. Essencialmente é como o zoom do Mac, mas com padrões melhores. Foi então que resolvi mexer no zoom do Mac para ver ser era possível deixar como no Windows 7. A primeira coisa foi abril o System Preferences do Mac e cliquei em Universal Access.
O que eu não gosto dos padrões do zoom do Mac é que ele mantém o cursor no centro da tela sempre, o que faz com que a tela se mova muito. Isto acaba cansando também. A chave para resolver isto está no botão options do zoom.
Para resolver o meu problema, bastou selecionar Only when the pointer reaches an edge, o que faz com que a tela não se mova com frequência. Deveras mais agradável. Uma coisa que o Mac não faz direito e que eu uso no magnify.exe desde 98 é o zoom seguir o teclado. Há esta opção, claro, mas o fato é que o Mac não coloca o foco de teclado em controles outros que caixas de texto, de forma que o zoom acaba levando você invariavelmente para caixas do Spotlight o tempo todo, o que não é o que eu quero. Mas só de poder fazer a tela se mover pouco, já é uma vitória.

Comments (0)

Apr 11 / 3:50am

Tipos dinâmicos em C# 4.0

Resolvi dar uma lida sobre as novidades do C# 4.0, a nova especificação da linguagem C#. As diferenças para a versão 3.0 são menores que as diferenças entre a 2.0 e 3.0, mas ainda assim há algumas novidades. Uma das coisas que mais gostei é a facilidade como agora poderemos mexer com objetos não fortemente tipados. Se você já teve de usar Python e C# juntos, vai saber do que estou falando. Por exemplo, digamos que eu tenha uma classe chamada NumberUtils com um método Max para retornar o maior de dois números. Em C#, você simplesmente faria isso:
// GetNumberUtil seria o modo como pegaríamos a instância.
// NEste caso poderia ser simplesmente um new NumberUtil().
NumberUtil nu = GetNumberUtil();
int max = nu.Max(10, 100);
Simples o bastante. O problema começa quando começamos a usar objetos vindos de outros "mundos". Digamos que NumberUtil seja definida em um módulo em Python, ou outra linguagem dinamicamente tipada. Neste caso, o código acima tem de ser escrito assim em C# 3.0:
object nu = GetNumberUtil();
Type type = nu.GetType();
object result = type.InvokeMember("Max",
                                  BindingFlags.InvokeMethod,
                                  null,
                                  new object[] { 10, 100 });
int max = Convert.ToInt32(result);
Chato e "sujo". Isso me lembra quando eu tinha de programar Win32 COM nos anos 90... Mas o C# 4.0 agora tem suporte a um novo tipo -- dynamic -- que nos permite lidar diretamente com tipos dinâmicos, o que faz com que o código seja bem simplificado:
dynamic nu = GetNumberUtil();
int max = nu.Max(10, 100);
E voilà!

Comments (0)