Arquivos 2017

06
setembro 2017

ZQR - Código QR com Zenity

Escrito por Mario Medeiros não comentários

Em 17 de Setembro de 2015 escrevi um pouco sobre os tal de QrCode.
Para ler o artigo, clique aqui.
Na época eu fiz um script para ser utilizado em modo texto para criar os códigos.
Depois de alguns outros estudos e curiosidades sobre a geração dos códigos, acabei por fazer algumas alterações.
Adicionei algumas opções a mais e utilizei o zenity para deixar mais simples a geração dos códigos.

O script novo gera o qrcode com base em 4 tipos de entradas.
1 - um texto simples e curto digitado direto no campo do formulário;
2 - gera o código baseado num arquivo de texto com os dados;
3 - gera o código baseado num arquivo de texto com os dados e adiciona uma imagem de logotipo no centro da imagem do código qr;
4 - gera um qrcode para acesso à rede Wi-Fi.

Obs0: as dependências para a utilização do script são:

#####################################
#qrencode: gerador de QRCode #
#zenity: gerador de janelas #
#gthumb: visualizador de imagens#
#imagemagick: manipulador de imagens#
#####################################

Obs1: utilizei o gthumb para visualizar as imagens porque era o que estava "à mão" para a tarefa. Pode-se utilizar qualquer visualizador para isso. Deve-se somente mudar no código.

Obs2: para a geração do código com logotipo centralizado, é necessário o uso do Imagemagick, conforme consta na lista de dependências do script.

Criei um pacote com os arquivos para teste e uso.
Nele constam:
arquivo zqr.sh (o script em si);
arquivo de imagem tux.png (para uso no logotipo);
arquivo de texto dados.txt com os dados (para uso na geração com base em arquivo texto).

Não tem muito o que dizer sobre o código.
O que fiz foi coletar partes prontas de outros códigos, tanto alguns meus como os de sites e forums diversos e ler a documentação do site do zenity.

Tentei comentar o melhor possível, mas é basicamente auto-explicativo o código do script.

Muita coisa não deu certo no começo, mas isso foi mais porque esse "desenvolvedor" que vos escreve é muito relapso e tem um raciocínio ímpar, assim como a quantidade de neurônios, que no caso é um só mesmo (por isso o ímpar).

O resultado final ficou até que "usável". Talvez eu faça algo em PHP futuramente, apesar de já existirem várias ferramentas prontas para isso, então seria mais para efeito de estudo do que para uso prático.

Clique aqui para baixar o pacote ZQR.

Categorizado em : Linux Tags : sem tags


20
junho 2017

Galeria de Imagens com Fancybox

Escrito por Mario Medeiros não comentários

Imagine que você queira fazer uma galeria de imagens em html simples, sem bancos de dados nem nada de tão complexo. Um layout leve e agradável em HTML5 e CSS3. Aí você também tem a idéia de adicionar um efeito de zoom nas imagens para visualizar melhor as mesmas, utilizando um plugin em JavaScript.

Pronto, problema criado! Só falta agora a solução!

Eu utilizei as seguintes ferramentas:

ShellScript, Fancybox, HTML5 & CSS3.

O que cada ferramenta faz? Automatiza a tarefa de ter que criar as tags e escrever códigos manualmente, de forma tediosa. Novamente o lema foi levado em consideração: A Preguiça É Soberana!

O shell script lê um diretório de imagens, gera um arquivo txt, grava as tags html em outro arquivo txt e o sed cola o conteúdo do txt, junto com o conteúdo do arquivo modelo.html em arquivo final, galeria.html.

Pode-se mudar o nome dos arquivos gerados, bem como mudar o script para ler outros formatos de arquivos de imagens, conforme a necessidade e/ou a preferência. Eu testei somente com jpg e png. Foi tudo OK.

Mais detalhes de como o script funciona, estão nos comentários do próprio script.

O layout ou template html que utilizei foi o Halcyonic do site HTML5 UP,

Usei como plugin de efeitos das imagens o Fancybox, e as instruções eu segui deste link:

http://www.dwuser.com/education/content/click-to-zoom-for-photos-adding-lightbox-effect-to-your-images/

No site acima eles apontam o JavaScript para um site, usando o modelo CDN. Eles usam como apontamento o site https://cdnjs.com.

Eu preferi copiar os plugins e colocar em diretórios locais. Assim não fico dependente de acesso a Internet para o sistema funcionar. Na possibilidade estar offline, tudo funciona sem problemas.

Deixo os links com os arquivos prontos, com o resultado final e script/esqueleto para gerar a galeria. Descompacte em qualquer diretório e abra o arquivo galeria.html com o navegador Firefox ou Chrome. Pode também colocar o diretório da galeria no diretório de document root do seu webserver, caso queira publicar a galeria.

Tudo o que fiz foi utilizar ferramentas e layouts prontos, dando uns ajustes para minha necessidade. Nada além disso. Espero que seja aproveitável de alguma forma para alguém.

Galeria de Imagens Pronta - Modelo

Scripts Para Gerar Galeria de Imagens


15
março 2017

Player de áudio com HTML e JavaScript

Escrito por Mario Medeiros não comentários

Música, diversão e uma distração excelente.

Depois de um certo tempo, comecei a fazer uns testes com música novamente. Nada de especial nem profissional, somente para mera distração e diversão pessoal mesmo.

Fiz uma ou outra música num violão, simples.

Postei no site LowCypher Augur - Bandcamp algumas músicas que fiz.

Achei interessante o modelo que eles utilizam para publicar as músicas. Não queria utilizar um sistema de tocador de música pela web, que fosse complexo como shoutcast ou usando bancos de dados. Então procurei o mais básico utilizando os recursos que o html5 e javascript fornecem.

Existem diversas aplicações para ouvir músicas. O que eu estava procurando era uma aplicação que rodasse no navegador web, da forma mais simples possível.

Numa busca rápida, localizei o html5 music player ( ttw-music-player.js que é o player propriamente dito, em Codebase Hero). Dei uma olhada e percebi que é simples, leve e fácil de incorporar a página html.

Achei um template html do site HTML5 UP para as páginas.

Agora começa a parte divertida. Incorporar o player na página, mas precisamente nas divs específicas que me interessou.

Uma leitura rápida e nada de entender. Uma outra leitura mais demorada e ainda nada de entender. Até que depois de umas pesquisas e leituras mais detalhadas consegui entender (ou quase isso) como incorporar nos locais que eu queria e algumas alterações no player, seu arquivo js. Simples também.

No site codebasehero, mencionado acima mostra o código que será incorporado à pagina html, com as tags script javascript.

Abaixo um exemplo da página com o álbum, o playlist e como fiz nas páginas, a inclusão do player.

Abaixo o código de exemplo da página mostrada acima.

Os locais em que deve ficar o script java script e o id do player para ser mostrado na página estão comentados e em negrito

&&&&&&&&&&&&&&&&&&&&&&&&&&

<!DOCTYPE HTML>

<!--

Halcyonic by HTML5 UP

html5up.net | @ajlkn

Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)

-->

<html>

<head>

<title>::: LowCypher Augur - UX2K17 - Vol I :::</title>

<meta charset="utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1" />

<!--[if lte IE 8]><script src="assets/js/ie/html5shiv.js"></script><![endif]-->

<link rel="stylesheet" href="assets/css/main.css" />

<!--[if lte IE 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]-->

 

<link rel="stylesheet" type="text/css" href="plugin/css/style.css">

<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>

<script type="text/javascript" src="plugin/jquery-jplayer/jquery.jplayer.js"></script>

<script type="text/javascript" src="plugin/ttw-music-player.js"></script>

 

<!--

 

Abaixo o arquivo ux1.js na pasta js é o playlist do player

Obs: para cada album eu criei uma playlist diferente na pasta js

 

-->

<script type="text/javascript" src="js/ux1.js"></script>

<script type="text/javascript">

$(document).ready(function(){

var description = '';

 

//a informação abaixo entre as simples que é o #player é o ID do player.

//Mais abaixo na página, tem uma div com o id player, onde mostra o play

//na página, na lateral à direita.

$('#player').ttwMusicPlayer(myPlaylist, {

autoPlay:false,

description:description,

jPlayer:{

swfPath:'plugin/jquery-jplayer' //You need to override the default swf path any time the directory structure changes

}

});

});

</script>

</head>

<body class="subpage">

<div id="page-wrapper">

<!-- Header -->

<div id="header-wrapper">

<header id="header" class="container">

<div class="row">

<div class="12u">

<!-- Logo -->

<h1><a href="index.html" id="logo">LowCypher Augur</a></h1>

</div>

</div>

</header>

</div>

<div id="body" class="body"></div>

<!-- Content -->

<div id="content-wrapper">

<div id="content">

<div class="container">

<div class="row">

<div class="7u 12u(mobile)">

<!-- Main Content -->

<section>

<header>

<h2>UX2K17 - Vol I</h2>

<h3>Track List</h3>

</header>

<p>Simplicidade, sutileza, delicadeza, beleza e toda sua essencia. Sao somente tres faixas, que tentam mostrar a delicadeza da Mulher.

</p>

<!--<a href="#" class="bordered-feature-image"><img src="images/06.png" alt="" /></a> -->

<h2 align="center">01 UX2K17 - Part I</h2>

<h2 align="center">02 UX2K17 - Part II</h2>

<h2 align="center">03 UX2K17 - Part III</h2>

</section>

</div>

<div class="5u 12u(mobile)">

<!-- Sidebar -->

<section>

<header>

<h2 align="center">UX2K17 - Vol I</h2>

<h2 align="center">PlayList</h2>

</header>

<!--

Abaixo a div com id do player, informado acima entre as tags head

Player incluído aqui será mostrado na lateral direita da página conforme mostrado no navegador.

Os detalhes de como lidar com divs são encontrados em diversos sites na Internet

-->

<div id="player"></div>

</ul>

</section>

</div>

</div>

</div>

</div>

</div>

<!-- Copyright -->

<div id="copyright">

&copy; LowCypher Augur. Todos Os Direitos Reservados | Design: <a href="http://html5up.net">HTML5 UP</a>

</div>

</div>

</body>

</html>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&

Um das coisas interessantes do player é o seu playlist. Utiliza o formato em json (JavaScript Object Notation - Notação de Objetos JavaScript).

Simples, fácil e … trabalhoso!!!

Exacto! Trabalhoso!

O formato do arquivo usa um array de dados para cada faixa manipulada pelo player. Conforme abaixo:

var myPlaylist =

[{

"mp3":"songs/07/01.mp3",

"title":"UX2K17 - Part I",

"artist":"LowCypher Augur",

"duration":"0:03:13",

"buy":"songs/07/01.mp3",

"cover":"imgs/07.png"

},

{

"mp3":"songs/07/02.mp3",

"title":"UX2K17 - Part II",

"artist":"LowCypher Augur",

"duration":"0:02:49",

"buy":"songs/07/02.mp3",

"cover":"imgs/07.png"

},

{

"mp3":"songs/07/03.mp3",

"title":"UX2K17 - Part III",

"artist":"LowCypher Augur",

"duration":"0:03:34",

"buy":"songs/07/03.mp3",

"cover":"imgs/07.png"

}];

Obedecendo a sintaxe e etc do formato json e do próprio player.

Obs: o arquivo ttw-music-player.js que fica na pasta plugin, pode ser ajustado de acordo com sua necessidade. Dê uma olha e estudada no arquivo que apesar de longo é relativamente simples de entender e utilizar. Ao menos para minha necessidade foi simples.

Voltando ao playlist, veja como é a estrutura do arquivo. Para cada faixa, um array. Se montando somente para um álbum com duas ou três faixas já é maçante, imagine então para vários álbuns com várias faixas cada um!!! Realmente um trabalho manual, senão braçal.

Novamente, como de costume, a preguiça é soberana e reina. A solução é automatizar a geração do arquivo, ou no meu caso, dos arquivos, para vários álbuns.

Vamos aos passos de como resolver essa questão.

A playlist que montei, não tem apontamentos para arquivos com nomes com caracteres especiais. No site do codebase, tem informações de como usar arquivos com nomes com espaços e outros caracteres, mas não tive sucesso nisso. Solução dada foi renomear os arquivos MP3 para o mais simples possível. Ex: 01 – Música.mp3 para 01.mp3 sem espaços ou caracteres especiais.

O exemplo acima mostra como deixei. Esse é um detalhe a atentar.

Para preencher os campos mp3, title e etc, utilizei a ferramenta exiftool.

Para instalar em distros Debian e derivados, é só usar o apt-get install exiftoll e pronto.

Essa ferramenta exiftool, serve para ler e escrever em arquivos de áudio, video e imagens. No site tem os formatos suportados.

A sequência para gerar o playlist.js é a seguinte:

O exfitool lê os arquivos mp3 no diretório, extrai as informações dos mp3s, gravando em arquivo.

O script usa o sed para ajustar a sintaxe exata exigida pelo player e grava o arquivo com o nome desejado na pasta js.

O script que fiz gera o arquivo com o formato exigido, aponta o arquivo de imagem da capa do álbum a ser mostrada pelo player. No script está descrito os detalhes de como é feito cada passo do processo. Tentei deixar os comentários o melhor detalhado possível.

Os ajustes de layout em html e css fica por conta de cada um. Eu utilizei um modelo que achei mais agradável e prático para o que eu quero. Você pode utilizar os laytous e/ou templates que achar mais adequado. O player pode se adequar em vários deles.

Abaixo deixo os links para o script e um modelo das páginas com um álbum de 3 arquivos mp3 como modelo.

Lembrando que o apropriado é utilizar as páginas com o player num webserver. Pode ser sua própria máquina.

Não é escopo deste artigo a instalação e configuração de um webserver Linux para isso. Se quiser pode acessar o artigo aqui, que tem as instruções para tal.

Shell Script - makelist.sh

Página de exemplo com arquivos de áudio, formato MP3s

Categorizado em : Linux Tags : sem tags


03
janeiro 2017

Calculadora com bc e zenity

Escrito por Mario Medeiros não comentários

As vezes conseguimos fazer uns cálculos rápidos e simples de cabeça.
Outros cálculos mais complexos e que precisam ser feitos com certa rapidez, utilizamos uma calculadora.
Isso vai desde uma com operações básicas até as que possuem recursos para cálculos financeiros e/ou científicos.
A maioria dos Sistemas Operacionais (aquele que tem uma tela azul, versão 10, não se enquadra totalmente nessa classe), possuem em sua lista de programas/aplicações, alguma calculadora, mesmo que básica.
No caso do Linux, que é o Sistema Operacional em questão, ele possui a aplicação bc, dentre outras.
Não é extamente uma calculadora, mas sim uma linguagem para cálculos.

Mais detalhes sobre o bc nos links:
Artigo do site Viva O Linux em português: https://www.vivaolinux.com.br/artigos/impressora.php?codigo=4720
Site Oficial do bc em inglês: https://www.gnu.org/software/bc/

Como eu não uso os recursos complexos do bc, somente os básicos, ficou até que relativamente simples mesclar shell script, bc e zenity.

Uma calculadora básica, sem muitos detalhes.
As operações utilizadas foram as seguintes:
Adição, Multiplicação, Subtração e Divisão.

Adicionei como extra:
Potenciação, Radiciação e a Adição de vários números juntos, ou notação.

Por exemplo: 1+2+3+4+5+6+7+8+9
Que dará 45

Segue aqui o link para o arquivo ZCalc

Baixe o arquivo, descompacte em um diretório qualquer e depois dê permissões de execução: chmod +x zcalc.sh

Caso queira, crie um diretório específico para o script ou coloque no /usr/bin
Depende de sua organização.

Lembrando que a sua distro deve ter instalado o pacote do zenity.
Fiz testes com o matedialog, que faz o mesmo como o zenity.
Se utilizar o matedialog, deve-se trocar o comando zenity no script por matedialog, simplesmente.

Os testes feitos com matedialog, mesmo sem ter o ambiente Mate, funcionaram sem problemas.

Categorizado em : Linux Tags : sem tags


-