sexta-feira, 26 de setembro de 2008

Palestra sobre Segurança de Redes

Hoje, 26/09, fiz uma apresentação sobre segurança de redes, mais especificamente projeto e gerenciamento de redes seguras para o grupo de estudo em segurança na UFC.

A apresentação é baseada no livro Segurança de Redes, Projeto e Gerenciamento de Redes Seguras – Thomas A. Wadlow.

Nele você não vai encontrar nada técnico, nenhuma ferramenta, ou lista de scripts ...

O que vai encontrar é algo bem melhor: experiência que você levaria alguns anos, depois de muito sofrimento, para aprender. Além de boas práticas, dicas e condutas para montar uma boa estratégia de segurança.

Essencial para quem deseja entrar nesse mundo (in) seguro...

Bom, na minha apresentação você vai encontrar:

Roteiro:
  • O que é segurança?
  • O processo de segurança
  • O processo está funcionando?
  • Política de segurança
  • Como escrever uma política
  • Conteúdo da política
  • Quem está atacando?
  • Boas práticas
A apresentação é focada no conceito de segurança, e o processo contínuo para se chegar a ela. NÃO serão apresentadas ferramentas técnicas, scripts, ou programas de segurança!


Baixe o fonte ou o pdf!

Bom proveito! :)

quinta-feira, 28 de agosto de 2008

SBLP 2008

O XII Simpósio Brasileiro de Linguagens de Programação (SBLP 2008) está ocorrendo neste momento. Começou ontem, 27 de agosto e irá até 29 de agosto.

Hoje compareci ao simpósio e pude prestigiar algumas apresentações que ocorreram dentro do II Workshop on Languages and Tools for Parallel and Distributed Programming (LTPD 2008):

  • Automatic Parallel Code Generation through Denotational Semantics and Dependence Graphs. Carlos Bazilio (UFF), Edward Hermann Haeusler (PUC-Rio)
  • Adaptação da Linguagem pFun para Ambientes de Memória Compartilhada. Cicero Camargo (UFPel), Douglas Rosa (UFPel), Lucas Fonseca (UCPel), Gerson Geraldo H. Cavalheiro (UFPel), André Rauber Du Bois (UCPel)

Pela tarde assisti também:

  • Exploring Lua for Concurrent Programming. Alexandre Skyrme (PUC-Rio), Noemi Rodriguez (PUC-Rio), Roberto Ierusalimschy (PUC-Rio)
  • A Complete and Minimal Set of Algebraic Laws for Feature ModelsRohit Gheyi (UFCG), Tiago Massoni (UFPE), Paulo Borba (UFPE)

A penúltima foi sobre uma linguagem de programação brasileira Lua, que já tinha ouvido falar mas não havia parado pra ler a respeito. Na hora do almoço, eu li um pouco do artigo e me pareceu um trabalho interessante. Entretanto, essa não é muito minha área, não me arrisco a dar opiniões técnicas, hehe.

E amanhã tem mais SBLP...

Enquanto isso, na hora do almoço, uma rápida visita a Ponte dos Ingleses ou Ponte Metálica:













segunda-feira, 25 de agosto de 2008

Empacotamento de Software no Debian GNU/Linux (CESoL 2008)

Dentro do CESoL foram ministrados diversos minicursos muito interessantes. Um deles foi sobre empacotamento de software no Debian, e não podia perder uma oportunidade dessas.

O minicurso de 6 horas foi ministrado pelo Eriberto Mota (lado esquerdo na foto), e pude observar o excelente professor que ele é. As coisas foram bem explicadas, tudo muito didático.




Eu fiquei boquiaberto quando ele comentou a quantidade de brasileiros que realizam este trabalho, que nas palavras dele é um trabalho artesanal. Adivinhem? Pouco mais de 30 brasileiros! Pasmem!

O trabalho de um empacotador nada mais é do que receber o código fonte do autor ou upstream e fazer um tratamento para que siga as políticas da distribuição Debian. Depois disso, este pacote é enviado para os servidores para que eles possam verificar o pacote. Depois de submetido pelo empacotador ou mantenedor do pacote, ele passa por testes (no servidor) para que seja validado.

O trabalho parece complicado de início. Você imagina que seja algo monstruoso, mas nem tanto, só um pouquinho. :P Na verdade, ele exige bastante dedicação e cuidado, visto que é um trabalho grandioso. Imagine que seu pacote será utilizado por pessoas no mundo todo, depois de um dpkg -i ou um apt-get install. É o estímulo que todo mundo precisa.

A idéia pode ser resumida no guia do Eriberto disponível aqui. Ele também disponibiliza um programa exemplo para ser empacotado: o Hello BR. O Debian possui o canto dos desenvolvedores, onde existem várias documentações pra quem está iniciando a vida de empacotamento destacando-se essa, em minha opinião. Bom, agora é só praticar pra chegar a perfeição (falando parece fácil, rsrs).

Eu gostei de uma explanação que ele fez durante o minicurso sobre a colaboração da comunidade. Se alguém chegar pra você e perguntar: "e quando começarem a cobrar por isso...". Você pede pra ele imaginar a taxa de colaboração que ocorre a cada 12 horas, que é quando os servidores pegam todos os pacotes em fila e processam, de magnitude de milhares de pacotes. O que levam mais 2 mil pessoas colaborarem dentro de 12 em 12 horas, enviando pacotes. Se isso tudo se tornasse pago, o projeto se tornaria inviável, a coisa não andaria, e por conseguinte tudo acabaria. Ou seja, nunca vai deixar de ser software livre, já que sendo pago acabaria com o projeto. :)


Bom, depois postarei aqui como anda minha vida iniciante de empacotamento. Por enquanto, é ler, e praticar ...

domingo, 24 de agosto de 2008

Projeto GNOME (CESoL 2008)

Olá pessoal, vou falar um pouco sobre o Congresso Estadual de Software Livre (CESoL) que aconteceu na Universidade Federal do Ceará (UFC), no período de 19 a 23 de agosto de 2008.

Bem, a primeira palestra que pude assistir foi sobre o Projeto Gnome com o John Wendell. Eu sou suspeito para falar sobre o Gnome, meu ambiente gráfico preferido, mas a palestra em si foi boa. O Wendell falou sobre o Gnome com duas visões: o Gnome como projeto, e também como programa.

Como sempre, a necessidade de voluntários para o projeto é grande e a cota de brasileiros presentes trabalhando seja com desenvolvimento ou divulgação é muito pouca. Se duvidar, a gente conta nos dedos os participantes.

Ele falou ainda sobre como é o processo de aceitação de softwares pelo projeto. No geral, você envia o software pra eles, que será agregado ao Gnome na próxima versão, caso seja aceito. Pra ser aceito é feito todo um processo de avaliação como acessibilidade, verificação se os botões de sua interface estão da maneira correta, dentre outras. Mas se o seu software não é aceito de primeira, você pode reenviar com as correções que eles indicaram pra você. :)





No final da palestra, infelizmente não ganhei brinde (hehe), mas nada que uma negociação não resolvesse. Acabei comprando uma blusa do Gnome, por sinal muito bonita. :P




sexta-feira, 25 de julho de 2008

Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!


…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!


sexta-feira, 18 de julho de 2008

Shell Script no dia-a-dia 2


Num post anterior, em Shell Script no dia-a-dia, eu falei como poderíamos utilizar shell script para diminuir o tamanho de todas as fotos em um diretório mexendo na qualidade delas. Hoje veremos uma melhoria.

Inicialmente, o script não tratava arquivos com espaços em branco no nome. Bom, depois de quebrar um pouco a cabeça desenvolvi um outro script pra tratar este problema.

A filosofia é trocar os espaços em branco por um caractere (variável $PIVO) e realizar o tratamento dos arquivos. Depois a gente renomeia de volta pro nome original. É simples, segue abaixo:

#!/bin/bash

# Definindo o diretório onde as fotos estão.
if [ $# -eq 1 ]; then
DIR=$1
else
DIR="."
fi

# Diretório destino das fotos diminuidas.
DEST="$DIR/FOTOS_DIMINUIDAS"
TEMP="/tmp/$0-`whoami`-$$"
DEST_TEMP="$TEMP/FOTOS_DIMINUIDAS"


echo
echo "As novas imagens serão enviadas para $DEST"
echo "Pressione qualquer tecla para continuar ou CTRL^C para sair"
read

# Cria diretórios se eles não existem.
test ! -e $DEST && mkdir $DEST
test ! -e $TEMP && mkdir -p $DEST_TEMP

echo
echo "Tratando fotos .jpg ou .JPG em $DIR"
echo

# funcao para diminuir a foto de entrada
diminuir(){
# Foto que será tratada.
ENTRADA="$1"
# Foto que será gerada.
SAIDA="$2"

# Verificando se a foto a ser gerada já existe.
if [ ! -e ${SAIDA} ]; then
echo "gerando ${SAIDA}"
# Comando para converter ou diminuir as fotos
convert -quality 45 "$ENTRADA" "$SAIDA"
else
echo "Não foi possível converter ${FOTO}, pois ela já existe"
echo "Pressione qualquer tecla para continuar ou CTRL^C para sair"
read
fi
}

# Mostra pontilhados (eu sempre quis fazer isso, rsrs)
mostra_pontos(){
echo -n " "
x=0
while [ $x -lt $1 ]
do
sleep 0.1 && echo -n .
x=`echo "$x + 1" | bc`
done
echo -n " "
}

# Executa rotina para cada foto no diretório
PIVO="="
for SEM_ESPACO in `ls -1 ${DIR} | grep -E "*.(jpg|JPG)" | tr [:blank:] "$PIVO" | xargs -n 1 -d "\n" echo`
do
COM_ESPACO=`echo $SEM_ESPACO | tr "$PIVO" " "`
test -f "$COM_ESPACO" && cp "$COM_ESPACO" "${TEMP}/$SEM_ESPACO"
diminuir ${TEMP}/$SEM_ESPACO ${DEST_TEMP}/$SEM_ESPACO > /dev/null
echo -n "gerando ${DEST}/$COM_ESPACO" && mostra_pontos 4
mv "${DEST_TEMP}/$SEM_ESPACO" "${DEST}/$COM_ESPACO" && echo feito
done

# Apagando diretórios temporários
rm -rf $TEMP


terça-feira, 15 de julho de 2008

Instalando o Pidgin no Debian


Pessoas, esta é uma dica de como instalar o mensageiro multi-protocolo Pidgin no Debian.




O Pidgin pode trabalhar com os protocolos abaixo dentre vários outros (veja aqui):
  • AIM
  • Google Talk
  • ICQ
  • IRC
  • MSN
  • XMPP
  • Yahoo!

E o melhor, tudo na mesma aplicação. Legal, né?


Mas como instalar no Debian? É simples, vamos baixar algumas dependências pelo gerenciador de pacotes do Debian, o apt-get (necessário ser root, use su ou sudo):
$ sudo apt-get install libperl-dev libxml-parser-perl libnm-glib-dev libdbus-glib-1-dev libavahi-glib-dev libgtk2.0-dev libxss-dev libstartup-notification0-dev libxml2-dev libgstreamer0.10-dev libmeanwhile-dev libavahi-client-dev network-manager-dev tcl8.4-dev tk8.4-dev libgtkspell-dev

Agora vamos baixar o código fonte da versão mais recente do pidgin aqui com:
$ wget http://downloads.sourceforge.net/pidgin/pidgin-2.4.3.tar.bz2

Vamos descompactar o pidgin com:
$ tar xvf pidgin-2.4.3.tar.bz2

Agora, vamos configurar e compilar e instalar:
$ ./configure && make && sudo make install

Por organização, vamos copiar a pasta do Pidgin para /usr/local/src, que é onde ficarão os códigos fontes de programas compilados. Você pode adotar outro lugar, aqui é por sua conta. Pra economizar espaço, limpe primeiro os arquivos que a compilação gerou e depois copie.
$ make clean
$ sudo cp -R ../pidgin-2.4.3 /usr/local/src/

Com o make clean eu economizei uns 55 MB, que é muito pra mim (rsrs)!

Depois apague a pasta original (já copiamos outra pra /usr/local/src):
$ cd ..
$ rm -rf pidgin-2.4.3

Como podem notar a instalação do Pidgin é simples. Você também ativar um plugin do Pidgin pra te avisar quando houver uma versão nova, já que ele não estará no banco de dados do dpkg .

Vá no menu Ferramentas > Plugins e ative Notificação de nova versão 2.4.3




quarta-feira, 2 de julho de 2008

Dupla diabólica: find e xargs

Hoje veremos uma dupla considerada diabólica no shell, se utilizada sem a devida atenção: o find e o xargs.

O find, como o nome diz, é utilizado para se encontrar arquivos no sistema. Já o xargs facilita a repetição de um certo comando para cada entrada fornecida pra ele. Peraí, vamos entender melhor. Considere que eu queira apagar os arquivos terminados em ~ no diretório atual. Poderíamos utilizar a dupla da seguinte maneira:
$ find . -name "*~" | xargs rm

Aqui o find retornaria uma saída com os arquivos terminados em ~ e o xargs executaria o comando rm para cada uma das saídas.

Por exemplo, crie um diretório teste e entre nele:
$ mkdir teste; cd teste

Agora crie os arquivos "teste" e "teste~":
$ > teste; > teste~
$ ls
teste teste~

Agora vamos apagar os arquivos terminados em ~ do diretório atual:
$ find . -name "*~" | xargs rm
$ ls
teste

Olha aí o resultado acima, deu certo.

Até aí tudo bem, mas se o arquivos terminados em ~ possuíssem caracteres em branco? Experimente e crie um "teste 1~". Proteja-o com aspas para que o shell não interprete mal o que queremos:
$ > "teste 1~"
$ ls
teste teste 1~

Agora experimente apagá-lo com:
$ find . -name "*~" | xargs rm
rm: imposível remover `1~': Arquivo ou diretório inexistente
$ ls
teste 1~

E agora, José? Cadê meu arquivo "teste"? Ele APAGOU O ARQUIVO ERRADO!

Isso aconteceu simplesmente porque o rm tratou o arquivo "teste 1~" como dois arquivos diferentes: um "teste" e outro "1~". Ou seja, o espaço em branco acabou com nossa alegria (e talvez o emprego)!

Mas não se apavore, pois uma solução pra isso é utilizar a opção -print0 do find junto com a opção -0 do xargs.
$ > teste
$ ls
teste teste 1~
$ find . -name "*~" -print0 | xargs -0 rm
$ ls
teste

Pronto, agora sim, funcionou! A explicação é que o find separou os arquivos com um caractere nulo. O xargs interpretou os caracteres nulos como separadores dos arquivos e fez o que queríamos. :]

Para mais informações:
$ man find
$ man xargs

segunda-feira, 30 de junho de 2008

Shell Script no dia-a-dia

O Shell (ou concha) envolve o kernel e te dá a possibilidade de interagir com o sistema através de comandos. Saber manusear tais comandos e agrupá-los para resolver um problema proposto é o que o Shell Script te proporciona.

Dessa forma, você pode escrever o roteiro (sequência de comandos) e construir uma cena (ou tarefa) a ser executada pelo seu computador. Interessante, não?

Na prática eu posso, por exemplo, diminuir o tamanho de fotos JPEG automaticamente em um diretório, evitando trabalho manual em dezenas de fotos. Legal, né? E como eu faria isso?

É simples, através de um shell script que eu fiz quando precisei realizar esta tarefa cotidiana de diminuir fotos. O segredo está em executar o utilitário convert (da ImageMagick) em cada uma das imagens no diretório e diminuir sua qualidade!

O convert pode ser instalado através do pacote imagemagick, que é um conjunto de utilitários para criar e editar imagens.

No Ubuntu, basta:
sudo apt-get install imagemagick
para instalar o conjunto de pacotes, incluindo o convert.

O script segue abaixo:
#!/bin/bash

# Definindo o diretório onde as fotos estão.
if [ $# -eq 1 ]; then
DIR=$1
else
DIR='.'
fi

# Diretório destino das fotos diminuidas.
DEST="$DIR/FOTOS_DIMINUIDAS"

echo
echo "As novas imagens serão enviadas para $DEST"
echo "Pressione qualquer tecla para continuar ou CTRL^C para sair"
read

# Cria diretório de destino se ele não existe.
if [ ! -e $DEST ]; then
mkdir $DEST
fi

echo
echo "Tratando fotos .jpg ou .JPG em $DIR"
echo

# Executa rotina para cada foto no diretório
for FOTO in `ls ${DIR}/*.{jpg,JPG} 2> /dev/null`
do

# Foto que será tratada.
ENTRADA="${DIR}/`basename ${FOTO}`"
# Foto que será gerada.
SAIDA="${DEST}/`basename ${FOTO}`"

# Verificando se a foto a ser gerada já existe.
if [ ! -e ${SAIDA} ]; then
echo "gerando ${SAIDA}"
# Comando para converter ou diminuir as fotos
convert -quality 90 $ENTRADA $SAIDA
else
echo "Não foi possível converter ${FOTO}, pois ela já existe"
echo "Pressione qualquer tecla para continuar ou CTRL^C para sair"
read
fi

done

Vale lembrar que ele pode ser melhorado, mas fica aí a dica pra facilitar a vida.

sábado, 14 de junho de 2008

Firefox Download Day

A Mozilla Foundation está organizando o Firefox Download Day que consiste basicamente em estabelecer um recorde mundial do software mais baixado em 24 horas.

Download Day - Portuguese

Para participar é fácil!

Acessando o site Spread Firefox | Download Day 2008 você pode se cadastrar e receber um lembrete do download no dia, e ajudar a estabelecer este recorde.

Você também pode ajudar na divulgação adicionando os ícones e logos do Download Day em seu site, blog ou perfil. É só escolher aqui!

quinta-feira, 29 de maio de 2008

Ubuntu aprisionou Windows

"O Ubuntu aprisionou o Windows": estas foram as palavras dela.



Mal sabia, ela, que o 'aprisionamento' foi feito através do VirtualBox e com a ajuda do Compiz-Fusion. :P

O VirtualBox é um aplicativo que simula ou virtualiza um PC permitindo a instalação de S.O. (Sistemas Operacionais) na máquina virtual. Um ótimo ambiente pra testes de portabilidade, principalmente pra desenvolvedores.

O Compiz-Fusion é o responsável pelos efeitos 3D (como o cubo com áreas de trabalho) da foto.

InfoBrasil 2008

A InfoBrasil é um evento de negócios, que envolve a área de TI, onde as empresas apresentam seus produtos e palestram acerca de seus negócios. Ele ocorreu na cidade de Fortaleza (CE), no Sebrae (aqui), de 13 a 16 de maio. E pude prestigiar algumas palestras e novidades.

Fiquei interessado nas palestras do dia 16, as quais tratavam sobre Software Livre (SL). Vou comentar algumas das palestras que achei interessante.

*Governança de TI como Estratégia p/ o Crescimento das Empresas por Marcelo D'Elia Branco

Este nome já me era familiar pelas listas de discussão que participo, e quando vi seu nome na palestra não poderia deixar de assistir.

O que me chamou a atenção foi quando ele falou da utilização da Internet como ferramenta de compartilhamento. É óbvio, você deve pensar, não? Eu também pensei, mas descobri que muitas empresas ainda não notaram esta finalidade crucial da Internet, e não se utilizam de todo o seu potencial para alavancar seus negócios.

A idéia é oferecer a liberdade de compartilhamento, e assim é o SL. Sem a visão proibitiva, ou recursos de filtro, que algumas empresas utilizam para barrar os internautas. Dessa maneira, estipula-se uma constante briga com os usuários da rede, e você acaba vendo a Internet como uma barreira, um inimigo para o seu negócio.

O SL surge como um novo paradigma de desenvolvimento. Assim como o software proprietário, tradicional, foi para a sua época, o SL é o futuro dos negócios, e algumas empresas já notaram isso. Entretanto, outras não, e teimam em permanecer num modelo antigo de negócios.

Acredita-se ainda que ganhar dinheiro com SL é inviável. Mas o que ninguém percebe é que o modelo agora será baseado no oferecimento de serviços. Uma empresa, ou profissional de TI, oferece seu serviço ao invés de somente o código propriamente dito.

As vantagens de um paradigma como esse é a transparência de soluções e principalmente um mercado mais competitivo.

terça-feira, 27 de maio de 2008

E fez-se o blog...

Olá, pessoal!

Eis que estava caminhando, ops, navegando e resolvi fazer este blog. Tudo começou, na verdade, quando estava no trabalho, pesquisando sobre como melhorar uma oficina para construir blogs. Então me dei conta de que eu mesmo ainda não tinha feito um ainda. Ótimo, procurei uma plataforma, e iniciei um, como brincadeira. Mas o que eu não sabia é que minha vida iria tomar um rumo diferente, numa manhã de sábado, ou pelo menos já estava mudando e não percebia.

Bom, decidi que iria povoar o blog, mas com o que, mon Dieu? Bom, com a minha vida, e o que a torna deliciosa, a ponto deu continuá-la. Vocês devem estar se perguntando o que seria, não? Pois bem, vou listar aqui:

  • Tecnologia;

  • Software Livre;

  • Computadores;

  • GNU/Linux;

  • Eventos legais;

  • Idéias malucas, mas interessantes;

  • Minha vida, em geral...


Vocês devem esperar tais coisas aqui, e se tudo der certo, se eu tiver saco, paciência e força, o negócio vai continuar... :P