Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Bombando o shell: o novo livro de Júlio Neves

Júlio Neves é o responsável por despertar o interesse e formar o conhecimento de grande número de pessoas que hoje resolvem seus problemas usando scripts shell. Seus livros, séries de artigos em revistas, posts em blogs, palestras em eventos da comunidade open source nacional e outras formas que ele encontra para transmitir sua mensagem estão há anos encontrando terreno fértil entre os usuários de Linux e outros sistemas Unix e Unix-like.

E o seu novo livro, lançado recentemente pela editora Brasport, não repete o conteúdo anterior, mas mesmo assim honra a tradição do @juliobash de expor os scripts shell com objetividade e permanente bom humor.

Em suas 345 páginas (mais CD-ROM contendo exercícios, exemplos e as ilustrações coloridas e em tamanho integral), “Bombando o Shell – Caixa de Ferramentas Gráficas do Shell Linux” apresenta o próximo passo na interatividade de scripts: os diálogos em modo gráfico.

A obra é dividida em 4 livros, equivalentes a macro-capítulos, e complementada por 3 apêndices. No primeiro livro vemos os detalhes sobre o Zenity, figura conhecida de muitos scripts de instalação e configuração que fazem uso do GTK para exibir e controlar interfaces gráficas, incluindo vários de seus diálogos padronizados: seletores de abertura e gravação de arquivos, de datas no calendário, de campos de texto, etc., bem como elementos como janelas de notificação e barras de progresso.

Além de apresentar as formas de interagir com o Zenity, o livro também explica (com um apêndice dedicado a isso) a linguagem de marcação Pango, que pode ser usada para controlar a formatação dos textos exibidos nos diálogos. Entre os exemplos apresentados, há até um script que implementa um chat em shell e Zenity.

O segundo livro trata do YAD, apresentado pelo próprio Júlio em outro artigo recente aqui no BR-Linux. Trata-se de um fork do Zenity que tem uma vantagem essencial debaixo do capô: deixa de lado o uso de bibliotecas descontinuadas, como o libglade ou gnome-canvas. Mas ele também tem um destaque funcional: oferece mais liberdade na definição dos diálogos, permitindo, por exemplo, liberdade na definição da quantidade de botões e do texto de seus rótulos, em qualquer diálogo.

Curiosamente, este software chegou ao conhecimento do autor quando o livro já estava pronto, mas o interessou tanto que motivou uma reescrita e reestruturação da obra. Mas valeu a pena. Entre os exemplos interessantes do uso do YAD, me chamaram a atenção o que exibe e permite controlar um ícone na área de notificações do sistema (perto do relógio do desktop), e o que exibe uma janela de ícones definidos arbitrariamente.

Os outros 2 capítulos tratam sobre o Dialog, alternativa mais tradicional, pois foi criado em 1994 e opera basicamente no console ou em terminais de texto, e sobre o Kdialog, seu descendente que constrói os diálogos usando o toolkit Qt, típico de ambientes KDE. Para completar, os apêndices tratam da linguagem de marcação Pango, do uso de expressões regulares e da interação entre scripts e o Nautilus.

Definitivamente recomendo. Não serve como primeiro livro para aprendizado de shell scripts (para isso não faltam bons títulos), mas é um bom segundo livro – ou um complemento para quem já sabe fazer scripts e quer complementar suas interfaces.

Na dedicatório, o Júlio escreveu que eu sou apreciador da interface a caractere, mas ele tem esperança de que o livro me ajude na “arte final” ツ Geralmente os meus scripts não rodam no modo interativo do desktop (ou são filtros não-interativos, ou interagem via web), mas não tenho dúvida de que na próxima situação que exigir interação desktop de um script meu, é ao YAD e ao “Bombando o Shell – Caixa de Ferramentas Gráficas do Shell Linux” que vou recorrer!


• Publicado por Augusto Campos em 2011-12-16

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Patola (usuário não registrado) em 16/12/2011 às 10:30 am

    Nesse livro o Júlio já chega a falar do zsh ou continua fingindo que este poderosíssimo shell não existe?

    Fabiano Vasconcelos (usuário não registrado) em 16/12/2011 às 8:44 pm

    Esse Júlio Neves é uma figura! Gostei muito de conhecer ele! Muito bem humorado e de boníssima palestra! Certamente o livro deve ser uma preciosidade.

    Júlio Neves é um dos maiores responsáveis pela popularização do “Software Livre” no Brasil. Ligado a pastas/órgãos que influenciam diretamente nas decisões de desenvolvimento e adoção de softwares open-source, o Júlio também faz parte do conselho executivo que organiza o FISL e é figura carimbada em vários outros eventos de SL pelo país (SoLiSC, LatinoWare, etc…).

    Não obstante, é um sujeito extremamente acessível e muito competente. Estou certo de que este será mais um livro de muito sucesso do Júlio. Parabéns!

    Abraços!
    Jack

    Julio Neves (usuário não registrado) em 17/12/2011 às 11:52 am

    Antes de mais nada quero agradecer ao Brain pelas suas palavras elogiosas ao meu respeito, porém enfatizando que, no meu conceito, ele, Rubens Queiroz, Marcos Mazoni e Sergio Amadeu compõem o quarteto que mais contribui com o Sw Livre nacional, cada um em seu estilo e do seu jeito.

    Valeu Brain!

    Julio Neves (usuário não registrado) em 17/12/2011 às 12:15 pm

    Fala Patola,
    Além do Bash, gosto muito tb do C e do Python (apesar de ser “estagiário” na última), mas no meu trabalho procuro manter o foco no Bash, já que ele sempre estará lá no /bin à sua disposição e, no meu entender, é uma das melhores ferramentas de programação que existem.

    Por outro lado, a qtde de publicações em PT_br é ridiculamente incipiente e por isso dou a maior força para escreveres um compêndio sobre zsh e até te apresento ao meu editor, para tentares a publicação.

    No meu modo de proceder, as palavras de ordem são: “foco” e “cada macaco no seu galho“. ;)

    Patola (usuário não registrado) em 17/12/2011 às 4:18 pm

    Não acho o bash poderoso. Nem fork do lado direito ele tem. No bash:

    $ echo aaaa | read x ; echo $x

    $

    No zsh, ksh, ksh93 e outros shells melhores:

    $ echo aaaa | read x; echo |$x
    aaaa
    $

    O que pode parecer um detalhe complica pra caramba ao se fazer scripts mais elaborados, atrapalhando até mesmo na construção de algo básico como laços.

    Isso é só um dos exemplos, mas claro, há outros. Esse em especial nunca será mudado, porque é erro de início de projeto e enquanto for necessário compatibilidade, não trocarão.

    Patola (usuário não registrado) em 17/12/2011 às 4:23 pm

    Puxa, meu post saiu todo errado, eu devia ter dado preview antes. Aqui vai, tentando consertar:

    Não acho o bash poderoso. Nem fork do lado direito ele tem. No bash:

    $ echo aaaa | read x ; echo $x

    $

    No zsh, ksh, ksh93 e outros shells melhores:

    $ echo aaaa | read x; echo $x
    aaaa
    $

    O que pode parecer um detalhe complica pra caramba ao se fazer scripts mais elaborados, atrapalhando até mesmo na construção de algo básico como laços.

    Isso é só um dos exemplos, mas claro, há outros. Esse em especial nunca será mudado, porque é erro de início de projeto e enquanto for necessário compatibilidade, não trocarão.

    Pra mim, o bash, por ser algo default e cujo uso está garantido, não tem tanto esforço empregado pra melhorias e recursos como o zsh.

    Sobre o curso de zsh (e outros shells), acredite, eu até estou preparando. Mas os direitos pertencem ao meu empregador e somente pedindo aprovação dele eu poderei posteriormente liberar a público.

    Patola (usuário não registrado) em 17/12/2011 às 4:34 pm

    Júlio, não sei se você ainda lerá essa resposta, mas quero deixar um pouco mais clara minhas reservas sobre a falta de menção ao zsh nos seus textos e livros:

    O zsh é um excelente shell, 100% livre, modular, rápido e poderoso. Assim como o GNU/Linux em si, porém, é uma alternativa. E o que irrita qualquer um que conheça alternativas em um assunto é a falta de menção e comparação com o mais usado, quase como se fosse algo pra esconder seus defeitos.

    Foi assim com o GNU/Linux, que ainda sofre da “síndrome da invisibilidade” – muita gente fala de “PC” como se fosse PC com Windows, muita gente não menciona outros sistemas operacionais quando fala do mais usado.

    O que eu acho é que você poderia (se já não sabe) aprender uma coisa ou outra sobre o zsh e colocar num rodapé, ou numa orelha dos seus textos, alguma comparação. Inclusive porque, didaticamente, a comparação entre shells ajuda bastante a pessoa a pegar o contexto, é um ótimo exercício didático e “abre a mente” do aluno, faz pensar. Não falo nem somente do zsh, mas num curso de bash acho importantíssimo falar do bsh original, do ksh que inspirou os principais shells de hoje em dia, e até do csh/tcsh (em menor grau) por fatores históricos.

    É claro, isso é uma sugestão na forma de um resmungo mal-humorado, mas ainda é uma sugestão e obviamente eu não tenho como te obrigar ou coagir a colocar isso nos seus textos. E não acho nem justificável você querer que eu escreva todo um novo texto por causa disso (embora eu vá me esforçar para o fazer, pedindo inclusive a tal permissão para o meu empregador).

    Julio Neves (usuário não registrado) em 18/12/2011 às 4:42 am

    Patola,
    qdo comecei esse livro, ele era baseado em ksh e depois adaptei-o ao bash, mas ainda mostro (quase) todas as divergências entre os dois. Como o ksh e o bash são muito mais usados que o zsh e o livro já está um tijolo de tão grosso, acho que não compensa agregar mais dialetos.

    Só mais uma coisa: para fazer o que vc queria, não é necessário perder tempo e atolar processador para fazer fork, veja:

    $ var=1:2:3:4
    $ IFS=: read a b c d <<< "$var"
    $ echo $a-$b-$c-$d
    1-2-3-4
    # e $IFS não foi alterada, veja:
    $ var='4 5 6'
    $ read e f g
    $ echo $e-$f-$g
    4-5-6

    Insisto: o Brasil está precisando de talentos literários, escreva um livro sobre zsh e nele prove a todos que o zsh é a 8ª maravilha da natureza. Se precisar, te ajudo a tentar a publicação.

    Para finalizar, o assunto da matéria do Brain eram as Interfaces Gráficas do Shell. Vc que gosta de shell e projetos-fork, ;) teste o yad (um super-hiper-fork do zenity) que tenho certeza que vc irá adorar.

    Julio Neves (usuário não registrado) em 18/12/2011 às 4:46 am

    Tb não li antes de enviar…
    s/read e f g/read e f g <<< $var/
    Esqueci da Here String :(

    Magno (usuário não registrado) em 18/12/2011 às 10:32 am

    Prezados, não sei vocês, mas eu, antes mesmo do BR-Linux, da lista da Unicamp ou mesmo da lista de discussão da Conectiva, usava muito as informações passadas pelo Hugo Cisneiros no seu site. Não é porque ele não aparece hoje que deixou de ser um dos precursores do Linux no Brasil. Mas esta é só a minha opinião :-)

    Obrigado pelo generoso elogio, Júlio! Tento sempre fazer minha parte, mas felizmente trata-se de uma obra que muita gente ajuda a construir!

    Hélio Ferreira (usuário não registrado) em 19/12/2011 às 12:20 pm

    @Magno

    Bem lembrado. O Hugo era um menino naquela época. Seus textos ajudaram muita gente.

    Julio Neves (usuário não registrado) em 19/12/2011 às 1:37 pm

    Magno, concordo com vc acerca do Cisneiros e devo te adiantar que ele é muito meu amigo e qdo fez isso tudo que vc falou, tinha cerca de 15 anos. Realmente é um dos precursores do Linux no Brasil.

    Spif (usuário não registrado) em 19/12/2011 às 3:09 pm

    Acho que vale a pena dizer uma coisa, que eu já queria logo que lançaram as duas últimas notícias do Júlio aqui.

    Tudo que eu sei hoje em dia sobre Shell Script eu devo aos livros dele. Isso me rendeu avanço profissional e muitos elogios. Tenho umas 3 edições diferentes do livro de Shell Script dele em casa.

    Eu entrei em contato com o trabalho do Júlio em um congresso em Curitiba, procurando informação sobre o shell fui ver uma palestra do Julio Neves, o “Shellman”. Me lembro de comentar com um amigo: “É bom que esse cara seja bom, pra ficar se apelidando assim.

    Claro que o Júlio era, de fato, um grande especialista e uma pessoa muito boa. Fato que tanto eu quanto meu amigo pudemos comprovar quando passamos por um treinamento com ele.

    O Júlio é um grande partidário do software livre, também. Tive oportunidade de ver ele em ação ajudando uma pessoa que ninguém teria imaginado em ajudar.

    Por essas e outras que eu sempre recomendo os trabalhos do Júlio Neves e já até presenteei amigos com os escritos dele. Se você é um novato e quer aprender Shell, é o melhor professor. Se você já sabe e quer aprender mais, é o melhor colega pra te empurrar na direção certa.

    henry (usuário não registrado) em 19/12/2011 às 5:04 pm

    @Julio Neves, será que existe a possibilidade de sair alguma versão digital para kindle, por ex ?

    Julio Neves (usuário não registrado) em 19/12/2011 às 7:07 pm

    Vou responder all-in-one. ;)
    Spif: Muito obrigado pela força e pelos elogios. Realmente sou um cara totalmente focado no SL e tenho muito orgulho disso. Porém eu nunca me referi a mim mesmo, nem me auto intitulei ShellMan. Isso é uma gozação do Rubens Queiroz, do dicas-l. O Cesar Brod, tb me apelidou de O Papai do Shell. Levo isso tudo como brincadeira, mas não assino nem promovo esses apelidos.

    Não gosto de ser tratado como senhor, doutor, professor, … Abro mão de qq titulação respeitosa por um amigável “Julião”. Que segundo Arquimedes, é devido ao volume de líquido deslocado (obviamente para dentro).

    Henry: Tenho um livro publicado em http://www.julioneves.com. Se alguém tiver um tempo para colocá-lo no formato digital para kindle, agradeço e dou sociedade em possíveis vendas.

    spif (usuário não registrado) em 19/12/2011 às 7:38 pm

    oooh… então eu já sei quem escreveu aquele folheto, à tanto tempo! :)

Este post é antigo (2011-12-16) e foi arquivado. O envio de novos comentários a este post já expirou.