Minha palestra no GAiN

Update: saiu o vídeo: Tendências para o futuro da Web: uma leitura a partir do trabalho do W3C – SAC/GAiN 2014.

Apresentei hoje cedo uma palestra no GAiN, um encontro de profissionais de comunicação e internet da minha igreja. Há um tempo que venho falando às pessoas que trabalham com internet na igreja sobre os padrões do W3C. Mas hoje tive a oportunidade de falar para gente que trabalha com isso de toda a América do Sul, de uma vez.

Muito obrigado aos organizadores pelo convite. Quem quiser conferir minha palestra no GAiN, sobre as tendências para o futuro próximo da web, pode encontrar a apresentação aqui: aqui.

Não sei se minha palestra foi gravada. Se eles publicarem lá, aviso por aqui.

São 0,20 ou não são 0,20, afinal?

Um bocado de gente se mostrou decepcionada ontem com os dois líderes do Movimento Passe Livre que foram ao Roda Viva. Eles afirmaram categoricamente que o ato de ontem é pelos vinte centavos de aumento da passagem. E aí? Tinha uma multidão compartilhando no Facebook que não eram só vinte centavos, que estávamos protestando contra a repressão, a corrupção, as más condições de saúde e educação, os gastos exorbitantes com a Copa do Mundo e “tudo isso que a gente vê todo dia”. Afinal, são só vinte centavos?

Sim, são só vinte centavos

Você acha mesmo que, depois desse levante popular, todos os políticos eleitos do Brasil vão virar santos ou renunciar? Você acha que Haddad e Alckmin vão ceder suas cadeiras? Não, não vão. E você acha mesmo que cem mil pessoas vão sair às ruas para “acabar com a corrupção” até que a corrupção acabe? Digamos que seja uma marcha até que a corrupção acabe, a educação melhore e haja segurança, quando é que você vai se dar por satisfeito e sair das ruas? É claramente inviável que acampemos nas ruas até que haja escolas modelo para todas as crianças, que cada policial tenha salário digno, que cada bandido seja preso, que cada bairro tenha praças arborizadas com playgrounds e que tenhamos ônibus gratuito com ar condicionado para todos. Cada um de nós tem mais o que fazer do que acampar na rua. Não vai rolar.

E nem é bom que role mesmo. Não se constrói uma rede de escolas numa semana. Não há como resolver todos os problemas de São Paulo em um mês, nem em um ano. Você não ficar na rua tanto tempo gritando. Por isso, é bom que quando o povo saia para as ruas, haja uma proposta clara. A proposta, dessa vez, é apenas a revogação do aumento da passagem de ônibus. São sim, os vinte centavos. Se o Haddad e o Alckmin cederem os vinte centavos, podemos sair das ruas, por enquanto, só por enquanto.

Mas e o resto?

"Pela má administração e corrupção generalizada". Ah, tá. E você vai voltar para casa quando?

“Pela má administração e corrupção generalizada”. Ah, tá. E você vai voltar para casa quando?

Vivemos uma crise de representatividade política. Boa parte da população sequer vota, mesmo o voto sendo obrigatório no Brasil. Outra parte tenta organizar protestos de voto nulo ou boicotes à eleição. Ninguém está orgulhoso dos políticos que elegeu e o cidadão que não desistiu tenta, nas eleições, escolher o “menos ruim”. Votar no segundo turno, então, é uma tristeza.

A gente escolhe um representante, e ele esquece que deveria nos representar. Parece que ele passa a achar que tem quatro anos para fazer o que quiser, e volta a falar com o povo só nas próximas eleições. Eles se encafurnam em seu palácios e gabinetes, e deixam de ouvir. Durante as eleições eles estão todo dia na rua, na televisão, no Facebook, no Twitter, nos fazendo acreditar que se importam conosco. Depois da eleição eles somem.

E a gente vive reclamando que ninguém faz nada, que ninguém se importa, que no Brasil é assim mesmo. Um dia como ontem (e como hoje) serve para mostrar quem é o patrão. O patrão é o povo. O governador e o prefeito são nossos empregados, e temos a obrigação de mandar neles. Hoje, a questão é sim sobre a passagem. Mas é também sobre quem é que manda. Se a passagem não abaixar, podemos continuar até abaixar, e podemos fazer mais. Então, cedo ou tarde, vai abaixar. E quando abaixar, teremos mostrado quem é que manda. Isso é que importa. É por isso que o governador pôs a polícia na rua semana passada para descer borracha na galera. Para mostrar quem é que manda.

Governante tem que respeitar o povo, tem que ter medo do povo. Você é o patrão.

E depois que a passagem abaixar?

Rosa Parks lutou por um assento, Gandhi caminhou 400km para produzir sal. Era só um assento. Era só sal. Mas era para mostrar quem manda. Uma vez que você mostrou quem manda, abriu a porta para que mais coisas mudem.

Tem gente perguntando “porque não protestam contra o mensalão, a PEC 37, os gastos com a Copa, etc.”? E tem gente dizendo que está justamente protestando contra essas coisas. A questão é conseguir agora a redução da tarifa, e voltar para casa, com o gosto da vitória, de ter mostrado quem manda. E sair na rua de novo cada vez que um governante sair da linha.

Vão votar a PEC 37. É uma vergonha. A redução da passagem vai mostrar quem manda, e aí você vai poder mandar de novo.

Governantes que ignoram o povo

Obrigado São Paulo, agora vou aproveitar. Daqui a quatro anos eu volto a falar com vocês.

Obrigado São Paulo, agora vou aproveitar. Daqui a quatro anos eu volto a falar com vocês.

Alguma coisa aconteceu do tempo dos caras pintadas para cá. Foi a internet. Os protestos foram organizados pela internet, e ganharam força lá. Qualquer ser humano hoje, que faça qualquer tipo de trabalho que envolva as pessoas, está na internet. O Facebook pode não ser o melhor lugar do mundo para o debate inteligente, mas o povo está lá. Nosso prefeito esteve ativamente interagindo com o povo no Facebook e Twitter (através de acessores, eu sei, e não importa). Durante a campanha. Depois, sumiu.

Por isso a frase do momento é “Fulano não me representa”.

É uma utopia muito grande, eu sei, mas eu imagino o prefeito, da França mesmo onde ele estava semana passada, convocando as pessoas na última quarta para um hangout. Mostrando seus motivos e argumentos, e ouvindo as pessoas. Por que se eu sou empregado e meu patrão está tão furioso comigo a ponto de vir gritar na porta da minha casa, eu vou fazer questão de falar com ele.

O patrão, nesse caso, não aguenta mais. Por isso tanta gente na rua. Pela passagem sim, e para mostrar quem é que manda.

 E as urnas?

Vi também um monte de gente compartilhando uma imagem de uma urna com o texto “proteste aqui, idiota”. Muita gente dizendo “por que não protestam nas eleições”?

Ora, imagine que você é dono de uma lanchonete e combinou com seus funcionários que vai fazer avaliação com eles a cada seis meses. E nesse momento, vai aumentar salários de quem merece, vai conceder promoções, mas vai também dispensar os que não servem. Mas, três meses depois da última avaliação, você descobre desvios de conduta sérios de um funcionário. Ele está usando água da privada para fazer café, xingando as velhinhas que demoram a contar o dinheiro e mordendo o lanche dos clientes que reclamam, na frente deles. Você vai esperar mais três meses até a próxima avaliação?

É a mesma coisa. Eu não votei no Haddad no primeiro turno, no segundo fui obrigado. Não votei no Alckmin. Mas eu acho que mesmo quem votou nesses candidatos tem o direito, e a obrigação, de pras ruas agora. Não vamos achar governantes perfeitos e nossa ação para mantê-los na linha não pode acontecer apenas a cada quatro anos, mas a cada desvio de conduta.

Democracia direta já!

Numa democracia direta, o povo vota não apenas nas pessoas, mas nas decisões. O orçamento da prefeitura é feito com o povo. É o povo que decide se uma avenida será ampliada para carros ou para um corredor de ônibus. É o povo que decide se a verba vai ser destinada a aumentar o salário dos professores ou dos vereadores. Antes da internet, democracia direta era meio inviável para cidades do tamanho de São Paulo. Com a tecnologia que temos hoje, acho que está na hora de começar a pensar no assunto, não?

Também acho que é um longo e difícil caminho de uma estrutura política como a brasileira para uma democracia direta. Alguns vão dizer que é um caminho impossível, eu não acho. Mas não será fácil.

Enquanto isso, vamos fazer democracia direta do nosso jeito. Ao tomar uma decisão, os representantes eleitos do povo precisam ouvi-lo. Os legisladores deveriam estar agora no Facebook, no Twitter, na TV, nas ruas, perguntando a você, o patrão, o que você acha da PEC 37. Se não estão ouvindo, vamos fazê-los ouvir.

Sampa JS, recomendo

Alguém me perguntou há pouco o que eu acho do Sampa JS, por que eu não vou, por que eu não apoio o evento e etc. Resolvi responder por aqui, já que talvez mais alguém pode ter essa dúvida (se é que isso importa para alguém, né?)

Vamos lá, assunto pessoal: eu sou adventista do sétimo dia, por isso dedico o sábado a atividades não-profissionais: tempo com a família, trabalho voluntário de ajuda aos necessitados, estudo da Bíblia e oração. Por isso, não tenho ido a boa parte dos eventos de nossa área. A maioria acontece aos sábados. Em alguns outros, como o excelente Tableless Conf, eu simplesmente não consegui agenda para ir (ando trabalhando demais.)

Então, para quem estava curioso, é só isso.

Aliás, eu recomendo muitíssimo o Sampa JS, se você puder ir. Parece que vai ser um evento e tanto!

Pare, pense, e faça alguma coisa!

Este é um blog sobre tecnologia e desenvolvimento, e eu tenho sido muito criterioso em evitar posts sobre outros assuntos. Mas dessa vez eu não me aguentei. Hoje li esses posts:

Se você ainda não os leu, por favor, leia agora. Depois você volta aqui e continua a ler o meu.

Não levou a sério? Cara, vai lá, lê os dois posts, você vai perder um minutinho só em cada um. Vale a pena.

Leu? Bom queria falar de 3 assuntos: carros, bicicletas e trabalho.

O primeiro texto é sobre carros. Os outros dois sairão nos próximos domingos.

Tenho um sedã popular. Comprei novo, há três anos. Está na hora de trocar. Não amo meu carro, embora goste muito do conforto e comodidade que ele traz a minha família. Já me disseram para trocar meu carro por um “melhor”, mas “melhor”, nesse caso, significa mais caro, mais imponente ou maior. Nenhum desses três adjetivos significa melhor para mim. Não é raro que eu deixe o carro na garagem e vá de transporte público a alguma reunião. Não é raro também, ver nas pessoas cara de espanto ao saber que eu cheguei até ali sem um carro. “Está tudo bem? Quer uma carona? O que houve com seu carro?” São as reações mais comuns.

Por quê? Claro, por uma série de motivos, incluindo o fato de que tem muita gente que realmente te julga pelo carro em que você anda. Mas há um outro motivo, que talvez seja mais doloroso: não ter um carro, em São Paulo, é muito ruim. Dependendo do seu caminho, andar de transporte público é desumano.

Fiz uma experiência simples. Escolhi quatro shopping centers, cada um em uma zona da cidade, e tracei as rotas no Google Maps da minha casa até lá agora:

Lugar de carro de transporte público
Zona Oeste 0:23 1:25
Zona Leste 0:30 1:20
Zona Norte 0:23 1:20
Zona Sul 0:33 1:10

Está certo, é domingo. Se seu trajeto puder ser feito de Metrô e for hora do rush, o carro perde feio. Dependendo do trajeto, é melhor até ir andando a pé pela rua do que de carro. Você olhou bem para a tabela acima? Se eu for a um shopping agora com minha família, de carro, em qualquer lugar da cidade vou gastar cerca de uma hora em deslocamento, ida e volta. Se formos de transporte público, levarei duas horas e meia, se der sorte.

Qual o resultado disso? Simples, quem puder vai andar de carro, sempre que puder. O jovem de classe baixa arruma o primeiro emprego e começa a se planejar para comprar um carro, para se livrar do ônibus, mesmo que o carro custe mais de um ano de salário. São Paulo tem 11 milhões de habitantes e 6 milhões de carros. Não cabem 6 milhões de carros nas ruas.

A matemática é simples. São Paulo tem cerca de 14 mil quilômetros de ruas e avenidas. Se todos os 6 milhões de veículos da cidade forem colocados em fila, encostados um no outro, a fila terá quase 27 mil quilômetros. Mesmo a cidade tendo centenas de avenidas com várias pistas, é fácil ver o que acontece.

A solução não é fazer mais avenidas. Nosso modelo de cidade feliz não pode ser um lugar onde todos tenham bons carros e possam dirigi-los livremente. Não porque eu ache que pessoas de determinada classe social, cor da pele, religião ou time de futebol não mereçam ter um bonito SUV de oito lugares. Simplesmente não cabe, não há espaço para isso. Nós precisamos de outro modelo de felicidade. Precisamos de uma cidade em que sair de carro seja apenas uma das boas opções.

Enquanto continuarmos achando que quem tem um carro é mais importante do que quem anda à pé, deixando de dar preferência ao mais frágil no trânsito, xingando o sujeito que teve a coragem de fazer alguma coisa ao deixar o carro em casa e sair de bicicleta, buzinando para o motorista que parou antes de uma esquina para o pedestre passar, vamos estar transmitindo uma mensagem a toda a sociedade: importante é quem tem carro. Nossas crianças estão ouvindo a mensagem. Nossos governantes também.

Isso tem muito a ver com você, que não sairia de casa sem carro nem que estivesse em Londres. Não estou dizendo que você precisa deixar de andar de carro, que isso é crime. O que estou dizendo é que, se você não quer ser obrigado a deixar o carro em casa, você precisa parar de pensar em avenidas e viadutos, e começar a pensar em tornar a cidade boa para todos. Ao votar, ao escrever, ao conversar, você deveria fazer o que estiver ao seu alcance para que São Paulo tenha transporte público excepcional, e que andar a pé, de bicicleta, de moto ou de Pogobol seja maravilhoso. É o único jeito de cabermos todos aqui.

Papo de Maluco

Hoje estava brincando com Requests e tive essa ideia maluca:

import requests
import re

def Ed(text):
params=dict(server=’0.0.0.0:8085′,charset_post=’utf-8′,
charset=’utf-8′,pure=1,js=0,tst=1,msg=text)
return re.sub(‘<[^>]*>’,”,re.sub(r’\n+$’,”,
requests.get(‘http://www.ed.conpet.gov.br/mod_perl/bot_gateway.cgi’,
params=params).text))

def SeteZoom(text):
params=dict(server=’127.0.0.1:8088′,pure=1,js=0,tst=1,msg=text)
return re.sub(r’\n+$’,”,
requests.get(‘http://bot.insite.com.br/cgi-bin/bot_gateway.cgi’,
params=params).text)

msg=’Oi!’
while True:
print ‘SeteZoom: %s’ % msg
msg=Ed(msg)
print ‘Ed: %s’ % msg
msg=SeteZoom(msg)

Teste aí, o resultado às vezes é mais inteligente que muito chat entre seres humanos por aí…

Cowsay: a vaquinha falante do Linux

Teste aí:

sudo apt-get install cowsay

Depois rode:

cowsay Funciona...

O cowsay também pode receber texto na entrada padrão:

date|cowsay

Isso permite usos razoavelmente criativos:

lynx --dump http://news.google.com.br | grep "^\[" | grep -v "»" \
| sed -e "s/.*\]//g" | sort -R | head -n 1|cowsay

Você pode colocar seu Ubuntu para te dar uma dica de Linux toda vez que você abre o terminal, assim:

sudo apt-get install fortunes-ubuntu-server

Depois edite o arquivo ~/.bashrc e inclua no final:

fortune|cowsay

E pronto! Cada vez que você abrir um terminal vai receber uma dica de Ubuntu.

Números bem torturados

Dizem que Delfim Neto dizia que números, quando bem torturados, são capazes de confessar qualquer coisa. Eu concordo. Sempre que você ouvir números impressionantes gaste algum tempo pensando, aplique um pouco de matemática básica e duvide um pouco do que você ouviu.

Vi no Facebook hoje o pessoal compartilhando esse artigo:

Paulistas compram mais carros por hora do que roraimenses o mês todo

O artigo destaca o fato de que “São Paulo vendeu em agosto o dobro do segundo colocado e 212 vezes mais do que Roraima, o último do ranking”, dando a impressão ao leitor de que isso é reflexo de uma tremenda desigualdade social.

Acontece que a população de São Paulo é maior que o dobro que a de Minas Gerais, segundo colocado no ranking de venda de carros. Assim, per-capita, o mineiro comprou quase a mesma quantidade de carro que o paulista em agosto.

Veja, para cada dez mil habitantes em São Paulo foram vendidos 28 veículos, e em Minas 26. E quanto a Roraima? Bem, as diferenças sociais são gritantes. Mas o artigo coloca as coisas assim:

São Paulo vende por hora 621 unidades, mais do que Roraima vende por mês: 538.

Olhando assim, parece que o paulista ganha dezenas de vezes mais dinheiro que o roraimense. Mas em Roraima, para cada dez mil habitantes, foram vendidos 11 carros. Ainda uma desigualdade, claro, mas não de dezenas de vezes, não é?

Em tempo: antes que os comentários enveredem por esse assunto, eu concordo que nossas cidades precisam de menos carros e mais bicicletas/metrôs/corredores de ônibus/trabalho remoto. Mas o fato de isso ser uma boa causa não nos dá o direito de fazer esses absurdos com os números, não é?

Assalto

Na última quinta-feira, indo para casa, fui assaltado. Havia deixado o Peka e o Hugo em casa, e estávamos eu a Dani no carro. Levaram meu computador, um Mac que eu estava usando para desenvolver um projeto, meu iPad e meu celular. Da Dani levaram computador, celular, documentos e dinheiro.

Passado o susto, fui na quinta à noite mesmo comprar um computador para repor o que haviam levado. É minha ferramenta de trabalho, não posso ficar sem. Comprei um Vaio VPCSB25FB, instalei Xubuntu 11.10, a passei a sexta-feira e o domingo colocando as coisas no lugar nele e num Mac Mini que eu já tinha e vou usar no lugar do que levaram.

Algumas lições:

  1. Criptografe sua pasta pessoal: dormi mais tranquilo sabendo que a minha estava criptografada.
  2. Cloud rulez: meus contatos, agenda e e-mails estão no Google. No dia seguinte, mesmo sem meu celular, consegui conferir meus compromissos e ligar para quem eu precisei. Meus projetos estão todos no Git e os arquivos pessoais todos no Dropbox. Perdi no total uns quatro dias de trabalho, a maior parte desse tempo reconfigurando as coisas.
  3. Tenha seguro: eu não tinha seguro das minhas coisas. Quando procurei, me pareceu muito caro. Quando levaram minhas coisas, comecei a achar o seguro barato.
  4. Tenha backup: tenho uma conta Pro 100 no Dropbox. Custa 20 dólares por mês. É barato.

É isso. Passou o susto. Vamos trabalhar bastante agora, pra pagar as coisas novas.

Update: excelente post do Maudy Pedrão: Instale o PREY no Ubuntu e não perca de vista o seu notebook.

Palestra Diferente

Muitas vezes eu usei esse espaço para convidá-los a assistir palestras minhas em hotéis, teatros, faculdades e outros auditórios Brasil a fora, falando das mais diversas facetas do desenvolvimento web. Desta vez, quero convidá-lo para me ver numa palestra diferente:

A Presciência da Bíblia no livro de Daniel

Esqueça as baboseiras que você recebeu por e-mail sobre Nostradamus e o 11 de Setembro. Estamos falando de algo concreto aqui, de um livro escrito há 2.500 que prediz, de maneira praticamente inequívoca, séculos de acontecimentos históricos. Vamos analisar as evidências históricas e você vai entender porque eu, que era cético, passei a acreditar na Bíblia.

Onde:
No auditório da Igreja Adventista do Sétimo Dia de Americanópolis.
Rua Austrália, 230, São Paulo
A dez minutos do metrô Jabaquara.
mapa
Quando?
Amanhã, 23/01/2011, às 19h
Quanto?
Grátis

Vou usar como argumentos, ao invés de dogmas e imposições, a lógica e um pouco de matemática aliadas aos fatos históricos. Ao final, me diga o que achou.

.

utf8_decode em Javascript

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))
}

Porque meu GPS não fala com a web?

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?

A alegria do nerd

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.

Information Overload

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.

Resolvendo equações do segundo grau com Python

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.

Integrando o Vim com ferramentas externas

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.

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

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.

Eu no [o – ] taligado, sobre startups

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!

Blogroll

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!