Criei agora um pequeno script para resolver um problema meu, um exportador de base de dados MySQL para arquivos CSV. Resolvi compartilhar: MySQL2CSV Para baixar, você vai precisar do git. No Ubuntu, para instalar, faça: $ sudo apt-get install git-core Depois, para baixar: $ git clone git@github.com:elcio/mysql2csv.git Isso vai criar a pasta mysql2csv, com o…
Código simples, mas que pode ser útil para alguém não ter que escrevê-lo de novo (arquivo runcached.py): import os,time cachepath=’cache’ timeout=360 def runcached(cmd): filename=os.path.join(cachepath,str(hash(cmd))) if os.path.isfile(filename): if time.time()-os.path.getmtime(filename)<timeout: return open(filename).read() t=os.popen(cmd).read() open(filename,’w’).write(t) return t A função runcached roda comandos do sistema operacional, e faz…
Não a versão do repositório, mas a mais nova. Só a sequência de comandos, que eu estou com pressa agora: sudo apt-get install build-essential erlang libicu38 libicu-dev libmozjs-dev automake autoconf libtool help2man libcurl-ocaml-dev subversion python-setuptools mkdir ~/src cd ~/src svn co http://svn.apache.org/repos/asf/couchdb/trunk couchdb cd couchdb ./bootstrap && ./configure && make && sudo make install sudo…
Resolvi experimentar um pouco a Twitter API. É linda, do jeito que toda API deveria ser. É REST, muito fácil de entender e colocar para funcionar, e devolve dados em XML, JSON, RSS e ATOM. Essa simplicidade permite interagir com a API usando ferramentas simples da linha de comando do Unix, como o wget e…
Abri o OpenOffice Writer, mandei gravar uma macro, escrevi “teste”, selecionei e pintei de vermelho. Olha o código gerado: sub Main rem ———————————————————————- rem define variables dim document as object dim dispatcher as object rem ———————————————————————- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”) rem ———————————————————————- dim args1(0) as new com.sun.star.beans.PropertyValue…
Um amigo me escreveu agora para mostrar algo muito curioso. Abra sua Firebug, ou qualquer outro lugar onde você roda Javascript, e teste: new Date(2008,8,11) Você deve ter como retorno um objeto de data, que se impresso mostra: Thu Sep 11 2008 00:00:00 GMT-0300 (BRT) Porque setembro e não agosto, você pode se perguntar. É…
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…
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…
Algumas pessoas têm me escrito perguntando como extender o validador de formulários universal que publiquei há algum tempo. O manual do programador é um excelente recurso para isso. Mas você que é de São Paulo, tem a oportunidade de ver tudo funcionando ao vivo. Nessa quinta-feira, na palestra “Formulários Definitivos“, vou construir um validador igualzinho…
No Greg’s Wiki você encontra os Bash Pitfalls, uma lista de problemas comuns entre os programadores bash iniciantes. Encontrei vários dos meus erros comuns lá. E aprendi um bocado.
Todas as tarefas relacionadas a contrução, teste e publicação de um desenvolvimento de software devem ser automatizadas o máximo possível. Escrever software é interar. Você escreve e testa, escreve e testa, escreve e testa dezenas, às vezes centenas de vezes por dia. As tarefas relacionadas a testar o software, de maneira especial, merecem a automatização…
Nosso amigo pergunta por e-mail: Boa Noite Elcio, Me desculpa me fazer essa pergunta que varias pessoas ja dever ter feito é que pesquisei e não encontrei, a pergunta é qual editores você indica para linux? uso o editplus no windows. Como a resposta deve servir para mais gente, publico aqui. Eu uso o Vim.…
Um dos comandos mais úteis no gerenciamento de arquivos no terminal do Linux é o comando find. Ele permite realizar e automatizar tarefas que na interface gráfica levariam muito tempo. Executar o comando find sem argumentos faz com que ele liste todos os arquivos do diretório atual e de seus subdiretórios. Para procurar dentro de…
Está lançado: clientside.com.br. É um site para falar sobre Javascript, Ajax, CSS, XHTML. Mas não é um site para opinião e recomendações, é um lugar para você ler sobre código, ler código, e colaborar. O site é aberto ao cadastro e colaboração dos usuários, embora todos os artigos devam ser aprovados pelos editores. Entenda a…
Meu amigo DGmike publicou: Retornando o último número (script PHP) Como eu acho interessante comparar soluções em linguagens diferentes, resolvi escrever o mesmo script em Python. Veja como ficou: import re def ultimoNumero(string): return re.findall(r”\d+”,string)[-1] Gostou?
Momento Jabá: Oficina de WordPress Visie: WordPress é a mais poderosa ferramenta de blogging da atualidade. É a ferramenta usada em todos os blogs aqui da Visie, e em boa parte dos blogs mais populares do Brasil e do mundo. Extremamente simples de usar, facilmente configurável e poderosamente extensível, WordPress ainda por cima é open…
O novo Ubuntu 7.10 está maravilhoso. Até o 7.04 eu usava um hack para fazer funcionar minha placa de rede, agora ela funciona sem truques. O compiz já instalado funcionou sozinho, bem direitinho. O resto tudo também funcionou sem dor. Menos o PSE. Por algum motivo estranho, a versão do mod_python (3.3.1) desse novo Ubuntu…
Falta uma semana para lo dia internacional de hablarse portuñol. Fica aqui minha contribuição ao ócio e falta do que fazer, fruto de uma tarde de feriado entediante: tradutor automático de sites português-portunhol. Você pode, por exemplo, ver este site traduzido para o portuñol. Tomara que você ache tão divertido de usar quanto eu achei…
Ao utilizar expressões regulares em Python, por padrão, seu texto é interpretado como uma seqüência de caracteres ASCII comum. Assim, caracteres acentuados são considerados sinais gráficos especiais, e não são capturados como letras. Veja este exemplo: >>> import re >>> print re.sub(r”\b”,”|”,”era uma criança”) |era| |uma| |crian|ç|a| Como você pode ver, o ce-cedilha não é…
Um amigo meu está fazendo faculdade, e começando a aprender a programar (com Java.) Ele me mostrou semana passada um exercício que o professor passou: Solicitar que o usuário informe um número inteiro que será usado como limite superior do contador. O programa deverá exibir todos os números pares existentes entre 1 e o limite…