Publicado em Funções ZZ, Software | 14 Comentários
A Saga do Horário de Verão (Funções ZZ versão 8.10)
— Olha… Eu juro que eu só queria fazer a zzhorariodeverao.
— Ahn?
— É que agora temos uma regra fixa para as datas de início e fim do horário de verão: 3º domingo de outubro e fevereiro.
— Ah, que fácil!
— É, mas tem uma pegadinha: quando o 3º domingo de fevereiro for Carnaval, então o término do horário de verão é adiado para o próximo domingo.
— Que mané.
— Pois é.
— Mas daí você fez a zzhorariodeverao então?
— Fiz.
— Foi fácil?
— Foi.
— Legal.
— Difícil foi fazer as outras três…
— Mas hein?
— É que pra saber em que data cai o 3º domingo de um mês qualquer, primeiro foi preciso fazer a zzdiadasemana.
— Você dá a data e ela te retorna em qual dia da semana vai cair?
— Isso.
— Bacana, precisei disso um dia…
— Eu também, bobeira não ter feito antes.
— E o lance do Carnaval?
— É, aí que complicou…
— Dá pra saber quando vai cair o Carnaval de qualquer ano?
— Dá. É só você saber quando vai ser a Páscoa. O Carnaval é exatamente 47 dias antes.
— Ah, que fácil! Aí é só usar a zzdata para fazer: zzdata $pascoa – 47
— Ahan… (espera pela pergunta inevitável)
— Ei! E como saber a data da Páscoa se ela também muda todo ano???
— Pois é, aí que complicou…
— Tem que consultar o site do Vaticano? :)
— Não :)
— Ufa!
— Descobri que dá pra calcular a data, usando uma fórmula maluca cheia de letrinhas.
— Então foi preciso fazer a zzpascoa para poder ter a zzcarnaval, é isso?
— Siiiiiiiiiiiim
— E a zzcarnaval você só fez por causa da exceção da regra do horário de verão?
— Siiiiiiiiiiiim
— Malditas exceções!
— Malditas exceções!
— zZZzzzZzzZZzZzZZzZzzzZZz —
Exemplos para este ano:
$ zzcarnaval 05/02/2008 $ zzpascoa 23/03/2008 $ zzhorariodeverao 19/10/2008 15/02/2009 $
Exemplos para o ano que vem:
$ zzcarnaval 2009 24/02/2009 $ zzpascoa 2009 12/04/2009 $ zzhorariodeverao 2009 18/10/2009 21/02/2010 $
Que dia da semana é hoje?
$ zzdiadasemana sexta-feira
Que dia da semana que eu nasci?
$ zzdiadasemana 07/10/1977 sexta-feira
Que dia da semana vai ser daqui 30 dias?
$ zzdiadasemana $(zzdata hoje + 30) domingo
— zZZzzzZzzZZzZzZZzZzzzZZz —
A zzajuda ganhou uma opção nova para listar todas as funções, com suas descrições. Agora ficou mais fácil encontrar o que você procura!
$ zzajuda --lista zzajuda Mostra uma tela de ajuda com explicação e sintaxe de todas as funções zzalfabeto Central de alfabetos (romano, militar, radiotelefônico, OTAN, RAF, etc) zzansi2html Converte para HTML o texto colorido do terminal (códigos ANSI) zzarrumanome Renomeia arquivos do diretório atual, arrumando nomes estranhos zzascii Mostra a tabela ASCII com todos os caracteres imprimíveis (32-126,161-255) zzbeep Aguarda N minutos e dispara uma sirene usando o 'speaker' ...
Esqueceu-se como usa aquela função, ou quer aprender a usar várias de uma só vez? Então a zzajuda tem mais uma opção nova para o seu deleite visual:
$ zzajuda --uso zzajuda [--lista|--uso] zzalfabeto [--TIPO] [palavra] zzansi2html [arquivo] zzarrumanome [-n] [-d] [-r] arquivo(s) zzascii [colunas] [largura] zzbeep [números] ...
— zZZzzzZzzZZzZzZZzZzzzZZz —
Tem coisas que só as Funções ZZ fazem para você :)
Tá esperando o que?
Vai lá baixar a versão nova agora!
Leia maisTambém tem uma GRANDE novidade que é o diretório especial para funções extras, o $ZZEXTRADIR, mas sobre isso eu comento em um texto futuro. É importante demais para ser apenas uma nota de rodapé :)
Publicado em Funções ZZ, Software | 7 Comentários
Recados da Paróquia ZZ
Irmãos da comunidade ZZ, venho ao seu encontro para espalhar as boas novas que correram os sagrados campos da tela preta nos últimos tempos.
- Reforma: O primeiro passo você já sabe: o código das Funções ZZ passou por uma reforma geral e hoje é limpo, alinhado e recheado de comentários explicativos. Leia-o para aprender mais sobre shell script (Bash)!
- Google Code: O código agora está hospedado no excelente Google Code (programadores, recomendo!). Com isso ganhamos algumas coisinhas bacanas, que veremos à seguir.
- SVN: O código foi colocado no SVN do Google Code, assim o desenvolvimento das ZZ migrou do modelo caverninha-my-precious para a exposição total. Agora cada mudança é imediatamente disponibilizada à comunidade de usuários durante as entressafras das versões oficiais.
- Feed SVN: Você pode assinar o Feed do SVN das ZZ (que sopa de letrinhas!) e acompanhar em tempo real todas as mudanças. Tem curiosidade para saber como é o desenvolvimento de um programa? Quer aprender mais sobre shell? Acompanhe o feed!
- Feed de notícias: Se você só quer acompanhar os lançamentos de versões novas e novidades do projeto, assine o Feed das Funções ZZ. Se você já assina o feed daqui do blog, já está garantido(a).
- Downloads: Outra vantagem do Google Code é o contador de downloads. Agora é possível ter uma idéia de quantas pessoas baixam as funções. Estes números também são importantes para saber quantos usuários ainda dependem da versão ISO-8859-1 em vez da padrão UTF-8.
- Debian: O colaborador Eder Marques fez um pacote Debian para as funções. Se você não sabe o que isso significa, é porque você não precisa desse pacote, então fique sossegado(a).
- Zsh: O colaborador gallois fez um script para instalar as Funções ZZ no shell Zsh. Se você usa o Zsh em vez do Bash, aproveite! Novamente, se você não sabe o que Zsh significa, fique tranqüilo(a) que você não precisa deste script.
EOF
Leia maisPublicado em Funções ZZ, Software | 11 Comentários
Funções ZZ versão 8.9
Último dia do mês, hoje é um dia bom para…
…lançar uma versão nova das Funções ZZ, claro!
Esta é a versão 8.9, mas bem poderia ser chamada de “versão colorida”, pois traz duas funções novas que lidam com cores.
A primeira é a zzecho, que assim como o comando echo, mostra uma mensagem na tela. Mas não é aquela mensagem cinza sem graça, pois a zzecho pode mostrar texto coloridos, em negrito, com sublinhado e piscando!
Útil para usar em scripts, quando você quiser chamar a atenção do usuário para uma mensagem importante:
zzecho --pisca --fundo vermelho ATENÇÃO, vou apagar tudo
Ou a versão econômica:
zzecho -p -f vermelho ATENÇÃO, vou apagar tudo
Mas o legal mesmo é ver a função em ação:
A segunda função nova á zzansi2html. Nome estranho, não? Ela converte textos com códigos ANSI para HTML.
Não sabe o que são códigos ANSI? São os bichinhos que fazem o texto ficar colorido, são eles que fazem a mágica na zzecho que acabamos de ver. São como micróbios, você não consegue enxergá-los, mas eles existem :)
Com essa função você pode colocar em seu site ou blog a saída completa do terminal, incluindo as cores e atributos (sublinhado, negrito, pisca-pisca). Alguns exemplos bacanas são a saída da zzecho, da zzcores e do comando ls --color.
zzcores | zzansi2html > zzcores.html
Clique no link do exemplo para ver o resultado. Note que isso não é uma imagem, mas sim um texto formatado, que você pode copiar/colar.
Se quiser gravar a saída de vários comandos seguidos, preservando todas as cores, seu prompt joiado e tudo mais, use o comando script:
# Chame o comando 'script' e informe o arquivo # onde ele deve guardar a saída: ls.ansi. script ls.ansi # Agora você está "dentro" do comando script, # tudo o que você fizer será gravado. ls /etc # Para sair e terminar a gravação, use o comando exit exit # Já "fora" do comando script, converta para HTML zzansi2html ls.ansi > ls.html
Novamente clique nos links para ver os resultados. Massa né? :)
Detalhe nerd: Estávamos aqui no blog estes dias comentando sobre um futuro livro de sed… Sabe o que é mais legal? A zzansi2html foi feita com um único comando sed. Claro, é um sed macho com trocentos comandos dentro, mas é um sed. Bom para ver que é possível fazer coisas complicadas com o sedinho :)
Tá esperando o quê? Veja a lista completa das novidades e faça o download da versão 8.9!
Leia maisPublicado em Barbada, Funções ZZ, Site, Software, Webstandards | 14 Comentários
Novo ícone-logotipo das Funções ZZ
Bem pessoal, terminou mais uma barbada aqui do blog. Será que você foi o ganhador o livro amarelão? Vejamos…
Durante uma semana, 15 pessoas participaram, enviando um total de 34 ícones para as Funções ZZ!
As propostas foram bem variadas, algumas apenas com o ZZ, outras com o nome completo, teve desenho de canivete, de monitor e até de um carinha dormindo em seu travesseiro :) Confira quais foram todos os ícones enviados.
A escolha não foi fácil, fiquei em dúvida entre cinco finalistas. Então apliquei os ícones no site, sob fundo branco, preto, em vários tamanhos. O quesito flexibilidade contou bastante, pois o ícone precisava escalar desde o tamanho 16×16, para o favicon do site, até o 256×256 para o ícone do programa.
O grande vencedor foi… — rufos na caixa… TRRRRRRRRRRR — o ícone do Leonardo Boiko:
Elegante e de uma simplicidade admirável, ele conseguiu resumir a idéia do programa em apenas quatro caracteres, com as chaves representando o conceito de funções no Bash. O toque artístico ficou na escolha da fonte, nos tamanhos e posicionamento dos caracteres. Com a versatilidade de ser identificado em qualquer tamanho, ainda tem a vantagem aceitar qualquer combinação de cores para os seus componentes.
Esta proposta identificou tão bem as funções, que além de ícone, também vai ser o logotipo oficial.
Se você tem um site ou blog, e tem um espacinho sobrando por lá, que tal colocar o novíssimo icone/logo apontando para o site das funções? Assim ganhamos mais usuários e colaboradores! Como o formato é simples e a escolha de cores traz várias possibilidades de combinação, resolvi fazer um logomático, que é uma pagininha bacana onde você pode montar seu próprio logo na hora. É divertido, experimente!
Um outro desenho que eu gostei muito, mas que não serviria para ícone por não ser muito escalável, foi o canivete enviado pelo Henrique Araujo. Resolvi aproveitá-lo para ilustrar a página principal do site, assim ela fica mais estilosa. E com isso o Henrique também vai ganhar um exemplar autografado do livro amarelão.

Isso mesmo, nessa barbada saíram dois livros rabiscados!
Meu MUITO OBRIGADO a todos que participaram! Seus nomes foram colocados na seção de agradecimentos do site e seus trabalhos registrados na página do concurso.
Leonardo e Henrique, parabéns! Vou entrar em contato por e-mail. Mas já aviso que vocês vão ter que esperar alguns dias até o livro novo chegar aqui em casa, para eu poder rabiscar e enviar para vocês. E é Matinhos, sabe como é, demora um pouquinho :)
Leia maisPublicado em Barbada, Expressões Regulares, Funções ZZ, Livro, Software | 27 Comentários
Funções ZZ: Crie um ícone e ganhe um livro autografado
Sei programar, mas não sei desenhar.
Se você sabe desenhar, pode me ajudar.
Preciso de um ícone moderno e joiado para as Funções ZZ.
O ícone atual é muito conservador, e não fica bom em tamanhos menores:

Logo atual das ZZ
Se você fizer um ícone que eu goste, ganha um exemplar autografado do livro Expressões Regulares – Uma Abordagem Divertida. Eu mandarei o livro para sua casa, sem custo algum.
Vamos brincar?
Regras:
- Mande o ícone para meu e-mail (PNG 256×256), com o assunto “Icone ZZ”
- Mande quantos ícones quiser
- Só escolherei um ícone, ou nenhum (sou chato)
- O resultado será anunciado aqui no blog
Se o seu ícone for o escolhido:
- Precisarei do original em formato editável (SVG)
- Seu nome aparecerá no site das Funções ZZ, citado como criador(a) do ícone
- Você abdicará dos seus direitos autorais sobre a imagem (não quero encrenca com advogados)
O ícone deverá ser licenciado como Creative Commons Atribuição 2.5 Brasil
- Você ganhará um exemplar do livro Expressões Regulares – Uma Abordagem Divertida, autografado pelo autor
Dicas:
- Não há requisitos de estilo ou cores, sinta-se livre para criar
- Pode ser um mascote, pode ser o nome completo (Funções ZZ), pode ser só ZZ
- Faça algo sexy! :)
Atualização em 08-Agosto-2008: O amarelão vai chegar, então agora o prêmio ficou ainda melhor, pois quem ganhar levará a novíssima 2ª edição! Participe!
Leia maisAtualização em 13-Agosto-2008: Saiu o resultado do concurso, confira!
Publicado em Funções ZZ, Software | 13 Comentários
Funções ZZ versão 8.7
ΩΩΩ Atenção Nerds ΩΩΩ
Segurem-se na cadeira, pois os próximos dias serão agitados :)
Está saindo do forno mais uma versão das incansáveis Funções ZZ! E pela primeira vez em anos, é uma versão que sai no mês seguinte à anterior. As funções definitivamente saíram do limbo.
A versão anterior contava com 66 funções. Mas esse número não é sexy, o 69 é muito melhor! Então, pisando fundo no acelerador, foram criadas três funções novas para chegarmos ao mítico número kamasutresco.
- zzalfabeto: Central de alfabetos (romano, militar, radiotelefônico, OTAN, RAF, etc)
- zzrot13: Codifica/decodifica um texto utilizando a cifra ROT13
- zzrot47: Codifica/decodifica um texto utilizando a cifra ROT47
Comecemos pelas duas últimas. Desde os tempos de César, mandar mensagens cifradas era uma necessidade. As letras são trocadas de lugar para esconder textos secretos. Duas cifras simples bastante utilizadas são a ROT13 e a ROT47. O interessante é que a mesma cifra serve para codificar e para decodificar o texto, veja:
$ zzrot13 Ataque surpresa ao meio-dia Ngndhr fhecerfn nb zrvb-qvn $ zzrot13 Ngndhr fhecerfn nb zrvb-qvn Ataque surpresa ao meio-dia
O ROT13 codifica somente as letras do alfabeto (maiúsculas e minúsculas). Se você também precisar codificar números, pontuação e símbolos, utilize o ROT47:
$ zzrot47 'Coordenadas:(27S,94W)' r@@C56?252DiWaf$[hc(X $ zzrot47 'r@@C56?252DiWaf$[hc(X' Coordenadas:(27S,94W)
Agora você já pode brincar de mandar mensagens secretas para os seus amiguinhos! ;)
Mas se isso ainda não satisfizer seus desejos militares, agora você também pode falar aquelas palavras estranhas tipo Alpha, Beta, Charlie, Tango. Basta digitar qual palavra você quer soletrar e escolher qual alfabeto estileiro você quer usar:
$ zzalfabeto --otan cambio Charlie Alpha Mike Bravo India Oscar $ zzalfabeto --royal-navy cambio Charlie Apples Monkey Butter Ink Orange $ zzalfabeto --raf42 cambio Charlie Apple Mother Beer In Orange $ zzalfabeto --portugal cambio Coimbra Aveiro Maria Bragança Itália Ovar
Se você não informar nenhuma palavra, todo o alfabeto escolhido é mostrado na tela. Há vários tipos de alfabeto disponíveis, para satisfazer a todos os gostos:
| Opção | Descrição |
|---|---|
--fone |
Alfabeto radiotelefônico internacional |
--romano |
A B C D E F… |
--royal-navy |
Marinha Real – Reino Unido, 1914-1918 |
--signalese |
Primeira Guerra, 1914-1918 |
--raf24 |
Força Aérea Real – Reino Unido, 1924-1942 |
--raf42 |
Força Aérea Real – Reino Unido, 1942-1943 |
--raf |
Força Aérea Real – Reino Unido, 1943-1956 |
--us |
Alfabeto militar norte-americano, 1941-1956 |
--portugal |
Lugares de Portugal |
--names |
Nomes de pessoas, em inglês |
--lapd |
Polícia de Los Angeles (EUA) |
Uma melhoria importante desta versão das ZZ é que foi criada uma “rotina automática de conversão da codificação em tempo real”. Ei, isso soa bonito, não? Tá, é um iconv… O que importa é que acabaram os problemas com os acentos em várias funções, tanto em sistemas ISO-8859-1 (latin-1) quanto UTF-8. Ainda não entendeu? Eu explico: os acentos vão aparecer, tenha fé.
Ah, sim. Também houve correções de probleminhas em algumas funções. Mas isso é chato, nem vou comentar aqui. Todas as mudanças estão descritas lá no changelog.
Agora é contigo: faça o download e use!
Leia maisPublicado em Funções ZZ, Software | 19 Comentários
Funções ZZ versão 8.6
Já passaram três meses desde o lançamento da mega ultra hiper reforma geral das Funções ZZ. A faxina deu trabalho, mas o resultado compensou:
- Foram mais de 2.000 downloads das nossas singelas ferramentas de linha de comando.
- Com o código limpo e comentado, mais pessoas puderam estudá-lo e compreendê-lo, resultando em mais contribuições de usuários.
- Com duas versões distintas (uma para sistemas UTF-8 e outra para ISO-8859-1), acabaram-se os problemas com a acentuação.
Agora que a manutenção ficou facilitada, é menos complicado lançar uma versão nova. Note que é “menos complicado” e não “fácil” :)
Esse evento mágico ocorrerá em intervalos menores do que a média atual vergonhosa de uma-versão-por-ano…
Por falar nisso, está saindo do forno o mais recente lançamento das funções, a versão 8.6 (ano 2008, mês de Junho — já tinha percebido esse padrão?), cheia de novidades:
- Várias melhorias de compatibilidade com o Solaris. Se você usa esse sistema e algumas funções estavam problemáticas, atualize agora e seja feliz!
- Várias funções receberam melhorias: zzcalcula, zzcpf, zzdicportugues, zzfoneletra, zzlinha, zzsigla, zzwikipedia.
- Algumas funções tiveram problemas corrigidos: zzbabelfish, zzsecurity, zzss.
- Função nova zzshuffle, para desordenar as linhas de um texto. É o contrário do comando sort. Enquanto ele arruma, essa função bagunça :)
$ cat texto.txt 1º primeiro 2º segundo 3º terceiro 4º quarto 5º quinto $ cat texto.txt | zzshuffle 1º primeiro 3º terceiro 2º segundo 5º quinto 4º quarto $ cat texto.txt | zzshuffle 3º terceiro 2º segundo 5º quinto 1º primeiro 4º quarto $ zzshuffle texto.txt 2º segundo 4º quarto 3º terceiro 1º primeiro 5º quinto $
E aí, gostou?
Então vá correndo baixar a versão nova 8.6 das Funções ZZ!
Publicado em Funções ZZ, Livro, Software | 30 Comentários
A nova geração das Funções ZZ
Sabe as Funções ZZ? É um programinha que criei em fevereiro de 2000. Ele faz um monte de coisas, como gerar senhas, gerar e validar CPF/CNPJ, buscar notícias na Internet, obter o resultado da Mega-Sena, consultar a Wikipédia, pesquisar no Google, traduzir textos, … Enfim. Faz um monte de coisas :)
Mês passado este programa completou oito anos de existência. Oito anos… Nem eu acredito. É, estou ficando velho…
Preocupações senis à parte, as funções resistiram bravamente à obsolescência, durante tantos anos, por causa dos usuários. Se poucas pessoas o utilizassem, este programa já teria sido aposentado. Mas como há bastante usuários ativos que escrevem agradecendo, dando idéias e apontando problemas, isso é um incentivo para continuar.
Mesmo assim, não é fácil. Dá muito trabalho manter tudo atualizado e funcionando, pois são mais de 60 funções (miniprogramas) diferentes para cuidar. O Thobias entrou em 2003 para me ajudar, mas mesmo programando em dupla, é uma carga pesada. Com uma média vergonhosa de uma versão nova por ano, 2006 e 2007 passaram lentos para as Funções ZZ.
Grande parte dessa dificuldade na manutenção deve-se a uma “brilhante” idéia deste ser que vos escreve. Desde o início, resolvi fazer do código-fonte algo, digamos, compacto. Veja um exemplo:
zztrocaarquivos(){ zzzz -z $1 zztrocaarquivos && return
[ "$2" ] || { echo 'uso: zztrocaarquivos arquivo1 arquivo2'; return; }
local at="$ZZTMP.$$"; cat "$2" > $at; cat "$1" > "$2"; cat "$at" > "$1"
rm $at; echo "feito: $1 <-> $2"
}
A função zztrocaarquivos serve para trocar dois arquivos de lugar. Mas eu não precisava dizer, pois isso está claro ali no código-fonte. O que, não entendeu nada? Nem eu :)
Agora imagine mais de 60 monstrinhos do naipe desse, só que maiores e mais complexos. Assim fica fácil perceber o quão trabalhoso era fazer qualquer alteração no código. Era preciso atenção tripla para encontrar exatamente onde e o quê alterar.
Percebemos tarde que isso era um problema. Eu explico. Existe uma época na vida do programador, quando ele ainda é um aprendiz-padawan, em que códigos feios, grudados e incompreensíveis são “legais”. Há um prazer narcisista quando alguém olha seu código e diz que não entendeu nada. Você se sente fodão. Felizmente essa fase passa :)
Mas reconhecer o problema não era suficiente, pois o número exagerado de funções tornava a tarefa de “limpar a casa” algo muito trabalhoso. Era mais fácil continuar com o código porco do que arrumar mais de 60 funções. E assim ficaria, ad infinitum.
Entra o livro de shell na história.
Estava eu lá por Julho de 2007 escrevendo o mítico livro, argumentando que um código profissional deve ser bem alinhado, limpo, bonito e comentado, para facilitar sua manutenção.
Você já percebeu o que vai acontecer né? :)
De repente, caiu a ficha. Lembrei das ZZ e comecei a sentir vergonha. Que moral eu tenho para falar em código bonito se meu programa mais conhecido pelos shelleiros tem um código sopa-de-letrinhas? Casa de ferreiro…
Fui obrigado a resolver de vez o problema. Parei a escrita do livro e fiquei vários dias trabalhando no código das funções, reformatando, alinhando, colocando comentários, melhorando os nomes de variáveis, trocando algoritmos enigmáticos por versões simplificadas. Enfim, aquela reforma geral bonita de ver, de desmontar o jipe até os chassis, não sobrando nenhum parafuso no lugar.
Veja como ficou a zztrocaarquivos depois da reforma:
zztrocaarquivos ()
{
zzzz -h trocaarquivos $1 && return
# Um terceiro arquivo é usado para fazer a troca
local tmp="$ZZTMP.trocaarquivos.$$"
# Verificação dos parâmetros
[ "$#" -eq 2 ] || { zztool uso trocaarquivos; return; }
# Verifica se os arquivos existem
zztool arquivo_legivel "$1" || return
zztool arquivo_legivel "$2" || return
# Tiro no pé? Não, obrigado
[ "$1" = "$2" ] && return
# A dança das cadeiras
cat "$2" > "$tmp"
cat "$1" > "$2"
cat "$tmp" > "$1"
# E foi
rm "$tmp"
echo "Feito: $1 <-> $2"
}
Volte um pouco o texto e veja a versão antiga. Não tem nem como comparar, né?
A versão nova está fácil de ler, entender e alterar. Cada trecho está claramente identificado e separado dos demais. Comentários em português esclarecem o código em shell. Se der algum problema, será fácil encontrar o ponto certo para alterar.
Ainda teve outra vantagem: vários problemas (bugs) com as funções apareceram durante o processo. Eram exceções que estavam escondidas no código feio, difíceis de perceber, mas na limpeza apareceram e puderam ser corrigidos. Código limpo é outro nível. Agora eu aprendi, tá? :)
Eu não devia contar para não estragar a surpresa, mas não me agüento… Outro benefício dessa reforma foi que, agora com o código legível, é possível entender como fazer algumas tarefas avançadas em shell script. A experiência leva ao aprimoramento, então há muitas pérolas por ali. Não confundir com perl. Então, há um capítulo inteiro do livro de shell dedicado a esmiuçar estas pérolas do código das ZZ. A mágica foi explicada :)
Já que o código não é mais intimidador, esperamos também receber mais contribuições de outros programadores. Se você encontrou algum problema ou quer uma opção nova, que tal dar uma olhadinha no código? Ficou mais fácil modificar as funções. Só não se esqueça de nos enviar as melhorias para que todos os usuários possam usufruir delas!
E último, porém não menos importante, agora o código das funções também é uma excelente fonte de estudo para quem quer aprender shell script. Se um exemplo vale mais do que mil man pages, ali você tem dezenas de miniprogramas prontos para serem estudados e dominados. Curte shell? Então não deixe de conferir a versão nova 8.3 das Funções ZZ!
Este lançamento marca uma nova fase das funções. Além do código refeito, outras novidades marcantes são:
- Migração definitiva para a codificação UTF-8. Somos conservadores e esperamos bastante tempo para abandonar o bom e velho ISO-8859-1, mas agora foi. Porém, ainda disponibilizamos uma versão especial para quem tem sistemas mais antigos, para não deixar ninguém na mão.
- Funcionamento garantido. Foi criada uma suíte de testes automatizada que conta com 587 verificações, fazendo um controle de qualidade rigoroso nas funções. Uma equipe de voluntários roda estes testes em diversos sistemas, ajudando a encontrar e resolver problemas. As funções que não puderam ser arrumadas foram removidas, para evitar a frustração do usuário.
- Há duas funções novas. A zzbyte serve para fazer conversões entre grandezas de bits, na escala de byte até yota. Quantos bytes têm em 2 mega? São 2097152. A zztool é uma miniferramenta que serve para validação de textos e arquivos. Por exemplo, “zztool testa_ip” verifica se o texto informado é um número IP.
- Há uma loooooooonga lista de melhorias, se você quiser saber exatamente o que mudou desde a última versão. Mas prepare-se, pois cansa :)
Para completar o pacote de grandes mudanças, o site das Funções ZZ também foi reformado, contando agora com um formato mais intuitivo e fácil de encontrar as informações.
- Se você já usa as funções, atualize agora! Garanto que você não vai se arrepender.
- Se nunca usou, que tal visitar o site agora para conhecê-las? Deve ter alguma função lá que lhe seja útil.
Publicado em Funções ZZ, Software | 24 Comentários
Funções ZZ versão 7.7
Atenção! Parem as máquinas! Versão nova das Funções ZZ!
Este é um evento especial que ocorre algumas poucas vezes por ano ;)
Nesta versão 7.7, a maior parte das mudanças visa corrigir o de sempre: sites que mudaram de endereço ou de formato, quebrando as funções e seus filtros. As problemáticas que foram arrumadas, são:
- zzdolar
- zzgoogle
- zzipinternet (arrumada após bilhares de pedidos)
- zznoticiaslinux (Yahoo)
- zzpronuncia
- zzwhoisbr
Também houve a remoção da zzdicabl, que fazia pesquisas no site da Academia Brasileira de Letras. Como agora eles são “modernos” e estão usando AJAX, acabou a brincadeira para as ZZ.
Mas houve mudanças mais profundas também.
Eu já disse que odeio UTF-8?
Padrões são uma maravilha, são a solução da fome mundial, mas enquanto não são adotados massivamente, são uma dor de cabeça a mais para se preocupar. O futuro é UTF-8, sem dúvida. Mas ainda há muito ISO-8859-1 (Latin 1) por aí.
As funções ZZ são conservadoras, ainda sendo disponibilizadas no formato Latin 1, porém podem ser facilmente convertidas para UTF com um único comando:
iconv -f iso-8859-1 -t utf-8 funcoeszz > funcoeszz-utf
Essa diferença entre formatos só é problemática em uma única função: zzarrumanome. Os nomes de seus arquivos eram bagunçados se você a usasse em um sistema UTF-8. Agora com a versão nova, isso não acontece mais.
Por falar em zzarrumanome, agora ela possui uma opção nova muito bacana, chamada “-n”. Da mesma maneira que na zznomefoto, essa opção serve para testar o comando antes de executá-lo. O processamento é feito, mas os arquivos não são renomeados. Apenas são mostrados na tela quais serão os nomes novos dos arquivos:
$ ls Nome CHATÃO !!!.TXT $ zzarrumanome -n * [-n] Nome CHATÃO !!!.TXT -> ./nome_chatao.txt $ ls Nome CHATÃO !!!.TXT $
Baixe a versão nova 7.7 das Funções ZZ
Leia maisPublicado em Funções ZZ, Software | 7 Comentários
ZZ Ao Vivo – Um concerto de 10+10 dedos
As Funções ZZ coitadas, já estavam há mais de um ano carentes de atenção. Foram esquecidas em um canto escuro, atrás de uma poltrona empoeirada no sótão do celeiro. Aos poucos foram definhando, quebrando um pedacinho aqui, outro ali. Das 69 partes que compunham o pacote, mais de 20 danificaram-se nesse período.
Era necessário agir.
Segunda-feira, 13 de Novembro de 2006. Matinhos e Porto Alegre conectadas. De posse de suas ferramentas de trabalho, cada qual em sua cidade e comunicando-se por mensagens escritas, os criadores concertaram a criação. Ou seria criatura?
Não foi fácil, nem rápido.
Quase oito horas se passaram entre o primeiro contato e último retoque. Uma noite de primavera com ventos gelados de inverno. O ritmo foi intenso. Dedos cansados, mentes a mil. A sintonia e sincronia precisavam ser perfeitas para que nada saísse errado.
Um dueto solitário ao vivo, sem maestro nem público.
Leia mais









