Delirios de un Informático

Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003

Instalación “alternativa” de Google Chrome en Linux

votar
Archivado en Software con fecha 7/Sep/2009 - 0 comentarios

Lo sé, soy más obsesivo que Sheldon Cooper, pero odio que los paquetes de instalación de software no integrado en los repositorios oficiales de mi distribución me llenen el equipo de archivos donde no deben, como es el caso de Adobe Air, Adobe Reader o Google Chrome. En el caso de este último, el ritmo de actualización es alto y si se quiere tener configurado (con plugins activados y sin el aviso de desarrollo al abrirse) es necesario trastear un poco para que con cada actualización no se sobreescriban los cambios.

Mi opción es descargarme el paquete correspondiente, abrirlo y extraer del archivo data.tar.lzma el directorio /opt/google/chrome/, ubicándolo en un directorio específico para aplicaciones de usuario. Por otro lado, tengo el siguiente script para lanzarlo:

#!/bin/bash

CHROME_HOME="$HOME/Applications/chrome"

if [ "$1x" == "x" ]; then
	$CHROME_HOME/google-chrome --enable-plugins "google.es"
else
	$CHROME_HOME/google-chrome --enable-plugins "$@"
fi
rmdir $HOME/Downloads

El script abre el navegador habilitando el soporte para complementos y con una pagina inicial, evitando que se abra el aviso de desarrollo y elimina el molesto directorio Downloads que versión si, versión no, crea aunque se haya configurado para guardar los archivos descargados en otra ubicación. Por último, sólo resta enlazar el directorio de plugins de Mozilla para tener soporte para Adobe Flash…

Servidor Subversion con autentificación en OpenWRT

votar
Archivado en Software con fecha 2/Sep/2009 - 0 comentarios

Siguiendo con la serie de entradas sobre OpenWRT el siguiente paso es instalar un servidor Subversion, complemento perfecto para desarrollo. En este caso será imprescindible contar con soporte de almacenamiento USB, ya que el tamaño de los repositorios crece rápidamente y el dispositivo no tiene capacidad suficiente.

Lo primero es instalar los paquetes necesarios:

opkg update
opkg install subversion-client subversion-server

Se instalará el servidor nativo svnserve de forma muy básica, donde la configuración se encuentra en /etc/config/subversion. El problema es que no tiene autentificación pudiendo acceder cualquiera a los repositorios. Para añadir un poco de seguridad, debemos crear un fichero de configuración (en /mnt/usb/svn/svn.conf, por ejemplo) que contenga lo siguiente:

[general]
realm		= openwrt
anon-access	= none
auth-access	= write

Esto forzará que svnserve solicite identificación, pero como no se ha indicado un archivo de usuarios/contraseñas y no será posible acceder a través del protocolo nativo. Lo que interesa es que se pueda acceder a través de svn+ssh, pero por defecto OpenWRT sólo crea el usuario root y no dispone de los comandos típicos de gestió de usuarios y grupos, por lo que es necesario añadir los nuevos usuarios a pelo, editando el archivo /etc/passwd copiado la primera línea y modificando el nombre de usuario, el UID/GID y la ruta de su home:

root:[contraseña]/:0:0:root:/root:/bin/ash
david:[contraseña]/:1013:1013:david:/home/david:/bin/ash

Recomendable usar un UID/GID mayor de 1000 y copiar la contraseña de root (que luego se puede cambiar con el comando passwd [usuario]) para poder probar el primer acceso. Del mismo modo, hay que editar el archivo /etc/groups:

root:x:0:
david:x:1013:

Una vez añadido el usuario, bastará reiniciar el router para tener el servidor Subversion 100% operativo a través de svn+ssh. Para probarlo, se puede crear un repositorio con svnadmin create /var/local/svn/test e intentar acceder a él con el comando svn info svn+ssh://[router]/var/local/svn/test.

Cómo ocultar el “tray icon” de Opera en Linux

votar
Archivado en Software con fecha 26/Ago/2009 - 0 comentarios
Ver en Bitacoras.com - Etiquetado con: , ,

Opera para Linux por defecto añade un irritante tray icon y que en las preferencias no es posible desactivar. Por suerte, es posible pasarle al ejecutable un parámetro para ocultarlo pero que ha de hacerse en cada ejecución. Una opción es crear un acceso directo con la opción, pero resulta más útil modificar el lanzador para que se ejecute desde donde se ejecute (acceso directo, consola, lanzador de aplicaciones…) nunca añada el dichoso iconito. Únicamente hay que modificar la última línea del archivo /usr/bin/opera y dejarla como sigue:

exec "$OPERA_BINARYDIR/opera" -notrayicon "$@"

Eso sí, cada vez que se actualice habrá que volver a modificar el archivo…

PJSIP: cliente SIP en línea de comandos

votar
Archivado en Software con fecha 13/Ago/2009 - 0 comentarios

PJSIP es un conjunto de librerías y utilidades VoIP multiplataforma, que incluye un potentísimo cliente SIP en línea de comandos llamado pjsua. Sus principales características son:

  • Múltiples líneas/identidades
  • Múltiples llamadas
  • Retención y transferencia de llamadas
  • Mensajería instantánea
  • Conferencias
  • Auto-responder
  • Grabación

¿Y qué podemos hacer con esto?. Con la funcionalidad de auto-responder permite dejar el programa funcionando e iniciar una llamada sin tener que pulsar nada (algo así como el famoso truco James Bond para Nokia) o con la funcionalidad de grabación puede tenerse un número al que llamar para almacenar mensajes de voz. También pueden combinarse esas dos funcionalidades para crear un sound test service como el de Skype y probar así que el cliente funciona correctamene. Las posibilidades son enormes aparte de tener un cliente VoIP muy muy ligero en línea de comandos.

No se ofrecen binarios, pero puede compilarse fácilmente (incluso en Windows) con los comandos ./configure && make dep && make.

NetBeans Issue Tracker con repositorios SSL

votar
Archivado en Software con fecha 10/Ago/2009 - 0 comentarios

Una de las importantes funcionalidades de NetBeans 6.7 es el Issue Tracker nativo, una integración con sistemas de bug-tracking como Bugzilla o Jira. Soporta creación y edición de bugs, integración con el sistema de control de versiones y autentificación HTTP sobre la autentificación estándar. Pero el problema llega cuando un paranoico como yo tiene su sistema de bugs con SSL. La configuración se realiza sin problema y es posible consultar los bugs pero no modificarlos, mostrándose el error A repository error has occurred. Se debe a que el sistema no acepta el certificado, por lo que debe procesarse para que NetBeans lo tenga en cuenta. Lo primero es exportarlo a un archivo físico en el disco (en Firefox, la opción está en Ver Información de la página » Seguridad » Ver Certificado » Detalles » Exportar) y luego ejecutar:

keytool -import -alias Bugs -file <certificado> -keystore NetBeans -storepass netbeans

Este comando generará la key store necesaria para que NetBeans haga uso del certificado. Los parámetros, por supuesto, pueden modificarse. Yo ubiqué el archivo resultante en ~/.netbeans/ssl. Luego, hay que modificar el archivo etc/netbeans.conf y añadir al final de la opción netbeans_default_options:

-J-Djavax.net.ssl.trustStore=~/.netbeans/ssl/NetBeans -J-Djavax.net.ssl.trustStorePassword=netbeans

Evidententemente, modificando la ruta o la contraseña en caso de haberlas puesto diferentes. Luego, basta reiniciar NetBeans para tener el Issue Tracker 100% funcional…

Uso Mediawiki para bastantes cosas en el trabajo y para documentar cosillas personales. Resulta muy útil para tener a mano cierta información pero el skin por defecto es un asco para acceder con un móvil. Para arreglar eso existe una extensión MobileSkin que detecta qué navegador se está usando y carga el skin adecuado. Soporta bastantes dispositivos (Blackberry, iPhone/iPod, Symbian, Opera Mobile…) y es muy fácil de instalar.

7/Ago/2009 | 0 comentarios | En Bitacoras.com

Streaming de una webcam con ffmpeg

votar
Archivado en Software con fecha 16/Jul/2009 - 3 comentarios

Para controlar a este bicho mientras no estoy en casa, pensé en usar la webcam en streaming para poder conectarme desde cualquier lado con el móvil y ver qué está haciendo. Tras mirar varias alternativas, me decidí por ffmpeg por la cantidad de formatos en los que se puede emitir, además de ser relativamente fácil de configurar.

La emisión se basa en dos ejecutables: ffserver y ffmpeg. El primero se ejecuta en modo escucha y se encarga de hacer el streaming real mientras que el segundo le envía la imagen al primero.

Para empezar, es necesario crear un archivo de configuración tomando como base /etc/ffserver.conf, dejándolo como sigue:

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
CustomLog -

<Feed webcam.ffm>
	File /tmp/webcam.ffm
	FileMaxSize 5M
</Feed>

<Stream webcam.swf>
	Feed webcam.ffm
	Format swf
	VideoBitRate 320
	VideoFrameRate 15
	VideoSize 640x480
	NoAudio
	VideoQMin 1
	VideoQMax 3
</Stream>

<Stream stat.html>
	Format status
</Stream>

<Redirect index.html>
	URL http://www.ffmpeg.org/
</Redirect>

Una vez configurado, es necesario lanzar el servidor con el comando:

ffserver -f ffserver.conf

Ahora sólo quedaría enviar la imagen al servidor con el comando ffmpeg y se puede utilizar cualquier entrada para redireccionarla al servidor. Por ejemplo, en el caso de una webcam, una capturadora de TV o cualquier entrada de vídeo, el comando sería:

ffmpeg -r 15 -s 320x240 -f video4linux -i /dev/video0 http://localhost:8090/webcam.ffm

Con mi cámara web Logitech Quickcam Messenger y el driver gspca me encontré con este error:

[flv @ 0x97df6f0]rc buffer underflow
VIDIOCMCAPTURE: Invalid argument

Que pude solucionar añadiendo lo siguiente antes del comando ffmpeg:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so

Si todo va bien, podremos ver la imagen emitida con el navegador, ya que creará un objeto Flash automáticamente :)

Servidor web Lighttpd con PHP en OpenWRT

votar
Archivado en Software con fecha 14/Jul/2009 - 0 comentarios

Para empezar a aprovechar mi nuevo router Asus me puse a instalar un servidor web que me permitiera tener siempre disponible el software que utilizo frecuentemente: un wiki y un gestor de favoritos. Tras probar Apache, Cherokee, Lighttpd y thttpd (todos en el repositorio oficial) me quedé con Lighttpd, ya que fué el más ligero, rápido y fácil de instalar.

Seguir leyendo esta anotación

“Tuneando” OpenWRT

votar
Archivado en Software con fecha 12/Jul/2009 - 0 comentarios
Ver en Bitacoras.com - Etiquetado con: , ,

Como comenté en mi anterior entrada, opté por OpenWRT como firmware para mi nuevo router principalmente por su parecido con Debian: instalación mínima y todo el resto vía repositorios. Pero como Debian, necesita algún tuneo para tener todo bien ajustado y cómodo.

Lo primero es añadir módulos a LuCI (la interfaz web de OpenWRT), que como todo también es modular. Es necesario instalar mediante opkg (y en la memoria del router, no en el dispositivo USB) los siguientes paquetes:

  • luci-mod-ntpc: permite sincronizar el reloj con servidores NTP
  • luci-mod-firewall: permite gestionar redirecciones de puertos (NAT) y zonas del firewall
  • luci-mod-ddns: permite actualizar la IP en servicios como DynDNS o no-ip.com

También es interesante mejorar un poco el intérprete de comandos (ash en este caso) modificando el archivo /etc/profile y añadiendo alias para hacer más facil el uso de ciertos comandos:

  • alias ll="ls -l"
  • alias rm="rm -i"
  • alias cp="cp -vi"
  • alias mv="mv -vi"
  • alias install="opkg -dest usb "
  • alias search="opkg list | grep"
  • alias remove="opkg -dest usb remove"

Por último, otros añadidos útiles son:

  • vim: editor completo, más potente que el limitado vi
  • curl: cliente HTTP para crear scripts
  • etherwake: para encender remotamente cualquier equipo que soporte WOL
  • sendmail: para enviar correos electrónicos fácilmente

En los repositorios también hay muchas cosas interesantes, que pueden ser útiles si queremos acceder desde cualquier lugar via SSH, como el navegador web elinks o el cliente de correo mutt, ambos en modo texto. También existen multitud de servidores, como FreeRadius, OpenVPN, Samba, Subversion o NFS.

OpenWRT en un Asus WL-520GU con sporte USB

votar
Archivado en Software con fecha 12/Jul/2009 - 8 comentarios
Ver en Bitacoras.com - Etiquetado con: , ,

Recientemente me he hecho con un router Asus WL-520GU para reemplazar al viejo Linksys WRT54GL. Lo interesante de este dispositivo es su conexión USB 2.0, que al instalarle OpenWRT (o cualquier variante) multiplica sus posibilidades permitiendo usar impresoras en red, cámaras web o dispositivos de almacenamiento masivo.

Pero, ¿porqué OpenWRT y no DD-WRT u otras distribuciones derivadas?. Porque se parece mucho a Debian: la instalación es mínima, ligera y con lo imprescindible y porque dispone de un gestor de paquetes (opkg, al más puro estilo apt-get) que permite añadir software o módulos al kernel desde un repositorio. DD-WRT proporciona firmwares preconfigurados para tener soporte USB, VPN o VoIP, pero con muchas cosas extra que no se usan para nada. Con OpenWRT puede personalizarse por completo, teniendo únicamente lo que se necesita.

Seguir leyendo esta anotación

Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons