Hamacker’s Palace

31 de Agosto de 2007

Compra de votos não é uma especialidade politico-partidario-nacional #2

Arquivado em: GNU/Linux, ubuntu — hamacker @ 12:46

Desculpa refazer esse post, mas houveram mudanças recentes e fui obrigado a atualiza-lo.

Pois é, comprar votos não é uma especialidade de nossos politicos.

Normalmente me esquivo de comentários assim, mas é impossivel ficar calado vendo tanta gente surfando na corrupção e troca de favores escusos. A bola da vez parece ser a Microsoft na suécia, onde para aprovar o OOXML teve de recorrer ao cofre da empresa. Veja os links a seguir e forme sua própria opnião sobre o assunto :

http://www.noooxml.org/forum/t-17858/microsoft-offered-market-subsidies-to-swedish-partners

http://www.os2world.com/content/view/14871/2/

http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9033701

Os links acima trazem noticias : “Microsoft oferece ’subsidios de mercado’ à parceiros suecos”, “Microsoft forçou parceiros a votarem -Sim-” e “Microsoft admite incentivo monetário a parceiros suecos para votarem a favor do OOXML”, nelas há outros links e no google a noticia já se espalhou. É um escandalo para a reputação de uma instituição sueca que tem carater tecnico para votar em padrões ISO, apenas um trecho :

Swedish newspaper, Computer Sweden, now confirms that Microsoft did send out e-mails to get Gold Partners to get them to vote via one of the Gold Partners that received the e-mail and phone calls from Microsoft.

Pois é, não sei se esse jornal sueco, Computer Sweden é confiável porém até mesmo o IDG e outros blogs e sítios de internet troxeram a mesma noticia onde a Microsoft enviou emails e trocou telefonemas para os chamados “Gold Partners” para apanhar seus votos no comitê a favor do OOXML.

Atualização : Pois é, tá tudo confirmado, até mesmo o Groklaw noticiou a respeito. Em virtude dessa descoberta, o comitê sueco mudou seu voto anterior favorável ao OOXML para “abstenção”. Essa imagem retrata bem o que foi que aconteceu :

reunião da ISO em alguns comitês regionais.a

Dinheiro é poder ? Pelo jeito, sim. Mas é uma VERGONHA uma empresa agir assim, será que o OOXML não tem seus méritos próprios ?

Também é uma VERGONHA para uma instituição votante na ISO julgar um padrão sabendo que seus integrantes estão votando politicamente e não por critérios técnicos, mas deixa de ser uma vergonha para ser um escandalo saber que seus votos foram comprados. Se essa instituição sabia que isso ocorreu e não fez nada então esta deveria ser varrida do comitê ISO, e se não sabia e depois ficou sabendo então haveria uma razão para “ser contra” e não “abster-se”, não conheço ninguem que ao ser roubado aja de forma tão frívola.

30 de Agosto de 2007

Ubuntu Gutsy tocando todos os formatos

Arquivado em: GNU/Linux, sun-java, ubuntu — hamacker @ 20:26

Essa é uma recompilação dum artigo anterior, dessa vez para o Ubuntu Gutsy, isto é necessário porque alguns nomes de pacotes mudaram.

Antes de mais nada é bom frisar que a maioria dos codecs são instalados sob demanda, porém é bom instala-los logo de uma vez porque pode acontecer de voce precisar dum codec ou de uma biblioteca e naquele instante não contar com a internet, então para não ter nenhuma surpresa desagradável no futuro, instale-os já :

1) Primeiramente, vamos habilitar os repositórios universe, restricted e multiverse, eu faço isso executando o próprio synaptic :

a) No Menu do seu sistema GNOME vá em Sistema->Administração e execute o item Gerenciador de Pacotes Synaptic.

b) Após isso, vá em Configurações->Repositórios, então aparecerá uma relação de repositórios disponiveis e suportados pela distribuição Ubuntu, habilite os repositórios “main”, “universe”, “restricted” e “multiverse”. Se quiser desabilite a opção “Código Fonte”, ela atrasa a atulização da lista de pacotes. Mesmo que voce prefira obter os fontes de alguns programas, poderá habilita-lo depois.

OK. Agora clique em “Fechar”, e após isso clique no botão “Atualizar”.

Após o procedimento acima, o synaptic poderá ser fechado.

2) Vamos agora instalar os pacotes de formatos diversos, muita atenção no copiar/colar, as vezes o wordpress simplesmente vai trocar o “- - “(dois traços seguidos) por outro caracter parecido mas que provocará erro de sintaxe ou então linhas que terminam com \ (barra invertida) indicando continuação na proxima linha simplesmente somem. Execute na linha de comando (terminal bash) :

# pacotes comuns

sudo apt-get -y install mpeg2dec a52dec vorbis-tools id3v2 mpg321 mpg123 \
       libswfdec0.3 libflac++6 ffmpeg \
       cdda2wav toolame libmp4v2-0 totem-mozilla \
       libmjpegtools0c2a tagtool easytag id3tool \
       lame lame-extras nautilus-script-audio-convert \
       mozilla-helix-player  helix-player \
       libmad0 libjpeg-progs libmpcdec3 libquicktime1 \
       flac faac faad sox toolame  a52dec ffmpeg2theora \
       libmpeg2-4 uudeview flac  libmpeg3-1 mpeg3-utils mpegdemux

# gstreammer 0.10

sudo apt-get install -y gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 \
  gstreamer0.10-fluendo-mpegdemux gstreamer0.10-gl \
  gstreamer0.10-gnonlin gstreamer0.10-pitfdll \
  gstreamer0.10-plugins-bad gstreamer0.10-plugins-farsight \
  gstreamer0.10-plugins-ugly gstreamer0.10-sdl \
  gstreamer0.10-plugins-bad-multiverse gstreamer0.10-schroedinger \
  gstreamer0.10-plugins-ugly-multiverse totem-gstreamer

# mais programas

sudo apt-get -y install gstreamer-dbus-media-service gstreamer-tools

# flash

sudo apt-get -y install  gsfonts gsfonts-x11 flashplugin-nonfree

# avifiles (para quem vai usar avifile-player, raro ?)

sudo apt-get -y install avifile-player avifile-utils avifile-mad-plugin avifile-mjpeg-plugin \
   avifile-vorbis-plugin avifile-win32-plugin avifile-xvid-plugin \
   avifile-win32-plugin avifile-divx-plugin avifile-utils \
   avifile-xvid-plugin avifile-divx-plugin xvid4conf \
   avifile-mjpeg-plugin avifile-vorbis-plugin avifile-mad-plugin

# só para quem gosta de usar o mplayer (eu uso)

sudo apt-get -y install  mplayer mplayer-fonts mplayer-skins  mozilla-mplayer mencoder

# só para quem gosta de usar o xine

sudo apt-get -y install totem-xine gxine libxine1-plugins libxine-extracodecs

# para quem usa o K3b e/ou utilitários de composição de dvd/videos

sudo apt-get -y install cdrdao vcdimager mjpegtools vcdtools transcode
sudo apt-get -y install movixmaker-2 normalize-audio mp3gain
sudo apt-get -y install k3b libk3b2-mp3 k3b-i18n

3) Extensões para o seu navegador de internet :

A partir dessa versão do Ubuntu, há uma seção especial do “Adicionar e Remover Programas” específico para adicionar extensões ao Firefox, algumas tem a ver com multimidia e outras nem tanto. Execute no terminal :

sudo gnome-app-install --xul-extensions=firefox

Lembre-se que na opção “exibir” dessa ferramenta por padrão exibe apenas as extensões suportadas pelo Ubuntu, mas voce poderá ver as demais.

4) Codecs proprietários e protegidos :

a) Agora vamos instalar aqueles codecs que são considerados proibidos em alguns países por conta de patentes de software, aqui no brasil não temos essa restrição. O pacote que será instalado a seguir também acrescenta codecs especialistas em tocar formatos especificos da plataforma windows :

wget -vc http://www.debian-multimedia.org/pool/main/w/w32codecs/w32codecs_20071007-0.1_i386.deb
sudo dpkg -i  w32codecs_20071007-0.1_i386.deb

b) O dvdcss é responsável por tocar DVDs sem qualquer restrição DRM, como por exemplo, tocar DVDs de qualquer região :

sudo apt-get install  libdvdread3
sudo /usr/share/doc/libdvdread3/install-css.sh

Ok. Parabens ! Codecs principais foram instalados e agora podemos tocar DVDs tranquilamente.

5) Fontes :

Mais precisamente fontes de letras e caracteres. Estou incluindo uma vasta lista, porém voce não precisa de todos estes, uma pessoa mais técnica instalaria apenas as que fossem provavel ele utilizar :

sudo apt-get -y install msttcorefonts
sudo apt-get -y install ttf-larabie-straight ttf-larabie-deco \
  mplayer-fonts xfonts-terminus-dos xfonts-terminus \
  xfonts-terminus-oblique xfonts-mona tv-fonts ttf-tuffy ttf-sjfonts \
  ttf-sil-padauk ttf-sil-ezra ttf-paktype ttf-georgewilliams \
  ttf-fifthhorseman-dkg-handwriting ttf-farsiweb \
  ttf-essays1743 fonty ttf-opensymbol ttf-nafees ttf-mgopen ttf-gentium \
  ttf-freefont ttf-dustin ttf-devanagari-fonts ttf-dejavu-extra \
  ttf-dejavu-core ttf-dejavu ttf-bpg-georgian-fonts ttf-bitstream-vera ttf-alee

6) RealPlayer (.rmvb)

Sim, o formato .rmvb pode ser tocado diretamente pelo mplayer, no entanto alguns preferem toca-los diretamente no realplayer. Até a versão do Ubuntu Dapper, a Canonical mantinha-o no repositório “comercial”, atualmente o repositório comercial não conta mais com ele. Minha recomendação para aqueles que preferem usar o realplayer para tocar o formato .rmvb é baixa-lo diretamente do fabricante Real.com, eis um caminho simples :

a) Vá até a página “http://www.real.com/linux” e baixe a versão mais recente cujo nome “atual” é RealPlayer10GOLD.bin, salve-o numa pasta que voce venha a recordar o local.

b) Abra um Terminal e execute nele :

sudo apt-get install libstdc++5
sudo chmod a+x /onde/voce/baixou/RealPlayer10GOLD.bin
sudo  /onde/voce/baixou/RealPlayer10GOLD.bin

O procedimento de instalação é rápido e descomplicado. A seguir voce já poderá ver o realplayer em Aplicações->Som e Video->RealPlayer 10.

7) Conversão de formatos para iPod, Celulares e Smartfones :

Para converter de um formato para outro, o modo mais simples é usar o ffmpeg na linha de comando. A primeira vista, o ‘ffmpeg’ parece complicado, porém acredite ele é bem fácil em comparação com o mencoder. Existem toneladas de frontends que podem simplificar a sua vida, mas para usar em dispositivos portateis muitos não são tão confiáveis, eu conheço e uso este aqui :

http://www.miksoft.net/mobileMediaConverter.htm

Ele é simples, uso ele para converter videos para meu celular Motorola A1200i . Eis como fica a instalação :

sudo mkdir -p /opt/mmc
cd /opt/mmc
sudo wget -vc http://www.miksoft.net/products/mmc-lin.tar.gz
sudo tar zxvf mmc-lin.tar.gz
sudo chmod a+x ffmpeg
sudo chmod a+x "Mobile Media Converter"

Dê um ALT+F2 e execute “gksu gedit /usr/share/applications/mmc.desktop” e copie o seguinte conteúdo :

[Desktop Entry]
Name=Mobile Media Converter
Comment=Mobile Media Converter
Exec=”/opt/mmc/Mobile Media Converter”
Icon=/usr/share/pixmaps/gnome-grecord.png
Type=Application
Encoding=UTF-8
Categories=Application;AudioVideo;Audio;

Cuidado com os espaços em brancos entre as palavras “Mobile Media Converter”, por isso usei aspas.

A seguir, ele aparecerá no menu Aplicações->Som e Video->Mobile Media Converter.

8) Java

Java não é exatamente uma propriedade que podemos classificar de multimedia, no entanto, é requerido por alguns programas que são usados para absorver conteúdo multimedia, incluindo browsers, programas p2p e por aí adiante. Para instalar no seu sistema :

sudo apt-get -y install sun-java6-bin sun-java6-fonts sun-java6-jre sun-java6-plugin
sudo apt-get -y install equivs ttf-sazanami-gothic ttf-sazanami-mincho

Sabidamente alguns programas java simplesmente não funcionam com as animações do Compiz, voce pode contornar isso de duas maneiras :

  1. Instale o fusion-icon , um programa que é instalado na bandeja do seu sistema (GNOME/KDE/…) que é capaz de habilitar/desabilitar o Compiz de diversas maneiras. E neste caso voce pode desabilitar o compiz temporariamente enquanto executa o programa feito em java
  2. O outro método é modificando o arquivo de configuração /etc/enviroment. Esse método é mais simples, no entanto, vai fazer com que as aplicações Java rodem com cara de aplicações Motif, e alguns programas já rodam sob o compiz. Se achar esse método mais simples, dê um ALT+F2 e execute “gksu gedit /etc/environment” e a seguir acrescente a seguinte linha ao arquivo que estará sendo editado :

AWT_TOOLKIT=MToolkit

Por ser mais experiente eu acrescento a linha acima apenas nos scripts que carregam os programas Java problemáticos.

Conclusão Final

Faltou alguma coisa?

Sim, pode ter faltado alguns pacotes importantes. Se voce souber de algo que fosse interessante incluir então não deixe de dar um comentário e provavelmente atualizarei o artigo mais tarde.

Vale relembrar que os codecs de musica ou video que estão protegidos por DRM (Digital Rights Management) provavelmente não tocarão. Se voce quer insistir em toca-los então use o mplayer, pois é muito bom em tocar todos os formatos e até mesmo arquivos defeituosos que nunca tocariam noutro player.

Aqueles que nunca utilizaram o mplayer antes, talvez enfrente um erro comum dizendo algo relacionado a video não está funcionando, isto é um simples ajuste na configuração do mplayer, vá até Preferences > Video e altere o Driver para algo capaz de exibir o video segundo a capacidade de seu computador (sdl, svga,…), se tiver dúvidas use então ‘X11′ que apesar de genérico funcionará perfeitamente bem no seu sistema.

23 de Agosto de 2007

Webcam Syntek Semicon DC-1125 Driver no Ubuntu (ou debian-like)

Arquivado em: GNU/Linux, ubuntu — hamacker @ 19:05

Atenção : Este é um artigo “requentado”, isto é, já fiz ele antes, porém agora estou atualizando-o em virtude de algumas modificações que surgiram nas novas versões do Ubuntu e também graças as atualizações feitas por este driver.

Os modelos de notebook Asus mais recentes da série a6000 incluem uma webcam de 1.3 mega pixel, mas não tem muita serventia para usuários do sistema do pinguim, visto que não há drivers para eles. No entanto, essa situação tem correção.

Na página http://syntekdriver.sourceforge.net possui o driver para tal dispositivo. O driver serve tanto para a webcam embutida nos notebooks da Asus como também alguns modelos de câmera digital de mão do mesmo fabricante que podem ser plugados na USB e também funcionam como uma webcam. Esse driver é 100% funcional para todos os modelos syntek.

Vou novamente detalhar um passo-a-passo de como compila-lo em qualquer Ubuntu ou variações de distribuições Debian :

1) Atualize sua biblioteca de hardwares PCI e USB :

sudo update-pciids
sudo update-usbids

Os passos acima apenas atualizam uma biblioteca de informações para que os comandos ‘lscpi’ e ‘lsusb’ descrevam melhor os dispositivos encontrados.

2) Voce tem realmente uma webcam syntek ?

Para saber a resposta rode o comando ‘lsusb’ :

$ lsusb
Bus 005 Device 003: ID 174f:a311
Bus 005 Device 001: ID 0000:0000
Bus 001 Device 004: ID 045e:007d Microsoft Corp. Notebook Optical Mouse
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000

Se aparecer na sua listagem o ID 174f:a311 então a resposta é ‘Sim’, e este artigo funcionará 100% no seu computador. Se a resposta for negativa, provavelmente não compensa continuar a leitura deste artigo, porém voce pode testar o restante do artigo apenas para ter certeza, afinal o artigo não é complicado e a maioria das ferramentas necessárias provavelmente já estão no seu computador.

3-opcional) Remova o ‘dash’ se estiver usando o Ubuntu Festy (veja : Somente quem ainda usa Ubuntu Feisty

sudo apt-get remove --purge dash

(não é necessário fazer isso em outras distribuições)

Isso é necessário porque alguns make files de compilação usam o /bin/sh que por padrão no Feisty é o ‘dash’, quando deveria ser o ‘bash’ como em outras distribuições. Apenas remover o ‘dash’ do seu sistema vai tornar o bash como padrão. Se você não quer remove-lo, então faça o /bin/sh que é um link simbólico apontar para /bin/bash manualmente :

sudo rm -f /bin/sh
sudo ln -s /bin/bash /bin/sh

4) Instale algumas dependências :

sudo apt-get install build-essential bin86 kernel-package \
   libqt3-headers libqt3-mt-dev \
   libncurses5-dev libusb-dev libsane-dev \
   libsane-extras-dev subversion \
   exuberant-ctags camorama
sudo apt-get install dpkg-dev debhelper devscripts fakeroot linda dh-make

5) Instale o kernel-headers :

Se estiver usando o kernel genérico que é o padrão de instalação do Ubuntu (use “uname -a” para conferir), então execute :

sudo apt-get install linux-headers-generic

Caso contrário, instale a versão do kernel-headers da versão especifica do seu kernel :

 sudo apt-get install linux-headers-`uname -r`

6) Crie um diretorio para manter os fontes e compilar

sudo  bash
cd /usr/src
svn co https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver syntekdriver
cd syntekdriver/trunk/driver/
make -f Makefile.standalone clean
make -f Makefile.standalone (ignore os Warnings)
ou
make -f Makefile.standalone driver

Infelizmente, enquanto escrevo este artigo o ‘make install’ ainda não funciona (syntek revisão número 75), mas é possivel faze-lo manualmente :

cp stk11xx.ko /lib/modules/`uname -r`/kernel/drivers/media/video
ou
cp stk11xx.ko /lib/modules/`uname -r`/kernel/drivers/media/video/usbvideo/
depmod -a

Visto que sempre há atualizações, eu recomendo sempre você experimentar o ‘make install’, e se ele não funcionar então repetir o procedimento acima. Para testar o seu funcionamento, siga o procedimento (use essa mesma ordem) :

sudo modprobe videodev
sudo modprobe v4l1-compat
sudo modprobe stk11xx

Se alguma mensagem de erro ocorrer é porque a compilação falhou em gerar o modulo ’stk11xx.ko’, caso contrario dê um ALT+F2 e digite “camorama” e veja se a câmera esta funcionando de acordo.

7) Dê um ALT+F2 e execute ‘gksu gedit /etc/modules’ e acrescente as linhas :

# modulos para infraestrutura de suporte a video
videodev
v4l1-compat
stk11xx

Segundo o “README” desse modulo, voce pode usar as opções “hflip” and “vflip” seguido do valor =0(desligado) ou =1(ligado). O que essas opções fazem ? Invertem horizontalmente ou verticalmente a imagem, exemplo :

modprobe stk11xx hflip=0 vflip=1

Se você tiver sua imagem invertida na webcam, considere o uso dessas opções no /etc/modules.

8) Faça um teste com algum programa de sua preferência.

Há toneladas de programas diferentes e todos que testei funcionaram perfeitamente, incluindo o Ekiga, só no camorama que precisei ativar o plugin “Color Corrections” porque as cores estavam erradas. Meu teste :

Minha quase foto usando a webcam Syntek embutida no notebook Asus ACJ6.

Observações Finais :

  • O driver/modulo já torna utilizável em 100% a webcam 1.3mpixel que veio com o meu notebook Asus A6CJ(série A6000).
  • Toda vez que seu kernel for atualizado voce precisará repetir o passo 6.
  • Meus agradecimentos ao Jonh Wendell <wendell [no-endereco] ubuntu.com> que me ajudou a lidar com os problemas de dependência de kernel na primeira versão deste artigo.

22 de Agosto de 2007

Google Earth de forma simplificada

Arquivado em: GNU/Linux, ubuntu — hamacker @ 14:47

Começou a aparecer em alguns repositórios como Debian e Ubuntu Gutsy o pacote ‘googleearth-package’, esse pacote contém um script que automatiza a criação dum .deb para a ultima versão disponível do Google Earth, esse script faz o download da ultima versão do GoogleEarth disponivel e cria um .deb permitindo que tal programa seja instalado, removido ou transportado facilmente. Se voce está interessado em instala-lo no seu computador então primeiramente instale essas dependencias :

sudo apt-get install build-essential dpkg-dev debhelper devscripts fakeroot linda dh-make patch

Agora voce precisa verificar se ‘googleearth-package’ já consta no seu repositório, para isso basta :

apt-cache search googleearth-package

Se ele aparecer numa relação de pacotes encontrados, então prossiga com :

sudo apt-get install googleearth-package

Se ele não consta no seu repositório, não desanime, voce poderá baixado do Repositório do Ubuntu :

wget -vc http://archive.ubuntu.com/ubuntu/pool/multiverse/g/googleearth-package/googleearth-package_0.2.0_all.deb
sudo dpkg -i googleearth-package_0.2.0_all.deb
sudo apt-get install -f

Por fim, para completar sua instalação :

sudo make-googleearth-package

E um arquivo será criado com o nome de ‘googleearth_4.1.7076.4458+0.2.0-1_i386.deb’ ou algo similar, já que a versão poderá flutuar conforme a ultima versão disponivel. Para completar a instalação, use :

sudo dpkg -i googleearth_4.1.7076.4458+0.2.0-1_i386.deb

Por enquanto é apenas isso.

Atualização : Na ultima versão beta do Ubuntu-7.10 (Gutsy Gibbon) o pacote ‘googleearth-package’ aparentemente tornou-se incompátivel com a última versão do Google Earth, no entanto, é possivel executa-lo assim mesmo, claro que isso significa forçar a barra. O ideal seria que o ‘googleearth-package’ fosse corrigido, se ainda assim voce desejar prosseguir então primeiramente terá que fazer o download manual a partir de :

http://earth.google.com/download-earth.html

E após isso :

sudo make-googleearth-package --force --file GoogleEarthLinux.bin

Após isso, o arquivo .deb será gerado e voce poderá prosseguir com o procedimento do ’sudo dpkg -i’ mencionado no artigo.

15 de Agosto de 2007

Servidor Samba : Lixeira e Auditoria

Arquivado em: GNU/Linux, ubuntu — hamacker @ 20:09

Dois recursos que não podem faltar numa instalação do Samba, especialmente quando configurado para ser um servidor de Dominio é uma Lixeira para coletar os arquivos apagados na rede e também um modo de auditar eventos que ocorrem entre o usuário e o servidor. Apesar de ser fácil instalar, há pouca documentação na internet em português de como implementar isso, às vezes voce até encontra informações, porém as vezes desatualizadas acabam piorando ainda mais o problema e a consequencia de tudo isso acaba sendo a mesma : pipoca mensagens em lista de discussão perguntando sobre como implementar este ou outro serviço ao samba. Por essa razão estou escrevendo este pequeno howto, para ele servir de referencia quando tiver que responder a mesma pergunta.

O passo-a-passo a seguir considera que voce já esteja com o samba instalado e funcionando e queira apenas implementar o serviço de lixeira e auditoria. Verifique também a existência dos arquivos “recycle.so” e “full_audit.so” em /usr/lib/samba/vfs, sem estes arquivos este artigo não irá funcionar.

1. Implementando a lixeira na rede

1.1 Crie uma pasta que servirá de lixeira para sua rede Samba :

mkdir -p /var/spool/samba/lixeira

Qualquer pasta pode servir, mas recomendo também que voce dê permissão global a ela, não por causa do samba, mas caso seus usuários queiram nos seus compartilhamentos ter acesso a lixeira, voce poderá criar um link simbolico apontando a esta pasta.

1.2 Edite o arquivo /etc/samba/smb.conf e acrescente na sessão [Global] caso a lixeira servirá para todos os volumes compartilhamentos ou então apenas num dos seus [compartilhamentos] as linhas :

vfs objects = recycle
recycle:facility = LOCAL1
recycle:priority = NOTICE
recycle:maxsize = 0
recycle:repository = /var/spool/samba/lixeira/%U
recycle:directory_mode = 0777
recycle:subdir_mode = 0777
recycle:keeptree = Yes
recycle:touch = True
recycle:exclude = *.tmp, *.temp, *.log, *.ldb, *.o, *.obj, ~*.*, *.bak
recycle:exclude_dir = tmp, temp, cache
recycle:versions = Yes
recycle:noversions = .doc|.xls|.ppt|*.dcl

Uma pincelada rápida sobre as opções acima do módulo recycle :

recycle:facility = LOCAL1
recycle:priority = NOTICE

Voce está indicando que usará um arquivo de log para registrar a movimentação dessa lixeira, isso será feito por meio do syslogd de seu sistema e voce terá de configura-lo manualmente. Dá ultima vez que tentei não funcionou, portanto é provável que o módulo “recycle” não faça isso, embora tenha a opção para faze-lo.

recycle:maxsize = 0

Acima voce menciona em bytes o tamanho máximo de um arquivo para ele ir parar na lixeira, zero significa sem limites.

recycle:repository = /var/spool/samba/lixeira/%U

Na linha acima voce menciona onde será a sua lixeira. Se voce usar apenas uma palavra unica como “lixeira/%U” ao inves do path completo será criado uma pasta chamada “lixeira/usuario” dentro do compartilhamento e os arquivos apagados serão enviadas para lá, se ao invés disso, voce fizer o que indiquei acima, todos os arquivos vão parar no mesmo lugar. “%U” será interpretado pelo samba como nome do usuário que estiver conectado, assim se fulano excluir um arquivo, será criada uma pasta “fulano” dentro da lixeira com o nome dos arquivos eliminados por este.

recycle:directory_mode = 0777
recycle:subdir_mode = 0777
recycle:keeptree = Yes
recycle:touch = True

As linhas acima determinam as permissões dos diretórios, se é para guardar o nome da pasta de onde o arquivo foi excluído (keeptree) e se a data do arquivo eliminado pode ser trocado pela data da exclusão (touch).

recycle:exclude = *.tmp, *.temp, *.log, *.ldb, *.o, *.obj, ~*.*, *.bak, *.iso
recycle:exclude_dir = tmp, temp, cache

Acima voce determina respectivamente nome de arquivos e diretorios que deverão ser ignorados pela lixeira, isto é, se alguem excluir um .bak, ele terá sido excluido definitivamente.

recycle:versions = Yes
recycle:noversions = .doc|.xls|.ppt

Acima voce determina se haverá controle de versões(versions), isto é, se um arquivo for sobregravado então a cópia antiga será enviada para a lixeira, e se novamente sobregravar o mesmo arquivo, outra cópia será enviada para a lixeira, mas chegando na lixeira se houver um arquivo de mesmo nome já depositado lá então seu nome terá o sufixo “-copia1″, “-copia2″, etc… a outra opção (noversion) é justamente o contrário, não faz controle de versão para os arquivos que correspoderem ao parametro, eu indiquei arquivos do msoffice porque sabidamente o autosave desses programas vai trazer uma enxame de novas versões a partir do momento que um usuário abrir algum arquivo. O problema não é o autosave em sí, mas acontece que o autosave quando na rede vai superlotar a sua lixeira, também alguns usuários “topeiras” modificam o arquivo quando apenas querem lê-lo e “sem querer querendo” iniciam o processo de autosave. Outros aplicativos são mais expertos e fazem autosave na pasta temporária do windows, ainda outros como o autocad (só na ultima versão) trabalha com um nome temporário e somente depois da gravação ele renomeia-o para o nome real e com isso o controle de versões na lixeira funciona bem.

2. Habilitando a auditoria no servidor Samba

Primeiramente edite o arquivo /etc/samba/smb.conf e acrescente ao compartilhamento desejado (ou sessão [Global] se for para todos) as seguintes linhas :

vfs objects = full_audit
full_audit:facility = LOCAL5
full_audit:priority = NOTICE
full_audit:prefix = %u|%I|%S
full_audit:success = rename rmdir unlink
full_audit:failure = none

em full_audit:prefix voce indica o que deverá preceder no formato do arquivo de auditagem, %u indica nome do usuario, %I representa o IP da maquina e %S indica o nome do compartilhamento conforme a tabela a seguir (copiado das manpages do samba):

Variáveis referentes a maquina cliente de rede :

%a Client’s architecture (Samba, WinNT, WfWg, Win95, or UNKNOWN)
%I Client’s IP address
%m Client’s NetBIOS name
%M Client’s DNS name

Variáveis referentes ao usuário :

%g Primary group of %u
%G Primary group of %U
%H Home directory of %u
%u Current Unix username
%U Requested client username (not always used by Samba)

Variáveis referentes ao servidor :

%d Current server process ID
%h Samba server’s DNS hostname
%L Samba server’s NetBIOS name
%N Home directory server, from automount map
%v Samba version

Variáveis miscelaneas :

%R The SMB protocol level that was negotiated
%T The current date and time

Variáveis referentes ao compartilhamento :

%p Automouter’s path to the share’s root directory, if different from %P
%P Current share’s root directory
%S Current share’s name

Em full_audit:sucess e full_audit:failure voce acrescenta os eventos que devem ser registrados quando houver sucesso e/ou falha. No exemplo acima, eu irie auditar apenas renomeação e exclusão de arquivos/pastas.

Como há pouca documentação sobre o módulo “full_audit” então tive que estudar quais eventos no samba poderiam ser auditados, e tive de arrancar isso estudando o código fonte e parecem ser muitos, são eles :
“connect”,”disconnect”,”disk_free” ,”get_quota” ,”set_quota” ,”get_shadow_copy_data” ,”opendir” ,”readdir” ,”mkdir” ,”rmdir” ,”closedir” ,”open” ,”close” ,”read” ,”pread” ,”write” ,”pwrite” ,”lseek” ,”sendfile” ,”rename” ,”fsync” ,”stat”,”fstat” ,”lstat” ,”unlink” ,”chmod” ,”fchmod” ,”chown” ,”fchown” ,”chdir” ,”getwd” ,”utime” ,”ftruncate” ,”lock” ,”symlink” ,”readlink” ,”link” ,”mknod”, “realpath” ,”fget_nt_acl” ,”get_nt_acl” ,”fset_nt_acl” ,”set_nt_acl” ,”chmod_acl” ,”fchmod_acl”, “sys_acl_get_entry” ,”sys_acl_get_tag_type” ,”sys_acl_get_permset” ,”sys_acl_get_qualifier” ,”sys_acl_get_file” ,”sys_acl_get_fd” ,”sys_acl_clear_perms” ,”sys_acl_add_perm” ,”sys_acl_to_text” ,”sys_acl_init” ,”sys_acl_create_entry” ,”sys_acl_set_tag_type” ,”sys_acl_set_qualifier” ,”sys_acl_set_permset” ,”sys_acl_valid” ,”sys_acl_set_file” ,”sys_acl_set_fd” ,”sys_acl_delete_def_file” ,”sys_acl_get_perm” ,”sys_acl_free_text” ,”sys_acl_free_acl” ,”sys_acl_free_qualifier”

Espero que os nomes sejam auto-explicativos para você, pois não há detalhes suficientes para que eu possa explica-los melhor, no entanto, os mais comuns são e também os que testei foram estes :

none = nenhum (usei este em “failure” simplesmente porque queria uma auditagem bem especifica)
all = todos (esse daqui vai registrar tudo, haja espaço em disco)
mkdir = criar diretorio
rmdir = remover diretorio
open = abrir arquivo
close = fechar arquivo
read = ler arquivo
write = gravar arquivo
rename = renomear arquivo
unlink = excluir arquivo
chmod = mudar permissão
chown = mudar o dono do arquivo
connect= mapeamento ou reconexão a uma unidade de rede
disconnect = desconectar uma unidade de rede

Para determinar onde será gravado a auditoria, acrescente ao arquivo /etc/syslog.conf as linhas :

# auditoria samba
local5.notice /var/log/samba/auditoria.log

E também reinicie o servidor de log (syslogd):

/etc/init.d/sysklogd restart

Apesar de existir desde o primórdio do samba3, o módulo audit_full não é muito bem documentado, a menos que voce participe da lista de discussão do samba(em inglês) voce terá pouco acesso a muitos módulos vfs que o samba possui e também módulos de terceiros como o vscan-clamav (antivirus) que juntamente com estes dois módulos citados neste artigo formam a trindade de segurança do samba.

Conclusão :

Esse artigo foi para ajudar àqueles que estiverem trilhando o mesmo caminho que passei quando começei a usar o samba3, mas o problema de escrever artigos como este é que muita gente confunde os comentários dum blog com “forum técnico” e acaba esperando respostas que não existirão. Eu raramente respondo perguntas nos comentários, se outros quiserem faze-lo não há problema nenhum, mas recomendo que se use de listas de discussão para tirar tais dúvidas.

2 de Agosto de 2007

Copiando DVDs para o computador e repassando para o DVD de mesa

Arquivado em: GNU/Linux, ubuntu — hamacker @ 14:40

Copiando DVDs para o computador e repassando para o DVD é o que chamamos de “rip” ou “ripar”. Isso é util para simplesmente fazer um backup dos DVDs, copiar os DVDs para seu computador e assisti-los lá, ou simplesmente alugar um filme e assisti-los mais tarde. Embora haja polemica sobre se isso é legal ou não, quero deixar claro que não estou incentivando a pirataria, espero que ninguém utilize as informações abaixo para clonar CDs e DVDs e sair vendendo-os por aí. Dois programas são muito bons na minhaopnião, o OGMRip e o DVDRip, vou passar a descreve-los a seguir.

OGMRip

Para ripar DVDs e assisti-los no computador, o melhor programa do genero na minha opnião é o DVDEncode OGMRip voce vai encontra-lo em http://www.getdeb.net/app.php?name=OGMRip, sua instalação é simples :

baixe o .deb para o seu disco e a seguir :

sudo dpkg -i  ogmrip_0.10.3-1~getdeb1_i386.deb

O nome do arquivo .deb pode variar conforme a versão escolhida, também pode ser dado um duplo clique para instala-lo, caso voce possuao gdebi instalado.

Em seguida para completar as dependencias (não é necessário se voce usou o gdebi) :

sudo apt-get install -f

Ao executar o programa em Aplicações->Som e Video->DVD Encoder OGMRip pela primeira vez vá em Edit->Preferences e selecione na guia “Audio” o seu idioma, provavelmente “pt-Português”. Além disso, nas outras guias podem ser ajustados parâmetros de vídeo e som que interferem na qualidade e portabilidade para o player de DVD de mesa, celulares e outros tocadores portáteis.

Pronto, programa instalado!

Ele é fácil de ser usado e atualmente é capaz de ripar DVDs no formato .ogg, dvix ou mpeg4, se voce tiver um player de DVD de mesa compatível com estes formatos poderá assistir seus videos na telona, se possuir tocadores portáteis também compatíveis com tal formato poderá levar os filmes consigo. As vezes é possível manter a mesma qualidade do original porque este ripador dá a opção de copiar apenas o audio/legenda que voce escolher. Se vai tocar num sistema sonoro que é stereo então para quê audio 5.1, idem para outras opções.

DVDRip

Outro programa que também é capaz de ripar é o dvdrip que está presente no repositório “multiverse” do Ubuntu. O dvdrip é um pouco mais complicado, apenas no idioma inglês só é recomendado para aqueles que já estão familiarizados com a lingua e também o processo de ripar. Apesar de mais complexo que o OGMRip, traz algumas outras opções como ajustar o tamanho do filme para caber num cd, mini-dvd, dvd simples camada ou dupla camada. Assim se voce quiser ripar um DVD para dentro dum CD, o proprio dvdrip faz ajustes automáticos na configuração, por exemplo : quantos fps serão necessários, resolução, qualidade do som, etc… para caber num CD comum no formato VCD. Apesar de constar nos repositórios do Ubuntu, somente o processo de instalação via synaptic em sí não é suficiente, veja :

sudo apt-get install dvdrip  subtitleripper cdrdao vcdimager rar unrar
sudo ln -fs /usr/bin/rar /usr/bin/rar-2.80
mkdir ~/dvdrip-data

Enfim é isso, ao executar o dvdrip pela primeira vez vá em Edit->Preferences e selecione o seu idioma, provavelmente “pt-Português”.

Conclusão Final

Se voce tiver dúvidas sobre o funcionamento destes programas não faça perguntas nos comentários, voce até pode, porém é pouco provavel que alguém responda por lá. O ideal nesse caso é voce assinar uma lista de discussão e fazer sua pergunta lá, eu recomendo a lista ubuntu-br em :

https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

1 de Agosto de 2007

Postgres or not Postgres ?

Arquivado em: Banco de dados, GNU/Linux — hamacker @ 14:05

Pois é, estou iniciando um novo projeto com desenvolvimento de aplicações e banco de dados.

Porém este novo serviço vou ter a possibilidade de escolher entre dois banco de dados : FirebirdSQL(FB) e Postgres (PG).

O FirebirdSQL já conheço muito bem, e em meu ultimo trabalho com ele foi possível migrar um conjunto de aplicações que acessavam base de dados no Microsoft SQL Server para FirebirdSQL, e ficou muito bom, com procedures, tabelas, triggers,… muito melhor do que o anterior MSSQL. O FB para administrar é muito fácil, parece ser realmente um sistema autonomo e não requerendo ninguém para administra-lo, não foi sem mérito que ganhou o primeiro lugar em duas categorias do SourceForge Community Choice Awards.

Minha principal questão é investir no Postgres, afinal não é apenas o treinamento, mas adaptações a serem feitas. Luto muito pelo Linux, voces sabem, mas muitas empresas já usam tecnologias consideradas consagradas e neste caso em particular, apesar de poder escolher qualquer banco de dados(vou escolher entre FB e PG) , a linguagem de programação já esta escolhida : Delphi (versão 7).

FirebirdSQL com Delphi é como um passeio no parque, poucas preocupações. Componentes de acesso VCL(Delphi) nativas para acesso, Ferramentas de Administração (win32 e linux) muito boas, server com opção para Linux,… tornam o terreno fértil para progresso rápido do desenvolvimento.

No entanto, Postgres é terreno novo, sempre ouço falar bem dele, mas também ouço reclamações sobre o seu peso e complexidade. Para não fazer experiências com o cliente, afinal o cliente já ficou decepcionado com a empresa anterior, provavelmente vou ter que fazer um treinamento específico para Postgres, não somente administração, mas também desenvolvimento (embora ache que SQL é SQL em qualquer banco) e correr atrás de componentes VCL e ferramenta para administração.

Meus nobres colegas, gostaria que àqueles que já tem experiência em administrar e desenvolver usando Postgres e/ou FirebirdSQL comentasse o que eu devo esperar desse terreno novo, ou até mesmo se devo experimentar o PG ou ficar na zona de segurança com o FB.

Àqueles que puderem me ajudar, comentando a respeito :

  • Migrou de FirebirdSQL para Postgres ? Como foi a sua migração, tranquila ? O que ficou melhor ? O que ficou pior ?
  • Usa Delphi? que versão e suite de componentes de acesso está usando ?
  • Qual ferramenta de administração de banco usa atualmente para criar os objetos de banco de dados, backup, reparação, etc… ?

O trabalho não é muito grande, a empresa é de porte médio e o sistema atual (também em MSSQL) conta com 5GB de dados, mas como serão desenvolvidos também novos programas, por isso é provável que essa base aumente muito. São cerca de 50 usuários acessando simultaneamente a base, a maioria das operações são insert e update, o projeto feito em MSSQL está bem definido(normatizado) com tabelas e SPs e não usa triggers e pelo que vejo são raras as exclusões no banco, o que dá a entender que foi muito bem planejado. A empresa está mudando porque o MSSQL é a versão 6.5 e migra-lo para a versão mais recente, além dos custos tem a incompatibilidade e muito código teria de ser reescrito e seria quase como partir para outro banco de dados, e se for para mudar que tal um banco de dados livre ? É aqui que eu entro.

Todo o comentário esclarecedor será muito apreciado.

Blog no WordPress.com.