come with me, on the way I'll explain.
Posts tagged cli
Congelando e Ressuscitando Processos
Nov 14th

Nem só de morte vive o kill.
Suponha que você tem um processo chamado program e quer congelar seu funcionamento. Para congela-lo sem mata-lo você pode mandar um sinal SIGSTOP com:
kill -s stop `pidof program`
Para ressuscitar o mesmo processo:
kill -s cont `pidof program`
OGG com qualidade
Mar 7th
Para o controle de qualidade quando encondando vídeos com o FFmpeg use o parâmetro -qscale seguido de um número. Os número podem ir de 1 (melhor qualidade) até 31 (pior qualidade), sendo que 13 já é uma qualidade bem ruim.
Convertendo pro exemplo um vídeo chamado exemplo.flv para um arquivo ogg com a melhor qualidade seria:
ffmpeg -i exemplo.flv -qscale 1 saida.ogg
Sem usar esse parâmetro os arquivos encodados em OGG ficam com uma qualidade mediana.Uma opção bem útil é usar a mesma qualidade do arquivo de entrada, já que não é possível melhorar a qualidade do vídeo mesmo. Para isso existe o parâmetro -qsame. No exemplo anterior bastaria:
ffmpeg -i exemplo.flv -qsame saida.ogg
Com isso eu tenho reduzido os vídeos da minha câmera para arquivos que só ocupam cerca de 1/5 do tamanho original e ainda assim mantém a mesma qualidade.
Example of Unix commands implemented in Java
Oct 7th
I created some illustrative and simple implementations of common Unix commands. For those who are familiar with Unix-like systems them make easier to understand Java. For those who are familiar with Java them make easier to understand Unix-like systems.
1. PWD
The first one is pwd that show the current working directory.
public class Jpwd { public static void main(String[] args) { String pwd = System.getProperty("user.dir"); System.out.println(pwd); } }
Running this at /home/silveira directory gives us as output:
$ java Jpwd
/home/silveira
1. CAT
The command cat is usually utilized for displaying files.
import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Jcat { public static void main(String[] args) { if(args.length==1){ try { FileReader fileReader = new FileReader(args[0]); BufferedReader in = new BufferedReader(fileReader); String line; while((line = in.readLine())!= null){ System.out.println(line); } } catch (FileNotFoundException ex) { System.out.println(args[0]+", file not found."); } catch (IOException ex) { System.out.println(args[0]+", input/output error."); } } } }
$ java Jcat /etc/timezone
America/Fortaleza
3. LS
The command ls is to list files. The File API (java.io.File) is very flexible and portable, but in this example I want just list files and directories of the current directory.
import java.io.File; public class Jls { public static void main(String[] args) { File dir = new File(System.getProperty("user.dir")); String childs[] = dir.list(); for(String child: childs){ System.out.println(child); } } }
Usage:
$ java Jpwd
/home/silveira/example
$ java Jls
directoryA
fileA
.somefile
4. CD
The cd command changes the current working directory.
import java.io.File; public class Jcd { public static void main(String[] args) { if(args.length==1){ File dir = new File(args[0]); if(dir.isDirectory()==true) { System.setProperty("user.dir", dir.getAbsolutePath()); } else { System.out.println(args[0] + "is not a directory."); } } } }
Usage:
$ java Jpwd
/home/silveira
$ java Jcd /tmp
$ java Jpwd
/tmp
Câmera Microdia no Ubuntu 8.04
May 20th
Eu já havia postando anteriormente como fazer funcionar câmeras Microdia usando um driver proprietário e cheio de restrições. Boas novas. Agora desenvolvedores se uniram para construir um driver livre para essa série de câmeras e o driver livre já está bem melhor que o proprietário!
Antes de mais nada, nesse post eu estou usando o Ubuntu 8.04, seguindo de perto os passos do blog de Indra Gunawan, um notebook Amazon PC FL 31, a minha câmera é essa da foto acima e ela é lista em um lsusb como:
Bus 005 Device 002: ID 0c45:624f Microdia
Os números 0c45: já indicam que essa é uma câmera Microdia. No momento em que eu escrevo, o driver livre suporta as câmeras Microdias 6242, 624e, 624f, 6270, 627b, 62bb, 145f:013d e 045e:00f4. Para uma lista mais atualizada dê uma olhada no site oficial do driver livre.
Então o primeiro passo é você abrir um terminal e dar um lsusb e observar a saída. Outra coisa importante para você saber é a versão do seu Kernel. Dê um uname -a no terminal e observe a saída. Essa é a minha:
2.6.24-16-generic
Se essa não é sua versão do Kernel, não há alarde, é possível que também funcione com você, mesmo se com outra versão do Kernel ou mesmo outro sabor de Linux.
Vamos precisar de alguns pacotes adicionais, use o seu gerenciador de pacotes (no meu caso o APT) para instalar alguns pacotes que vamos precisar. A partir daqui você precisará estar logado como root.
apt-get install git-core gitk git-gui git-doc curlctags build-essential
Se você também quiser compilar a documentação do driver, adicione o doxygen à lista. Agora baixamos a última versão do driver usando o git. De preferencia execute esse comando no seu diretório home, pois ele vai criar um diretório microdia que você pode querer preservar.
git clone http://repo.or.cz/r/microdia.git
Se você não recebeu nenhuam mensagem de erro e todo o código-fonte foi baixado, entre no diretório microdia e simplesmente digite:
make
Se tudo deu certo o código-fonte será compilado e você encontrará entre outras coisas um arquivo microdia.ko. Se você teve algum erro, provavelmente foi por algum pacote que você não tinha, baixe esse pacote tente compilar novamente.
Vamos carregar o módulo, como root:
modprobe videodev
insmod microdia.ko
Depois disso, dê um dmesg |grep Microdia -i.
[ 39.799824] microdia: Microdia USB2.0 webcam driver startup
[ 39.799873] microdia: Microdia USB2.0 Webcam – Product ID 624F.
[ 39.799876] microdia: Release: 0100
[ 39.799878] microdia: Number of interfaces : 1
[ 39.801100] microdia: Microdia USB2.0 Camera is now controlling video device /dev/video0
[ 39.801133] usbcore: registered new interface driver usb_microdia_driver
[ 39.801138] microdia: v0.0.0 : Microdia USB Video Camera
Se você teve uma saída assim, então as coisas vão indo bem. Você já pode testar sua câmera. Você pode usar um software específico para isso como o Camorama ou usar o próprio Mplayer:
mplayer tv:// -tv driver=v4l:width=640:height=480:device=/dev/video0 -vo x11

Eu sugiro testar primeiro o Camorama porque esses parâmetros do Mplayer funcionam comigo e eu não posso garantir que vão funcionar também com a sua câmera. Principalmente, por conta da resolução que eu usei.
Mas não vá embora agora, quando você reiniciar o computador tudo isso vai pelo espaço. Vamos fazer para que esse módulo seja carregado sempre que você ligar o computador. Vamos cópiar o arquivo .ko para o diretório de módulos do kernel.
cp microdia.ko /lib/modules/`uname -r`/kernel/drivers/media/video/usbvideo/
Se você executou a algusn passos atrás o insmod, então limpe o driver da memória com um rmmod microdia. Agora rode depmod -a para gerar um novo modules.dep e mapear os arquivos no diretório de módulos.
Para terminar, adicione o módulo ao kernel com um
modprobe microdia
Agora o módulo vai ser carregado sempre que você iniciar o computador.
Agora alguns outros e brincadeiras úteis para você fazer com sua webcam.
Espelho: muito útil no dia-a-dia, vale a pena criar um atalho na barra de tarefas ou no seu Desktop. Para usar o Mplayer como um espelho:
mplayer tv:// -tv driver=v4l:device=/dev/video0:width=640:height=480:noaudio -x 800 -y 600 -vf-add pp=hb:a/vb:a,hqdn3d,mirror
Effectv: O effectv é o melhor brinquedo para quem tem uma webcam. E agora ele já está disponível nos repositórios do Ubuntu:
apt-get install effectv
Para usa-lo, aqui eu chamo assim:
effectv -device /dev/video0 -size 640×480
Use as teclas para baixo ou para cima para mudar os efeitos. A tecla espaço reseta o efeito. As teclas numéricas acionam variações. Tab inverte horizontalmente, como em um espelho. Aqui alguns efeitos legais.

















