Capturando imagens da webcam com Python

Rapaz, há quanto tempo não posto aqui. 😛

Me surgiu a ideia de capturar pela webcam do notebook a imagem de quem logou no meu computador (futuramente tentarei implementar caso tente logar sem sucesso). Fuçando no google achei este exemplo usando PyGame.

#! /usr/bin/python

import pygame, sys
import pygame.camera
import time

WEBCAM_DIR = "/home/simasware/Imagens/Webcam"

pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera("/dev/video0", (640,480))

# pegando foto da webcam

cam.start()
image = cam.get_image()
cam.stop

timestamp = time.strftime("%d-%m-%Y_%H-%M-%S", time.localtime())
filename = "%s/%s.jpg" % (WEBCAM_DIR, timestamp)

# salvando a imagem
pygame.image.save(image, filename)

print "Salvo"

Pensei em colocar no topo da imagem capturada a data e hora. Pesquisando achei a função blit:


# imprime a data/hora na imagem

font = pygame.font.SysFont("monospace",15) #carrega fonte
label = font.render(timestamp, 1, (255,255,255)) #renderiza
image.blit(label, (16,16)) #imprime o texto na imagem capturada pela webcam

Pra instalar o PyGame no Ubuntu basta rodar no bash:


sudo apt-get install python-pygame

Resultado:

18-10-2014_00-29-04

Anúncios

Aumentado o volume dos seus mp3 com Easy MP3 Gain

Com certeza você já deve ter feito o download de algum mp3 que toca legal no computador mas quando toca no celular/mp3 player/ipod/whatever fica quase inaudível?

Pois bem, para contornar este problema, temos o easy mp3 Gain, que é um frontend do mp3gain – software que é usado para aumentar ou diminuir o volume de seus arquivos mp3.
Continuar lendo

Rabbit CVS – O Tortoise SVN para Linux

Quem desenvolve no Windows e (ainda) usa o SVN geralmente utiliza o Tortoise SVN, uma excelente ferramenta que agiliza nas tarefas de checkout, update, commit etc. Pois bem, quero usar no Linux mas não tem disponível. E agora? Eis o Rabbit CVS.

Rabbit CVS

Como falei anteriormente, o Rabbit CVS é um software com as mesmas funcionalidades do Tortoise SVN, o seu grande diferencial é que também dá suporte ao Git e Mercurial.

O Rabbit CVS possui integração com os gerenciadores de arquivos Nautilus 3 e Thunar. Também há integração com GEdit que pode ser facilmente instalada via repositório.

Além do Ubuntu, o Rabbit CVS também está disponível em pacotes nativos para outras distros como Fedora, Arch, Open Suse e outras. Além de contar também com a opção de instalar a partir do fonte.

Utilizando o Rabbit CVS com o SVN

Utilizando o Rabbit CVS com o SVN

Instalação

Para instalar o Rabbit CVS no Ubuntu (e derivados) é bem simples, você pode utilizar a PPA oficial do projeto:


sudo add-apt-repository ppa:rabbitvcs/ppa
sudo apt-get update && sudo apt-get update && sudo apt-get install rabbitvcs-nautilus3 rabbitvcs-gedit rabbitvcs-cli

Após a instalação talvez seja necessário reiniciar a sessão para que as alterações tenham efeito.

Rabbit CVS com Git.

Rabbit CVS com Git.

Página oficial: http://rabbitvcs.org/

Por hoje é só.
Abraço.

UberWriter – um editor MarkDown (e distraction free) para GNU/Linux.

Não lembro aonde que o conheci, mas sei que desde que o utilizei pela primeira vez não o larguei mais. Conheça o UberWriter, um editor markdown para GNU/Linux.

Para quem não conhece o MarkDown, ele é uma linguagem de marcação simples que pode ser convertida em HTML válido.
Para conhecer o MarkDown (caso ainda não o conheça), você pode começar por aqui

Características

Distraction Free Como mencionei no título ele é um editor distraction free, ou seja, faz com que você não se distraia com outros controles presente na tela por exemplo. O UberWriter conta também com uma interface em tela cheia fazendo com que você foque somente no que está escrevendo.

uberwriter_fullscreen

Outra modo bem interessante é o focus mode, onde o texto fica focado somente no parágrafo que você está digitando.

uberwriter_focus_mode

Exportação em vários formatos

O UberWriter é bem completo no quesito de exportação para outros formatos. Ele exporta para PDF, Open Document Text (ODT), HTML (inclusive direto para a área de trabalho, facilitando o trabalho de colar no WordPress por exemplo).

uberwriter_export_menu

Também conta com uma opção de exportação avançada, oferecendo suporte a outros formatos como LateX, Media Wiki, Rich Text e até mesmo arquivos ePub.

Instalação

Para instalar no seu GNU/Linux (vou tomar como base Elementary OS) você pode usar a PPA oficial.

sudo add-apt-repository ppa:w-vollprecht/ppa
sudo apt-get update
sudo apt-get install uberwriter

Conheça também a página oficial do UberWriter

Espero que tenham gostado.
Abraço e até a próxima.

Synapse Indicator – um “spotlight” para o Elementary OS / Ubuntu

O Synapse indicator é um app semelhante ao unity dash (bem mais rápido por sinal) que ao ser instalado fica no wingpanel do Elementary.

synapse-indicator-elementary-os

Quem está acostumado com o Mac OS vai o achar muito semelhante ao Spotlight, a diferença é que ele (por enquanto) não faz busca dentro dos arquivos. Além de exibir resultados sobre aplicações e arquivos, é possível fazer buscas no google, google maps e até processar expressões no WolframAlpha!

Além de ser compatível com o Elementary OS, o mesmo pode ser usado no Unity, GNOME fallback-session (GNOME classic) e até mesmo no Cairo Dock.

Dica: é possível acessá-lo de forma rápida através do atalho ALT+SUPER+ESPAÇO.

synapse-indicator-elementary-os-2

Instalação

A instalação do Synapse-Indicator é bem simples via ppa.
Se você utiliza o Ubuntu, deve antes adicionar a ppa do Elementary OS:

sudo add-apt-repository ppa:elementary-os/daily
sudo apt-get update

Se você usa o Elementary pode pular direto para cá.

sudo add-apt-repository ppa:elementary-os/unstable-upstream
sudo apt-get update
sudo apt-get install indicator-synapse

Assim que instalado, você precisa reiniciar o wingpanel (apenas para o Elementary OS):

killall wingpanel

Fonte: Webupd8 [ http://www.webupd8.org/2013/06/synapse-indicator-new-search.html ]

Ajustando tags mp3 com o EasyTag.

Não é chato quando baixamos um arquivo mp3 e ele vem com suas tags todas “zoadas”? Um vem sem o título da música ou com o nome do artista incorreto e para isso temos de ajustar manualmente. Pois bem, fuçando a Central de Programas do Ubuntu, encontrei um aplicativo bem interessante para resolver este problema: o EasyTag.

Continuar lendo

Instalando um PSXPad na porta paralela no Ubuntu.

Um script muito bom para instalar controle de playstation no Ubuntu via porta paralela.


#!/bin/bash
# #########################################################
# Script para configuração de Joystick na porta paralela  #
# Desenvolvido por Aldefax Gilvan Kuhn           #
# Módulo utilizado gamecon - Kernel 2.6 Ubuntu 06.06     #
# Fiz este script para uso pessoal e estou compartilhando #
# a idéia, ele é livre para quem quiser copiar, modificar #
# ou fazer qualquer alteração, sugestões são bem-vindas.  #
# Correções, sugestões e contribuições <a href="mailto:aldefax@gmail.com">aldefax@gmail.com</a> #
# Data da última modificação 21/12/2007-00:48        #
###########################################################

# Funções
Checa_Status() {
if [ $? -ne 0 ]
then
zenity --error --text="Seu joystick não foi configurado!"
exit 1
fi
}

# 1) Verificar se o usuário possui permissões sudo ou root para gravar em /etc/modules
if ! [ -w /etc/modules ]
then
zenity --error --text="Não tenho permissão para gravar as alterações, desculpe!"
zenity --error --text="Tente assim: sudo $0"
exit 1
fi

# 2) Verificar se o pacote zenity e joystick estão instalados
dpkg -l zenity >/dev/null 2>/dev/null
Checa_Status
dpkg -l joystick >/dev/null 2>/dev/null
Checa_Status

# 3) Se não estiverem instalados fazer a instalação deles

# 4) Em qual porta de impressora o joystick está conectado?
PORTA=`zenity --title="Selecionando a porta" --width=400 --height=400 --list 
--text="Selecione a porta em que seu controle está conectado:" 
--radiolist --separator=separator --column "" --column "Cod." --column "Porta Paralela" --hide-column="2" 
TRUE  0 "lp0 (Default para a maioria dos casos)" 
FALSE 1 "lp1" 
FALSE 2 "lp2" 
FALSE 3   "lp3"`
Checa_Status

# 5) Quantos joysticks você tem conectados a essa porta?
QTDADE=`zenity  --title="Quantos controles você tem contectados?" --width=400  --height=400 --list --text="Selecione quantos controles estão conectados  na mesma porta:" 
--radiolist --column "" --column "Cod." --column "Quantidade" --hide-column="2" 
TRUE  1 "Um" 
FALSE 2 "Dois"`
Checa_Status

# 6) Qual o modelo do seu joystick?
MODELO=`zenity --title="Selecionando o controle" --width=400 --height=400 --list --text="Selecione o modelo do seu controle:" 
--radiolist --column "" --column "Cod." --column "Joystick/Gamepad" --hide-column="2" 
TRUE  0 "Nenhum (Restaura configuração da porta paralela)" 
FALSE 1 "Super Nintendo" 
FALSE 2 "Nintendo" 
FALSE 4 "Multisystem 1-botão joystick" 
FALSE 5 "Multisystem 2-botão joystick" 
FALSE 6 "Nintendo 64" 
FALSE 7 "Sony PSX gamepad controller" 
FALSE 8 "Sony PSX DDR (Dance Dance Revolution) controller" 
FALSE 9 "SNES mouse"`
Checa_Status

# 7) Remove joystick e instala porta de impressora
if [ $MODELO -eq 0 ]
then
(
echo "10" ; sleep 1
echo "# Removendo módulo joydev" ; sleep 1
modprobe -r joydev >/dev/null 2>/dev/null
echo "25" ; sleep 1
echo "# Removendo módulo gamecon" ; sleep 1
modprobe -r gamecon >/dev/null 2>/dev/null
echo "50" ; sleep 1
echo "# Adicionando módulo lp" ; sleep 1
modprobe lp >/dev/null 2>/dev/null
echo "75" ; sleep 1
echo "# Concluíndo" ; sleep 1
echo "100" ; sleep 1
) |
zenity --progress 
--title="Removendo joystick" 
--text="Selecionando Módulos..." 
--percentage=0

if [ "$?" = -1 ] ; then
zenity --error 
--text="Ação cancelada."
fi
zenity --error --text="Nenhum joystick não foi configurado!"

grep -i -v gamecon /etc/modules |grep -i -v lp >/tmp/modules
echo "lp" >>/tmp/modules
cp /etc/modules /etc/modules-`date +%s`
cat /tmp/modules >/etc/modules
exit 1
fi

case $QTDADE in
1) CONF=$PORTA,$MODELO,0,0,0,0;;
2) CONF=$PORTA,$MODELO,0,0,$MODELO,0;;
3) CONF=$PORTA,$MODELO,$MODELO,$MODELO,0,0;;
4) CONF=$PORTA,$MODELO,$MODELO,$MODELO,$MODELO,0;;
5) CONF=$PORTA,$MODELO,$MODELO,$MODELO,$MODELO,$MODELO;;
esac

zenity --question --text="Deseja ativar o(s) joystick(s) agora?"
Checa_Status

# <img src="http://ubuntuforum-br.org/Smileys/default/cool.gif" border="0" alt="Legal" /> Remove porta de impressora e instala joystick
(
echo "15" ; sleep 1
echo "# Removendo módulo joydev" ; sleep 1
modprobe -r joydev >/dev/null 2>/dev/null
echo "30" ; sleep 1
echo "# Removendo módulo gamecon" ; sleep 1
modprobe -r gamecon >/dev/null 2>/dev/null
echo "50" ; sleep 1
echo "# Removendo módulo lp" ; sleep 1
modprobe -r lp >/dev/null 2>/dev/null
echo "75" ; sleep 1
echo "# Adicionando módulo gamecon" ; sleep 1
modprobe gamecon map=$CONF >/dev/null 2>/dev/null
echo "100" ; sleep 1
) |
zenity --progress 
--title="Instalando joystick" 
--text="Selecionando Módulos..." 
--percentage=0

if [ "$?" = -1 ] ; then
zenity --error 
--text="Ação cancelada."
fi

# 9) Testando joystick (não consegui colocar saída em um information dialog box)
sleep 1
jstest /dev/input/js0

# 10) Para funcionar o joystick é necessário calibrá-lo
# para calibrar o(s) joystick(s) clique em calibrate, mova para todos os lados.
# Teste todos os botões, se tiver mais de 1 joystick selecione em Joystick Device
# depois no menu Joystick clique em reopen(CTRL + E)
jscalibrator
Checa_Status

# 11) Remove porta de impressora e instala joystick
(
echo "15" ; sleep 1
#        echo "# Removendo módulo joydev" ; sleep 1
modprobe -r joydev >/dev/null 2>/dev/null
echo "30" ; sleep 1
#        echo "# Removendo módulo gamecon" ; sleep 1
modprobe -r gamecon >/dev/null 2>/dev/null
echo "50" ; sleep 1
#        echo "# Removendo módulo lp" ; sleep 1
modprobe -r lp >/dev/null 2>/dev/null
echo "75" ; sleep 1
#        echo "# Atualizando módulo gamecon" ; sleep 1
modprobe gamecon map=$CONF >/dev/null 2>/dev/null
echo "100" ; sleep 1
) |
zenity --progress 
--title="Atualizando configuração" 
--text="Atualizando Módulos..." 
--percentage=0

if [ "$?" = -1 ] ; then
zenity --error 
--text="Ação cancelada."
fi

zenity --question --text="Deseja tornar essas configurações permanentes?"
Checa_Status

grep -i -v gamecon /etc/modules |grep -i -v lp >/tmp/modules
echo "gamecon map=$CONF" >>/tmp/modules
cp /etc/modules /etc/modules-`date +%s`
cat /tmp/modules >/etc/modules

zenity --info --text="Configuração concluída."

Fonte: Ubuntu Forum

#!/bin/bash
# #########################################################
# Script para configuração de Joystick na porta paralela  #
# Desenvolvido por Aldefax Gilvan Kuhn           #
# Módulo utilizado gamecon – Kernel 2.6 Ubuntu 06.06     #
# Fiz este script para uso pessoal e estou compartilhando #
# a idéia, ele é livre para quem quiser copiar, modificar #
# ou fazer qualquer alteração, sugestões são bem-vindas.  #
# Correções, sugestões e contribuições aldefax@gmail.com #
# Data da última modificação 21/12/2007-00:48        #
###########################################################

# Funções
Checa_Status() {
if [ $? -ne 0 ]
then
zenity –error –text=”Seu joystick não foi configurado!”
exit 1
fi
}

# 1) Verificar se o usuário possui permissões sudo ou root para gravar em /etc/modules
if ! [ -w /etc/modules ]
then
zenity –error –text=”Não tenho permissão para gravar as alterações, desculpe!”
zenity –error –text=”Tente assim: sudo $0″
exit 1
fi

# 2) Verificar se o pacote zenity e joystick estão instalados
dpkg -l zenity >/dev/null 2>/dev/null
Checa_Status
dpkg -l joystick >/dev/null 2>/dev/null
Checa_Status

# 3) Se não estiverem instalados fazer a instalação deles

# 4) Em qual porta de impressora o joystick está conectado?
PORTA=`zenity –title=”Selecionando a porta” –width=400 –height=400 –list
–text=”Selecione a porta em que seu controle está conectado:”
–radiolist –separator=separator –column “” –column “Cod.” –column “Porta Paralela” –hide-column=”2″
TRUE  0 “lp0 (Default para a maioria dos casos)”
FALSE 1 “lp1”
FALSE 2 “lp2”
FALSE 3   “lp3″`
Checa_Status

# 5) Quantos joysticks você tem conectados a essa porta?
QTDADE=`zenity –title=”Quantos controles você tem contectados?” –width=400 –height=400 –list –text=”Selecione quantos controles estão conectados na mesma porta:”
–radiolist –column “” –column “Cod.” –column “Quantidade” –hide-column=”2″
TRUE  1 “Um”
FALSE 2 “Dois”`
Checa_Status

# 6) Qual o modelo do seu joystick?
MODELO=`zenity –title=”Selecionando o controle” –width=400 –height=400 –list –text=”Selecione o modelo do seu controle:”
–radiolist –column “” –column “Cod.” –column “Joystick/Gamepad” –hide-column=”2″
TRUE  0 “Nenhum (Restaura configuração da porta paralela)”
FALSE 1 “Super Nintendo”
FALSE 2 “Nintendo”
FALSE 4 “Multisystem 1-botão joystick”
FALSE 5 “Multisystem 2-botão joystick”
FALSE 6 “Nintendo 64”
FALSE 7 “Sony PSX gamepad controller”
FALSE 8 “Sony PSX DDR (Dance Dance Revolution) controller”
FALSE 9 “SNES mouse”`
Checa_Status

# 7) Remove joystick e instala porta de impressora
if [ $MODELO -eq 0 ]
then
(
echo “10” ; sleep 1
echo “# Removendo módulo joydev” ; sleep 1
modprobe -r joydev >/dev/null 2>/dev/null
echo “25” ; sleep 1
echo “# Removendo módulo gamecon” ; sleep 1
modprobe -r gamecon >/dev/null 2>/dev/null
echo “50” ; sleep 1
echo “# Adicionando módulo lp” ; sleep 1
modprobe lp >/dev/null 2>/dev/null
echo “75” ; sleep 1
echo “# Concluíndo” ; sleep 1
echo “100” ; sleep 1
) |
zenity –progress
–title=”Removendo joystick”
–text=”Selecionando Módulos…”
–percentage=0

if [ “$?” = -1 ] ; then
zenity –error
–text=”Ação cancelada.”
fi
zenity –error –text=”Nenhum joystick não foi configurado!”

grep -i -v gamecon /etc/modules |grep -i -v lp >/tmp/modules
echo “lp” >>/tmp/modules
cp /etc/modules /etc/modules-`date +%s`
cat /tmp/modules >/etc/modules
exit 1
fi

case $QTDADE in
1) CONF=$PORTA,$MODELO,0,0,0,0;;
2) CONF=$PORTA,$MODELO,0,0,$MODELO,0;;
3) CONF=$PORTA,$MODELO,$MODELO,$MODELO,0,0;;
4) CONF=$PORTA,$MODELO,$MODELO,$MODELO,$MODELO,0;;
5) CONF=$PORTA,$MODELO,$MODELO,$MODELO,$MODELO,$MODELO;;
esac

zenity –question –text=”Deseja ativar o(s) joystick(s) agora?”
Checa_Status

# Legal Remove porta de impressora e instala joystick
(
echo “15” ; sleep 1
echo “# Removendo módulo joydev” ; sleep 1
modprobe -r joydev >/dev/null 2>/dev/null
echo “30” ; sleep 1
echo “# Removendo módulo gamecon” ; sleep 1
modprobe -r gamecon >/dev/null 2>/dev/null
echo “50” ; sleep 1
echo “# Removendo módulo lp” ; sleep 1
modprobe -r lp >/dev/null 2>/dev/null
echo “75” ; sleep 1
echo “# Adicionando módulo gamecon” ; sleep 1
modprobe gamecon map=$CONF >/dev/null 2>/dev/null
echo “100” ; sleep 1
) |
zenity –progress
–title=”Instalando joystick”
–text=”Selecionando Módulos…”
–percentage=0

if [ “$?” = -1 ] ; then
zenity –error
–text=”Ação cancelada.”
fi

# 9) Testando joystick (não consegui colocar saída em um information dialog box)
sleep 1
jstest /dev/input/js0

# 10) Para funcionar o joystick é necessário calibrá-lo
# para calibrar o(s) joystick(s) clique em calibrate, mova para todos os lados.
# Teste todos os botões, se tiver mais de 1 joystick selecione em Joystick Device
# depois no menu Joystick clique em reopen(CTRL + E)
jscalibrator
Checa_Status

# 11) Remove porta de impressora e instala joystick
(
echo “15” ; sleep 1
#        echo “# Removendo módulo joydev” ; sleep 1
modprobe -r joydev >/dev/null 2>/dev/null
echo “30” ; sleep 1
#        echo “# Removendo módulo gamecon” ; sleep 1
modprobe -r gamecon >/dev/null 2>/dev/null
echo “50” ; sleep 1
#        echo “# Removendo módulo lp” ; sleep 1
modprobe -r lp >/dev/null 2>/dev/null
echo “75” ; sleep 1
#        echo “# Atualizando módulo gamecon” ; sleep 1
modprobe gamecon map=$CONF >/dev/null 2>/dev/null
echo “100” ; sleep 1
) |
zenity –progress
–title=”Atualizando configuração”
–text=”Atualizando Módulos…”
–percentage=0

if [ “$?” = -1 ] ; then
zenity –error
–text=”Ação cancelada.”
fi

zenity –question –text=”Deseja tornar essas configurações permanentes?”
Checa_Status

grep -i -v gamecon /etc/modules |grep -i -v lp >/tmp/modules
echo “gamecon map=$CONF” >>/tmp/modules
cp /etc/modules /etc/modules-`date +%s`
cat /tmp/modules >/etc/modules

zenity –info –text=”Configuração concluída.”