Comece instalando as ferramentas: sudo apt-get install colordiff kbtin Agora você pode: diff arquivo1.txt arquivo2.txt | colordiff | ansi2html > diff.html Ou, com git: git diff | colordiff | ansi2html > gitdiff.html Você também pode salvar a saída de qualquer comando que retorne ANSI colorido: ls -lha –color | ansi2html > ls.html
Tag: dicas
Faça o Google falar por você
Ah, a internet! Você, usuário de Linux, comece pela preparação: sudo apt-get install curl mpg123 Depois crie o script falador: #!/bin/bash l=pt-BR if [ “$1” == “-l” ];then shift l=$1 shift fi curl -A “Falador” translate\.google\.com/translate_tts -d “tl=$l&ie=UTF-8&q=$@” |mpg123 -; Dê permissão de execução: chmod +x falador E divirta-se: ./falador “Onde está o futuro que… Continue reading…
Dúvida: URLs de categoria amigáveis
Um amigo me escreveu: Ola Elcio, vc tem algum tutorial de como reescrever a url para deixar mais amigável? no momento eu tenho isso http://www.meusite.com.br/index.php/category/produtos/produtos-especiais/ quero deixar assim: http://www.meusite.com.br/produtos-especiais/ Muito bem, vamos lá. O primeiro passo é, se você não quer que as categorias apareçam uma dentro da outra, não usá-las de forma hierárquica no… Continue reading…
Mini-curso dominando o terminal do linux
É hoje à noite DURAÇÃO: 2h Aprenda os fundamentos do terminal do Linux, domine os comandos mais comuns mas, além disso, aprenda um novo jeito de pensar. Automatize tarefas e coloque seu computador para trabalhar por você. Por que estamos oferecendo esse curso? Durante os últimos anos eu tenho ensinado milhares de técnicos, programadores e… Continue reading…
Fazendo o comando rm enviar arquivos para a Lixeira
Talvez você tenha um pouco de medo de usar o comando rm, porque ele exclui definitivamente os arquivos. Não há “lixeira”, e todos os métodos disponíveis para desfazer a deleção, como o ext2undel, não passam de boas tentativas com uma razoável chance de insucesso. Você sabia que pode enviar um arquivo para a lixeira a… Continue reading…
Porque você deveria aprender várias linguagens de programação
Há um tempo eu li “The Pragmatic Programmer“, uma espécie de livro de auto-ajuda para programadores. Não é um livro técnico, não vai te ensinar técnicas ou tecnologias, mas fala de um jeito de pensar e traz uma coleção de conselhos daquele tipo que parece óbvio mas ninguém nunca faz. Um desses conselhos era aprender… Continue reading…
Pare de usar FTP
Há mais de dez anos que meus processos de deploy, isto é, colocar um site ou sistema em produção, não usam FTP. Qualquer bom provedor, nacional ou internacional, oferece ferramentas muito mais eficientes para o deploy de sites e sistemas. E isso inclui desde pequenos sites em WordPress ou HTML estático até portais com milhares… Continue reading…
SQL Executioner
Olha que útil: SQL Executioner, um plugin WordPress que te dá uma tela no painel para a execução de SQL, substituindo para muita coisa o phpMyAdmin ou ferramentas semelhantes: Acabou de salvar um cliente da Visie que hospeda o site num provedor que não nos dá facilidades como acesso SSH ou um bom painel de controle…. Continue reading…
Pequena dica de Python: módulo webbrowser
O módulo webbrowser permite abrir uma URL no navegador do usuário. Só isso, simples assim. Por exemplo: import webbrowser webbrowser.open(“http://visie.com.br”) E o site da Visie será aberto no navegador do usuário. Muito útil se você está fazendo um programa para desktop ou mesmo um script para o terminal. No caso de scripts para terminal, se… Continue reading…
Visualdal, modelagem de dados visual e web2py
https://github.com/elcio/visualdal Críticas, sugestões e, claro, pull requests são muito bem-vindos!
API gratuita de consulta de CEP
Nosso presente de natal para os desenvolvedores do Brasil: API gratuita de consulta de CEP. A Visie é parceira de tecnologia da Aviso Brasil. Nós fornecemos tecnologia para o Correio Control, e como parte do negócio, precisamos ter a base de endereços sempre atualizada e sincronizada com o Diretório Nacional de Endereços. Vimos que muita gente oferece… Continue reading…
Pequena dica de Python: as classes são dinâmicas
Veja: >>> class Class: … def um(self): … return 1 … >>> c=Class() >>> c.um() 1 >>> def dois(self): … return 2 … >>> Class.dois=dois >>> c.dois() 2 >>> Class.tres=lambda self:3 >>> c.tres() 3 >>> Class.um=lambda self:’Um modificado.’ >>> c.um() ‘Um modificado.’ As classes em Python são completamente dinâmicas. Você pode acrescentar métodos quando quiser… Continue reading…
Pequena dica de Python: leia os fontes
Python é uma linguagem open-source, com uma extensa biblioteca. E os módulos da biblioteca são escritos em Python. Alguns módulos, como pickle e StringIO, tem versões em C mais rápidas (cPickle e cStringIO) mas as versões em Python são mantidas para que você possa ler os fontes. Veja como descobrir onde estão os fontes de… Continue reading…
Pequena dica de Python: string formatting com locals()
Há muitas situações em que uma função faz cálculos e operações para obter valores e, ao final, deve montar uma string com esses valores. Nesta situação, muita gente monta um dicionário com os valores e usa string formatting para gerar a string a ser retornada. Por exemplo: # -*- encoding: utf-8 -*- import string,random template=”’Sugestões… Continue reading…
Pequena dica de Python: rot-13
A dica de hoje não é muito útil. Pelo menos eu nunca usei para nada realmente sério. Mas é bem divertida: >>> t=’All your base are belong to us.’ >>> t.encode(‘rot-13’) ‘Nyy lbhe onfr ner orybat gb hf.’ Rot-13 é um encoding comum do Python. Você pode escrever código em rot-13 também, se indicar o… Continue reading…
Pacote Ubuntu: cclive
O pacote cclive, para download de vídeos do YouTube na linha de comando, é uma reescrita do clive mais eficiente, com menor consumo de memória e menos dependências. Para instalar: $ sudo apt-get install cclive E para usar: $ cclive http://www.youtube.com/watch?v=8fvTxv46ano Isso vai baixar o vídeo na pasta atual. Simples e indolor. Mas qual a… Continue reading…
Pequena dica de Python: mesclando listas
Essa é bem legal. Temos três listas: >>> a=[1,2,3] >>> b=[4,5,6] >>> c=[‘a’,’b’,’c’] Veja: >>> zip(a,b,c) [(1, 4, ‘a’), (2, 5, ‘b’), (3, 6, ‘c’)] Simples e útil, não? E se as listas tiverem tamanhos diferentes? >>> c=[‘a’,’b’] >>> zip(a,b,c) [(1, 4, ‘a’), (2, 5, ‘b’)] O resultado será truncado para o tamanho da menor… Continue reading…
Pequena dica de Python: any e all
Python tem duas funções muito interessantes: any e all. A função any recebe uma lista (ou outro objeto interável) e retorna True se algum dos elementos for avaliado como True. Já all só retorna True se todos os elementos forem avaliados como True. Veja: >>> everybody=[1,2,3,4] >>> anybody=[0,1,0,2] >>> nobody=[0,0,0,0] >>> any(everybody) True >>> any(nobody)… Continue reading…
Módulo Python: gzip
O módulo gzip nos permite ler e escrever em arquivos .gz sem nenhum trabalho. Veja: >>> import gzip >>> f=gzip.open(‘teste.txt.gz’,’w’) >>> f.write(‘Hello!\n’) 7 >>> f.close() >>> $ gunzip teste.txt.gz $ cat teste.txt Hello! $ gzip teste.txt $ python Python 2.7.3 (default, Apr 20 2012, 22:39:59) [GCC 4.6.3] on linux2 Type “help”, “copyright”, “credits” or “license”… Continue reading…
Pequena dica de Python: __missing__
A partir do Python 2.5, ao estender dicionários, você pode dar a suas classes um método __missing_, que será executado toda vez que você tentar acessar um índice inexistente. Veja: class Counter(dict): def __missing__(self, key): self[key]=0 return self[key] Veja funcionando: >>> votos=[‘john’,’paul’,’john’,’john’,’ringo’, … ‘george’,’paul’,’ringo’,’ringo’,’john’, … ‘paul’,’john’,’george’,’paul’,’paul’, … ‘john’,’paul’,’john’,’ringo’,’paul’] >>> c=Counter() >>> for v in votos:… Continue reading…