3 de fevereiro de 2010

Perólas - Opiniões politicas nem tão respeitaveis

Acho que a campanha 2010 já começou, então vamos a diversão.
Hoje eu vou iniciar uma compilação dos comentários hilários sobre política que encontramos por aí.


Vamos lá, comentários sobre o protesto do ex ministro da educação (FHC) Paulo Renato reclamando da Dilma ter falado mal dele no contexto de educação técnica:
--------------------------------------------------------------------------------------------------------------
G Kubo
3 de fevereiro de 2010 às 19:30
Pessoal

Eu tenho enviado varios e-mails para a Direção do PSDB, criticando a falta de esclarecimento como este para as classe C,D e E, onde são pràticamene 60% de leitores ignorantes,Este pessoal não tem e-mail, não le jornal, não assiste tele-jornal, enfim só assistem novela.


Excluindo somente o fato de assistirem novela, eles têm tudo para serem intelectuais bem informados.
-------------------------------------------------------------------------------------------------------------




--------------------------------------------------------------------------------------------------------------
 A grande maioria está no Norte e Nordeste, onde a Bolsa Família e a origem do Presidente fazem a diferença.

O PSDB tem que baixar o nível de comunicação, para atingir este pessoal.
É isso aí, abaixem o nível !!!



Nas eleições anteriores foi a mesma coisa. O PSDB tem esquecer o FHC e partir para a linha de comunicação popukar, caso contrário vai perder outra vez !!!!




--------------------------------------------------------------------------------------------------------------


--------------------------------------------------------------------------------------------------------------
Eu desisto, quero ser PT







Marcel
3 de fevereiro de 2010 às 21:50
Concordo com as opinoess acima manifestadas – nao adianta muito mostrar as mentiras da Dilma – nao vai se ganhar assim a eleicao. Tem que oferecer algo a mais para o Nordeste e os pobres que somente a comida. Tem que confirmar a continuidade do bolsa familia, os reajustes dos valores, e propor por exemplo de construir milhares de pocos artesianas para a populacao do interior, onde pouco chove, funcionando com bombas utilizando energia solar.
E vamo comecar a construir estradas interestaduais como na Europa, concreto de 40 cm de espessura, concreto que nao precise de manutençao durante muitos anos. Investimento para o futuro. Se for por consorcios, eles podem explorar e colocar pedagens durante 15 anos – depois as estradas passam para os governos.


Obligatoriedade para mandar filhos na escola. Na Europa os pais ficam presos se nao mandam os filhos na escola. Aumentar bolsa filho. Ensino de cultura nas escolas.


E tem muitas ideias mais para ganhar a eleicao, pois nao pode continuar assim.

--------------------------------------------------------------------------------------------------------------


--------------------------------------------------------------------------------------------------------------
Morra meu amado povo !

Rosângela Medeiros
3 de fevereiro de 2010 às 22:02
Boa noite.
Não SUPORTO mais ouvir esta palavra: POVO.
O POVO no BRASIL foi transformado em massa de manobra de politicos corruptos,e é a palavra mais usada por quem faz lavagem cerebral na MASSA.POVO, POBRE são palavras que não podemos mais usar.
SOMOS CIDADÃOS, temos direitos a EDUCAÇÃO, SAÚDE, TRANSPORTE, SEGURANÇA de QUALIDADE.
O BRASIL de hoje vive uma GUERRA CIVIL como nunca dantes neste PAIS.NOSSOS jovens estão sendo EXTERMINADOS pelas esquinas, becos, favelas e praças públicas.
Não TEMOS educação de qualidade, que possa interessar a estes jovens.PRECISAMOS de remunerar os PROFESSORES e valoriza-los realmente.NÓS aposentados precisamos de salários dignos e não esta miséria que ganhamos, e que não dá condições de viver com dignidade.O PSDB que criou o FATOR PREVIDENCIÁRIO pode ter um projeto acabando com o mesmo, afinal são 12 milhões de APOSENTADOS, é voto pra caramba.
NOSSAS fronteiras vulneráveis, sem fiscalização, dá condições a todo tipo de entrada, de produtos a pessoas nom gratas.
Ora O PSDB precisa de UM PROJETO GRANDIOSO pós LULA, de crescimento sustentável, emprego real, e não somente de TELEMARKET ou de AUTONOMOS.
PRECISAMOS DE UMA REFORMA POLITICA E TRIBUTÁRIA, urgentemente.
Não podemos COMPARAR, temos que defender os PONTOS dos quais se aproveitam e distorcem como verdades ou mentiras “deles”.
HÁ que se mostrar o passado da DILMA, quem foi, como procedeu, como poderá ser seu governo,sem contudo atacar a pessoa, mas seus metodos de vida passado e a forma como age hoje, as mentiras, seus falsos diplomas.
PRECISAMOS mostrar aos cidadãos como é importante ser CIDADÃOS.
Ter direitos e como os mesmos devem SER RESPEITADOS por quem está no PODER.
Penso que é isto que precisamos para a CAMPANHA, e a ELEIÇÃO.
Abraços,
Obrigada.
Rosângela Medeiros
BH – MG



--------------------------------------------------------------------------------------------------------------





--------------------------------------------------------------------------------------------------------------
erezinha mottecy
3 de fevereiro de 2010 às 23:02
É necessario divulgar sempre no norte e nordeste atraves das lideranças Arthur Virgilio, Guerra e outros grandes lideres a imagem da guerrilheira Dilma. Pobre País se os corajosos senadores do Dem, PSDB e alguns do PMDB como Jarbas Vasconcelos não assumirem o qto antes unidos a candidatura do PSDB. Temos q unir as oposições e o dr. Serra é a solução.
Terezinha Mottecy- SM RS


Em 2010 só o povo do norte e nordeste vota ? Dr Serra ? Virgilio, Guerra e outros grandes lideres ? Mao Tse Tung ? 


--------------------------------------------------------------------------------------------------------------




Originais em  http://rede.psdb.org.br/

25 de janeiro de 2010

Cover muito animado de Cecilia - Simon e Garfunkel !


21 de janeiro de 2010

O monstro da pía

Levantei durante a madrugada e me deparei com essa criatura assustadora !


19 de janeiro de 2010

Shell x Listas x Monte Carlo

Muitas vezes é interessante guardas listas de sítios e sortear somente dentro desta lista para evitar gerar números aleatórios que não serão usados. É fácil usar listas em uma dimensão: quando um sítio sai da lista ele pode ser substituído pelo ultimo da fila e esta perde um elemento.

Tudo muito bom, tudo muito legal, mas há um preço a pagar se estamos interessados no comportamento dinâmico... um não, dois !

Primeiro, o tempo de Monte Carlo tem que ser normalizado em termos do número de elementos da lista. Por exemplo: se a lista tem o tamanho j e a rede tem N sítios, o incremento no tempo é dado pela razão N/j que é maior que um. Conclusão o tempo passa mais rápido ( o que não é ruim), o problema é que essa razão deve ser tratada como um ponto flutuante.
 A cada iteração vamos ter que somar pontos flutuante, não há como fugir, então devemos ter cuidado com o número de somas efetuadas. Nessas horas é bom aproveitar as operações 64 bits e usar variáveis Long Double, tipicamente ela tem 18 casas decimais de precisão. O erro após X iterações é da ordem de X*10^{-18}. 

Segundo, cada realização terá um sequência de tempo diferente já que o tempo depende do histórico do tamanho da lista j.
Uma maneira de contornar o problema é dividir o tempo em intervalos, tomar a média das grandezas em estudo naquele intervalo e atribuir o resultado ao tempo médio dos pontos dentro do intervalo.
Note que isso introduz dos erros: o erro estatístico da média estudada ( esse existe de qualquer forma ) e o erro do tempo que está ligado de alguma forma a dinâmica ( esse é novo ).

Como resolver isso de forma rápida é fácil ?

Bom, para todo problema sempre existe um script.

É só pegar todos os dados, organizar por ordem de tempo, dividir em arquivos ( escolhi 50 pontos por arquivo). Depois tirar as media do tempo e da grandeza de interesse para cada um dos arquivos.   

cat dados | sort -n | split  -l 50 -a 3 -d
for i in x[0-9][0-9][0-9]
do
cat $i | mawk  '{ print (r+=$1)/NR, (s+=$2)/NR }' | tail -n 1 >> a.agr
done
rm -f x[0-9][0-9][0-9]


Curto e Grosso: Viva o POSIX !

Notem que o intervalo de tempo não é fixo, depende da distribuição dos meus 50 pontos. Chame de janelas adaptativas para se vangloriar !

Imagine a quantidade de rotinas para fazer isso em C ?
Além disso, você teria que tratar I/O em C ! Está aí uma coisa que eu não pretendo fazer nessa vida !   
   
   

1 de janeiro de 2010

Jogos remotos com o StreamMyGame

Computação nas nuvens parece ser o caminho das aplicações Desktop. Este modelo prioriza a eficiência energética e a mobilidade.

Os games dos últimos nichos que demandam grande desempenho, tanto nos PCs quanto nos Consoles. Na contramão da busca por mais desempenho e no caminho da computação nas nuvens também para os games, temos o empreendimento da Onlive... eu sei, latência, hubs, wireless etc.

De fato, as dificuldades parecem intangíveis, mas por outro lado temos menores custos de hardware em datacenters, conexões melhores e mais baratas. Somado a isso, observamos o grande progresso dos softwares de compactação e sincronização, um exemplo é o jogo Heroes of Newerth cuja espantosa  sincronização torna possível uma partida competitiva  entre Brasileiros, estadounidenses, o que é impensável no antigo DoTa.

Semana passada o fundador e diretor geral do Online, Steve Perlman, foi convidado a proferir uma palestra sobre o projeto na Columbia University.

Um outro projeto, não tão ousado, é o StreamMyGame eles disponibilizam um software que permite rodar aplicativos como games numa rede local. Por exemplo, você pode jogar jogos pesados na sacada, com seu netbook rodando remotamente um jogo instalado no seu desktop. Eles disponibilizam uma versão com servidor windows e cliente Linux, para PC e para PS3. Por exemplo:
 



Eu pessoalmente fiquei muito curioso em relação aos mecanismo de compactação e sobre a existência de aplicativos opensource que permitam o estudo e o aprimoramento.

Encontrei um projeto muito interessante da Sun, o VirtualGL aliado ao TurboVNC, em breve postarei minha experiência com ele.

26 de dezembro de 2009

Números Aleatórios - Performance

Eu fiz um teste de performance de diferentes implementações de geradores de números aleatórios, comparando a biblioteca GSL e a MKL. O teste consistiu em calcular o tempo necessário para gera 2^30 números aleatórios (float):

  1. implementação do Numerical Recipes do ran2                  ->  25 segundos
  2. implementação da biblioteca GSL do Mersenne Twister  ->  15 segundos
  3. implementação da biblioteca MKL do Mersenne Twister ->  5  segundos
 Este é o fonte do teste






teste.c


#include <stdio.h>
#include <math.h>
#include <time.h>

///////////////////////// Ran2 Numerical Recipes
//////////////////////////////////////////////

///////////////////////// GSL Mersenne Twister
#include <gsl/gsl_rng.h>
#define ARNG gsl_rng_mt19937
/////////////////////////

/////////////////////////////// MKL GSL Mersenne Twister
 #include <mkl_vsl.h>
#define BRNG    VSL_BRNG_MT2203
#define METHOD  0
////////////////////////////////

main ()
{

  float m,Sm;
  long N = 1073741824, sqrtN = 32768 , i , j;
  long seed,seedn;
  seed = 345;
  seedn = -1 * seed;		//semente negativa

//////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////
  gsl_rng *randmt;
  randmt = gsl_rng_alloc(ARNG);
  gsl_rng_set (randmt, seed);
  
  time_t inicio2;
  time_t fim2;
  inicio2 = time (NULL);
  for (i = 0; i < N; i++)
    {
      m = tanh ( gsl_rng_get(randmt) / ( 1.+ gsl_rng_max (randmt) ) );
    }
  fim2 = time (NULL);
  gsl_rng_free (randmt);
  printf ("tempo para %d Mersenne Twister - GSL %ld \n", N, fim2 - inicio2 );
//////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////  
  
  float ranfloat[sqrtN];
  VSLStreamStatePtr stream;
  vslNewStream (&stream, BRNG, seed);
  
  time_t inicio3;
  time_t fim3;
  inicio3 = time (NULL);
  for (i = 0; i < sqrtN; i++)
    {
    vsRngUniform (METHOD, stream, sqrtN, ranfloat, 0.0, 1.0);
    for (j = 0; j < sqrtN; j++)
      {
      m = tanh ( ranfloat[j] );
      }
    }
  fim3 = time (NULL);
  printf ("tempo para %d Mersenne Twister - MKL  %ld\n", N, fim3 - inicio3 );
  
//////////////////////////////////////////////////////////////

  return (0);

}



Gerando números aleatórios com a biblioteca VSL (MKL)

Exemplo simples do uso dos geradores de números aleatórios da biblioteca MKL,






exemplo.c


#include <stdio.h>
/////////////////////////////// MKL GSL Mersenne Twister
#include <mkl_vsl.h>

#define BRNG    VSL_BRNG_MT19937 
#define METHOD  0
////////////////////////////////

main ()
{

  int N = 4, sqrtN = 2 , i , j;
  int seed;
  seed = 345;
  
  float ranfloat[sqrtN]; //cada entrada corresponde a um numero aleatorio
  VSLStreamStatePtr stream; 
  vslNewStream (&stream, BRNG, seed); //semeando o gerador
  
  for (i = 0; i < sqrtN; i++)
    {
    vsRngUniform (METHOD, stream, sqrtN, ranfloat, 0.0, 1.0); //carregando sqrtN numeros
    for (j = 0; j < sqrtN; j++)
      {
      printf ("%f\n", ranfloat[sqrtN]);
      }
    }

  return (0);

}





Para compilar basta linkar as bibliotecas adequadas:

ia32,  icc exemplo.c  -lmkl_intel -lmkl_sequential -lmkl_core  -o exemplo.bin

intel64, icc exemplo.c -lmkl_intel_lp64 -lmkl_sequential -lmkl_core  -o exemplo.bin

Pontos importante:
os números são obtidos em stream, a idéia é carrega um vetor a cada chamada da função vsRngUniform, no exemplo carregamos sqrtN números entre 0 e 1 (float) distribuídos uniformente. O desempenho é melhor para sqrtN > 1000.

Outras funções: 
vdRngUniform  -  double
viRngUniform  - int

Outros geradores, funções e mais detalhes podem ser obtidos na documentação da biblioteca Vector Statistical Library VSL