La culpa fue del spectrum

La culpa fue del spectrum

lunes, 15 de agosto de 2016

Rjb - Ruby Java Bridge

La gema rjb nos permite conectar desde ruby mediante un archivo jar a una base de datos usando el driver JDBC.
Yo lo suelo utilizar desde windows en pequeños programas de migración de tablas de una base de datos a otra. 

Una vez instalado ruby, para poder instalar la gema rjb, el sistema te pedirá que te descargues e instales el devkit de ruby, un jdk de java y que configures las variables JAVA_HOME.

Es importante que tengas en cuenta que ambas versiones de ruby y java deben de ser de la misma arquitectura para que funcione correctamente. En caso contrario creará la gema rjb pero después cuando la uses desde los programas te aparecerán errores.

En este caso las conexión es una "legendaria" base de datos de firebird por lo que me descargo el correspondiente jar. 
Un ejemplo que cuenta los registros de una tabla sería el siguiente. 

require 'rjb'
Rjb::load(classpath = 'C:/Software/Jaybird-2.2.11-JDK_1.8/jaybird-full-2.2.11.jar',['org.firebirdsql.jdbc.FBDriver'])

DriverManager = Rjb::import('java.sql.DriverManager')

begin
    sen="Select count(*) from TABLA1"
    connection = DriverManager.getConnection('jdbc:firebirdsql://ipserver:3050/carpetas_que_contiene_BD/EJEMPLO.gdb','sysdba','masterkey')

    statement = connection.prepareStatement(sen)
    result_set = statement.executeQuery

    while(result_set.next())
        puts result_set.getObject(1).toString
      end
ensure
     result_set.close if defined?(result_set) && !statement.nil?
     statement.close if defined?(statement) && !statement.nil?
     connection.close if defined?(connection) && !connection.nil?
end

sábado, 23 de julio de 2016

Uso de MONITOR en un programa RPGLE

Cuando realizamos un programa intentamos controlar todo lo que puede ocurrir con el fin de que el programa realice correctamente su función. Pero en ocasiones necesitamos monitorizar los posibles errores, para eso tenemos MONITOR.

Mi uso de MONITOR es bastante sencillo, yo introduzco MONITOR en un trozo de código donde me interesa poder controlar cualquier error, no lo uso siempre ni en todos los programas. 

El uso de MONITOR es muy simple

Comienza escribiendo MONITOR y se finaliza con ENDMON.

MONITOR;

 bloque de código que se quiere monitorizar 

ENDMON;

Dentro del bloque a monitorizar el error se controla usando ON-ERROR 

ON-ERROR puede controlar cualquier error, un error de programa, un error de fichero, o incluso un código de error específico. Para ello usa *ALL, *PROGRAM, *FILE o el código.

Un ejemplo podría ser este.

MONITOR;

   A=B/C;
   ON-ERROR *PROGRAM;
     A=0;
     DUMP;

ENDMON:

En este ejemplo el código ante cualquier error de programa que surgiera en la operación A=B/C, pondría la variable A a 0 y realizaría un vuelco que me permitiera ver con detalle lo ocurrido. 

sábado, 28 de mayo de 2016

Voz IP para uso doméstico

Hace unos meses que inicie una cruzada para abandonar ONO como mi único proveedor de telefonía fija, móvil e internet.

No voy a entrar en los motivos, pero lamentablemente si funcionaban mal siendo ONO, desde que los compro Vodafone la cosa ha empeorado mucho, los clientes como yo con 11 años de antigüedad somos tratados como despojos y dejamos de interesar. Migrar todos sus servicios y conseguir la baja de todo me ha llevado tiempo, esfuerzo y discusiones.

Pero lo que yo venía a contar es lo contento que estoy de tener contratado un servicio de voz ip sobre mi línea ADSL. Tenía mis dudas de que esto funcionara bien sobre una ADSL clásica de la que nos llega por cable de cobre. Pero si puedo asegurar que funciona y muy bien.

Mi experiencia, no voy a poner la compañía por no hacer publicidad, es a día de hoy totalmente satisfactoria. El precio que pago por mantener el servicio es de 2,5 euros mensuales, llamadas aparte, el coste de las llamadas es muy económico, sobre todo a fijos. Teniendo en cuenta que a día de hoy cada vez se utiliza menos los teléfonos fijos me parece una solución muy recomendable.

Si alguien tiene dudas puede quedar tranquilo, esto funciona y funciona muy bien.

lunes, 29 de febrero de 2016

HYLAFAX en Debian


Pequeño manual para la instalación de HYLAFAX en Debian, es muy antiguo, en su día lo realice cuando lo instale sobre un Debian 6, después esa máquina la actualice a Debian 7 y puedo decir que nada de lo que aquí cuento cambiaba de la versión 6 a la 7. 

Desconozco si en la versión 8 cambia algo, ya que esa máquina dejo de ser competencia mía y aunque sigue funcionando estoy seguro de que no está actualizada a Debian 8.

Lo primero decir que siempre lo he instalado en pc antiguos y con pocos recursos, nunca en máquina virtual, desconozco en entorno virtual si funcionará correctamente. 

Siempre he usado módem de puerto serie, nunca usb, sobre todo porque los usb si son winmodem no funcionan y como siempre me he arreglado con material antiguo, siempre he encontrado un módem por ahí abandonado. 

Comenzamos.

Instalar

aptitude install hylafax-server por dependencias instalará el cliente y todo lo que este necesite.



Configurar



faxsetup -server



Aquí vamos respondiendo a las preguntas para configurar el servidor, todo queda registrado en dos archivos que luego podremos modificar. Si no sabes que introducir, los valores por defecto suelen ser validos para empezar.


Protecion mode for recived fax poner 0644

Protecion mode for session logs poner 0644

Protection mode for ttySx poner 0666


Un archivo se llama config.ttyS0 se encuentra como todos los archivos de configuración dentro de /etc/hylafax, ttyS0 es el primer modem en la primera salida serie del pc (com1), si hay más de un modem, porque gestionamos dos líneas tendríamos otro config.XXXX (lo que corresponda)

El otro es config para la configuración general del sistema, distinguir llamadas nacionales de internacionales, logs, número máximo de trabajos concurrentes (nunca superior al de modems conectados), tamaño de página máximo, número de intentos de conexión, etc... Yo solo uso el prefijo internacional, el resto de cosas las configuro en el cliente de windows.



Añadir mas modems



faxaddmodem



Revisar el arranque automático del servicio de fax



Al instalarlo ya suele activarse, pero siempre podemos revisar que este correcto o desactivarlo para realizar pruebas. Para ello chequeamos /etc/default/hylafax y comprobamos que existe la siguiente linea:

RUN_HYLAFAX=1



Añadir usuarios



Para añadir usuarios que puedan mandar faxes. Existen dos formas, una usar el comando faxadduser y otra editar el hosts.hfaxd



El primero permite añadir usuarios con su contraseña siguiendo el siguiente formato:


faxadduser -p [userpass] username.



Yo normalmente no uso contraseñas para el usuario de fax por lo que simplemente escribo faxadduser Luis y de esta forma creo el usuario Luis sin contraseña.



Si ahora edito hosts.hfaxd veré lo siguiente



localhost:21::

^Luis@



Por lo tanto si quiero añadir al usuario Juan solo tengo que editar hosts.hfaxd y escribir



^Juan@



Salvo el archivo, reinicio el servidor hylafax con el siguiente comando /etc/init.d/hylafax restart y el usuario Juan ya podría enviar y recibir faxes.



Ahora solo nos faltaría indicar en hosts.hfaxd que queremos enviar faxes desde cualquier equipo de la red por lo que después de la primera línea de nuestro hosts.hfaxd y suponiendo que nuestra subred es 192.168.87.0 añadiremos lo siguiente



192\.168\.87\.:::



quedando nuestro hosts.hfaxd



localhost:21::

192\.168\.87\.:::

^Luis@

^Juan@





Eliminar Usuarios



Se pude usar faxdeluser o bien editar hosts.hfaxd y borrar el usuario a anular.

Recibir un fax en formato pdf en el buzón de correo



Para ello hay que crear el fichero FaxDispatch en la ruta de configuración del programa (/etc/hylafax/).


nano /etc/hylafax/FaxDispatch



y dentro escribimos:



FILETYPE=pdf;

SENDTO=FaxEntrada;



Con esto le decimos que nos envíe a FaxEntrada (que es un alias que contiene una dirección de correo) un mensaje de correo con el fax adjunto como archivo pdf.



Salvamos el archivo y ahora editamos /etc/aliases para añadir



FaxEntrada:email@dominio.x



Salvamos /etc/aliases y ejecutamos el comando newaliases para actualizar el sistema.



Ahora para que nos envíe un email con un pdf anexado cuano el fax ha sido enviado, lo que seria un reporte de la situación del fax, creamos FaxNotify



nano /etc/hylafax/FaxNotify



y dentro escribimos



NOTIFY_FAXMASTER=yes;

RETURNFILETYPE=pdf;



Donde se encuentran los faxes



Recibidos: /var/spool/hylafax/recvq

Enviados: /var/spool/hylafax/docq



Información de las máquinas a las que se ha enviado un fax



/var/spool/hylafasx/info

Procesos que arranca hylafax



faxgetty: proceso que espera la recepción del fax

faxq: encola faxes que están saliendo y entrando. Esta en continuo funcionamiento y no puede trabajar con más de un fax simultanemente.

hfaxd: se comunica con los clientes por el puerto 4559

Comandos interesantes



faxstat -s (muestra los faxes en cola esperando para ser enviados)

faxstat -d (muestra los faxes enviados)

faxstat -r (muestra los faxes recibidos)

faxrm número_de_trabajo (para borrar un fax de la cola de trabajos)

sendfax -n -d número fichero1.ps fichero2.ps (enviar un fax desde línea de comandos, los ficheros tienes que ser tipo ps)





viernes, 8 de enero de 2016

Windows tiene calculadora

El titulo de la entrada es una frase que suelo repetir bastante, por alguna extraña razón en las empresas en las que he trabajado casi todos los usuarios ignoran la calculadora de windows, todo el mundo tiene su ordenador o terminal con acceso a la calculadora de windows, pero casi todos consideran imprescindible también tener una calculadora en su mesa. 

Los hay que las tienen grandes, con rollo de papel incluido, otros pequeñas por que las consideran más practicas y funcionales.

Cuando les preguntas el porqué de no usar la calculadora de windows, las respuestas pueden ser el silencio (se les oye pensar... ya esta aquí el informático dando...), esa no funciona bien (si la gente de microsoft lo escuchara), con ella no me aclaro (en todas las empresas hay gente reacia al cambio), necesito el rollo de papel para luego repasar las cuentas (a estos les digo que para eso usen una hoja de cálculo, que para eso pagamos las licencias de office), ¿windows tiene eso? (si es muy completo).

En definitiva aunque la calculadora de windows acompaña al sistema operativo desde su versión 1, parece que no tiene mucho éxito en el entorno laboral que yo conozco, tan solo gente con perfil de sistemas, o curiosamente gente no española (debe ser algo cultural), les he visto usarla. 

Por supuesto esto es una apreciación personal seguro que en otros lugares de España y otras empresas esto no ocurre.





Conduce entre la niebla

La culpa fue del spectrum