domingo, 28 de março de 2010

A máquina do tempo VI

Em 1956, a IBM lançou um HD de 5MB chamado 305 RAMAC. Ele usava bytes de 7 bits com 1 bit adicional de paridade. Era alugado por US$3,200 mensais, que hoje seriam US$24,978 ou quase R$50 mil.

Era portátil, como a foto ao lado mostra, mas a paleteira era opcional.

Este mês comprei em Bogotá, no Centro de Alta Tecnologia, uma memória de 4GB para minha câmera. Ela custou COP$45,000, que são uns R$45.

Cada 5MB custou 5 centavos de real.

quinta-feira, 25 de março de 2010

A máquina do tempo V

A primeira linguagem com a qual eu tive contato foi o BASIC. Ele vinha num ROM de 16KB. A segunda foi o Pascal, que vinha em dois ROMs de 16KB cada. Nesses 32KB havia um editor, um depurador, um interpretador (o Pascal era compilado para p-code, assim como Java é compilado para bytecodes) e as funções embutidas.

Hoje em dia, é difícil enviar um email com menos de 32KB.

Passados 25 anos, a última versão do Java (versão 6 update 18) tem 76,29MB. É um pacote de programação com 2.441 vezes mais código que aquele Pascal.

Espero que a Internet e as tecnologias de armazenamento continuem melhorando, porque daqui a 25 anos, se as coisas continuarem a caminhar dessa maneira, a próxima linguagem de programação vai ocupar 186GB. Isso não caberia num disco Blue-Ray.

terça-feira, 23 de março de 2010

CMM e Qualidade

Eu tenho alguns livros sobre qualidade de software na minha pequena biblioteca. Eles são ótimos para curar insônia. Sobre CMM, eu até consegui avançar no Managing the Software Process (Watts Humphrey); eu devo ter lido a metade dele. Sobre ITIL, não consigo passar da primeira página.

Então, descobri sobre um momento interessante da história da ciência. No início do século XX, havia um grupo de matemáticos e filósofos desesperados para colocar ordem na lógica e na matemática. Monstros tinham sido levantados por gente inconseqüente como Georg Cantor e Ludwig Boltzmann. Havia a necessidade de colocar ordem no mundo e provar que a ciência e o universo andam como sistemas mecânicos: perfeitamente previsíveis e descritos a partir de regras simples.

Para tentar colocar ordem e certeza na matemática, Alfred Whitehead e Bertrand Russel publicaram, entre 1910 e 1913, três volumes do Principia Mathematica. Na página 379, eles provam que 1+1=2, tal era a preocupação com a correção e o formalismo. Os manuais de ITIL não são muito melhores e assim como ele, são Kryptonita para o entusiasmo.

Em 1931, Kurt Gödel publicou e apresentou o Teorema da Incompletude. Em poucas palavras, ele demonstrou que haveria sempre fatos que a matemática não poderia provar nem verdadeiros nem falsos, num sistema minimamente complexo. O incrível é que a informática também tem o seu Gödel e ele é Fred Brooks, que escreveu que não há solução mágica para o desenvolvimento de software em seu clássico The Mythical Man-Month.

Os formalistas fizeram de conta que não viram; eles queriam automatizar a descoberta de verdades matemáticas e acelerar a ciência. E as empresas continuam fazendo de conta que o processo vai resolver seus problemas de qualidade, quando o problema é humano.

Claro, os processos ajudam num sentido bastante restrito de qualidade. Eles ajudam a fazer com consistência aquilo que a empresa já sabe fazer. Parece burocrático e é. Mas o processo não ajuda a fazer aquilo que a empresa ainda não domina. E o incrível sobre a informática é que sempre se está fazendo algo novo ou usando uma teconologia nova. Pouca gente passa mais de 5 anos fazendo a mesma coisa. E aqueles que o fazem, como programadores COBOL num banco, acabam naturalmente achando um processo, se não houver alguma formalização.

Os proponentes dos processos, como aqueles matemáticos, costumam estar tão enamorados de seus teoremas, que não prestam atenção ao que os rodeia. Ele têm a solução e as empresas são imaturas. Não é por nada que sempre encontram resistência.

Pois a maior parte das empresas não precisa de nada muito sofisticado. Quem tem equipes pequenas não precisa de muita burocracia e grande parte dos projetos são pequenos. É preciso apenas um bom gerente e bom senso. Watts Humphrey escreveu seu livro no contexto de projetos de bilhões de dólares. Quando se tem uma equipe de 10 pessoas, a qualidade delas é muito mais importante que a qualidade do processo.

Mas o maior problema com o CMM é que ele propõe um processo ideal, longe da realidade de uma tecnologia ou prática concreta. O arquiteto Christopher Alexander (cujo trabalho inspirou o movimento de Padrões de Projeto) escreveu sobre o grande movimento no século vinte de separar o processo de projetar do processo de construir. Desconfio que essa tendência da engenharia foi induzida pelo trabalho daqueles matemáticos e filósofos formalistas. É comum escutar que o CMM mostra "o que fazer, não como fazer".

Correndo o risco de não ser levado a sério (quem se importa?), vou lançar mão de uma pérola de sabedoria, proferida pelo grande filósofo Ozzy Osbourne:

"The shooting's easy when you've got the right gun."

Ou seja, aplicar uma tecnologia adequada de uma maneira inteligente é fundamental para o sucesso de um projeto de software.

Como podemos insistir com um processo que ignora isso?

domingo, 21 de março de 2010

Grandes Empresas, Pequenos Fracassos

As reuniões sobre processo e qualidade são sempre interessantes, mas de uma maneira cômica. Quem as leva a sério, acaba tendo problemas e inevitavelmente terá que recorrer à farmacologia. Só o humor salva.

A minha primeira foi realmente memorável por causa de uma frase. Lá se vão quase 6 anos e ela não me deixa:

"Nós vamos tirar a inteligência das pessoas e colocá-la no processo."

Eu devia ter fugido logo. Pelo menos, passei a tomar mais cuidado. Nada de dormir no banheiro ou na escada de incêndio; muito café depois do almoço. Um momento de descuido e eu poderia encontrar-me atado a uma cama, com eletrodos na cabeça.

sexta-feira, 19 de março de 2010

A máquina do tempo IV

Na década de 1980, a BBC criou um programa de educação sobre computadores chamado BBC Computer Literacy Project. O projeto incluía emprestar o carimbo da BBC a um microcomputador (com o nome pouco criativo de BBC Micro), um programa de TV e muito dinheiro para que as escolas primárias e secundárias pudessem comprar equipamentos. Cada escola podia comprar o que bem entendesse, mas a maioria escolhia mesmo os micros da Acorn.

Em 2007, o Uruguai iniciou o plano Ceibal, com 150 alunos, numa pequena cidade chamada Villa Cardal, no departamento de Florida. O projeto utiliza o OLPC e cada criança, obviamente, tem o seu. O projeto britânico não foi tão generoso, porque os equipamentos eram muito caros.

O projeto uruguaio não é tão abrangente. Ele não tem um programa de TV, embora tenha um sítio oficial e um blog. O país, sendo pequeno, criou um único centro de manutenção. Todas as escolas estão sendo equipadas com acesso à Internet.

A Inglaterra até hoje colhe frutos do seu programa. Os processadores mais vendidos no mundo atualmente, os ARM, foram projetados inicialmente pela Acorn, que fabricava os micros para o projeto britânico. No Uruguai, as exportações de TI já representam 5,7% do total e grandes empresas multinacionais instalam-se num centro tecnológico e de negócios chamado Zonamerica, situado perto de Montevidéu.

Os britânicos queriam atingir também os adultos, porque tinham interesse em fazer crescer sua indústria de TI rapidamente. Em pouco tempo, até os jornaleiros estavam usando micros para controlar as assinaturas dos clientes e micros foram instalados em estações de trem isoladas (aquelas sem funcionários) para exibir informações dos horários. O Uruguai está investindo nas suas crianças com um objetivo mais pedagógico e já perceberam que o aprendizado melhorou, mesmo assim, a indústria de tecnologia está colhendo frutos.

quarta-feira, 17 de março de 2010

Programação Incondicional IX

Generalizar o Power Sort para permitir números duplicados não é difícil: basta usar um hash.

sub psort {
my @sorted=@_;
my $index=scalar(@_);

my $pp=0;
my $pn=0;

my %occurrences=();

foreach my $n (@_) {
$pp+=(2**$n) * ($n>=0 && $occurrences{$n}==0);
$pn+=(2**abs($n)) * ($n<0 && $occurrences{$n}==0);
$occurrences{$n}++;
}

my $log2=log(2);
while($pp>0) {
my $n=int(log($pp)/$log2);
$sorted[--$index]=$n while $occurrences{$n}-->0;
$pp=$pp-(2**$n);
}

$index=0;
while($pn>0) {
my $n=-int(log($pn)/$log2);
$sorted[$index++]=$n while $occurrences{$n}-->0;
$pn=$pn-(2**abs($n));
}

return @sorted;
}
my @sorted=psort(1,1,-3,-5,-7,2,4,8,-10,-10);
print join ',', @sorted;

Tenho que escrever isso em Java, para ver como fica.

Chutando a escada

Steve Jobs reclamou dos impostos no Brasil e disse que "a política maluca de taxação superalta do Brasil" impede que a Apple instale uma Apple Store aqui.

A verdade é que os impostos de importação são altos. Ele quer produzir baratinho na China e vender caro aqui. Se ele propusesse produzir os Macs aqui, ganharia até incentivos fiscais. Talvez ele não tenha pensado nessa hipótese.

Essa polêmica me fez lembrar do economista alemão Georg Friedrich List. Ele foi muito importante no século XIX, porque desenvolveu o Sistema Nacional (ou Escola Americana), que regeu a economia americana até a metade do século XX. Ele traçou os passos necessários para o desenvolvimento de uma nação, fazendo uma análise histórica.

O último passo é chutar a escada. Isto é, um país sobe uma escada, cada passo levando a um nível mais elevado de desenvolvimento econômico, e, quando estiver no topo, chuta a escada para que as outras nações não possam subir. Essa escada inclui proteger indústrias incipientes e ignorar a propriedade intelectual dos outros.

Quando chegaram ao topo, os países ricos subitamente descobriram que há um conjunto de regras que são tão maravilhosas que devem ser seguidas por todo o mundo. Entre 1960 e 1980, a taxa média de crescimento dos países pobres foi de 3%. Com a liberalização da economia mundial, ela caiu para 1,5%. Na década de 1980, o Consenso de Washington iria salvar o mundo.

Em 1820 o Reino Unido tinha um nível de renda semelhante ao da Índia de hoje, mas não tinha sufrágio universal (nem todos os homens podiam votar!), imposto de renda, lei de falências, um banco central, regulação do mercado financeiro, ou mesmo leis trabalhistas. Crianças trabalhavam 16 horas por dia em minas de carvão ou teares. Eu gostaria muito de ter uma máquina do tempo para voltar a 1820 e propor o Consenso de Washington ao parlamento britânico ou ao Congresso dos Estêites.

O presidente gringo Ulysses Grant (serviu entre 1869 e 1877) disse que "em 200 anos, quando os Estados Unidos tiverem obtido tudo o que puderem do protecionismo, eles também adotarão o livre comércio".

O Brasil tem uma política de taxar as importações por um motivo muito simples: a China e os Estados Unidos acabariam com nossa indústria. Não é possível que um país de 190 milhões de habitantes viva somente de vender soja e suco de laranja.

Mas tarifas não bastam e nosso país não tem investido o suficiente no nosso desenvolvimento tecnológico. Nossa escola é ruim e nossas universidades formam poucos engenheiros. Faltam cursos secundários técnicos. Nosso sistema de impostos é muito complicado.

Contudo, diminuir tarifas de importação para que o Steve Jobs possa ter o lucro que deseja, não é uma solução inteligente.

P.S. No ano passado, houve muito barulho sobre o IOF de 2% descontado do dinheiro estrangeiro que entrar no país. Pois, nos Estêites, há um imposto de 30% sobre os ganhos de capitais ou dividendos pagos a estrangeiros.

terça-feira, 2 de março de 2010

Papel Timbrado

O Salariômetro rende informações interessantes. Seguindo a recente polêmica sobre o fim da exigência de diploma para os jornalistas, resolvi descobrir qual o impacto que o ensino superior tem nos salários. Todos os dados abaixo são do Rio Grande do Sul.

Comecei com os analistas de sistemas:
  • Primeiro grau - R$1.325 (duas contratações);
  • Segundo grau - R$1.627 (74 contratacões);
  • Superior completo - R$2.703 (721 contratações).
Para quem tem diploma, parece que a probabilidade de ser contratado é consideravelmente maior, assim como o salário. Os dados indicam as contratações por CLT dos últimos 6 meses.

Para os jornalistas, não há cadastro de contratações de pessoas sem diploma. Acho que a revogação da exigência ainda não teve efeito. A média salarial dos 103 jornalistas contratados foi de R$1.343.

Resolvi estender a comparação a outras profissões com exigência de curso superior:
  • Advogado - R$1.953 (203 contratações);
  • Arquiteto - R$2.647 (66 contratações);
  • Engenheiro Agrônomo - R$3.073 (95 contratações);
  • Engenheiro Civil - R$3.541 (211 contratações);
  • Engenheiro Mecânico Automotivo - R$2.868 (10 contratações);
  • Engenheiro Eletricista- R$3.398 (56 contratações);
  • Médico Clínico - R$3.042 (566 contratações);
  • Contador - R$2.228 (299 contratações);
  • Economista - R$5.630 (6 contratações);
  • Farmacêutico - R$1.301 (1.062 contratações).
Quanto ganhará um engenheiro economista?

Então, tudo indica que os analistas de sistemas não perdem muito em não terem uma carreira formalizada. E o que perdem em salário em relação a algumas poucas outras profissões, ganham em número de oportunidades.

segunda-feira, 1 de março de 2010

Salários no Rio Grande

Há poucos dias o governo do Estado de São Paulo lançou um portal de salários, o Salariômetro. Ele causou um pouco de polêmica, em parte porque custou cerca de R$200.000 e em parte porque as pessoas simplesmente não gostaram dele. O brasileiro sofre com uma educação platônica e como os números não fecharam com o ideal de mundo de muitos, a choradeira foi grande.

Bom, eu acho que quanto mais informação estiver ao alcance da mão, melhor. Então resolvi tabular os dados para salários de Analista de Sistemas (Código 212405). Eis o que achei:

Faixa EtáriaSalário/ContrataçõesHomensMulheres
0-17R$255/2R$255/2-
18-24R$1.868/346R$1.878/294R$1.814/52
25-29R$2.533/646R$2.548/548R$2.450/98-
30-39R$3.114/432R$3.173/364R$2.798/68
40-49R$3.145/130R$2.916/94R$3.744/36
50-64R$2.792/36R$2.979/28R$2.138/8
65 ou maisR$3.140/2R$3.140/2-

Logo se vê que a maior parte das contratações acontece na faixa etária em que os profissionais estão saindo da faculdade. E eles começam ganhando a média de salário. O que parece puxar para baixo os salários são os jovens; eu não exclui os que não têm curso superior.

Os salários são surpreendentemente igualitários, mas é bom lembrar que só foram consideradas as contratações por CLT dos últimos 6 meses e que, obviamente, não foram considerados os valores pagos por baixo da mesa ou a título de participação nos lucros.

Há apenas uma mulher para cada 6 homens (262 mulheres para 1.594 profissionais) e os salários delas não diferem em muito dos salários dos homens. Em algumas faixas etárias, elas até ganham mais.

Eu não considerei raça, porque simplesmente há pouquíssimos negros para que os resultados tenham algum significado, exceto pelo próprio fato de que eles são poucos.

As empresas grandes costumam pagar melhor que isso, mas talvez não para os iniciantes. O Salariômetro só tem dados sobre o primeiro salário. Além disso, desconfio que para ganhar mais, seja preciso ascender a cargos gerenciais. Isso combina com a minha noção platônica de Rio Grande do Sul de que nossa economia ainda não é sofisticada o suficiente para ter empregos técnicos bem pagos em quantidade.

P.S. Foram contratados ao total 1.594 analistas e a média de salários foi de R$2.607,91. Isso é um pouco melhor que o valor de R$2.457 publicado recentemente como a média dos salários em Porto Alegre.