Filed under ubuntu

Gedit: ambiente de programação

Quanto assisti aos screencasts do Ruby on Rails uma das coisas que mais me chamou atenção foi o TextMate, o editor usado na apresentação. Fiz uma pesquisa na Internet e aparentemente a ferramenta já virou Cult entre os programadores. O problema é que ela só existe para MacOS e os desenvolvedores não tem previsão nenhuma de lançarem alguma versão para Linux. Além disso ela é comercial.

Tentei achar alguma alternativa para Linux. Inicialmente testei o Scite, ferramenta baseada no Scintilla. Muito flexível, mas complexa de configurar e pouco integrada ao resto do desktop. Foi quando lembrei que o Gedit agora tem um sistema de plugins.

Instalei os plugins e assim consegui customizar um ambiente de programação interessante. Para instalar:

sudo apt-get install gedit-plugins

Depois de instalado é possível ir em Editar->Preferências->Plugins e escolher quais utilizar. Os que eu estou usando:

- Bracket Completion: adiciona automaticamente as chaves para fechamento de funções e blocos

- Code comment: comenta um trecho de código (Ctrl+M) ou descomenta (Shift+Ctrl+M)

- Console python: adiciona um console do Python no painel inferior. Muito útil

- Ferramentas externas: pode-se configurar teclas de atalho para executar um compilador, navegador, etc

- Terminal embutido: adiciona um terminal no painel inferior. Dentro do terminal é só digitar gedit arquivo que o arquivo é aberto em uma nova aba do editor. Para facilitar ainda mais eu criei um alias no meu .bashrc para quando digitar o comando g arquivo ele substitui pelo gedit arquivo. Soi só adicionar a linha g=’gedit’ no fim do .bashrc

- Trechos: essa é muito legal. Você pode definir pedaços de código a serem adicionados automaticamente. Por exemplo. Editando um arquivo php é só digitar foreach e teclar o Tab que um “esqueleto” do comando foreach é gerado na tela. Além disso pode-se teclar Ctrl+Space para mostrar uma lista de trechos configurados. Tudo isso configurável na tela de configuração do plugin

Isso tudo adicionado ao Syntax Highlighting que o Gedit já faz para as principais linguagens de programação e temos um ambiente integrado e simples de usar. Lógico que ainda dá para elencar algumas coisas que faltam, mas com esta arquitetura de plugins é só criarmos ou esperarmos alguém desenvolver.

Uma imagem do meu Gedit configurado:

Gedit

Gerando Syntax Highlighting com enscript

Com a ferramenta enscript é possível gerar páginas html com o conteúdo de um programa ou script com o sempre útil syntax highlighting, o que facilita bastante a leitura de um código-fonte.

Para instalar:

sudo apt-get install enscript

Para gerar uma página html com o conteúdo de um script em Python:

enscript –color –language=html -Epython –output cliente.htm cliente.py

O arquivo cliente.htm será gerado com o conteúdo do cliente.py com as cores já formatadas para facilitar a leitura do código.

Diversas linguagens de programação estão disponíveis, como é listado no site

Cache de DNS para navegação mais rápida

Lendo o rss deste blog encontrei um post interessante sobre como instalar a ferramenta dnsmasq para fazer cache de DNS na máquina local, aumentando a velocidade da navegação. A velocidade é aumentada porque cada vez que é digitado um endereço no navegador ou outra aplicação, este endereço é convertido para seu endereço IP. Com o dnsmasq um cache é criado com estas informações. Depois que você já usou o endereço uma vez é bem mais rápido esta conversão porque as informações estão locais. Instalei no meu Dapper e a diferença foi visível. A minha conexão com a Internet é através de uma  ADSL. Minha máquina recebe as configurações de rede do modem ADSL via DHCP. Traduzindo as informações do blog:

Para instalar dnsmasq é só:

sudo apt-get install dnsmasq

Depois é preciso configurá-lo. Para isto deve-se editar o arquivo:

sudo gedit /etc/dnsmasq.conf

Deve-se procurar a linha que tem o conteúdo

#listen-address =

e alterar para

listen-address=127.0.0.1

Lembrando que este é o endereço IP da máquina local.

Como citei, minha máquina recebe as informações de IP via DHCP, então é preciso configurar o arquivo:

sudo gedit /etc/dhcp3/dhclient.conf

Deve-se procurar a linha:

#prepend domain-name-servers 127.0.0.1;

e remover o comentário, ficando:

prepend domain-name-servers 127.0.0.1;

Desta maneira o cliente do dhcp vai manter a máquina local como servidor de nomes  sempre. Depois é preciso alterar o arquivo /etc/resolv.conf para adicionar a máquina local para ser um servidor de nomes. Então:

sudo gedit /etc/resolv.conf

O meu arquivo estava assim:

search dummy.net
nameserver 192.168.200.254

e depois de alterado:

search dummy.net
nameserver 127.0.0.1
nameserver 192.168.200.254
Estas informações serão diferentes em cada máquina, pois esta informação é recebida do seu DHCP ou é configurada manualmente. O que foi adicionado foi a linha nameserver 127.0.0.1

Depois é preciso reiniciar o dnsmasq para ele reconhecer as alterações de configuração:

sudo /etc/init.d/dnsmasq restart

Para testar é só navegar ou executar o comando dig. Exemplo. Executando o comando

dig ubuntu.org
pela primeira vez ele levou 300 msec para encontrar o endereço IP. Nas próximas vezes isso caiu para 35 msec.
No site original pode-se encontrar mais alguns exemplos que não testei porque não refletem meu ambiente.

Outdoor do Ubuntu

Um grande outdoor foi colocado na cidade de Redwood City, Estados Unidos, com uma propaganda do ubuntu.

ubuntubillboard.jpg

Legal. Quem sabe não fazemos uma destas aqui no Brasil? Não sei ao certo se foi a Canonical que patrocinou ou se foi algum grupo de usuários, mas a idéia é ótima.

Instalando o Engage no Dapper

O que é o Engage

O engage é um dock similar ao do OS X que está sendo desenvolvido em conjunto com o Enlightenment 17. A vantagem é que ele pode ser usado também em outros ambientes como o Gnome ou o XFCE.

Instalando

Para instalar no Dapper é preciso adicionar no /etc/apt/sources.list :

deb http://soulmachine.net/breezy/ unstable/

Depois é preciso importar a chave pública do repositório com o comando

sudo wget soulmachine.net/public.key && sudo apt-key add public.key

depois é só atualizar e instalar:

sudo apt-get update

sudo apt-get install engage

Configurando

É preciso criar os diretórios onde será gravado as configurações:mkdir -p ~/.e/e/applications/allmkdir -p ~/.e/e/applications/engage

O engage quando executado irá procurar no diretório acima os módulos a apresentar. Estes módulos estão em um formato especial, o .eap, que contém as instruções do executável e do ícone a apresentar. Neste link pode ser encontrado alguns arquivos:

osx.tar.gz

Estes arquivos devem ser descompactados no diretório ~/.e/e/applications/engage
Para alterar as informações do arquivo eap deve-se instalar outra ferramenta:

sudo apt-get install eutils

E para alterar um dos arquivos:

e_util_eapp_edit ~/.e/e/applications/engage/gnome-terminal.eap

Executando

O executável do engage possui várias opções como tamanho dos ícones, transparência, etc. Eu estou usando o seguinte comando:

engage -G 1 -g 1 -b #00000000 -B #00000000

Sendo:

* -G 1 : capturar os ícones de todos os aplicativos executando
* -g 1 : capturar os ícones de todos os aplicativos minimizados
* -b e -B : cor de fundo e principal. Usando zeros o engage fica completamente transparente

É possível colocar este comando para executar no início da sessão do gnome para que execute automaticamente.

Funcionamento

Com o botão esquerdo são executados os aplicativos. Com o botão central sobre um aplicativo aberto todas as janelas deste aplicativo em execução são abertas. Segurando o botão esquerdo sobre o ícone do aplicativo minimizado este é aberto. O botão direito abre o menu de configurações do engage

Screenshot

engage.jpg

Fonte

http://www.supriyadisw.net/2006/04/engage-on-dapper-drake

Novo menu da Novell no Dapper

Uma das coisas mais legais que vi no último FISL foi o novo menu que a Novell estava desenvolvendo para a nova versão de sua distro para desktop. Fiz uma pesquisa e encontrei esse tópico no fórum do Ubuntu com instruções de como fazer isso no Dapper. Usei o .deb fornecido no endereço http://ubuntuforums.org/showpost.php?p=1203615&postcount=130

E depois foi só adicionar no painel o novo menu:

adicionar_menu.png


O resultado é um menu bem organizado e bonito

menu.jpg

Last.fm

Mais uma aplicação Web2.0 interessante. O site last.fm permite que você ouça as músicas que gosta, participe de comunidades das bandas, compartilhe seus gostos musicais com outros usuários, coloque tags nas músicas, etc.
A nova versão do banshee que vem com o Dapper possui um plugin que permite que as músicas que você ouve usando o player sejam listadas na sua lista de músicas preferidas.

Captura_da_tela.png

Outra feature legal é a possibilidade de exportar via rss as músicas ou artistas que você mais ouve. Coloquei na barra ao lado a lista das últimas 10 músicas que estou ouvindo via rss.

Feed Zero

Aderindo a campanha, aí vai a lista de feeds que leio diariamente, no formato OPML

A chegada do "boom" do PHP

Neste post o autor comenta um fato que também tenho percebido ultimamente. É o aumento da procura por profissionais especializados em PHP. No texto ele fala sobre a realidade americana, onde já se encontra de 5-10 ofertas por dia no site de empregos monster.com. Por aqui ainda não está tão grande a oferta mas acompanhando o RSS das ofertas de emprego do site Linha de Código realmente a quantia de ofertas tem aumentado bastante nos últimos meses. Eu acho que uma das razões para esse fato é o reconhecimento que grandes empresas da área tem demonstrado pela linguagem, principalmente a Oracle e a IBM.

Outros pontos interessantes que constam no blog:

  • “obtenha sua Zend Certification”. Realmente profissionais que tenham a certificação da Zend vão ser mais facilmente absorvidos pelo mercado. Aqui em SC quem aplica a certificação é a empresa ipTrust de Florianópolis e a prova custa U$200, mas parece cada vez mais uma opção interessante para melhorar o currículo.
  • “apareça no google”. Se você procurar seu nome no google e não encontrar nada então pode ficar preocupado, afinal um programador web deveria estar visível no google. Isto mostra como você participa da comunidade, encontra respostas e responde dúvidas.
  • “contribua para um projeto open source em PHP ou mantenha um projeto”. Isto mostra que você tem interesse em programação e que gosta realmente do que faz. Também mostra que pode trabalhar em projetos grandes e em grupos.

Relato do FISL 7.0

Faço aqui um resumo das palestras que assisti no FISL este ano. No geral eu achei que as palestras do ano passado estavam melhores, mais aprofundadas. Várias que assisti este ano achei muito introdutórias. Os palestrantes deveriam se aprofundar mais nos assuntos, afinal o público era composto de programadores, acadêmicos, administradores de redes, etc.

Como nossa caravana chegou em POA no dia 20 infelizmente perdi algumas palestras que gostaria de ter assistido no dia anterior, como a de Plone, a de Python, Ubuntu, entre outras.

Linux a bordo: construindo sistemas embarcados com Linux – esta palestra começou bem introdutória mas no final mostrou algumas dicas práticas para auxiliar no desenvolvimento de sistemas embarcados. Gostei da idéia de usar o qemu para poder emular um sistema e poder fazer os testes. Os slides da palestra podem ser encontrados no site http://linuxabordo.com.br/download/artigos/linuxabordo.pdf

Grades computacionais livres – essa foi uma das palestras que eu esperava bastante mas fiquei decepcionado. O palestrante somente apresentou o que é um grid, funcionalidades e as ferramentas que existem para se desenvolver com grids. Não que o palestrante seja ruim, pelo contrário, mas eu esperava alguma novidade ou alguma experiência na aplicação das ferramentas.

Programação paralela com threads Anahy – palestra que fazia parte das chamadas Sessões Técnicas. Gostei bastante da apresentação e da aplicação que os acadêmicos estão desenvolvendo. É uma alternativa às pthreads. É o tipo de pesquisa acadêmica que eu gostaria de participar. Pena que foram somente 20 minutos para a apresentação, mas vou olhar com mais atenção para esta biblioteca.

ClassGenerator- Desenvolvendo aplicações em PHP com qualidade e eficiência – boa apresentação. Uma ferramenta desenvolvida para gerar classes PHP a partir da definição do banco de dados e outras definições. Eles usam o conceito de “artefato” significando porções de códigos que podem ser reaproveitados. O palestrante também foi muito bom, bem descontraído e didático. Essa é uma ferramenta que eu posso tentar colaborar com o desenvolvimento. O site é http://www.marcelioleal.net/classgenerator/

IPv6, a nova geração da internet chegou – outra palestra que decepcionou. Mas a culpa não foi inteiramente do palestrante. Quem iria apresentar não pode vir e outra pessoa apresentou em seu lugar, meio despreparado. Mas deu para relembrar algumas coisas do IPv6 e aprender algumas novas (poucas).

Gnome e Mono – Na verdade foram duas palestras ministradas pelo Miguel de Icaza. Para quem não conhece, Miguel foi um dos fundadores do projeto Gnome, donos da empresa Ximian que foi comprada pela Novell, onde trabalha hoje. Sem dúvida o melhor palestrante do fórum, com um carisma incrível e um domínio do público fenomenal. Na primeira palestra ele apresentou as novas características do desktop da Novell e aplicações legais como o Banshee para controle de músicas e iPod, f-spot para administrar as fotos do usuário, o beagle para fazer pesquisas google-like no desktop. Tudo isso com bom humor e exemplos práticos. A segunda palestra foi sobre o Mono, ferramenta que ele iniciou na Novell e hoje conta com vários desenvolvedores, inclusive uma forte equipe brasileira. Ele mostrou as vantagens do Mono, desenvolveu pequenos programas em C# e em boo (linguagem baseada no python desenvolvida por um brasileiro), GTK#, etc. Resumindo, me convenceu a dar uma chance para a ferramenta. Vou dar uma pesquisada em C# e boo para desenvolver algumas aplicações para desktop.

Best practices for Python GUI development – apresentação sobre os toolkits de desenvolvimento de interfaces gráficas em especial GTK e sua utilização com python, apresentado por um dos desenvolvedores da empresa Async. O que eu achei interessantes foram algumas ferramentas apresentadas para testar as interfaces como a Kiwi UI Tester desenvolvida por eles para testar as interfaces do sistema Stoq (que foi apresentado em outra palestra mas não consegui assistir).

Resolvendo quebra-cabeças com python / SELinux / GPLv3 – como eu gostaria de assisitir as tres palestras acabei assistindo um pouco de cada uma. A primeira era apresentada pelo Gustavo Niemeyer sobre quebra-cabeças e sua resolução em python. A de SELinux eu tinha interesse em assistir por que vou ministrar uma disciplina de segurança mas o palestrante estava bastante perdido e quase caiu durante a apresentação. Não foi muito proveitosa. Acabei saindo antes e pegando uma parte da apresentação do Stallman sobre a GPLv3. Também não consegui assistir muita coisa, mas ele estava falando sobre um problema de licenças que surgiu com o advento do Tivo, caixinha com linux instalado que funciona como uma central de mídia, recebendo filmes e programas de TV e gravando em seu HD. O grande paradoxo é que como é feito em Linux eles devem disponibilizar os fontes mas se os usuário tiverem os fontes eles vão poder quebrar as restrições de cópia dos vídeos gravados no HD, o que inflinge a lei americana de copyrights sobre os filmes. Pelo que ele estava apresentando a GPLv3 pode resolver isso, entre outras coisas. Realmente dá muita discussão esta parte legal.

Utilizando PAM como ferramenta de segurança – boa palestra, que apesar de não ter me fornecido uma grande quantia de novas informações serviu para relembrar várias coisas legais do PAM. O palestrante também foi muito bem, lembrando o Jô Soares (pelo carisma e pelo porte atlético hehe)

Introdução à plataforma de desenvolvimento do GNOME – devido a ressaca da festa da sexta-feira a primeira palestra que aproveitei no sábado começou as 14hs. Palestra com poucas novidades mas que serviu para esclarecer algumas dúvidas que tinha sobre alguns componentes do GNOME como o cairo, pango, glib, gnome-vfs, gstreamer, etc.

Apache Realiability: Mitigando os efeitos de memory-leaks no httpd – palestra feita pelo meu ex-professor o Rivalino. Fala sobre os problemas de memory-leaks do apache e mostra uma pesquisa que ele fez para provar qual é a melhor configuração do servidor para amenizar este problema. Bem interessante.

Ajax e Direct Web Remoting – palestra que fazia parte do Encontro Javali. Mostrou uma ferramenta (DWR) para trabalhar com Ajax em aplicações Java (jsp e servlets). Achei a palestra introdutória demais e não concordei com várias das observações do palestrante sobre o Ajax, mas sempre é bom ver o que outras linguagens e ambientes estão usando

No geral o evento foi legal, com vários grupos de usuários participando e o Stallman que foi um show a parte, com suas maluquices. O local do evento não agradou ninguém. Muito longe de tudo, péssimas opções de alimentação, etc.

Se tudo der certo ano que vem estarei novamente no FISL e de preferência como palestrante também.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 1.472 other followers