quarta-feira, 24 de abril de 2013

Novas mídias, velhos problemas

Algumas pessoas têm extrema dificuldade de comunicar-se. Recentemente, por exemplo, um senhora estava trancando a entrada do meu prédio enquanto balbuciava "não sei se é por aqui". Perguntei, solicitamente, aonde a senhora desejava ir. A reposta foi uma hesitante "minha irmã". Prontamente, desisti. Algumas pessoas, simplesmente, não conseguem comunicar-se com eficiência.

Há poucos dias recebi por email um boletim que consistia de um arquivo PDF. Exceto pelos símbolos e informações institucionais, o PDF continha apenas um link para o Twitter. No Twitter, havia um link para uma página e nesta página estava, finalmente, o artigo. Este artigo, por mais difícil que possa ser acreditar, estava guardado dentro de um arquivo PDF.

Esse tipo de coisa, tenho certeza, exige um trabalho colaborativo. Uma única pessoa não seria capaz de formular uma forma tão obtusa de comunicação. Ou talvez aquela senhora conseguisse.

quinta-feira, 11 de abril de 2013

Atualização desanimadora

Chegaram máquinas novas no trabalho, mas elas têm apenas 6GB de memória. Digo apenas 6GB, porque as atuais têm 4GB e não lembro de ter adquirido uma máquina nova que não tivesse ao menos 4 vezes mais memória que a anterior.

Primeiro, parti de um 6502 com 128KB para um 286 com 1MB. Então, para um 486DX com 8MB e depois para um Pentium 166MMX com 64MB. Depois disso, atualizei para um Pentium 4 com 1GB. Atualmente, tenho um i3 com 4GB. Pode ser que tenha havido um 386 no meio disso tudo, mas faz tanto tempo que não lembro mais.

Então, um incremento de apenas 50% é um pouco desapontador. Do jeito que as coisas estão, não vejo motivo para atualizar as máquinas como antigamente. Por isso, essa também não deve ser uma boa época para os fabricantes. É melhor começarem a produzir tablets.

sexta-feira, 5 de abril de 2013

Renda e IDH dos estados brasileiros e países sul-americanos

Resolvi juntar os dados dos países da América do Sul com os dados dos estados brasileiros. O resultado não foi inesperado, mas ainda assim a imagem ilustra muito bem como os estados brasileiros ocupam todo o espectro da renda e do desenvolvimento humano da América do Sul. Clique na imagem para ampliá-la.


O eixo vertical indica o IDH e o eixo horizontal indica a renda. As linhas cinzas indicam as médias para o continente.

Oito unidades federativas estão acima da renda média sul-americana: MT, PR, RS, ES, SC, RJ, SP, e DF. Além disso, 21 estão acima do IDH médio: todos menos PI, MA, AL, PB, CE, e PE.

As unidades federativas RJ, SP e DF estão acima da renda e do IDH de todos os países sul-americanos. Elas possuem mais de 57 milhões de habitantes, o que equivale aproximadamente à população do Chile e da Argentina somadas (são os dois países de melhor renda e IDH do continente).

Ainda mais interessante é o fato de que 6 estados têm IDH maior que o Chile (campeão sul-americano). Isso significa que quase 85 milhões de brasileiros vivem numa região com IDH superior ao IDH dos 17 milhões de chilenos.

No outro extremo, PI e MA são mais pobres que a Bolívia (em renda per capita), mas, ao menos, mantêm-se acima do IDH desse país.


<html>
<head>
<script src="processing-1.4.1.min.js"></script>
<script type="text/processing" data-processing-target="canvas">
  class Pais {
    int populacao, idh, renda, cor;

    Pais(int p, int i, int r, int c) {
      populacao=p;
      idh=i;
      renda=r;
      cor=c;
    }
  }

  HashMap paises=new HashMap();
  paises.put("Argentina", new Pais(40482000,797,17516,4));
  paises.put("Bolivia", new Pais(9863000,663,4789,1));
  paises.put("Brasil", new Pais(191241714,718,11769,0));
  paises.put("Chile", new Pais(16928873,805,17222,0));
  paises.put("Colombia", new Pais(45928970,710,10249,1));
  paises.put("Equador", new Pais(14573101,720,8492,1));
  paises.put("Guiana", new Pais(772298,633,7465,3));
  paises.put("Paraguai", new Pais(6831306,665,5413,3));
  paises.put("Peru", new Pais(29132013,725,10062,2));
  paises.put("Suriname", new Pais(472000,680,9475,3));
  paises.put("Uruguai", new Pais(3477780,783,15113,4));
  paises.put("Venezuela", new Pais(26814843,735,12568,2));

  int[] cores=new int[] {#98db11, #ff9900, #ffd42a, #ff0000, #5599ff};
  
  class Estado {
    int populacao, idh, renda, regiao;

    Estado(int p, int i, int r, int s) {
      populacao=p;
      idh=i;
      renda=r;
      regiao=s;
    }
  }

  HashMap estados=new HashMap();
  estados.put("AC", new Estado(707125,751,7041,0));
  estados.put("AL", new Estado(3093994,677,5164,1));
  estados.put("AP", new Estado(648553,780,8543,0));
  estados.put("AM", new Estado(3350773,780,11829,0));
  estados.put("BA", new Estado(13633969,742,6922,1));
  estados.put("CE", new Estado(8180087,723,5636,1));
  estados.put("DF", new Estado(2469489,874,37600,2));
  estados.put("ES", new Estado(3392775,802,15236,3));
  estados.put("GO", new Estado(5849105,800,9962,2));
  estados.put("MA", new Estado(6424340,683,4628,1));
  estados.put("MT", new Estado(3033991,796,12350,2));
  estados.put("MS", new Estado(2404256,802,10599,2));
  estados.put("MG", new Estado(19159260,800,11028,3));
  estados.put("PA", new Estado(7443904,755,6241,0));
  estados.put("PB", new Estado(3753633,718,5507,1));
  estados.put("PR", new Estado(10266737,820,13158,4));
  estados.put("PE", new Estado(8541250,718,6528,1));
  estados.put("PI", new Estado(3086448,703,4213,1));
  estados.put("RJ", new Estado(15180636,832,17695,3));
  estados.put("RN", new Estado(3121451,738,6754,1));
  estados.put("RS", new Estado(10576758,832,14310,4));
  estados.put("RO", new Estado(1535625,776,8391,0));
  estados.put("RR", new Estado(425398,750,9075,0));
  estados.put("SC", new Estado(6178603,840,15638,4));
  estados.put("SP", new Estado(39924091,833,19548,3));
  estados.put("SE", new Estado(2036277,742,7560,1));
  estados.put("TO", new Estado(1373551,756,7210,0));

  int[] regioes=new int[] {#98db11, #ff9900, #ffd42a, #ff0000, #5599ff};
  
  int W=2000;

  void setup() {
    size(W,W/2);
    background(255);
    noLoop();
  }

  void draw() {
    Iterator i = paises.entrySet().iterator();
    while (i.hasNext()) {
      Map.Entry me = (Map.Entry)i.next();
      String nome=me.getKey();
      Pais pais=me.getValue();
      float x=W*(pais.renda/40000);
      float y=W*(pais.idh/1000);
      float r=2+pais.populacao/1000000;
      fill(cores[pais.cor], 150);
      stroke(cores[pais.cor], 255);      
      ellipse(x, W-y, r, r);
      fill(0, 255);
      text(nome, x, W+4-y+r/2);
    }
    
    Iterator i2 = estados.entrySet().iterator();
    while (i2.hasNext()) {
      Map.Entry me = (Map.Entry)i2.next();
      String sigla=me.getKey();
      Estado estado=me.getValue();
      float x=W*(estado.renda/40000);
      float y=W*(estado.idh/1000);
      float r=2+estado.populacao/1000000;
      fill(regioes[estado.regiao], 100);
      stroke(regioes[estado.regiao], 255);      
      ellipse(x, W-y, r, r);
      fill(#000000, 255);
      text(sigla, x, W+4-y+r/2);
    }
    
    stroke(#AAAAAA, 255);
    float rendaMedia=(11962/40000)*W;
    line(rendaMedia, 0, rendaMedia, W);
    float idhMedio=W-(729/1000)*W;
    line (0, idhMedio, W, idhMedio);
    
    save("paises_estados.jpg");
  }
</script>
</head>
<body>
<canvas id="canvas">
</body>
</html>