»
S
I
D
E
B
A
R
«
Dia Debian 2010 - UFAM
Aug 14th, 2010 by Davyd Smelk

Olá amigos, mais um ano o Grupo de Usuários Debian do Amazonas realiza o Dia Debian, em comemoração ao 17 aniversário da distribuição.

Abaixo segue minha palestra que sobre o Projeto Debian.

Palestra Dia D 2010

um grande abraço,

Davyd Smelk

Criptografia de dados com GnuPG
Aug 14th, 2010 by Davyd Smelk

Olá colegas, como estive ministrando recentemente algumas aulas para meus alunos de 6. período sobre criptografia de dados, achei interessante publicar um resumo sobre criptografia com GPG ou GnuPG.

Quando estamos em um ambiente público qualquer, seja ele um bar ou um restaurante, conversando com um amigo ou companheiro de trabalho, estamos transmitindo uma mensagem em broadcast. Isso significa dizer que toda e qualquer pessoa naquele ambiente tem condição, caso queira, de ouvir qualquer conversa de qualquer mesa do local.

De forma muito semelhante acontece em redes locais e globais como a Internet, é muito fácil de ouvir e entender o que está sendo trafegado entre computadores de redes distintas ou de mesma rede, isso porque assim como na vida real, o que nos impede de ouvir a conversa alheia é puramente a ética, que na informática é implementada através de um protocolo chamado de TCP/IP.

Voltando ao mundo real, se ignoramos a ética ou burlarmos o protocolo, facilmente poderemos ter acesso ao conteúdo alheio. Agora se, prevendo isso definirmos um novo protocolo de conversa, como por exemplo conversar em idioma alemão, o número de possíveis curiosos a conseguirem interpretar a conversa vai reduzir quase a zero. Note que a conversa continuará a ser ouvida, mas agora sua interpretação só poderá ser feita por quem ela realmente é destinada.

A criptografia nada mais é que a implementação de um “processo de embaralhamento” na conversa ou arquivo a ser trafegado entre computadores ou redes distintas. Podendo ser empregada também para o armazenamento local de arquivos, impedindo que outras pessoas que utilizam o mesmo computador tenham acesso as suas informações.

Sobre Criptografia:

- A criptografia é um procedimento usado desde a antiguidade, antes de Cristo, que permite a embaralhamento de uma informação com o intuito de que esta não seja interpretada por pessoa alguma além de seu destinatário. Com o uso da criptografia garante-se que caso a informação caia em mãos erradas não tenha valor algum visto que não poderá ser lida.

- Foi muito utilizada durante as grandes guerras para se transmitir informações estratégicas de ataque e defesa sem que os inimigos pudessem interpretá-las.

- Vamos ver um exemplo básico de criptografia chamada de +1.

Na criptografia do +1 adiciona-se uma letra a mais em cada caracter da palavra ou frase que se quer criptografar.

Ex.: Segurança -> Tfhvsbdb (cada caracter da palavra segurança recebeu o seu posterior do alfabeto na palavra criptografada)

É claro que esse tipo de criptografia é simples e muito fácil de ser descoberta, agora imagine quando usamos algoritmos matemáticos de extrema complexidade, que tornam o processamento das possíveis combinações de descoberta tão longos que se tornam inviáveis de serem aplicados. A exemplo disso podemos dizer que com o tipo de tecnologia de criptografia atual, uma informação cifrada levaria cerca de mil anos para ser decifrada por um impostor.

Uma ferramenta muito utilizada para a cifragem/criptografia de informações é o GnuPG (GNU Privacy Guard), uma ferramenta simples de usar que funciona em Windows e Linux e pode ser um grande aliado na segurança da transmissão ou armazenamento de suas informações.

Para fazer o download da aplicação basta acessar: http://www.gnupg.org/

Existem basicamente dois tipos de criptografia a assimétrica e a simétrica como descrevo abaixo:

- Simétrica - Criptografia que utiliza uma única chave (senha) tanto para cifrar quanto para decifrar o arquivo.

- Vantagem - Simples de implementar e utiliza um única chave para tudo.

- Desvantagem - O emissor pode cifrar e decifrar a mensagem, desta forma um terceiro emissor poderá decifrar uma mensagem do segundo emissor caso a chave usada por eles seja a mesma.

- Assimétrica - Criptografia que utiliza duas chaves (senhas) distintas, sendo uma para cifrar o arquivo e outra para decifrar o arquivo.

- Vantagem - O que o emissor cifrar, nem mesmo ele poderá decifrar, apenas o receptor correto de posse do outro par da chave.

- Desvantagem - Cada emissor ou receptor deverá enviar uma cópia diferente de sua chave para cada pessoa que ele desejar comunicar. A criptografia assimétrica possui uma maior complexidade de implementação.

Como o objetivo deste artigo é atingir um público de pessoas que ainda não utiliza criptografia, vamos exercitar a criptografia simétrica, que é mais simples, na intenção de despertar o gosto pelo processo da segurança e caso o usuário sinta necessidade poderá buscar conteúdo sobre a assimétrica futuramente.

Comandos básicos de criptografia

Para criptografar um arquivo chamado teste.txt

gpg -o teste.txt.gpg -c teste.txt

onde:

- gpg é o nome da aplicação de criptografia

- -o é o comando que permite definir o nome do arquivo após criptografado

- teste.txt.gpg nome do arquivo após receber a criptografia

- -c é o comando que permite que a criptografia simétrica seja aplicada sobre o arquivo

- teste.txt arquivo a receber a criptografia

Obs1.: Vale lembrar que a criptografia fará uma cópia do arquivo especificado em formato criptografado, caso necessário lembre-se de apagar o arquivo original para que ele não seja lido posteriormente.

Obs2.: O processo de criptografia como o GPG efetua a compactação automática do arquivo a ser cifrado, dessa forma sempre o arquivo criptografado será, por padrão, menor que o original.

Para decriptar um arquivo chamado teste.txt.gpg

gpg -o teste.txt -d teste.txt.gpg

Onde:

- gpg é o nome da aplicação de criptografia

- -o é o comando que permite definir o nome do arquivo após decriptado

- teste.txt nome do arquivo após decriptado

- -d é o comando que permite que a decriptografia

- teste.txt.gpg arquivo a receber a decriptografia

Etiquetas para credenciais
Apr 24th, 2010 by Davyd Smelk

Como todos sabem, todo evento é um parto exportar os cadastros para as etiquetas das credenciais, quase sempre o lay-out das etiquetas não estão disponíveis para OpenOffice e temos que ficar medindo manualmente e quase sempre as margens não batem corretamente e os últimos nomes da página saem completamente fora da margem.

Esse ano estamos usando uma etiqueta da marca MAXPRINT de referência 6180 e dimensões 66,7mm por 25,4mm sendo 03 etiquetas por linha e 10 linhas por página.

Após longo e tenebrosa madrugrada encontramos um template de etiquetas de outro fabricante que server pefeitamente para as etiquetas da MAXPRINT.

Procedimento no openoffice.org 3.0

Arquivo -> Novo -> Etiquetas

Na caixa de etiquetas selecione:
- Marque a opção folha avulsa.
- Fabricante: Avery Latter Size
- Tipo: 8660 Ink Jet Clear Address

pronto resolvido.

um grande abraço,

Davyd Smelk

Twitter
Apr 24th, 2010 by Davyd Smelk

Amigos, infelizmente tive, por questões maiores, que me submeter a vulgaridade de abrir um twitter.

twitter.com/dsmelk

um grande abraço,

Davyd Smelk

Como configurar uma rede sem fio no debian usando o console
Feb 4th, 2010 by Davyd Smelk

Olá Amigos, é comum pessoas me perguntarem como se faz para configurar uma rede sem fio em um computador sem interface gráfica, ou simplesmente em uma instalação enxuta do Debian ou Ubuntu que não traz em as ferramentas que automatizam tal processo. Enfim, as pessoas querem saber como fazer a coisa na mão.

Tendo em vista o objetivo descrito acima então vamos fazer uma série de procedimentos que nos permitirá detectar e conectar de forma manual e automática em redes sem fio sem criptografia habilitada ou com criptografias WEP ou WPA.

Pode parecer tolo o que vou esclarecer aqui mas como não sei o nível de conhecimento do usuário que irá ler este artigo, prefiro detalhar o máximo que puder, visto que detalhes nunca são demais.

Primeiro passo:

Verificar se a placa de rede foi detectada.

Verificar se a placa de rede foi detectada pode parecer um procedimento simples para alguns mas para muitos a coisa é mais complicada. Mas com a instalação de alguns pacotes e a simples conferência de alguns arquivos é possível detectar se a placa está instalada ou não.

Um pacote no debian chamado pciutils contém um binário chamado lspci que é capaz de listar todos os dispositivos não USB da máquina, desta forma temos como saber se o dispositivo foi reconhecido pelo sistema e também qual o modelo do chipset utilizado por cada dispositivo. Note que o fato de o dispositivo ser listado não significa que ele esteja funcional, simplesmente vai te permitir saber se o dispositivo foi reconhecido pelo kernel.

Acontecem casos de dispositivos não serem reconhecidos pelo kernel, dessa forma nem reza braba vai fazer teu dispositivo ser ativado, um exemplo disto é a placa de rede Attansic (chipset Atheros AR8132) que não é reconhecida pelo kernel 2.6.26-1-686. Para isso apenas dizemos que merdas acontecem e o procedimento “normal” é aguardamos o lançamento de um kernel mais atualizado.

O processo de instalação:

console# apt-get install pciutils

Após instalado execute:

console# lspci <ENTER>

Agora o resultado vai ser algo do tipo:

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)
03:00.0 Ethernet controller: Attansic Technology Corp. Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)

O que nos instessa é tudo o que tem Ethernet, como você pode notar nas duas últimas linhas acima, eu tenho um adaptador Attansic Ethernet e outro Atheros Wireless, isto já me permite presumir que caso não esteja funcinando basta encontrar o módulo na internet e instalá-lo que ele irá funcionar.

Ok, aqui nós já sabemos qual é o fabricante e o chipset de nossa placa de rede sem fio, agora vamos ver se ela está funcional.

A forma mais simples de fazer isso no debian é verificando se o cara responsável pelos dispositivos, chamado de udev, gerou alguma regra para essa placa. Toda vez que o UDEV reconhece um dispositivo, de rede no nosso caso, ele gera uma regra carregando o módulo correto para o funcionamento desse dispositivo.

Para verificar o arquivo executaremos o comando abaixo:

console# cat /etc/udev/rules.d/70-persistent-net.rules

O arquivo é o único que tem “net” no meio, não é difícil de achá-lo, o resultado desse comando é algo do tipo:

# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.

# PCI device 0×168c:0×001c (ath5k_pci)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:24:2c:1a:4f:00″, ATTR{type}==”1″, KERNEL==”wlan*”, NAME=”wlan0″

# USB device 0×07a6:0×8511 (pegasus)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:14:d1:17:f1:f9″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″

# PCI device 0×1969:0×1062 (atl1c)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:23:5a:88:07:bf”, ATTR{dev_id}==”0×0″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″

Aqui podemos ver todas as placas de rede reconhecidas na minha máquina e o ALIAS (nome) pelo qual elas responderão, no caso da placa de rede sem fio, podemos observar que ela é controlada pelo módulo ath5k_pci e que será chamada de wlan0.

Ótimo, agora já sabemos em qual nome a interface responde, no decorrer dos comandos a seguir utilizarei sempre o alias wlan0.

Obs.: Caso sua placa de rede sem fio não esteja funcional, busque na internet como resolver o problema.

Agora ja sabemos que sua placa está instalada e funcional, mas provavelmente ela está desabilitada, para habilitar vamos executar o seguinte comando:

console# ifconfig wlan0 up

Esse comando irá habilitar a placa de rede livre de configurações.

Vamos instalar o pacote que irá prover os programas de localicação e conexão com as redes sem fio. Para isso você precisa instalar o pacote wireless-tools.

console# apt-get install wireless-tools

Após instalado, o pacote vai gerar vários binários dentre eles os que mais nos importam são o iwlist e iwconfig.

O primeiro exemplo será de conexão com uma rede sem fio que não possui criptografia.

Para verificar as redes disponíveis:

console# iwlist wlan0 scan

O comando irá trazer algo como:

Cell 01 - Address: 00:1C:C5:09:58:2F
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=27/70  Signal level=-83 dBm
Encryption key:on
ESSID:”csconsolacao”
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s
Bit Rates:9 Mb/s; 18 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=00000246cd3ac43d
Extra: Last beacon: 880ms ago
IE: Unknown: 000C6373636F6E736F6C6163616F
IE: Unknown: 010882848B960C183048
IE: Unknown: 030106
IE: Unknown: 0706555320010B1B
IE: Unknown: 2A0100
IE: Unknown: 32041224606C
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Preauthentication Supported
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
IE: Unknown: DD0900037F01010008FF7F
IE: Unknown: DD1A00037F0301000000001CC509582F021CC509582F64002C010808
Cell 02 - Address: 00:4F:62:21:8C:06
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=30/70  Signal level=-80 dBm
Encryption key:off
ESSID:”Guestnet 1 andar D”
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=000000047d3801bd
Extra: Last beacon: 876ms ago
IE: Unknown: 001247756573746E6574203120616E6461722044
IE: Unknown: 010882848B960C121824
IE: Unknown: 030106
IE: Unknown: 050400010000
IE: Unknown: 2A0104
IE: Unknown: 32043048606C
IE: Unknown: DD0700E04C01020300
Cell 03 - Address: 00:4F:62:21:8C:EA
Channel:9
Frequency:2.452 GHz (Channel 9)
Quality=28/70  Signal level=-82 dBm
Encryption key:off
ESSID:”Guestnet 2 andar D”
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=000000047d367912
Extra: Last beacon: 644ms ago
IE: Unknown: 001247756573746E6574203220616E6461722044
IE: Unknown: 010882848B960C121824
IE: Unknown: 030109
IE: Unknown: 050400010000
IE: Unknown: 2A0104
IE: Unknown: 32043048606C
IE: Unknown: DD0700E04C01020300

Interpretando as linhas acima temos basicamente no lado direito o nome da célula localizada e uma numeração sequencial que parte do número 01, assim podemos subentender que se a última célula localizada é Cell 03, nosso comando encontrou 03 redes ao alcance de nossa antena. Logo ao lado da identificação da celúla temos o MAC address da placa de rede do Access Point/Roteador, e na quinta linha abaixo da identificação da celula temos o ESSID que contém o nome da rede.

Assim sendo se eu quero conectar na rede vou usar o seguinte comando:

console# iwconfig wlan0 essid “rede exemplo”

Pronto, isso nos fez conectar na rede, mas ainda não temos IP, para pegar o IP basta digitar:

console# dhclient wlan0 (se for rede que ofereça DHCP, caso contrário o processo de definição de IPS é o mesmo da rede ethernet)

Um breve resumo de comandos para conectar na rede:

console# ifconfig wlan0 up
console# iwlist wlan0 scan
console# iwconfig wlan0 essid “rede exemplo”
console# dhclient wlan0

Pronto em quatro comandos já estaremos navegando na rede sem fio, caso você vá conectar sempre na mesma rede, ou em uma rede que você já sabe o nome, não precisará do comando “iwlist wlan0 scan”.

Agora vamos para a conexão com uma rede sem fio que utiliza criptografia WEP, a mais fraca de todas.

console# iwconfig wlan0 essid “rede exemplo” key [1] 123teste456

Onde:

- key informa que você irá utilizar uma chave para conectar na rede (bem óbvio)
- [1] informa a posição da chave, em uma rede com criptografia WEP temos a opção de setar até 4 chaves, basta uma para conectar;
- 123teste456 é a senha de posição 1 da rede, esta chave pode ser obtida com o gerente da rede.

Pronto, simples assim, só adicionamos o campo key e conectamos em uma rede com protocolo WEP.

Agora vamos para o protocolo WPA (que não é suportado por padrão pelos binários do pacote wireless-tools).

Para que possamos trabalhar com criptografia WPA, precisaremos instalar um pacote chamado wpasupplicant que após instalado vai gerar um binário chamado wpa_supplicant.

console# apt-get install wpasupplicant

Agora vamos configurar um arquivo de configuração específico da rede que vamos utilizar que usa o protocolo WPA, sugiro que esse arquivo seja criado em /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf

O arquivo deverá conter os seguintes parâmetros dentro dele:

— inicio do arquivo /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf —

network={
ssid=”rede teste”
scan_ssid=1
key_mgmt=WPA-PSK
psk=”123teste456″
}

— fim do arquivo /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf —

Agora vamos explicar os campos do arquivo:

- ssid - nome da rede
- scan_ssid - verifica se a rede está ao alcance antes de conectar
- key-mgmt - o modulo que será utilizado pelo programa para gerenciar a autenticação da rede, em nosso caso o WPA-PSK, utilizado na maioria das redes sem fio que utilizam criptografia WPA.
- psk - aqui fica a senha da rede, a chave de acesso propriamente dita, busque essa chave com o administrador da rede.

Pronto agora que gravamos as informações de conexão da rede em um arquivo vamos conectar com na rede usando esse arquivo

console# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf &

Onde:

wpa_supplicant - nome do executável que irá conectar na rede;
-Dwext - Driver utilizado para conexão lógica com a rede, onde wext é um driver padrão linux;
-iwlan0 - Define a interface wlan0 para conexão com essa rede;
-c /etc/wpa_supplicant/wpa_supplicant_rede_teste.conf - define o caminho do arquivo de configuração da rede sem fio;
& - coloca o serviço em plano de fundo, assim permite que o sistema fique rodando e libere o console para você.

Agora que conectamos na rede, basta adquirir IP

console# dhclient wlan0

Pronto já podemos navegar

Reduzindo e compactando imagens com Imagemagick
Jan 29th, 2010 by Davyd Smelk

Olá amigos, estava eu copiando algumas fotos da minha câmera fotográfica digital de 5 mega pixels e observei que comumente preciso reduzir o tamanho de algumas imagens para enviá-las aos amigos ou publicá-las em minha galeria na Internet. Como conhecemos a Internet em Manaus é uma das piores do Brasil e consequentemente o trabalho de redução via GIMP é, quando a quantidade de imagens supera 10 arquivos, insuportável.

Agora estando eu com um amigo e a família em viagem, decidimos comprar uma camêra da Sony de 14 mega pixels, a imagem é gigante e quando carrego no GIMP para reduzir, tendo eu um netbook com processador de 1.6 Ghz, fica duas vezes mais insuportável do que quando usava minha camera.

Foi então que eu pensei, não sou nenhum filho do corno para ficar o dia inteiro reduzindo fotos para publicar na Internet. Lembrando que gosto de guardar as fotos em resolução máxima para posteriormente usá-las em impressoes ou show de slides.

Fui até a internet em busca de uma ferramente que pudesse reduzir um grupo de imagens por nome ou pasta, modo console, e encontrei o imageclick.

Após instalado o imageclick vai gerar um binário chamado convert e é com ele que trabalharemos as imagens. O convert permite reduzirmos a fotos tanto no tamanho em disco quanto o tamanho físico da imagem.

Vamos lá então:

Reduzindo o tamanha da foto (área da foto - resolução)

Uma das formas de reduzir uma foto, e a mais prática, é reduzindo sua resolução, isso significa reduzir ao mesmo tempo tanto a área da foto quanto o tamanho em bytes da mesma. Essa forma é sem dúvida a mais prática porque quando se publica uma foto geralmente uma resolução de 640 x 480 é o suficiente para que ela seja exibida confortavelmente por qualquer usuário na Internet sem a necessidade de uma conexão veloz, permitindo-se ao mesmo tempo pouco espaço da tela do usuário na visualização da mesma.

Usando o convert para reduzir uma foto:

console# convert -resize 640×480 foto_1.JPG foto_1_reduzida.jpg

onde:
- 640×480 (é a nova resolução da imagem, se quiser maior use 800×600 ou o tamanho desejado);
- foto_1.JPG é o nome da foto que você deseja reduzir;
- foto_1_reduzida.JPG é o nome que a foto reduzida receberá;

Obs.: Lembre-se que você deve estar na pasta das fotos para executar o comando dessa forma.

Resultado do teste:

Foto de 14 mega pixels pesando 1.8 MB
- Após compressão para 640×480 -> 128 KB;

Usando o convert para reduzir um pasta inteira de fotos:

Setando o IFS para uma linha inteira
console# IFS=’<pressione ENTRE> <digite a outra aspa simples> ‘<pressione ENTER>

Crie nova pasta para armazenar as fotos reduzidas, pode ser dentro da pasta onde as fotos grandes estão localizadas.

console# mkdir fotos_reduzidas

Reduzindo as imagens:
for u in $(ls –color=none |grep JPG); do convert -resize 640×480 $u ./fotos_reduzidas/$u; echo $u ” - reduzida com sucesso”; done;

Como funciona:

- ls –color=none | grep .JPG vai trazer somente as fotos com extensão JPG para a tela, esse resultado será atribuido a variável “u”. Se os seus arquivos estão com a estensão jpg (minúsculo) altere o script.
- O for é um laço de repetição que vai usar cada linha da saída do comando ls para aplicar o “do”;
- O “do” vai executar o comando convert com alteração para a resolução especificada 640×480 no arquivo “$u” especificado que será armazenado na pasta fotos_reduzidas, com o mesmo nome do arquivo original. Após isso ele vai informar na tela o nome do arquivo que foi reduzido com sucesso.

Reduzindo via script:
#!/bin/bash
#
#    Copyright 2010 Davyd Smelk
#
#    Este script e um software livre; voce pode redistribui-lo e/ou
#    modifica-lo dentro dos termos da Licenca Publica Geral GNU como
#    publicada pela Fundacao do Software Livre (FSF); na versao 2 da
#    Licenca.
#    Este programa e distribuido na esperanca que possa ser util,
#    mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUACAO a
#    qualquer MERCADO ou APLICACAO EM PARTICULAR. Veja a
#    Licença Publica Geral GNU para maiores detalhes.
#    Voce deve ter recebido uma copia da Licença Publica Geral GNU
#    junto com este programa, se nao, escreva para a Fundacao do Software
#    Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
#
#
#   Autores: Davyd Smelk <davyd@comunidadesol.org>
#   Manutencao: Davyd Smelk
#   Data de Criacao: 29.01.2010
#   Última Atualizacao: 29.01.2010
#
#
#   compacta_imagens.sh - Script para reduzir imagens
#
#   Exemplo: ./compacta_imagens.sh JPG
#
#   Funcionamento: O script buscar imagens com a extensão definida pelo
#                  usuário e reduzi-las com o uso com convert (imagemagick).
#
# Historico:
#   v0.1 29.01.2010, Davyd Smelk:
#     - Versao inicial
#
#
#   FIXME 1: Corrigir tamanho das linhas para 80 colunas
#
#
# — INICIO DO SCRIPT —
#
#
[ $# -ne 2 ] && \
{
echo “Escreva: $0 <size> <extensao dos arquivos>”;
echo “<size> conter a nova resolucao dos arquivos 640×480 ou 800×600;
echo “<extensão dos arquivos> conter apenas a extensão em maiuscolo ou minusculo”;
exit 1;
}
#
# Definindo as variaveis GLOBAIS
SIZE=$1
EXT=$2

#
mkdir fotos_reduzidas
for u in “ls –color=none .$EXT“;
do
convert -resize $SIZE $u ./fotos_reduzidas/$u
done
#
#
# — FIM DO SCRIPT —

Reduzindo o tamanha da foto (espaço em disco - MB)

Uma outra forma de reduzir imagens, mas sem reduzir a área da imagem, é forçando a compactação JPG dela, neste caso o programa irá criar o que chamamos de macroblocos (ele fará a junção de vários pixels de cor semelhante em um só), o que chamamos de macroblocos. Os macroblocos, dependendo do tamanha é claro, passam desapercebido pelo olho humano, são perceptiveis apenas quando ampliamos a imagem.

Assim, pode-se manter uma imagem de mesma área mas com tamanho (espaço em disco) reduzido.

Usando o convert para reduzir uma foto:

console# convert -quality 90 foto_1.JPG foto_1_reduzida.jpg

onde:
- 90 (é o fator de compressão, se quiser você pode variar de 10 em 10 e ver até onde vai a compactação sem perda visível de qualidade, 80, 70…);
- foto_1.JPG é o nome da foto que você deseja reduzir;
- foto_1_reduzida.JPG é o nome que a foto reduzida receberá;

Obs.: Lembre-se que você deve estar das fotos para executar o comando dessa forma.

Resultado dos testes:

Foto de 14 mega pixels pesando 1.8 MB
- Após compressão em 90 -> 1.2 MB;
- Após compressão em 80 -> 980 KB;
- Após compressão em 70 -> 515 KB; (até nesse nível de compressão não percebi perda de qualidade na imagem)

Usando o convert para reduzir um pasta inteira de fotos:

Setando o IFS para uma linha inteira
console# IFS=’<pressione ENTRE> <digite a outra aspa simples> ‘<pressione ENTER>

Crie nova pasta para armazenar as fotos reduzidas, pode ser dentro da pasta onde as fotos grandes estão localizadas.

console# mkdir fotos_reduzidas

Reduzindo as imagens:
for u in $(ls –color=none |grep JPG); do convert -quality 90 $u ./fotos_reduzidas/$u; echo $u ” - reduzida com sucesso”; done;

Reduzindo via script:
Basta alterar no script acima a flag -resize por -quality e trocar o valor da variável SIZE de 640×480 para 90 (ou a taxa de compressão preferida).

espero ter colaborado,

um grande abraço,

Davyd Smelk

Koruja - Solução em gestão de ativos de rede
Jan 29th, 2010 by Davyd Smelk

Olá amigos, apenas um forward de uma noticia que chegou em meu email.

No primeiro dia da Campus Party em São Paulo foi lançado no estande do
Banco do Brasil o software Koruja, que realiza o inventário de ativos
interligados em uma rede TCP/IP. O Koruja é a 35a solução que ingressa no
Portal do Software Público e a terceira disponibilizada pelo Banco do
Brasil.

O gerente de TI, Sérgio Henrique Pasqua, disse no lançamento do
Koruja “que a intenção do Banco Brasil é criar uma comunidade de
desenvolvimento que auxilie na evolução do Koruja e que os técnicos de
tecnologia da informção possam utilizar uma solução que melhore a gestão
dos ambientes de datacenter”.

Na visão do coordenador do Portal, Corinto
Meffe, que representou o Secretário Rogério Santanna na solenidade, o
Koruja vai reforçar o acervo de soluções voltadas para os técnicos e
gestores de tecnologia da informação. “Temos o CACIC, COCAR, Curupira,
SAGUI, Kyapanel, SIGATI e a solução do Banco do Brasil se torna mais um
opção técnica para melhorar a gestão de TI”, reforçou Corinto.

Para
Marcos Antônio Carvalho, analista sênior do Banco do Brasil e coordenador
técnico da comunidade, “a solução tem o desafio de superar as dificuldades
de gerenciar as configurações dos recursos tecnológicos em ambientes
dispersos, complexos e heterogêneos”.

Na opinião de Marcos “o Koruja vai
se tornar mais uma alternativa para os gestores dos recursos que estão
pendurados em uma rede TCP/IP”. “Tal alternativa se configura pelo aumento
da complexidade e diversidade tecnológica dos parques computacionais”,
completa o coordenador.

Conhecendo a solução Koruja

O Koruja é um
software desenvolvido com tecnologias abertas e livres, na linguagem
TCL/Expect, tem baixo consumo de memória, faz o tratamento de strings e
funciona em ambiente multiplataforma.

O software em sua versão inicial
atende quatro premisssas: (i) não utiliza o modelo de agentes locais para
coletar as informações; (ii) coleta as informações a partir de um único
ponto; (iii) gera um repositório único para as informações gerenciais e
(iv) opera em serviços TCP/IP.

Os ganhos surgem do aproveitamento da
cultura wiki, da economia dos recursos tecnológicos para realizar o
inventário e do foco nos recursos de acordo com a necessidade específica de
cada um, sendo eles: estações de trabalho, switchs e routers.

Problemas com o python-uno
Dec 8th, 2009 by Davyd Smelk

Creio que muitos colegas já tiveram problemas ao tentar instalar o pacote do OpenOffice 3 no debian (lenny no meu caso). Quando o download do pacote é feito via apt e o script de instalação começa a rodar, logo recebemos uma mensagem na tela de “erro ao processar python-uno” e a instalação é abortada.

Vamos ver como corrigir isso.

O problema:

O python-uno é um programa que permite a abertura de socktes na máquina e a interação entre diversos programas e arquivos em tempo real através da biblioteca uno do python, só que durante a instalação ele pode apresentar conflito com um programa chamado pycentral.

O pycentral é um programa que fica instalado dentro de /usr/bin (no debian) e tem como principal função auxiliar no processo de instalação de aplicações que usam o python, mas isso independente da versão que está instalada no sistema. Ele faz a interface entre a aplicação e o python no momento da instalação de vários pacotes.

Muitas vezes esse programa, que não é binário, apresenta defeito. Uma forma fácil de verificar isso é rodando o comando /usr/bin/pycentral -v. Caso ele apresente falha ao invés de retornar a versão do programa já sabemos que está com problemas.

A solução:

Tendo o APT já apresentado a mensagem de erro duranto o processo de instalação, faça o seguinte:

- mova o programa pycentral para uma pasta segura;

- # cp /usr/bin/pycentral /root/pycentral

- rode o apt em modo de solução de problemas, modo force;

- # apt-get install -f

- Esse comando vai fazer o apt consertar as falhas de dependência do python e reconfigurar os scripts python do sistema;

- Agora repita o comando de instalação;

-# apt-get install openoffice.org; (ou o nome da aplicação que você estava tentando instalar)

Pronto agora é só usar, caso queira, você pode voltar o pycentral para o local de origem, o que eu não aconselho, pois esse erro voltará a acontecer no processo de instalação de outros pacotes.

Deixe para voltar o pycentral quando verificar que algum programa solicitou sua utilização.

um grande abraço,

Davyd Smelk

O caranguejo de João Pessoa
Oct 19th, 2009 by Davyd Smelk

Estava eu, em viagem de “staff” à equipe adulta de pólo aquático do Amazonas no campeonato norte nordeste 2009 em João Pessoa, quando decidi não mais apenas olhar o mar, mas sim tomar um bom banho naquela água salgada que por várias noites havia apenas admirado.

Tomei coragem e após o jantar, coisa de umas 22h, subi no quarto e coloquei minha sunga, peguei a toalha e desci para a praia que ficava a 20 passos do flat manaíra palace (bairro manaíra). Como de costume fiquei cerca de 20 minutos olhando para o infinito e ouvindo o som do mar batendo na areia como se quisesse me dizer algo, após perceber que que varias pessoas me olhavam como se eu fosse um louco prestes a cometer suicídio decidi dar um mergulho, foi aí que aconteceu.

Quando aproximei do mar, já sem meus óculos, percebi que algo se movia na praia a uma velocidade considerável. Recoloquei meu “glass” e pude definir pelo formato anatômico que se tratava de um caranguejo albino, se é que existe isso, que corria em direção ao mar na tentativa de dar um mergulho também. O problema é que as ondas estavam um pouco fortes e tornavam a trazê-lo quase para o mesmo local de onde tinha saído.

Após ver a tentativa burra do pobre ser vivo sem cérebro percebi que podia ajudá-lo. Montei um algoritmo rápido em minha mente que me parecia muito eficaz. Tratava-se de correr até ele e dar uma bicuda em determinada força que o jogaria quase no meio do mar.

Decidi então aplicar o patch e corri até o animal para efetuar o procedimento de help. Certamente que como todo algoritmo feito por um admin de redes como eu, não tratei os erros do código ou as exceções.

Quando aproximei do bicho o elemento surpresa aconteceu. Ele teve, eu acho, a mesma idéia que eu e correu também em minha direção talvez pra me chutar também. Decidi abortar a compilação do meu código na hora e não tive interesse algum em saber qual era o objetivo do bicho. Então corri o mais rápido que pude para o mais longe daquele animal demoníaco.

Fui esperar o batimento cardíaco baixar enquanto debugava o código da minha aplicação para entender o que me fez correr de um bicho sem cérebro e 100 vezes menor que eu. Cheguei ao dividendo de que a falha de implementação dele era a errada, porque com todas essas variáveis ao meu favor o louco blefou que eu era frouxo e acertou na mosca.

A essa hora a vontade de nadar tinha ido pro saco, mas era melhor entrar no mar e sumir naquele momento que ter de voltar e passar no meio das pessoas que tinham assistido a cena. Decidi ir pro mar.

Quando estou chegando na beira do mar. O phoenix ressurge das cinzas, mas agora que eu já tinha corrigido o meu código decidi apenas ignorá-lo e torci pra que ele fizesse o mesmo comigo. Entrei com um medo absurdo no mar e logo após uns 10 passos senti um bilhão de coisas envolverem minhas pernas achei que devia ser um cardume de sardinhas ou sei lá o que. O medo tomou conta de mim nivamente e fiquei inerte por minutos ali até perceber que se tratavam de inúmeras algas marinhas.

Nesse momento percebi q estava no lugar errado na hora errada e que mar não é minha praia. Saí avoado da água mas tentando manter no rosto aquela expressão de surfista experiente para que não ficasse ainda mais ridículo para os espectadores. Busquei uma pedra para tacar no caraguejo que, para a sorte dele, havia desaparecido me enxuguei e voltei para o hotel com a legítima cara de fuinha.

enfim, se for a joão pessoa não esqueça de apreciar o por do sol em manaíra e na praia do jacaré, mas jamais se meta com os carangueijos de lá. Eles são loucos.

Site PSL-Am
Sep 21st, 2009 by Davyd Smelk

Olá Amigos, é com grande prazer que venho informar que no dia 18 de setembro de 2009, durante o Software Freedom Day, realizado nas dependências do Centro Universitário CIESA - pelo Projeto de Software Livre do Amazonas, tivemos o lançamento “on the fly” do portal oficial am.softwarelivre.org.

Esse é foi o marco 0 para o Projeto de Software Livre do Amazonas, que conta agora com um lugar onde Software Livre como um todo é bem vindo, um lugar que pretende gerir idéias e grupos de software livre do Amazonas no objetivo de direcionar os esforços de todos os grupos em uma única direção.

Que novos horizontes sejam alcaçados pelos participantes desse projeto, e que novos grupos de software livre no amazonas possam aderir a essa ideologia.

Os meus parabéns ao Everton, brankinho, Daniel Martins, Daniel Bruno, nona, Ayrton e a todos os que levaram essa idéia adiante.

http://am.softwarelivre.org

um grande abraço,

Davyd Smelk

»  Substance: WordPress   »  Style: Ahren Ahimsa