utf8_decode em Javascript

On 1 de março de 2010, in Geral, by elcio

Navegando por aí, acabei esbarrando no blog do meu amigo Marcos Rossow (nossa, quanto tempo!)

E encontrei esse post: JavaScript UTF-8 Decode, com um código tirado daqui: JavaScript utf8_decode.

Tem duas coisas que me incomodam nessa abordagem. A primeira é essa mania que muita gente tem, particularmente programadores PHP, de tratar UTF-8 como um “código alienígena” e ISO-8859-1 como normal e padrão. Alô, ISO-8859-1 é usado por parte do mundo. Não dá para escrever hebraico, mandarim, japonês, árabe ou russo com isso. ISO-8859-1 é uma das diversas tabelas de caracteres que existem mundo afora. E Unicode é a única maneira sensata de escrever um sistema que possa ser usado aqui e na China.

A segunda coisa que me incomoda é a quantidade de código. Não testei profundamente, mas tenho a impressão de que o código abaixo resolve o problema:

function utf8_decode(t){
  return decodeURIComponent(escape(t))
}
Tagged with:
 

Porque meu GPS não fala com a web?

On 11 de janeiro de 2010, in Sem categoria, by elcio

Passei a última semana no IPAE, aqui. É o colégio em que fiz o segundo grau (faz tempo!), um lugar fantástico, ao pé de uma montanha, região com paisagens inacreditáveis. Me hospedei no colégio com minha família, para matar saudades, e todos os dias saíamos para visitar algum lugar em Petrópolis ou Teresópolis.

Há catorze anos, quando estudei lá, telefonava para minha família uma vez por semana apenas, pois os interurbanos eram muito caros. Dessa vez, estava conectado via rede 3G o tempo todo. O mundo mudou muito rápido em catorze anos. Ponto para o 3G da Claro, que funcionou em todo lugar onde fui, inclusive em todo o trajeto paulista (Dutra, Carvalho Pinto, Ayrton Senna) e em boa parte do estado do Rio de Janeiro. Na região de Itatiaia virou 2G, mas continuou funcionando.

Antes de sair para viajar, usávamos o Google Maps e a Wikimapia para encontrar os pontos de interesse. O problema? Depois de encontrar o ponto de interesse, meu sobrinho tinha que digitar os endereços no GPS para obter a rota. E quando o ponto de interesse ficava no meio de uma estrada, o jeito era navegar à mão no GPS até o lugar, arrastando o mapa para cá e para lá.

Será que só eu sofri com isso? Vocês, meus bem informados leitores, conhecem algum aparelho de GPS que fale com a web, através de alguma integração maluca? O ideal seria GPRS. Seria muito interessante se, enquanto estou dirigindo, um passageiro pudesse pegar o GPS e ver a navegação acontecendo sobre a Wikimapia, por exemplo. Alguém já viu isso? Alguma idéia de como fazer?

Tagged with:
 

Ubuntu 9.10 boota rápido!

On 8 de novembro de 2009, in Sem categoria, by elcio

Só para deixar registrado: instalei o novo Ubuntu 9.10, Karmic Koala. Tenho um LG R405. Funcionou tudo de primeira, sem configurações esotéricas em arquivos texto misteriosos.

Boota rápido. Boota muito rápido. Estou feliz ;-)

[update 1] Olha que legal: qual o boot mais rápido – vídeo comparativo de boot entre o Karmic, o Jaunty, o Vista e o Seven. [/update 1]

Tagged with:
 

A alegria do nerd

On 10 de dezembro de 2008, in Sem categoria, by elcio

Cheguei mais cedo que o resto da galera ao escritório hoje. O que significa que ainda não tinha ninguém fazendo downloads, acessando o servidor de desenvolvimento, lendo e-mails e etc. Bom, o Mike estava aqui já, mas estava escrevendo CSS, então não conta.

Li a notícia a respeito do Google nativeclient e resolvi baixar para testar. E olha só:

Donwload rápido na Visie

Só queria compartilhar. É muito fácil fazer um nerd feliz, só precisa de wifi rápido e uma tomada de três pinos.

Tagged with:
 

Information Overload

On 13 de outubro de 2008, in Geral, by elcio

Reduzi o número de feeds que eu assino de mais de 200 para menos de 40, em seguida cliquei no “marcar tudo como lido”. Saí de todas as listas de discussão. Coloquei a TwitterFox e a Gmail Manager para pegar novas mensagens a cada 30 minutos. E fechei o PidGin.

O objetivo é me tornar mais produtivo. Vou passar uma semana assim. Será que vou sobreviver? No final da semana eu conto a vocês como foi.

Tagged with:
 

Resolvendo equações do segundo grau com Python

On 14 de agosto de 2008, in Sem categoria, by elcio

Meu amigo Vicente Marçal me escreveu:

Bem, sei que és professor de Python, além de amante da linguagem e, por isso, acabei fazendo pesquisas sobre ela e estou estudando por conta, mais por hobby do que por qualquer outra coisa. Então, num tempinho livre que vc tiver, avalie esse meu pequeno script o qual disponibilizei na comunidade Viva o Linux:
http://www.vivaolinux.com.br/script/Raizes-de-Funcao-Quadratica, ele é bem simples, mas gostaria muito de sua opinião a respeito.

Eu respondi, e pedi a ele autorização para publicar minha resposta aqui. Como ele autorizou, lá vai. Vamos começar pelo arquivo, baskara.py:

# -*- encoding: utf-8 -*-
'''
Funções matemáticas para equações do segundo grau.
'''
from math import sqrt
 
def baskara(a,b,c):
  '''
  Função que fornece as raízes de uma equação do segundo grau.
  No caso de não haver raízes, retorna uma tupla vazia.
  Exemplos:
  >>> baskara(1,5,4)
  (-1.0, -4.0)
  >>> baskara(1,4,4)
  (-2.0,)
  >>> baskara(4,4,4)
  ()
  >>> baskara(0,4,2) # se a é zero, temos uma equação do primeiro grau
  (-0.5,)
  '''
  a,b,c=float(a),float(b),float(c)
  if(a==0):return (-c/b,)
  delta=b**2-4*a*c
  if delta<0:return ()
  if delta==0:return (-b/(2*a),)
  return ((-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a))
 
if __name__=="__main__":
  # Se rodou o arquivo diretamente, sem importar, roda os testes.
  import doctest
  doctest.testmod()

 

E meus comentários:

Cara, para que tanto underline? O underline no python indica que algo é especial. Underlines no começo indicam algo privado, em que você não deve mexer. No começo e no fim, indicam um nome especial, criado pela linguagem. No caso de sua função, não há necessidade de underline em nada, nem no nome da função, nem nos parâmetros.

Segue anexa minha implementação. Os pontos a notar:

1. Docstring. Aquele formato de comentários que eu estou usando serve para que o Python entenda que eles são documentação. Coloque meu arquivo em algum lugar em sua máquina, rode o Python e execute:

import baskara
help(baskara)

Você vai entender.

2. Doctest. Se você reparar, na docstring da função há um trecho de exemplo que parece uma sessão do shell interativo. Está lá assim de propósito. Esperimente quebrar a função. Por exemplo, modifique a linha que calcula o delta, trocando o número 2 por 3. Em seguida execute:

python baskara.py

Ele vai rodar os testes automáticos. Você deve ver três erros.

E é isso aí, boa sorte com o Python, é uma linguagem que vale a pena estudar.

Tagged with:
 

Integrando o Vim com ferramentas externas

On 8 de julho de 2008, in Sem categoria, by elcio

Depois que comecei a usar o Vim nas palestras em que eu escrevo código, muita gente começou a me escrever com dúvidas sobre o editorzinho. Apesar de eu dizer nas palestras que Vim é complicado, parece que o pessoal não tem medo. E a dúvida mais freqüente é sobre a integração entre o Vim e ferramentas externas, principalmente o txt2tags.

Faz parte da filosofia Unix que um programa seja facilmente integrado a outros através de interfaces de texto, e o Vim implementa isso muito bem. Para começar, abra o Vim e execute:

:!ls

Você vai ver que o Vim vai executar o comando ls. Então guarde isso, o sinal de exclamação (!) executa comandos externos. Há duas maneiras de fazer o Vim falar com esses comandos. A primeira é mandar o Vim ler a entrada do comando. Digite:

:r!ls

Você vai notar que o Vim vai executar o comando ls e colocar o conteúdo no buffer de edição. A outra maneira de fazer o Vim falar com os programas externos é selecionar texto. Aperte i para ir para o modo de edição e digite:

zebra
tesoura
banana
macaco
felicidade
abacate

Ao terminar de digitar, pressione ESC para voltar ao modo de comando, em seguida SHIFT+V para ir para o modo de seleção de linha e selecione todo o bloco. Com o bloco selecionado, digite:

:!sort

O vim vai colocar, antes do comando, os sinais de seleção ‘<,'>. Não se preocupe, apenas digite o comando e aperte ENTER. Você vai ver que o Vim vai executar o comando sort do sistema operacional, passando como entrada o texto selecionado, e vai substituir esse texto pela saída do comando. Isso, ao final, vai te dar a lista ordenada, assim:

abacate
banana
felicidade
macaco
tesoura
zebra

Usando essa interface simples você pode fazer o Vim falar com qualquer programa Unix.

txt2tags

O programa que eu tenho usado durante as palestras e mais tem deixado as pessoas curiosas é o txt2tags, desenvolvido pelo Aurélio Marinho. O programa está nos repositórios do Debian, então se você usa Debian ou Ubuntu, pode instalá-lo com o comando:

sudo apt-get install txt2tags

O txt2tags lê as primeiras linhas de texto que recebe como títulos do documento. Além disso, precisaremos de várias opções de linha de comando, o que não é conveniente de se digitar. Então vamos criar um shell script para guardar essas opções e fornecer ao txt2tags linhas de cabeçalho de mentirinha. Eu criei um arquivo chamado tags dentro do diretório /usr/local/bin, com permissão de execução (chmod +x) e o seguinte conteúdo:

#!/bin/bash
(echo "
 
 
 
 
 
" && cat ) | txt2tags -t xhtml --infile=- --no-headers

Em seguida, basta abrir o Vim e digitar, por exemplo:

= Aprenda Online =
A [Visie http://visie.com.br/] oferece cursos de Ajax, Javascript e Tableless.

Em seguida selecione essas duas linhas e execute:

:!tags

Pronto, HTML instantâneo.

Tagged with:
 

Aconteceu comigo: eu faço parte da revolução

On 25 de maio de 2008, in Geral, by elcio

Na última quinta-feira preparamos uma edição especial do Workshop de Produtividade apenas para convidados. Acontece que, por “motivo de força maior”, um bom grupo de convidados não pode vir. Tínhamos então o dilema de fazer o evento com poucas pessoas.

Naquela manhã o Diego ficou sabendo, no twitter, que o Marco Gomes estava transmitindo o pessoal da boo-box jogando Wii. Logo ele teve a idéia de transmitir o evento.

O resultado me surpreendeu. Embora fosse de graça, era um evento em horário comercial, não teve nenhuma divulgação e foi anunciado na hora do evento. Achei que ninguém ia conseguir se agendar para assistir, mas tivemos uma média de 30 participantes, com alguns períodos com mais de 50. Os vídeos estão disponíveis para quem quiser conferir.

A cada dia mais me convenço de que isso tudo é uma revolução. Não estamos apenas fazendo melhor as mesmas coisas de antes, estamos fazendo coisas que antes não eram possíveis. Ouse, se arrisque, não tenha medo. Você corre o risco de as coisas darem certo.

Tagged with:
 

Divirta-se: Puzzles do Wendel

On 23 de janeiro de 2008, in Sem categoria, by elcio

Exercício de lógica. Esses Puzzles do Wendel me fizeram perder um tempão! Boa diversão, depois conte para a gente aqui nos comentários até onde você foi. IMPORTANTE: não escreva as respostas, senão você estraga a brincadeira dos outros.

Tagged with:
 

Eu no [o - ] taligado, sobre startups

On 30 de novembro de 2007, in Sem categoria, by elcio

Logo que saiu o piloto do [o - ] taligado, eu publiquei aqui meus elogios. E não é que o Marco Gomes me convidou para participar da primeira edição? Está no ar: Edição 01, sobre Startups, com esse vosso humilde servo.

Eu, descaradamente, aproveitei a oportunidade para perguntar para o Marco e o Gilberto tudo aquilo que eu tinha vontade de saber ;-)

E me diverti um bocado!

Tagged with:
 

Blogroll

On 15 de outubro de 2007, in Geral, by elcio

Eu tinha uma idéia a respeito de blogrolls que eu não costumava compartilhar: a de que eles fogem aos objetivos do site. Pensava que o sujeito chega a um site procurando pelo bom conteúdo que há ali, ou porque assina o RSS[bb], logo não vai ver o blogroll, ou porque estava procurando algo no Google e, chegando com um objetivo específico, não vai clicar a esmo em qualquer link que achar bonito. Não costumava compartilhar essa idéia porque era só um palpite, eu não tinha nenhuma certeza disso.

Bom, mudei de idéia. Tenho clicado em tantos links legais em blogrolls por aí, e descoberto tanta coisa interessante, que fui convencido da utilidade disso. Então agora temos um blogroll. Está em ordem randômica, pois foi o jeito mais justo. Só links em português, para que todos possam aproveitar. Boa leitura!

Tagged with:
 

Não costumo fazer link assim, só linkando, sem comentar nada, mas essa notícia merece a visibilidade que puder ser conquistada:

Telefonica Deixa de Exigir Assinatura de Provedor para Speedy

Tagged with:
 

Spesa, desisti logo de cara

On 21 de setembro de 2007, in Geral, by elcio

Acabo de me cadastrar no Spesa. O Spesa é um gerenciador de finanças pessoais[bb] online. Você controla seu fluxo de caixa, anota cada movimento e sabe exatamente para onde foi o seu dinheiro. O aplicativo parece muito bem desenvolvido, a interface é agradável e fácil de usar, e a idéia é genial.

Não me cadastrei para avaliar o produto, mas porque tenho interesse em usá-lo mesmo. Todas as boas opções que eu conheço para fazer a mesma coisa não são online. Planilhinha no Google Docs? Esquece!

Bom, fiz o cadastro inicial, ativei minha conta e fiz meu primeiro acesso. A primeira tela a ser apresentada é essa:

spesa.png

Legal, você começa a usar o aplicativo indicando seu saldo inicial. O problema é que eu tenho mais de uma conta bancária. Coloquei zero de saldo só para poder passar para a próxima tela e constatei o que eu temia: se você tem mais de uma conta, o Spesa é inútil.

Uma pena, espero que eles ofereçam uma maneira de gerenciar mais de uma conta logo, porque eu realmente preciso de um serviço desses.

Tagged with:
 

Vá de Metrô

On 28 de agosto de 2007, in Geral, by elcio

Site novo: vademetro.com.br. De um aluno da Visie, Thomas Pomerancblum, o site é um excelente auxílio tanto para quem é de São Paulo[bb] e está procurando por alguma coisa perto do metrô quanto para quem chega de outras cidades e tem que se virar no metrô de São Paulo.

O Thomas citou o meu mini guia para o Metrô no blog do Vá de Metrô. Modéstia dele. O Vá de Metrô substitui com vantagens meu pequeno guia.

Ao encontrar um lugar você pode ver um roteirinho das estações, mostrando como chegar da estação onde você está, e um mapinha do Google Maps[bb] com o lugar onde você vai e a estação do Metrô mais próxima, para o trecho a pé. O projeto está começando, mas já é bastante útil. Acredito que eles vão apreciar bastante suas sugestões. Olha a Visie lá.

Tagged with:
 

Calcule o poder de sua identidade online

On 9 de julho de 2007, in Geral, by elcio

Online Identity Calculator (beta)

Este site promete, através de um cálculo simples, mostrar se seus resultados no Google[bb] estão adequados aos seus objetivos profissionais. Uma maneira no mínimo curiosa de avaliar seu “marketing pessoal online”. Meu resultado:

Your online identity score is 9 out of a possible score of 10.
Congratulations. You are digitally distinct. This is the nirvana of online identity. Keep up the good work, and remember that your Google results can change as fast as the weather in New England.

Tagged with:
 

Otimização para Buscadores: "Voe Gol" e o Submarino.

On 9 de julho de 2007, in Sem categoria, by elcio

Algumas das frases de busca que mais traziam gente a este site eram:

  1. Voe Gol
  2. voegol
  3. voe-gol

Desde que eu escrevi o artigo VoeGol se você conseguir, choveram paraquedistas neste blog. Gente que encontrava meu artigo procurando por voe gol no Google, geralmente associando com palavras como:

  1. passagem
  2. viagem
  3. avião
  4. promoção

E mesmo gente que chegou buscando frases engraçadas, como: “eu quero ir para porto seguro de avião pela gol” (o buscador é praticamente um gênio da lâmpada!)

Pois não é que os visitantes desse artigo simplesmente desapareceram? O número de gente que chegou por essa busca diminui dez vezes no último mês. Fiz uma busca por “voe gol” e descobri porquê. Minha página era a segunda, logo depois da página da própria Gol nessa busca. Agora não é mais. Isso mostra como é importante estar acima da dobra. Aquela posição, entre o segundo e o terceiro, significa uma diferença de cliques na ordem de dez vezes.

Essa página do Submarino é a segunda colocada hoje. Pois bem, veja esse trecho da página:

Aqui você encontra: Gol, Voegol, Voe Gol, Gol Linhas Aereas, www.voegol.com.br, Linhas Aéreas Gol, Gol Passagens Aereas, Gol Passagens, Gol Linhas, Voegol com br, Gol Aerea, Site da Gol, Empresa Aerea Gol, Gol Passagens Aéreas. Pode Imaginar. Sua Viagem começa aqui!

Este texto, naturalmente, foi escrito para o buscador. Talvez eles tenham chegado à conclusão de que o único usuário que de fato lê seus textos é o Google, e resolveram escrever só para ele mesmo. Já tinha visto muitos sites assim, mas geralmente feitos por pessoas físicas ou empresas minúsculas. O fato de o Submarino estar adotando esse tipo de SEO diz alguma coisa? O que você acha[bb]?

Tagged with:
 

9° ELPI em São Paulo

On 12 de junho de 2007, in Geral, by elcio

Você, que não sai de casa sem dar uma lida em seus feeds, não se esqueça de levar uma extensão a minha palestra no 9° Encontro Locaweb de Profissionais de Internet hoje. Será no Teatro Frei Caneca e, desta vez, infelizmente, não haverão inscrições no local. Então, se você não se inscreveu com antecedência, só ano que vem…

Ah, eu devolvo a extensão ao final, prometo.

Tagged with:
 

Microsoft, Google e o poder da massa crítica

On 4 de junho de 2007, in Geral, by elcio

Está todo mundo por aí falando sobre:

  • Microsoft Surface, um computador-mesa realmente impressionante. Entre no site e veja alguns dos videozinhos que você vai entender.
  • Google Gears, uma extensão para Firefox/Internet Explorer que permite ao desenvolvedor web guardar dados locais, na máquina do usuário.
  • O Orkut agora permite que você cadastre feeds em seu perfil.

Quando olhei cada um desses lançamentos, tive a mesma reação: “Ah, grande coisa!”

Nenhuma dessas idéias é nova ou revolucionária. Começando pelo Surface, é uma coleção de idéias velhas. Já vimos parte delas implementada no iPhone e na maneira como o sujeito pode usar os dedos nele. A idéia de colocar um computador numa mesa ou permitir seu uso por mais de uma pessoa também não é nova. E a maquininha da Microsoft está saindo por 10 mil. Dólares.

O Google Gears merece um pouquinho de explicação antes de dizer que a idéia não é nova. O Gears tem três componentes importantes. O primeiro é um tipo de servidor proxy com cache local. É um pouquinho mais do que isso, mas no fim permite a uma aplicação web responder dados ao usuário uma única vez, e ele terá esses dados em sua própria máquina a partir daí. O segundo é um banco de dados local, que permite a uma aplicação web, por exemplo, funcionar offline. O terceiro é um mecanismo para fazer com que seus scripts possam ser executados em segundo plano, sem congelar o navegador. De verdade? Isso não é nem tão novo, nem tão revolucionário assim. Para o sujeito que está desenvolvendo um Gmail, pode fazer diferença. Mas para pequenas aplicações, ou mesmo as medianas, dessas que a gente desenvolve todo dia, tudo poderia ser resolvido com cookies e um pouquinho de inteligência, sem demandar a instalação de um plugin.

Por fim, os feeds no Orkut. Aqui a experiência de quem esperava algo realmente novo pode ser decepcionante. Leia os comentários do Charles Pilger sobre o assunto, por exemplo.

Apesar disso, há algo que pode realmente fazer diferença nesse tipo de produto: massa crítica, quantidade de usuários, visibilidade. O Surface pode mostrar ao mundo a idéia nova. Talvez eu nunca venha a ter um Microsoft Surface, mas quem sabe eu daqui a algum tempo comecem a vender o XingLing Surface, o Itautec Surface ou o Positivo Surface? Tenho perguntado ao auditório, nos Encontros Locaweb, quem usa leitores de feeds e quem fornece RSS de qualquer maneira. Num público de desenvolvedores, o número de pessoas que levantam suas mãos é assombrosamente baixo. Imagino que entre os seres humanos comuns este números deve ser ainda menor. Feeds no Orkut podem ser um excelente recurso educativo. Isso pode fazer muita gente descobrir o RSS.

Em relação ao Gears, assim como em relação ao Silverlight, que não está na lista acima porque já tem um tempo, acontece algo curioso. Quem teria coragem de apostar hoje numa tecnologia que exige a instalação de um plugin para que seu site seja usado? Se fosse qualquer empresa pequena que estivesse lançando um desses produtos, ele logo seria descartado como algo ridículo. Mas todo mundo tem suas em relação ao poder de empresas como a Microsoft ou o Google de fazer com que as pessoas instalem algo em suas máquinas.

Em suma, quando você tem metade da Internet usando seus produtos, as regras podem ser diferentes para você. E quando você lança um Google Notebook ou um Zune, as pessoas parecem se esquecer muito rápido que você fracassou.

Em relação ao fato de não haver nenhuma novidade nesses produtos, vale lembrar o que diz o Getting Real: uma boa idéia não vale quase nada, o que vale mesmo é uma boa execução. Embora o Surface não seja novo, parece pelos vídeos que foi executado de maneira exímia.

E, claro, a história dos computadores mostra que nem sempre os melhores vencem. Nada de certezas, por enquanto.

Links interessantes:

Tagged with:
 

ELPI Rio em algumas horas

On 29 de maio de 2007, in Geral, by elcio

Começa dentro de algumas horas o Encontro Locaweb de Profissionais de Internet no Rio de Janeiro. Você que não consegue sair de casa sem primeiro ler seus feeds, não se esqueça de levar uma extensão para a minha palestra. Eu devolvo ao final, prometo.

Tagged with:
 

xSpec, o emulador de Sinclair ZX Spectrum

On 16 de maio de 2007, in Sem categoria, by elcio

Para os que gostam da história da informática: o primeiro computador em que eu programei na vida foi um Sinclair ZX Spectrum, que aqui no Brasil se chamava TK-90X. Pois não é que o saudoso micrinho fez 25 anos mês passado?

Baixei nos repositórios do Ubuntu o xspec, um emulador de Spectrum, para ver se eu ainda sabia alguma coisa de BASIC, e fiz um videozinho para que os mais novos nesse negócio possam ver um pouquinho de como foi o início da programação em microcomputadores:

Ah, que saudades!

Tagged with: