Google Deixa a China

Nesta segunda-feira o Google desligou o seu servidor de buscas na China, o google.cn. A partir de então as buscas em mandarim simplificado (chinês da China) podem ser feitas a partir de um servidor em Hong Kong desprovido da auto-censura chinesa. O escritório da empresa continuará aberto na China apesar do serviço de buscas ficar hospedado em Hong Kong. Ou seja: o Google saiu da China sem sair.

A questão da China com o Google tem pontos não explicados o que a torna um pouco difícil de entender. É claro que levantando alguns chavões ideológicos ficaria tudo mais “fácil”, seja para quem defende a liberdade ocidental, seja para quem defende o comunismo chinês.

Eu separei algumas considerações sobre o assunto para quem, como eu, não conseguiu tomar lado nessa discussão.

Sofremos um ataque altamente sofisticado

Em dezembro de 2009 o Google anuncia que sofreu um ataque altamente sofisticado. O anúncio aponta que esse ataque teria partido da China. Danos sofridos:

  1. Propriedade intelectual da empresa foi acessada indevidamente. Não foi revelado que tipo de material foi roubado (google search, gmail?).
  2. Emails de dez ativistas de direitos humanos ligados a China tiveram violada a sua lista de emails recebidos e enviados. A identidade destas pessoas obviamente não é conhecida.

Segundo o mesmo anúncio outras 20 empresas teria sofrido ataques semelhantes.

Uma deliberada falta de nexo?

Eu li e reli o texto A new approach to China (uma nova abordagem para a China) do blog oficial do Google para tentar entender a razão da empresa falar em fechar seus negócios na China. Afinal, como a Microsoft disse, toda empresa sofre ataques hackers mas não é nada comum culpar o governo por isso. Já imaginou se os bancos culpassem o governo brasileiro por todos os crimes que ocorrem na internet brasileira?

Segundo o pronunciamento oficial a empresa teria sofrido ataques sofisticados por hackers chineses e por isso estaria fechando seus negócios na China. Não tem nexo. Isso só faria sentido se o ataque tivesse apoio do governo chinês, o que aliás é amplamente apontado pela imprensa mas nunca foi declarado pelo Google. Por algum motivo o Google evita ao máximo acusar o governo chinês diretamente.

O google realmente culpa o governo pelos ataques?

Oficialmente não. Nos dois pronunciamentos oficiais o Google não acusa o governo chinês de promover ou de encobertar os ataques de dezembro de 2009. Se existe alguma ligação o Google não apontou explicitamente. A empresa poderia estar omitindo esta informação para proteger alguma coisa. Ou agindo de má fé. Será que um dia essa parte da história será contada? Se você souber de alguma dica coloque nos comentários :)

Auto-censura

Particularmente não concordo com a censura chinesa, mas os comunistas tem observado que o Google aceitou formalmente a auto-censura. Isso aconteceu em 2006 quando a empresa decidiu abrir um escritório no país e aceitou a auto-censura chinesa. Esse registro encontra-se no blog do Google: Testimony: The Internet in China.

O que é a auto-censura chinesa? Na prática significa que buscas por conteúdo pornográfico ou certas críticas ao governo simplesmente não trazem os resultados esperados.

Na China existe uma legislação que proíbe a divulgação desses dois tipos de conteúdo: conteúdo anti-chinês e pornografia. Em uma entrevista à rede CNN o primeiro ministro Wen Jiaobao alegou que quase todas as nações praticam algum tipo de censura. Segundo Jiaobao a internet chinesa mantém uma série de críticas sérias ao governo, mas que não são censuradas.

Lendo outras matérias no China Daily, o jornal do partido comunista chinês, a sugestão é de que a censura política vá diminuindo conforme os “riscos” diminuam. O que isso significa é matéria para outro texto, mas eu tenho convicção que isso só se tornará verdade quando a maioria dos chineses compor a classe média, o que deve tomar no mínimo mais 30 anos (uns 50 segundo a constituição do partido comunista). Será que os chineses estarão dispostos a aguardar tanto tempo? É difícil dizer, mas na minha opinião é uma questão que não cabe a um extrangeiro impor à China. Os ocidentais tratam a democracia de hoje como tratavam do cristianismo antigamente. Ao meu ver nenhum modelo de democracia deveria ser imposto da forma como o cristianismo foi imposto ao novo mundo.

O Google realmente deixou a China?

Assim como é dever (ou papel) da classe média chinesa lutar (ou não) pela sua própria liberdade, me parece ser papel do Estado manter a lei. Se existe um site disponível na internet que desrespeite uma lei chinesa esse site deve ser bloqueado.

Fica mais fácil de entender se compararmos. Considere que países como a Alemanha e EUA bloqueiam sites que divulgam ideias terroristas como o neonazismo e a jihad islâmica. Entenda: a liberdade de expressão de apoio ao neonazismo é vista como um perigo para o alemão. Para muitos chineses a ideia ocidental de liberdade política ocidental é vista como um grande perigo pois pode comprometer as ações do Estado ao transformar os políticos em meros porta-vozes de empresas. Esse debate acontece na China, como você pode conferir na matéria China’s elections won’t be Western-style (As eleições da China não seguirão o padrão ocidental) do China Daily.

O que virá a seguir

É possível que o google.com.hk seja totalmente bloqueado na China. Com isso a tendência é que o Google perca os 35% de participação no mercado de buscas da internet chinesa, assim como toda a sua receita por anúncios. Se isso acontecer seria mais racional, do ponto de vista capitalista, fechar o escritório chinês.

Outra possibilidade: boa parte dos internautas chineses continuariam a usar google e outras ferramentas usando proxies que permitem burlar a legislação. Seria essa a aposta da empresa?

Hong Kong e o restante da China têm muitas diferenças, mas a tendência é que eles se tornem cada vez mais parecidos. Talvez o Google fique de molho em Hong Kong até lá.

Você sabe de onde é esse mapa?

sp-upside-down

Você conhece o mapa acima?

Sim, é o mapa do estado de São Paulo (ou parte dele) virado de cabeça para baixo. Acontece que agora o Google Maps tem uma ferramenta que permite girar o mapa em 90, 180 ou 270 graus. E faz isso mantendo as legendas de cabeça para cima.

Quem pode gostar dessa nova funcionalidade?

1) mulheres: homens e mulheres entendem mapas de formas diferentes. Agora as mulheres terão a oportunidade de levar para o computador o velho hábito de girar os mapas :)

2) bixos grilos revoltados com o domínio do norte sobre o sul: lembra daquele professor de geografia que enchia o saco falando que os mapas foram feitos para expressar o domínio dos países ricos? O norte ficaria voltado para cima para mostrar a superioridade das nações européias, EUA e Rússia sobre o 3º mundo subdesenvolvido. Ah, deve ter muito bixo grilo desse feliz da vida ;)

Os Beatles em video-game!!!

O que há de especial no dia 09/09/09? Duas coisas:

1) se bem que o número nove vai acabar. Analistas independentes calculam que até o final da tarde não vai ter mais nenhum.

2) Lançamento do jogo Rock Band dos Beatles:

Fãs fazem fila do lado de fora da loja HMV em Liverpool, cidade natal dos Beatles. O game, parar Xbox 360, Wii e Playstation 3 só estará disponível no Brasil a partir do dia 18 de setembro. (Foto: AFP)

Pessoal jogando o novo Rock Band

Para quem vive em outro planeta o Rock Band é um tipo de video game cujos controles são instrumentos de uma banda de rock. O Guitar Hero é um jogo concorrente e apesar do nome ele também aceita outros instrumentos além da guitarra: baixo, bateria e microfone.

Capa do LP Please Please Me, do BeatlesQuando eu tinha uns oito anos meus pais foram viajar por algumas semanas e me deixaram um dinheirinho caso ocorresse uma necessidade. Como qualquer criança de oito anos eu não esperei necessidade coisa nenhuma: fui pra (extinta) Hi-Fi do Shopping Morumbi e comprei um LP dos Beatles. Escolhi o Please Please Me, um dos álbuns que mais gosto até hoje. Provavelmente comprei o primeiro álbum deles acreditando que iria fazer a coleção completa de toda a discografia.

Aliás, eu nunca consegui me desfazer do LP. Esta lá no fundo do armário como uma relíquia. A materialização de uma lembrança.

Planos de Dados da Oi

Planos de Dados da Oi

Essa é uma tabela que fiz com os valores de planos de dados da Oi. Eu fiz uma estimativa pessimista de consumo de 300Mb mensal e fiz a conta para ver quanto custa o acesso.

Por incrível que pareça um celular pré-pago pagaria quase R$ 2.500,00 somente para cobrir os custos de dados! Isso não é nada sério. As outras operadoras usam tarifas semelhantes para pré-pago.

No wordcamp Matt Mulenweg comentou que teve de pagar cerca de U$ 800,00 por trafegar cerca de 16Mb usando roaming internacional. Quando ele falou isso e pensei que ele deveria ter comprado um chip pré-pago, mas depois de fazer a tabelinha acima eu acho que o pré-pago não é uma opção viável, mesmo para um turista que só precisa usar o google maps no celular.

Tudo o que não dás, perde-se

No último fim de semana estive ajudando o primeiro wordcamp brasileiro. Wordcamp é o evento onde os entusiastas do software livre wordpress se reúnem para trocar ideias. A versão brasileira foi promovida pelas pessoas que traduzem o wordpress para o português brasileiro, e como todo bom evento de software livre o wordcamp depende de voluntários para acontecer.

Presenças notáveis: Matt Mullenweg, criador da plataforma wordpress, e o José Fontainhas que trabalha na Automatic e nos apresentou o BuddyPress, uma ferramenta que transforma o wordpress em um sistema de relacionamentos como o orkut ou o ning. Foi o Fontainhas quem citou a frase “Tudo o que não dás, perde-se”. Ah, como seria bom se eu já tivesse aprendido essa lição quando eu era webmaster na Vianet de Niterói em 1997…

Obrigado pela iniciativa da Equipe WordPress-BR, especialmente a Cátia Kitahara e o Leo Germani que por uma questão geográfica ficaram mais envolvidos no processo. O empenho de todos têm tornado a web, que é a nossa casa, um espaço melhor; mais social; enfim, mais humano.

Algumas fotos do evento:

Um dia antes do evento, estou com o pessoal arrumando os crachás dos participantes

Um dia antes do evento, estou com o pessoal arrumando os crachás dos participantes

A linha de montagem dos kits me deixou (um pouco) como o Carlitos em Tempos Modernos :)

A linha de montagem dos kits me deixou (um pouco) como o Carlitos em Tempos Modernos :)

Leo dando instruções sobre as primeiras palestras do wordcamp

Leo dando instruções sobre as primeiras palestras do wordcamp no domingo de manhã: estava realmente frio...

Todo mundo no palco: tá tão pequeninho que eu não me achei :(

Todo mundo no palco: está tão pequeninho que eu não me achei :(

Esse aí é o Matt, enquato era caricaturado numa camiseta

Esse aí é o Matt, enquato era caricaturado em uma camiseta

Quadro com Twitter da galera que participou do WordCamp por Marcelo Costa

Quadro com Twitter da galera que participou do WordCamp

Dinâmica no final do evento onde todos montaram um quadro de ideias :)

Dinâmica no final do evento onde todos montaram um quadro de ideias :)

E você ainda pode ver todas as fotos postadas no flickr ;)

Script para retirar emails duplicados

Fiz um script para retirar emails duplicados de uma lista, colocar estes emails em ordem alfabética e retirar os emails que constam em uma lista de exclusão.

Talvez seja problemático o fato do script ter sido feito com a sintaxe do python 3 :(

O script deve rodar em uma pasta que contenha um arquivo mailing.txt com uma lista de emails e outro arquivo mailing opt-out.txt com lista de emails que devem ser retirados da lista principal. Estes arquivos devem ter um endereço por linha.

O script:

#!/usr/bin/python
import datetime, os, sys
print("Removing double entries in mailing and opt-outs")
 
t = datetime.datetime.now()
timeStamp = str(t.today()).replace(':', '-')
fMailing = 'mailing.txt'
fMailingOut = 'mailing opt-out.txt'
backupFolder = 'mailing-backup' + os.sep
fMailingBackup = backupFolder + fMailing + '.' + timeStamp + '.backup'
fMailingOutBackup = backupFolder + fMailingOut + '.' + timeStamp + '.backup'
 
try:
  fMailingHandle = open(fMailing)
  fMailingList = fMailingHandle.readlines()
except IOError:
  print('Put a file named ' + fMailing + ' in this folder before running me.')
  sys.exit()
 
try:
  fMailingOutHandle = open(fMailingOut)
  fMailingOutList = fMailingOutHandle.readlines()
except IOError:
  print('Put a file named ' + fMailingOut + ' in this folder before running me.')
  sys.exit()
 
lstEmail = []
lstOptOut = []
 
for email in fMailingList:
  lstEmail.append(email.lower())
 
for email in fMailingOutList:
  lstOptOut.append(email.lower())
 
fMailingHandle.close()
fMailingOutHandle.close()
 
#transform in a set to make each email unique
print("Original size: mailing=", len(lstEmail), ", out-out=", len(lstOptOut))
lstEmail = set(lstEmail)
lstOptOut = set(lstOptOut)
 
for email in lstOptOut:
  try:
    lstEmail.remove(email)
  except KeyError:
    #print("email da lista de out-out não existe no mailing: tudo bem!")
    pass
 
print("Actual size: malling=", len(lstEmail), ", out-out=", len(lstOptOut))
print("Saving results in files... I'll keep some backup files (with timestamps).")
 
if os.path.exists(backupFolder):
  print('backup folder exist')
else:
  os.mkdir(backupFolder)
  print('bakckup folder does not exist')
 
print(fMailing, ", " , fMailingBackup)
os.rename(fMailing, fMailingBackup)
os.rename(fMailingOut, fMailingOutBackup)
 
#save the opt-out list ina a file
fMailingOutHandle = open(fMailingOut, 'w')
for email in sorted(lstOptOut):
  fMailingOutHandle.write(email)
fMailingOutHandle.close()
 
#save the mailing in a file
fMailingHandle = open(fMailing, 'w')
for email in sorted(lstEmail):
  fMailingHandle.write(email)
fMailingHandle.close()
 
print("Ready, done :) ")

Tema Journalist para wordpress em pt-BR

Screenshot do tema journalist 1.9 Preto e Branco

Screenshot do tema journalist 1.9 PB

Acabo de traduzir um tema para wordpress chamado journalist 1.9. O tema pode ser baixado aqui:


journalist.zip

O tema foi feito pelo romeno chamado Lucian Marin. Apesar de ser bastante minimalista eu não resisti e tirei a cor azul dos links e coloquei em preto (cinza escuro). Havia um probleminha com o hover das imagens, mas acredito que está resolvido.

Backup Esperto com o Dropbox

Logo do Drop BoxFazer backup é importante, mas é uma tarefa enfadonha. Nas últimas semanas conheci um serviço muito bom de backup que torna a tarefa de backup super fácil. O serviço se chama dropbox.

Como funciona: na instalação é criada uma pasta especial chamada DropBox. Todo arquivo que você salva ali dentro é mandado para a nuvem. O backup é diferencial: se você estiver editando um texto de várias páginas e só alterar um parágrafo, somente este parágrafo é enviado, tornando o processo rápido e economizando banda de internet.

Espaço: o serviço oferece 2Gb gratuitos, e se você precisar de mais espaço o serviço pode ser contratado. Dependendo da sua necessidade pode ser interessante.

Compatibilidade:  tenho utilizado o serviço em um computador com Windows e outro com linux ubuntu, e programa funciona bem nas duas plataformas, inclusive os acentos (qualquer unicode, na verdade).

Confiabilidade: eu não faço ideia de quem detém o capital do dropbox, então por enquanto eu não tenho colocado informações sensiveis na minha pasta do dropbox.

Jabá: para assinar o Dropbox clique aqui e crie a sua conta gratuita com 2,25Gb!

Script para iniciar o tomcat

O tomcat costuma apresentar um problema chamado PermGen space Exception quando fazemos muitos undeploys e deploys sem reiniciar o processo do tomcat. Isso acontece por uma característica da jvm da Sun. Não chega a ser propriamente um bug.

Quando executamos uma aplicação java uma instância da jvm é criada exclusivamente para aquela aplicação. Na jvm existe um espaço de memória que nunca é reutilizado. Se chama espaço de memória permanente (PermGen space) e serve para guardar objetos do tipo Class. Quando se carrega uma aplicação, cada casse do jar ou war é instanciado como um objeto que fica alocado neste espaço de memória permanente. Se a aplicação tiver muitíssimas classes a jvm vai lançar uma mensagem de erro indicando que esse espaço está repleto e não é possível carregar a aplicação. Mas se as suas classes se encaixarem neste espaço (e em geral cabe) sua aplicação vai rodar sem problemas. Existem dois tipos de casos onde existe um consumo indevido do espaço de memória permanente:

  1. Programas que geram tipos de classe dinamicamente. O hibernate chega a criar algumas classes em tempo de execução, mas não chega a ser um número tão grande a ponto de gerar problemas. Para encher o espaço de memória permanente seria necessário criar centenas ou milhares de classes dinamicamente. Provavelmente um sistema que roda por muitos dias seguidos e criando classes novas possa chegar preencher todo este espaço. Mas seria um sistema mau escrito.
  2. Programas que carregam muitos tipos de classes dinamicamente. É o caso do tomcat que aceita deploy e undeploy de aplicações. Quando um desenvolvedor faz undeploy todos os objetos das classes da aplicação continuam lá no espaço de memória permanente e quando é feito o deploy da nova versão do context outros tantos objetos do tipo classe vão para a memória permanente. Em algum momento a memória acaba.

É por isso que no ambiente de desenvolvimento é comum ter de reiniciar o tomcat várias vezes ao longo do dia de trabalho. Como meu ambiente é para testes, eu limpo logs e o diretório work antes de rodar o tomcat, e coloco o tomcat.log que é o arquivo do log4j que eu configurei para exibir as mensagens do tomcat. Segue abaixo o meu script para iniciar o tomcat:

#!/bin/sh
TOMCAT_HOME="/opt/tomcat"
TOMCAT_LOGFILE="$TOMCAT_HOME/logs/tomcat.log"

cd $TOMCAT_HOME
rm logs/* -rf
rm work/Catalina/localhost/* -rf
bin/catalina.sh jpda start
ps aux|grep tomcat
echo "tomcat iniciado..."

sleep 5

while [ ! -f "$TOMCAT_LOGFILE" ]; do
sleep 1
echo "arquivo de log ainda não foi criado..."
done

echo "log do tomcat existe e será exibido a seguir:"
tail -f logs/tomcat.log

Campanha Contra Software Proprietário

Campanha contra Software Proprietário na Bahia

Hoje encontrei no blog do Vinícius essa companha contra software proprietário no programa de inclusão digital do governo da Bahia . O programa de inclusão digital do governo baiano utilizava ferramentas livres e agora a Miscrosoft está oferencendo de graça os seus próprios programas. O uso de programas livres tem a função de (1) baratear os custos do governo e (2) incentivar o cidadão a utilizar ferramentas que não implicam em custos de licença de uso.

Quando o cidadão de baixa renda aprende a fazer uma planilha no programa de inclusão digital, ele vai procurar usar o mesmo programa no computador de casa ou de trabalho. Se ele aprendeu a utilizar o Microsoft Excel, doado pela Microsoft ao Estado da Bahia, o recém incluído precisará desembolsar R$ 199,00 para ter uma cópia legal do programa. Ou seja, para cada 30 alunos que façam o curso e comprem o Office a Microsoft faturaria R$ 5.970,00. Faturaria (se não fosse a pirataria, claro).

O programa de inclusão social com ferramenta livre não estimula a pirataria e nem o consumo de produtos proprietários. Qualquer um pode instalar o OpenOffice sem nenhum custo, e sem ter digitar aquele odiável código de autenticidade.

Em vários lugares temos programas parecidos e que estão se curvando aos interesses escusos micro$soft. O governo Kassab fez isso na cidade de São Paulo. Mas eu ainda torço pelo bom senso, e que o treinamento com programas livres e de qualidade voltem à pauta nos centros de inclusão digital. Seja na Bahia, seja aqui em São Paulo.

ps: se você usa uma cópia ilegal do M$ Office: legalize já!