O pessoal que entra no mundo linux logo descobre que as coisas mais animais que dá pra se fazer é através da linha de comando. Porém para a maioria das atividades rotineiras, acaba-se usando ferramentas gráficas para isso.
Usar o OpenOffice.org, navegar com o Firefox, usar o K3B para gravar um CD,.... tarefas comuns, rotineiras e que têm uma solução de interface gráfica, que praticamente dispensa prática ou muitos conhecimentos.
Nos ultimos dias também andei experimentando soluções em modo texto para tarefas comuns. Descobri que o shell por si só é muito mais poderoso do que imaginava. Também experimentei os editores nano e VI Improved (VIM), que são demais.
Têm recusos incomuns à primeira vista, e podem até parecer complicados de se usar, mas depois de mais ou menos uma hora trabalhando com eles já se nota a diferença na velocidade com que se pode realizar as tarefas comuns. E ainda por cima pode-se customizar funcionalidades e recursos de forma a tornar o trabalho mais ágil.
Navegadores de modo texto também são um barato. Experimentei dois: o lynx e o w3m. O Lynx é um clássico, muito bom e com vários recursos. Mas o w3m me surpreendeu. Ele tem suporte a navegação em abas, suporte a várias codificações diferentes, gerenciamento de cookies, recursos de segurança, gerenciador de downloads, 'favoritos' e histórico. Em outras palavras: completo.
Outras coisas que quero experimentar no modo texto são: gravar CD direto pela linha de comando (dizem que é absurdamente mais rápido, e eu não duvido, basta ver a diferença entre o Nero e o K3B); usar o talk para mensagens instantâneas; e o ffmpeg para converter arquivos, como .avi para .mpg.
Talvez esse mundo só fique proibido dos designers, que dependem do GIMP, Inkscape, Blender e Cia, para trabalhar. Mesmo assim, quem sabe realmente usar estes programas afirma que eles são as ferramentas de produção mais eficazes do mercado.
Té+
-----------
keepReading
Artigos, tutoriais, sugestões de leitura, dicas rápidas e relatos de experiências com sistemas operacionais, linguagens de programação e desenvolvimento, focado em código aberto
sexta-feira, 27 de abril de 2007
Uma referência da linguagem C
Eu sempre gostei de referências completas. O problema sempre foi achá-las. E nos últimos dias procurei algo sobre linguagem C.
A idéia surgiu depois de eu ter lido um código-fonte cheio de includes. Me perguntei se era necessário tudo aquilo, e mais importante, quais funções são fornecidas por cada um dos header files.
Ao conferir os próprios arquivos, vi que apesar de bem documentados, eram numerosos e extensos demais. O que eu queria era apenas uma lista. Decidi criar algum algoritmo ou script que criasse essa lista para mim. No entanto, cada arquivo tem um formato interno diferente, o que dificultou (e ainda está dificultando no presente momento) meu trabalho.
Achei algumas referências na internet e gostaria de compartilhá-las, ainda que nenhuma delas me atenda por completo.
Site de Eric Huss
Site da GNU
O site da GNU é mais que um curso completo, porém não aborda todas as bibliotecas, a informação não está organizada da forma que eu queria (como no site de Eric Huss). O site de Eric Huss, por sua vez apresenta-se com uma organização mais agradável, porém a quantidade de informação é muito menor, assim como as bibliotecas abordadas.
Mas, enquanto estudo e crio uma solução (desejo criar um tarball de arquivos html ou xml), as referências acima dão conta da maioria das dúvidas.
PS: Se quiser entender o por quê da linguagem C, leia este texto de Eric S. Raymond.
-----------
keepReading
A idéia surgiu depois de eu ter lido um código-fonte cheio de includes. Me perguntei se era necessário tudo aquilo, e mais importante, quais funções são fornecidas por cada um dos header files.
Ao conferir os próprios arquivos, vi que apesar de bem documentados, eram numerosos e extensos demais. O que eu queria era apenas uma lista. Decidi criar algum algoritmo ou script que criasse essa lista para mim. No entanto, cada arquivo tem um formato interno diferente, o que dificultou (e ainda está dificultando no presente momento) meu trabalho.
Achei algumas referências na internet e gostaria de compartilhá-las, ainda que nenhuma delas me atenda por completo.
Site de Eric Huss
Site da GNU
O site da GNU é mais que um curso completo, porém não aborda todas as bibliotecas, a informação não está organizada da forma que eu queria (como no site de Eric Huss). O site de Eric Huss, por sua vez apresenta-se com uma organização mais agradável, porém a quantidade de informação é muito menor, assim como as bibliotecas abordadas.
Mas, enquanto estudo e crio uma solução (desejo criar um tarball de arquivos html ou xml), as referências acima dão conta da maioria das dúvidas.
PS: Se quiser entender o por quê da linguagem C, leia este texto de Eric S. Raymond.
-----------
keepReading
quinta-feira, 19 de abril de 2007
Conhecendo o linux um pouco mais a fundo
O GNU/Linux tem uma infinidade de comandos e utilitários. Não conheço uma pessoa sequer que conheça todos os comandos. Digitando:
num console você vê os caminhos onde o sistema busca os programas para executar (geralmente /bin/, /sbin/, /usr/bin/,...). Fui conferir o que existia nestes diretórios e me deparei com uma quantidade muito maior de programas do que eu imaginava.
Digitar man nome_do_comando exibe o conteúdo do manual, mas isso era impensável para milhares de programas. Daí surgiu a idéia de criar um script em shell que fizesse isso por mim. Só que lendo o manual do comando man, vi que ele podia mandar a saída para um navegador. Não conseguia mandar para o firefox, apenas para o w3m, um navegador de modo texto, similar ao lynx.
Após googladas e algumas tentativas frustradas, instalei o pacote groff e o pacote man2html pelo synaptic.
Mais algumas tentativas e voilá. Tinha um script que lia o conteúdo de um diretório e mandava as man pages para um outro diretório, salvando cada uma em um arquivo já no formato html.
Mas como nem tudo são flores, algumas entradas não tinham manual, e resultaram em arquivos vazio.
Dá-lhe outra rodada de shell script para criar uma rotina que verificasse quais arquivos estavam vazio e os deletassem.
Ótimo. Bastou criar um index.php dentro dos diretórios que gerasse os links. Agora posso ler tranquilamente as várias man pages pelo firefox, da mesma forma com a qual eu leio os manuais do PHP, Java, MySQL, PostgreSQL, Python, Ruby, Guia Foca Linux,... com direito a um lugar no favoritos e tudo mais.
Abaixo seguem os códigos de shell script que usei.
exporta_manual
#!/bin/bash
#
#autor: Davis Leandro P. Peixoto
#data: 19-04-2007
#script para exportação de manuais
for i in *;
do {
echo Tentando exportar o manual de $i;
man -Thtml $i > /home/user_dir/manual_folder/$i.html;
echo Manual de $i exportado;
};
done;
///////////////////
limpa_vazios
#!/bin/bash
#
#autor: Davis Leandro P. Peixoto
#data: 19-04-2007
#script limpeza de arquivos vazios
count=0;
for i in *;
do {
a=`head -n 1 $i`;
b='';
if [ "$a" = "$b" ];
then
echo apagando $i;
rm -r $i;
echo arquivo apagado com sucesso!;
count=`expr $count + 1`;
else
echo O arquivo $i está cheio e não será apagado;
fi;
};
done;
echo Foram apagados $count arquivos que estavam vazios;
echo Limpeza finalizada com sucesso;
/////////////////////////////////////////
index.php
/* criando um manipulador de diretórios */
$handle = opendir('.');
/* listando o diretório */
while (false !== ($file = readdir($handle))) {
/* e escrevendo os links */
echo "<a href=\"$file\">$file</a>";
}
/* fechando o diretório */
closedir($handle);
?>
////////////////
Nota: os scripts precisam ser executados de dentro dos diretórios (/bin/, /sbin/, etc...)
Té+
-----------
keepReading
$ echo $PATH;
num console você vê os caminhos onde o sistema busca os programas para executar (geralmente /bin/, /sbin/, /usr/bin/,...). Fui conferir o que existia nestes diretórios e me deparei com uma quantidade muito maior de programas do que eu imaginava.
Digitar man nome_do_comando exibe o conteúdo do manual, mas isso era impensável para milhares de programas. Daí surgiu a idéia de criar um script em shell que fizesse isso por mim. Só que lendo o manual do comando man, vi que ele podia mandar a saída para um navegador. Não conseguia mandar para o firefox, apenas para o w3m, um navegador de modo texto, similar ao lynx.
Após googladas e algumas tentativas frustradas, instalei o pacote groff e o pacote man2html pelo synaptic.
Mais algumas tentativas e voilá. Tinha um script que lia o conteúdo de um diretório e mandava as man pages para um outro diretório, salvando cada uma em um arquivo já no formato html.
Mas como nem tudo são flores, algumas entradas não tinham manual, e resultaram em arquivos vazio.
Dá-lhe outra rodada de shell script para criar uma rotina que verificasse quais arquivos estavam vazio e os deletassem.
Ótimo. Bastou criar um index.php dentro dos diretórios que gerasse os links. Agora posso ler tranquilamente as várias man pages pelo firefox, da mesma forma com a qual eu leio os manuais do PHP, Java, MySQL, PostgreSQL, Python, Ruby, Guia Foca Linux,... com direito a um lugar no favoritos e tudo mais.
Abaixo seguem os códigos de shell script que usei.
exporta_manual
#!/bin/bash
#
#autor: Davis Leandro P. Peixoto
#data: 19-04-2007
#script para exportação de manuais
for i in *;
do {
echo Tentando exportar o manual de $i;
man -Thtml $i > /home/user_dir/manual_folder/$i.html;
echo Manual de $i exportado;
};
done;
///////////////////
limpa_vazios
#!/bin/bash
#
#autor: Davis Leandro P. Peixoto
#data: 19-04-2007
#script limpeza de arquivos vazios
count=0;
for i in *;
do {
a=`head -n 1 $i`;
b='';
if [ "$a" = "$b" ];
then
echo apagando $i;
rm -r $i;
echo arquivo apagado com sucesso!;
count=`expr $count + 1`;
else
echo O arquivo $i está cheio e não será apagado;
fi;
};
done;
echo Foram apagados $count arquivos que estavam vazios;
echo Limpeza finalizada com sucesso;
/////////////////////////////////////////
index.php
/* criando um manipulador de diretórios */
$handle = opendir('.');
/* listando o diretório */
while (false !== ($file = readdir($handle))) {
/* e escrevendo os links */
echo "<a href=\"$file\">$file</a>";
}
/* fechando o diretório */
closedir($handle);
?>
////////////////
Nota: os scripts precisam ser executados de dentro dos diretórios (/bin/, /sbin/, etc...)
Té+
-----------
keepReading
quarta-feira, 28 de março de 2007
De tirar o chapéu
Foi divulgada a segunda falha de segurança remota no sistema operacional OpenBSD... em 10 anos!
Tá certo que ele é um sistema projeto para ser o mais seguro quanto possível, mas assim é demais. Duas falhas em 10 anos de existência não é pra qualquer um.
E aliás a falha já foi corrigida rapidamente, como é quase regra no mundo dos Unix-Like.
Ah, se meu banco usasse esse sistema...
-----------
keepReading
Tá certo que ele é um sistema projeto para ser o mais seguro quanto possível, mas assim é demais. Duas falhas em 10 anos de existência não é pra qualquer um.
E aliás a falha já foi corrigida rapidamente, como é quase regra no mundo dos Unix-Like.
Ah, se meu banco usasse esse sistema...
-----------
keepReading
quinta-feira, 15 de março de 2007
Novidades sobre este blog
Pessoal, logo um amigo meu, o Júlio, estará contribuindo com seu conhecimento e experiência aqui também.
E a partir desta semana seremos bilingues! Traduziremos os posts antigos e artigos. E os novos posts serão publicados nas duas línguas.
Té+
--edit--
Eu conheço o Júlio e sei que ele aprecia uma boa leitura, boa mesmo. E se for para publicar algo que não contenha um conteúdo rico ele prefere não publicar. Devido à falta de tempo ele não quis se comprometer a escrever nada.
Ele até iniciou o esboço de um artigo sobre acessibilidade e encodings (em particular UTF-8), mas eu darei continuidade ao seu trabalho.
Outra coisa, devido à minha falta de tempo voltei a publicar apenas em português. Deixei de publicar muita coisa legal porque não dava tempo de fazer uma tradução ou pensando na tradução nem cheguei a escrever alguns artigos.
Também passo por um racionamento de tempo, mas pretendo atualizar muitas publicações de gaveta.
-----------
keepReading
E a partir desta semana seremos bilingues! Traduziremos os posts antigos e artigos. E os novos posts serão publicados nas duas línguas.
Té+
--edit--
Eu conheço o Júlio e sei que ele aprecia uma boa leitura, boa mesmo. E se for para publicar algo que não contenha um conteúdo rico ele prefere não publicar. Devido à falta de tempo ele não quis se comprometer a escrever nada.
Ele até iniciou o esboço de um artigo sobre acessibilidade e encodings (em particular UTF-8), mas eu darei continuidade ao seu trabalho.
Outra coisa, devido à minha falta de tempo voltei a publicar apenas em português. Deixei de publicar muita coisa legal porque não dava tempo de fazer uma tradução ou pensando na tradução nem cheguei a escrever alguns artigos.
Também passo por um racionamento de tempo, mas pretendo atualizar muitas publicações de gaveta.
-----------
keepReading
segunda-feira, 12 de março de 2007
Uso inteligente de recursos
Uma das vantagens do software livre é a possibilidade de exploração e reaproveitamento de recursos.
Recentemente publiquei dois artigos no meu outro blog, com características menos técnicas. Os links estão aqui e aqui.
Mas voltando à parte mais técnica, encontrei alguns artigos no site Viva o Linux que cobrem com uma riqueza maior de detalhes algumas dessas possibilidades.
Os links dos artigos na Viva o Linux estão aqui, aqui, aqui. Há mais artigos interessantes por lá.
Té+
-----------
keepReading
Recentemente publiquei dois artigos no meu outro blog, com características menos técnicas. Os links estão aqui e aqui.
Mas voltando à parte mais técnica, encontrei alguns artigos no site Viva o Linux que cobrem com uma riqueza maior de detalhes algumas dessas possibilidades.
Os links dos artigos na Viva o Linux estão aqui, aqui, aqui. Há mais artigos interessantes por lá.
Té+
-----------
keepReading
terça-feira, 6 de março de 2007
Enfim meu site saiu do forno
Depois de bastante tempo coloquei meu site no ar. Ainda não está no ponto em que eu queria, mas já está bom o bastante (do meu ponto de vista) para ir ao ar.
Inicialmente havia uma seção de matérias, mas como já mantenho dois blogs pessoais e o serviço de hospedagem fornece mais um, desisti (pelo menos por enquanto), de manter uma seção assim.
Uma outra seção, a de enquetes, será incluída após o site obter um certo volume de movimento diário. Não faz sentido colocar agora.
No momento vou me focar em terminar a parte do projeto de um software. É uma seção ainda incompleta, mas que merece um grande destaque.
Este é o link para a página e também esta na seção de links desse blog.
Té+
-----------
keepReading
Inicialmente havia uma seção de matérias, mas como já mantenho dois blogs pessoais e o serviço de hospedagem fornece mais um, desisti (pelo menos por enquanto), de manter uma seção assim.
Uma outra seção, a de enquetes, será incluída após o site obter um certo volume de movimento diário. Não faz sentido colocar agora.
No momento vou me focar em terminar a parte do projeto de um software. É uma seção ainda incompleta, mas que merece um grande destaque.
Este é o link para a página e também esta na seção de links desse blog.
Té+
-----------
keepReading
quinta-feira, 1 de março de 2007
Logs no celular
Após ver este artigo no site Viva o Linux, fiquei pensando em como seria montar uma linha de defesa (firewall+IDS) e mandar os logs para o celular. Já pensou poder monitorar as tentativas de invasão pelo celular? E o melhor mesmo alguém invadindo e apagando os logs, você conta com um backup para fazer auditoria.
Té+
-----------
keepReading
Té+
-----------
keepReading
segunda-feira, 26 de fevereiro de 2007
Testando o indexador do Google
Duas ferramentas google das quais faço uso são:
- Google Analytics
- Ferramentas Google para Webmasters
Sem muito mais comentários sobre elas. Se você nunca viu, recomendo fortemente experimentar.
Mas o galho é que as páginas do keepLearning não apareciam como sendo rastreadas nas Ferramentas Google para Webmasters.
No google, ao procurar por keeplearningblog, apareciam apenas duas páginas, meus dois primeiros posts aqui.
O engraçado é que ele continuava a indexar normalmente as páginas do meu outro blog. Troquei o layout por um dia, revisei as as tags de confirmação, tudo.
Olhando melhor depois vi que o outro blog não tinha marcadores e esse tinha. Um detalhe bobo, mas que poderia ser o que estivesse fazendo toda a diferença.
Coloquei marcadores em todos os posts do outro blog, e voilá! No outro dia ele já não aparecia como indexados completamente no google. Mãos à obra: retirar todos os marcadores.
Pass um dia, passa dois, três... Nada agora os dois blogs aparecem timidamente no google. E o pior é que não há estatísticas do keepLearning no "Ferramentas Google para Webmasters".
Parece que o serviço não é tão inteligente assim, ainda mais se tratando de serviços relacionados intimamente na fonte (blogger e o sitemaps).
Mas ainda bem que o Google Analytics continua funcionando firme e forte. A única pena é ele não informar os pages rankings. Se ele contasse com isso, com algum tipo de relatório de rastreio indicando se houve algum erro como um timeout, e quais as páginas da net que fazem referência para nosso site, não seria necessário usar o sitemaps.
Té+
-----------
keepReading
- Google Analytics
- Ferramentas Google para Webmasters
Sem muito mais comentários sobre elas. Se você nunca viu, recomendo fortemente experimentar.
Mas o galho é que as páginas do keepLearning não apareciam como sendo rastreadas nas Ferramentas Google para Webmasters.
No google, ao procurar por keeplearningblog, apareciam apenas duas páginas, meus dois primeiros posts aqui.
O engraçado é que ele continuava a indexar normalmente as páginas do meu outro blog. Troquei o layout por um dia, revisei as as tags de confirmação, tudo.
Olhando melhor depois vi que o outro blog não tinha marcadores e esse tinha. Um detalhe bobo, mas que poderia ser o que estivesse fazendo toda a diferença.
Coloquei marcadores em todos os posts do outro blog, e voilá! No outro dia ele já não aparecia como indexados completamente no google. Mãos à obra: retirar todos os marcadores.
Pass um dia, passa dois, três... Nada agora os dois blogs aparecem timidamente no google. E o pior é que não há estatísticas do keepLearning no "Ferramentas Google para Webmasters".
Parece que o serviço não é tão inteligente assim, ainda mais se tratando de serviços relacionados intimamente na fonte (blogger e o sitemaps).
Mas ainda bem que o Google Analytics continua funcionando firme e forte. A única pena é ele não informar os pages rankings. Se ele contasse com isso, com algum tipo de relatório de rastreio indicando se houve algum erro como um timeout, e quais as páginas da net que fazem referência para nosso site, não seria necessário usar o sitemaps.
Té+
-----------
keepReading
sábado, 24 de fevereiro de 2007
Errata - artigo sobre Transações
No artigo sobre Transações que publiquei, havia dito que o Python não suportava diretamente os commits e rollbacks da vida.
Na verdade o módulo MySQLdb têm os métodos de suporte commit() e rollback(), assim como o PHP.
[retirado do manual do módulo MySQLdb versão revisada 1.1, por Andy Dustman]
-----------
keepReading
Na verdade o módulo MySQLdb têm os métodos de suporte commit() e rollback(), assim como o PHP.
[retirado do manual do módulo MySQLdb versão revisada 1.1, por Andy Dustman]
-----------
keepReading
Assinar:
Postagens (Atom)