Unknown's avatar

About hvivani

Systems Engineer, Developer, Technical Leader, IT Manager

firefox is already running error


Este error sucede ante caídas abrutas del sistema operativo o, en la red si el cliente utiliza NFS.

Firefox nos muestra un cartel indicando: Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.

Como lo solucionamos ?

1) verificamos si el proceso se está ejecutando con un ps -ef|grep firefox. Si tenemos algun proceso en ejecución lo matamos con un kill -9 PID

2) Si el punto 1 no resolvió el problema, buscamos nuestro perfil de firefox en ~/.mozilla/firefox/[nombreperfil]/  y eliminamos de ese directorio los archivos “lock“, “.partentlock“, “places.sqlite” y “*-journal

Eso es todo.

Factura Electrónica con Software Libre – Reutilización de Ticket de Acceso


Para los que han implementado el uso de factura electrónica con software libre a través del desarrollo en python realizado por la gente de Sistemas Agiles, como comentábamos en este artículo, seguramente se han encontrado últimamente (nov/2011) con un problema ajeno a esta implementación, pero que trae grandes dolores de cabeza.

Resulta que ultimamente hemos tenido grandes problemas de comunicación con los servidores de AFIP a la hora de actualizar facturas electrónicas utilizando WSFEv1.

Uno de los errores mas comunes es: “600: ValidacionDeToken: Error al verificar hash: VerificaciónDeHash: Error al convertir de Bas64 al token:”

Este es uno de los varios errores que se producen por un corte o timeout en la comunicación con el servidor.

Gracias a nuestro gran amigo Reinghart, hemos descubierto que reutilizando el ticket de acceso, se puede bajar un poco la taza de comprobantes rechazados.

Sumado a esto, notamos que nuestros sitemas, están generando facturas electrónicas con una frecuencia muy alta (2 o  3 facturas por minuto), lo que para un sistema ocn problemas de ancho de banda y concurrencia es bastante dificil de manejar, así que tambien hemos descubierto que si se graban comprobantes cada 3 minutos, prácticamente no hay rechazos.

Espero que esta información sea útil para muchos que se estén rompiendo la cabeza con este tema en estos días.

Pueden encontrar mas info de este y otros problemas en el foro de google pyafipws.

Instalando Firebird Database en Fedora


Firebird es una excelente base de datos de código abierto. En su momento era propiedad de Borland y se llamaba Interbase. En el año 2000 Borland (en ese monento Inprise) libero el codigo fuente bajo licencia Interbase Public License. Firebird es la descendiente open source de dicha base de datos.

Existen dos grandes versiones de esta base de datos: Firebird Super Server y Firebird Classic Server. En principio, sus diferencias radican en el enfoque de diseño: La versión Super Server utiliza hilos (threads) para atender multiples clientes concurrentes. Mientras que la versión Classic Server, se basa en el modo de trabajo de Interbase que genera un proceso nuevo por cada conexión.

Veamos el proceso de instalación:

Descargamos la versión Super Server de aqui, puede ser el tar.gz o el rpm. En el caso del tar.gz, debemos descomprimir y luego ejecutar el install.sh:

$ tar -zxvf FirebirdSS-2.5.1.26351-0.amd64.tar.gz
$ cd FirebirdSS-2.5.1.26351-0.amd64
$ ./install.sh

Al finalizar la instalación, nos preguntará la password de SYSDBA. Si queremos cambiarla mas adelante, encontraremos un script para cambiarla en: /opt/firebird/bin/changeDBAPassword.sh

Al finalizar la instalación, tendremos los archivos de firebird en /opt/firebird. En particular, en el directorio bin tendremos las utilidades, entre ellas el isql que es la herramienta por linea de comandos para manejar la base.

Probamos su funcionamiento con isql conectando a una db presintalada y mostrando sus tablas:

$ cd /opt/firebird
$ ./bin/isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect "/opt/firebird/examples/empbuild/employee.fdb" user "SYSDBA" password "clave";
Database:  "/opt/firebird/examples/empbuild/employee.fdb", User: SYSDBA
SQL> show tables;
       COUNTRY                                CUSTOMER                       
       DEPARTMENT                             EMPLOYEE                       
       EMPLOYEE_PROJECT                       JOB                            
       PROJECT                                PROJ_DEPT_BUDGET               
       SALARY_HISTORY                         SALES

Aquí tenemos una lista de herramientas administrativas adicionales para eta base de datos.

Montaje manual de pendrive’s / usb sticks


Si nuestro pendrive no monta automáticamente, cosa que no es normal, pero me ha pasado a menudo con algunos Kingston U3, lo que debemos hacer es lo siguiente:

Determinamos cuál es el dispositivo a través del comando lsusb. Así sabremos además si nuestro equipo “ve” el pendrive:

[root@athlon by-id]# lsusb
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 138a:0001 DigitalPersona, Inc Fingeprint Reader
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 08ec:0016 M-Systems Flash Disk Pioneers Kingston DataTraveler U3
Bus 001 Device 002: ID 064e:c107 Suyin Corp. HP webcam [dv6-1190en]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Aquí podemos ver que detectó el pendrive en el Bus 1 Device 4 (Kinston DataTraveler)

Luego hacemos:

[root@athlon by-id]# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx. 1 root root  9 Nov  4 08:54 ata-Hitachi_HTS543225L9A300_090321FBCF00YLGRHLGA -> ../../sda
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 ata-Hitachi_HTS543225L9A300_090321FBCF00YLGRHLGA-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 ata-Hitachi_HTS543225L9A300_090321FBCF00YLGRHLGA-part2 -> ../../sda2
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 dm-name-vg_athlon-lv_home -> ../../dm-2
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 dm-name-vg_athlon-lv_root -> ../../dm-0
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 dm-name-vg_athlon-lv_swap -> ../../dm-1
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 dm-uuid-LVM-ISB6g7xgWLnnCOp0GFf3YBkKEnFCkefQguGzl08zaFUoSbyHh6uNCXjij5L7ImBa -> ../../dm-1
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 dm-uuid-LVM-ISB6g7xgWLnnCOp0GFf3YBkKEnFCkefQS27psmgBsPMCIbp1gCoTDMrykek8qaTD -> ../../dm-2
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 dm-uuid-LVM-ISB6g7xgWLnnCOp0GFf3YBkKEnFCkefQuMe3syTiJDrSvO57gYETOxCDtgGNPpdF -> ../../dm-0
lrwxrwxrwx. 1 root root  9 Nov  4 08:54 scsi-SATA_Hitachi_HTS5432090321FBCF00YLGRHLGA -> ../../sda
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 scsi-SATA_Hitachi_HTS5432090321FBCF00YLGRHLGA-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 scsi-SATA_Hitachi_HTS5432090321FBCF00YLGRHLGA-part2 -> ../../sda2
lrwxrwxrwx. 1 root root  9 Nov  4 10:06 usb-Kingston_DataTraveler_U3_0BC157605321F985-0:0 -> ../../sdb
lrwxrwxrwx. 1 root root  9 Nov  4 10:06 usb-Kingston_DataTraveler_U3_0BC157605321F985-0:1 -> ../../sr1
lrwxrwxrwx. 1 root root  9 Nov  4 08:54 wwn-0x5000cca5b2ca3ab5 -> ../../sda
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 wwn-0x5000cca5b2ca3ab5-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Nov  4 08:54 wwn-0x5000cca5b2ca3ab5-part2 -> ../../sda2

y vemos que el Kingston DataTraveler está en el /dev/sr1

Ahora montamos:

[root@athlon dev]# mount /dev/sr1 /media/tmp
mount: block device /dev/sr1 is write-protected, mounting read-only

Listo !

msn messenger por consola / pidgin por consola


Para utilizar pidgin, pero en modo consola, debemos instalar finch:

$ su -c "yum install finch"

Tiene la misma funcionalidad, pero en modo consola. Inclusive si tenemos configurado pidgin, levantará la configuración de las cuentas almacenadas.

Para navegarlo, hay combinaciones con la tecla Alt que lo hacen bastante amigable. Algunas de las mas comunes:

  • Alt + q – quit
  • Alt + c – close window
  • Alt + n – next window
  • Alt + p – previous window
  • Alt + a – View available actions
  • Alt + w – list of windows
  • Alt + m – move window
  • Alt + r – resize window
  • F10 – Show menu for current window
  • Alt + tab – next URGENT window
  • Alt + Shift + tab – previous urgent window

Es una buena idea el pidgin en modo consola para usarlo en combinación con el comando screen para estar siempre online, como mencionabamos en este post.

 

siempre online en el IRC con screen + irssi


Les ha pasado que han tenido que abandonar un canal de IRC porque debían irse y apagar el equipo donde estaban ? o simplemente se han vuelto tan adictos al IRC que no pueden perderse nada de lo que haya sucedido en un determinado canal ?

Para estar logueado permenentemente en el IRC, como primera medida necesitaremos disponer de un equipo que no se apague nunca. Esto podemos solucionarlo si tenemos algun servidor shell propio disponible o utilizando uno como por ejemplo de ninthfloor o st0rage.

Teniendo disponible este servicio, con irsii y screen instalado, solo tenemos que ver como nos manejamos con ellos en modo consola.

Irssi es un cliente IRC muy versátil e intuitivo, tal es así que me quedé con él después de probar varios, inclusive el xChat.

Si no lo tenemos instalado, podemos instalarlo con:

$ su -c "yum install irssi"

Una vez instalado bastará ejecutar:

$ irssi

Lo manejamos con los siguientes comandos:

Para conectamos al irc.freenode.net:
/connect irc.freenode.net 

Para unirnos a un canal:
/join #test

A medida que nos unimos a determinados canales, vamos a ver que la barra de estado va abriendo ventanas indicando por ejemplo “2:freenode.net/#test“. Esto significa que estamos viendo la ventana 2, del servidor freenode.net en el canal test.

Para cambiar entre las distintas ventanas que determinan los distintos canales que tenemos abiertos usamos la combinación de teclas Alt+#. Donde # es un número del 0 al 10.

También tenemos disponibles desde la Alt+q hasta Alt+o. O bien usar las teclas Alt y las flechas del teclado para movernos secuencialmente entre las ventanas.

Para abrir un mensaje privado:
/q nickusuario
Para cerrar el mensaje privado:
/
Para cerrar una ventana:
/wc

Ahora bien, como hacemos para que al cerrar sesión con nuestro usuario Linux, no perdamos la sesión de chat IRC ? Aquí entra en escena screen. Screen es un programa que crea una “sesión” en la cuál pueden existir diferentes “ventanas”. Cada “ventana” contiene un prompt shell donde podemos ejecutar programas. Con Screen, el usuario puede crear una ventana, ejecutar diferentes programas, desconectarse de la sesión screen, desloguearse, ir a dar una vuelta, loguearse nuevamente, reconectar la ventana y encontrar sus programas en la misma condición en que los dejó.  No es fantástico ?

Ahora bien, antes de ejecutar el irssi, o saliendo de el si ya lo habíamos ejecutado (/quit), ejecutamos el comando:

$ screen

Esto nos devolverá un nuevo shell. Estamos dentro de una “ventana”. Podemos verificarlo haciendo:

$ screen -list
There are screens on:
        29021.pts-2.athlon      (Attached)
1 Socket in /var/run/screen/S-hvivani.

Ahora si ejecutamos:

$ irssi

y nos conectamos a la red que queramos.

Como nos desconectamos de la venta? Presionamos las teclas CTRL+a, soltamos las teclas y presionamos la tecla d. La pantalla nos mostrará un mensaje como [detached]. Nuestros programas seguirán en ejecución en dicha ventana. Podemos desloguearnos tranquilamente de nuestra cuenta Linux que los programas ejecutados en esa “ventana” seguiran corriendo normalmente.

Como reconectamos una ventana?

$ screen -raAd

Y veremos que tenemos los programas en ejecución tal cual los dejamos. De esta manera vemos que podemos dejar corriendo el irssi, desloguearnos, irnos a dormir, y al día siguiente loguearnos nuevamente y todo seguirá ejecutándose.

Vale aclarar que si queremos crear una nueva “ventana” debemos ejecutar el comando screen sin argumentos. Para pasar de una ventana a otra utilizamos la combinación CTRL+A, soltamos las teclas y colocamos un dígito del 0 al 9.

 

 

Charlas de Software Libre


El UNLUX (Grupo de Usuarios de Software Libre de la Universidad Nacional de Luján) y el CODES (Centro de Estudiantes de Sistemas) presentan el Ciclo de Charlas de Software Libre, en la Sede Central de la Universidad Nacional de Luján, el día Sábado 19 de Noviembre de 2011.

Allí estarán Rino y Delete evangelizando sobre Fedora y el Software Libre.

El evento sera gratuito y abierto a todo el publico interesado. La inscripción ya está disponible, hay cupo limitado. Inscribite Ya!

 

Instalando PostgreSQL


PostgreSQL es un motor de base de datos muy poderoso, perteneciente al mundo del Software Libre y que no tiene miedo en correrle al resto de las bases de datos del mercado, incluso las mas grande$.

Tal vez la curva de aprendizaje sea un poco mas pronunciada que con otros motores, pero realmente vale la pena probarla e implementarla.

Aquí dejo las notas de intalación:

Instalamos PostgreSQL:

$ su -c "yum install postgresql-server pgadmin3"

Cambiamos la contraseña del usuario postgres creado al instalar el motor:

$ su -c "passwd postgres"

Inicializamos la base de datos:

$ su -c "service postgresql initdb"

Editamos los archivos de configuración de postgres. En el archivo: /var/lib/pgsql/data/postgresql.conf

Modificamos la línea #listen_addresses a ‘* ‘:

listen_addresses = '*'

Y descomentamos la línea #Port para escuchar en el puerto 5432:

port = 5432

Editamos también el archivo de configuración de autenticación de PostgreSQL: /var/lib/pgsql/data/pg_hba.conf

Cambiamos la línea host all all 127.0.0.1/32 ident para autentifique las conexiones locales a través de md5:

host all all 127.0.0.1/32 md5

Para agregar / autorizar conexiones desde otros equipos, agregamos una lína como esta:

host all all 192.168.1.0/24 md5

Definimos el servicio postgresql para que arranque al inicio y lo “estarteamos”:

# chkconfig --level 2345 postgresql on
# service postgresql start

Logueandonos con el usuario postgres de Linux, con la contraseña que cambiamos al inicio, cambiamos la contraseña del usuario postgres del motor de la base de datos:

$ su postgres
Contraseña:
bash-4.1$ psql
psql (8.4.9)
Digite «help» para obtener ayuda.

postgres=# ALTER USER postgres WITH PASSWORD 'mipass';

Si el cambio se pudo ejecutar con éxito, la salida será un simple ALTER ROLE.

Con esta configuración ya podremos arrancar el pgadmin3 y conectarnos a la base de datos con estos datos:

Nombre: NombreBase
Host: 127.0.0.1
Port: 5432
Maintenance DB: postgres
Username: postgres
Password: mipass

Navegación anónima en Linux


Que queramos navegar anónimamente no significa que estemos haciendo algo ilícito, simplemente podemos querer navegar anónimamente para proteger nuestra privacidad.

Para navegar de manera anónima bajo Linux, utilizaremos un proxy (privoxy) y la red anónima Tor.

Instalamos Privoxy y Tor:

$ su -c "yum install privoxy tor"

Editamos la configuración del proxy:

$ sudo vi /etc/privoxy/config

y colocamos la siguiente línea al final del archivo:

 forward-socks4a / localhost:9050 .

Iniciamos los servicios Tor y Privoxy:

$ sudo service tor start
$ sudo service privoxy start

A continuación debemos configurar nuestro navegador para que utilice el nuevo proxy en la dirección 127.0.0.1 puerto 8118 y para socks puerto 9050.

Con Firefox, quedaría algo así:

Con esta configuración ya estaríamos navegando a través de Privoxy con otra IP asignada por Tor.

Cada vez que queramos navegar normalmente deberíamos cambiar esta configuración a “Sin Proxy” o “Configuración Automática”. Esto podemos hacerlo facilmente utilizando algún plugin de Forefox como TorButton, QuickProxy o FoxyProxy.

Si queremos que privoxy y tor arranquen automáticamente con Linux, hagamos:

$ su -c "chkconfig --level 2345 privoxy on"
$ su -c "chkconfig --level 2345 tor on"

Realmente vale la pena leer la documentación de Tor, y sus recomendaciones para mejorar la privacidad, entre ellas: usar SSL, bloquear cookies y plugins Java.

 

Recuperando contraseñas de archivos ZIP


Si alguna vez perdieron la contraseña de un zip que contenía algo importante, seguramente hayan buscando algun programa para recuperarla.

No es facil encontrar un programa que haga esta tarea eficientemente y que además sea Libre.

Aquí va mi recomendación: fcrackzip

Esta herramienta nos permite crackar las contraseñas de los archivos zip utilizando fuerza bruta o diccionarios y es muy eficiente.

Veamos su instalación y uso:

Descargamos los fuentes:

$ wget http://oldhome.schmorp.de/marc/data/fcrackzip-1.0.tar.gz

Descomprimimos, compilamos e instalamos:

$ tar -zxvf fcrackzip-1.0.tar.gz
$ cd fcrackzip-1.0
$ ./configure
$ make
$ su -c "make install"

Ahora, una manera rápida de buscar la contraseña sería ejecutarlo usando las opciones -b (fuerza bruta), -u (usando unzip),  -l (especificando la longitud del password):

$ fcrackzip -b -u -l 1-4 archivo.zip

El programa en general trabaja muy rápido. El resultado mostrado es algo así:

PASSWORD FOUND!!!!: pw == FORD

Que alivio… no? mas aún si lo que contiene ese archivo son fuentes de un programa que hay que reflotar ….

P.D.: Hay también disponible una versión para WIN$