lunes, 26 de marzo de 2012

GBridge - La VPN de Google

Uno de nuestros proyectos debía de integrar los aplicativos clientes (Facturación) con la sede central  (Contabilidad) ubicada geográficamente en otro lugar, para esto debíamos de implementar una VPN para que las operaciones puedan verse en tiempo real. Siendo así comencé a evaluar diferentes software que permitan crear una VPN, de los cuales, el que me sorprendió por su rápida configuración y los servicios que ofrecía fue GBridge (http://www.gbridge.com/).


GBridge es un software gratuito que te permite controlar a distancia las PC, las carpetas de sincronización, compartir archivos y chatear de forma segura y sencilla. Una extensión del servicio de Google es el servicio GTalk, GBridge forma automáticamente una colaboración, cifrada VPN (Virtual Private Network) que conecta los ordenadores y los ordenadores de tus amigos directamente y de forma segura con la tecnología patentada. 


GBridge tiene muchas características únicas, y se mencionan a continuación:

DesktopShare (VNC) : Accede a tu computadora de escritorio de forma remota o compartir su escritorio con su amigo de cualquier parte del mundo. GBridge automáticamente atraviesa firewalls y routers NAT sin necesidad de configuración.
SecureShare : Tiene una forma segura de compartir archivos entre sus ordenadores, por lo que puede tener acceso remoto a sus archivos, por ejemplo, reproducir mp3, con la máxima privacidad. Forma segura de compartir archivos a su amigo designado, por lo que el amigo seleccionado pueden ver instantáneamente las imágenes en miniatura generados automáticamente y presentación de diapositivas de forma remota. No web de carga / descarga es necesario.
AutoSync : Transferencia de archivos de gran tamaño y la sincronización de carpetas desde y hacia cualquier lugar nunca ha sido tan fácil. AutoSync soporta programación automática, las transferencias de carpetas de manera incremental y no hay restricciones de tamaño. 
EasyBackup : Instalación de una copia de seguridad automática periódica de la carpeta importante para un PC local o remoto es muy sencillo.

GBridge utiliza los servidores GTalk de Google por ello para utilizarlo lo único que vamos a necesitar es disponer de una cuenta de Google. 

Al abrir por primera vez nos mostrará esta pantalla 
Lo único que tenemos que hacer es poner el nombre de usuario y password de nuestra cuenta Google, nos apuntamos el nombre de Hostname porque luego lo usaremos desde el cliente. 


Una vez dentro podemos ver los equipos conectados con las mismas credenciales que nosotros.
Para este caso, si hacemos clic derecho sobre la PC a la que nos queremos conectar, y seleccionamos "Browse Gbridge SecureShares", podremos visualizar los archivos y las carpetas compartidas desde el otro equipo, a través de nuestro navegador.

También podemos ver los detalles de la conexión (Bridge) en el centro de redes y recursos compartidos.




El cliente "Gbridge" puede configurarse para que los demás clientes se conecten a este y puedan acceder a sus archivos directamente, para esto debe tener activado en la parte de Opciones -> Advanced Options..

Y en la ventana de Opciones avanzadas, debemos seleccionar "Windows Share Folder", con lo que le indicamos a Gbridge que habilite el compartir carpetas mediante la VPN.


A continuación una aplicación cliente (IbExpert), conectándose a una base de datos (Firebird)  ubicada en una red remota, mediante Gbridge.



Sin duda es una excelente herramienta para la creación de una VPN.



Servidos.

martes, 20 de marzo de 2012

¿Dónde está la Transacción de Firebird?

Está entrada la dedico a mi socio CSP, quién acostumbrado a gestores como Oracle o SQL Server, tuvo un problema al tratar de encontrar una transacción bloqueada en Firebird, lo cual le causó una molestia porque me indicó que los demás gestores si tenían esta funcionalidad. 

Pues, Firebird a partir de la versión 2.1, a incluido nuevas tablas referidas al "Monitoreo" del sistema, que justamente permitirán a los administradores acceder a información muy importante como son las conexiones existentes, las consultas ejecutadas, las transacciones activas, y muchas más. A continuación las tablas mencionadas:




  • MON$DATABASE: base de datos conectada. Con información como ruta de la base de datos, versión de ODS, identificadores de proceso, etc.

  • MON$ATTACHMENTS: Conexiones realizadas. Con información de estado, usuario que hace la conexión, protocolo de conexión, etc.
  • MON$STATEMENTS: Sentencias preparadas para ejecutar. Con información como identificadores, texto, estado, etc.
  • MON$CALL_TACK: Pila de llamadas de las sentencias PSQL activas.
  • MON$IO_STATS: Estadísticas de I/O.
  • MON$RECORD_STATS: Estadísticas a nivel de fila.
  • MON$MEMORY_USAGE: Uso de memoria actual.
  • MON$CONTEXT_VARIABLES: Variables de contexto conocida.

Ejemplos de consultas que se pueden realizar con estas tablas:
  • Para saber todos los identificadores de procesos con carga de CPU actuales:
SELECT MON$SERVER_PID
FROM MON$ATTACHMENTS
WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION
AND MON$STATE = 1


  • Para obtener información sobre las aplicaciones clientes
SELECT MON$USER, MON$REMOTE_ADDRESS,
MON$REMOTE_PID,
MON$TIMESTAMP
FROM MON$ATTACHMENTS
WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION


  • Para obtener el nivel de aislamiento de la transacción actual
SELECT MON$ISOLATION_MODE
FROM MON$TRANSACTIONS
WHERE MON$TRANSACTION_ID = CURRENT_TRANSACTION


  • Para obtener las sentencias actualmente activas
SELECT ATT.MON$USER,
ATT.MON$REMOTE_ADDRESS,
STMT.MON$SQL_TEXT,
STMT.MON$TIMESTAMP
FROM MON$ATTACHMENTS ATT
JOIN MON$STATEMENTS STMT
ON ATT.MON$ATTACHMENT_ID = STMT.MON$ATTACHMENT_ID
WHERE ATT.MON$ATTACHMENT_ID <> CURRENT_CONNECTION
AND STMT.MON$STATE = 1 



Realizando las consultas indicadas podemos obtener los siguientes resultados.


Servidos.

sábado, 28 de enero de 2012

El Evento DwnKey (KeyPress) en un Datawindow

A continuación mencionaré como implementar funcionalidad sobre el evento KeyPress del objeto Datawindow de Power Builder, realmente es algo muy sencillo. Para esto consideramos tener una ventana con un objeto datawindow en el que requerimos ejecutar alguna acción al presionar una tecla específica.

Primero debemos editar el objeto datawindows, para esto hacemos clic derecho sobre el objeto y seleccionamos "Script".


Ahora dentro del script del objeto, debemos ubicar la lista de eventos y crear uno nuevo (New Event).


Ahora veremos la pantalla de creación de eventos, en esta ocasión debemos seleccionar un "Event ID", y ubicar en la lista el "event ID" llamada pbm_dwnkey, así de esta manera se podemos identificar la tecla presionada y codificar la funcionalidad requerida.

Luego podemos incluir el código para agregar funcionalidad según la tecla presionada.

Y los resultados los podemos visualizar como sigue.


Servidos.

jueves, 10 de noviembre de 2011

Conociendo a Ginga el Middleware y el Set Top Box

Hace un par de semanas le escribi a mi profesor de Arquitectura de Computadores y Hardware, RP (www.ronald-paucar.com), justificando mi falta a una clase de la Maestria en Gestion de TI que llevo en la Universidad Nacional del Santa. Y justamente en esa clase tocaron un tema que ya había venido comentando en las clases anteriores, lógicamente el curso abarca temas desde tipos de protocolos, gestión de datacenters, control y administración de servidores, etc, etc. 
Me comentaron mis compañeros que si pudieron asistir a clase que hizo una demostración de un tipo de comunicación, en este caso fue la televisión digital, y utilizó Ginga, que es el nombre del Middleware Abierto del Sistema Nipo-Brasileño de TV Digital (ISDB-TB). Cuando comencé a buscar información sobre el tema para ponerme al tanto de lo que se trato en esa clase, que por cierto fue en laboratorio, pues me interesó mucho el tema porque existian muchas herramientas para poder desarrollar aplicativos que desplieguen video y a la vez hagan interactuar a los televidentes, inclusive existe un plugin para Eclipse, con lo que se puede programar en NCL (Nested Context Language) o LUA que es otro lenguaje de programación. 


Es así que mi grupo conformado por mi compañero V.I.G. y yo debiamos de exponer en la semana siguiente la Arquitectura de un SetTopBox y ejemplos de aplicaciones en NCL. Muy bien, entonces aprovechaba las horas de almuerzo en mi trabajo, para descargar información y bajarme las máquinas virtuales con respecto a este tema. Y en resumen el sistema de televisión digital es una conversión de la señal de TV analógica a un formato digital que puede ser emitido por satélite, terrestre o cable, siendo posteriormente decodificado por el propio televisor (televisión digital) o a través de un receptor llamado Set-Top-Box. 
El set-top-box tiene un papel fundamental en la implementación de nuevas funcionalidades de la Televisión Digital Interactiva. Este nuevo componente del sistema es responsable por mantener la compatibilidad con un parque instalado de televisores, adicionando nuevas funcionalidades: desde la transmisión de video de alta calidad hasta un nivel elevado de interactividad.

La conjunción entre el Set-Top-Box y el GINGA, permiten desarrollar componentes y aplicaciones para TV digital, adicionando servicios a los usuarios, con nuevas funcionalidades, muchas de estas ya disponibles comercialmente por las redes de TV a cable o satelitales, tales como:
  • Guías de Programación Electrónica (Conocido como EPG),
  • Email y mensajes de texto
  • Juegos interactivos on-line
  • Video sobre demanda
  • Sistema de pay-per-view.
Los componentes físicos que constituyen un Set-Top Box son:
  • Placa base del sistema
  • Sintonizador
  • Modulador/ demodulador
  • Demultiplexador
  • CPU
  • Decodificador
  • Procesador gráfico
  • Memoria
  • DiscoInterfaces físicas
Así también, se pueden clasificar los Set-Top-Box en tres categorías: Broadcast TV, Enhanced TV y Advanced Services.

ARQUITECTURA DEL SET TOP BOX

En la capa superior, se tienen los servicios y contenidos que pueden ser producidos en una transmisión de TV digital. Ejemplos de estos servicios son las guías de programación electrónica (EPG), sistema pay-per-view, juegos on-line, programas interactivos, etc.
La segunda capa, se tienen las aplicaciones. Estas aplicaciones son responsables por promover el tipo de servicio de la camada superior.
En la tercera capa, el Middleware, que básicamente tiene como función realizar una interface entre el hardware del set-top-box y las aplicaciones. De esta forma, las aplicaciones pueden ejecutarse de forma transparente sin la preocupación con la forma de acceso al hardware de un set-top-box específico. De esta forma el desarrollo y portabilidad de las aplicaciones se vuelve más simple, debido a que todas las aplicaciones usan una misma API en común. 
En la cuarta capa, se tienen los componentes multimedia de decodificación y codificación, así como los otros módulos multimedia.
En la quinta capa, el sistema operacional, es responsable por el funcionamiento del hardware, la cual provee una capa de abstracción al hardware del set-top-box.
En la última capa, tenemos el hardware de un set-top-box, que es constituido por una CPU, dispositivos de entrada y salida, almacenamiento, decodificación, sintonización, etc.


EMULANDO APLICACIONES DE UN SET TOP BOX

Luego de buscar en interner distinta información sobre como emular un Set Top Box, pues me di con la sorpresa que dicho link ya no existía (fedora-fc7-ginga-i386.zip) y en su reemplazo estaba el siguiente link, basado en un Ubuntu Server, http://www.gingancl.org.br/sites/gingancl.org.br/files/ferramentas/ubuntu-server10.10-ginga-v.0.12.3-i386.zip, pero al descargarlo no pude levantarlo en mi VMWare porque estaba corrupto, es así que decidí buscar la dichosa maquina virtual de fedora, busqué y busqué hasta que la encontre, en el siguiente link  http://ufpr.dl.sourceforge.net/project/dtvargentina/Lifia/fedora-fc7-ginga-i386-lifia-20100218-dev.tar.gz,que es una distribución basada en la original pero modificada por estudiantes de una universidad Argentina.
Finalmente despues de probar finalmente pude levantar la VM y ejecutar algunas aplicativos en el STB Virtual.
El set top Box virtual consiste en Fedora (Linux) modificado, el cual viene con Ginga instalado. Para poder correrla en cualquier plataforma se debe virtualizar. Para esto se utilizó el virtualizador VMWare Workstation. A continuación se adjuntan los enlaces para descarga para Windows o Linux:
Luego de descargarla la instalamos y descomprimimos la VM descargada, y le damos doble clic sobre  Fedora-fc7-ginga-i386.vmx

Y veremos como carga la distribución Fedora modificada para emular el STB.
Luego configuramos (Virtual Machine Settings..) las propiedades de la VM, y seleccionamos Host-Only, para no tener problemas con el ingreso por SSH a la maquina virtual.


Ahora ingresamos remotamente a la MV, por ssh, en este caso utilizaré nxssh.
Podemos descargar algunos ejemplos de la Web, en este caso descargaré una especie de juego llamado el Sultan. http://elclub.ncl.org.br/sites/default/files/sultan.zip
Y luego lo paso a la MV a través de WinSCP.

Luego vamos a la consola en la que estamos conectados a la MV y ubicamos el archivo NCL transferido y lo ejecutamos mediante ginga.


Y podemos ver como en nuestra VM, se lanza el juego "Las Riquezas del Sultan".

En conclusión, los Set-Top-Box permiten la decodificación de señales obtenidas a partir de televisión digital terrestre, cable o satelital, para reproducirlo en una televisión analógica.
Los Set-Top-Box se encuentran asociados a un software denomina de Middleware, que permite ejecutar aplicaciones interactivas en el set-top-box. Para el caso particular del estándar brasileiro ISDB-Tb es el Middleware Ginga y para el estándar Japonés ISDB-T es el Middleware BML.
Para los diferentes estándares de televisión digital en el mundo (ISDB-T, DBV, ATSC, etc), las arquitecturas de hardware de los set-top-boxes se diferencian principalmente por el tipo de demodulador y el decodificador MPEG-2/MPEG-4.

Bueno me despido, finalmente podré exponer este tema el día sábado en mi curso de la maestría.

Servidos.

sábado, 5 de noviembre de 2011

Sistemas Implementados

Estimados lectores, en las siguientes entradas de mi blog, publicaré un pequeño resumen de los sistemas desarrollados por mi persona, describiendo la tecnología utilizada así como las herramientas empleadas. Espero que sea un pequeño aporte para las personas que necesiten determinar las herramientas para una implementación específica. Así mismo hablaré de las personas que hicieron posible que esto se lleve a cabo, me refiero al equipo de desarrollo que en algún momento trabajo conmigo en algunos proyectos y también a las personas que aportaron el conocimiento de los procesos y la teoría necesaria para el desarrollo de los mismos.

En resumen, los sistemas implementados están en orden cronológico de la siguiente manera:
  • Sistema de Trámite Documentario (Universidad Privada San Pedro - Chimbote)
  • Sistema de Procesamiento de Asientos Contables (Universidad Privada San Pedro - Chimbote)
  • Sistema de Registro y emisión de Cheques (Universidad Privada San Pedro - Chimbote)
  • Sistema de Voucher Diario (Universidad Privada San Pedro - Chimbote)
  • Sistema de Contabilidad (Universidad Privada San Pedro - Chimbote)
  • Sistema de Contabilidad de Costos (Universidad Privada San Pedro - Chimbote)
  • Sistema de Ventas y Control de pagos (Inversiones Ramirez - Nvo. Chimbote)
  • Sistema de Caja y Bancos (Agroindustrias San Jacinto - Nepeña)
  • Sistema de Diario Contable (Agroindustrias San Jacinto - Nepeña)
  • Sistema de Contabilidad General (Agroindustrias San Jacinto - Nepeña)
  • Sistema de Control de Socios y Cobranza (Asociación Círculo Militar del Perú)
  • Sistema de Registro de Ventas y Consolidación de Información (Asociación Círculo Militar del Perú)
  • Sistema de Control de Notificaciones y Expedientes Aduaneros (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Seguimiento de Ordenes de Servicio (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Sincronización de Información de Aduanas (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Indicadores de Desempeño de Operaciones (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Alertas para cumplimiento de Indicadores (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Facturación y contabilización (Andina de Desarrollo Andesa SAC)
  • Sistema de Administración de Muelle - Control de Almacenes (Andina de Desarrollo Andesa SAC)
En las siguientes entradas iré describiendo cada implementación.

jueves, 3 de noviembre de 2011

Instalar FreeNX, NX, NoMachine en Centos 6

Hola a todos, este tutorial me lo envió un compañero del trabajo, probado y funcionando. Lo dejo para los interesados:

1. En primera instancia debemos de saber que este programa ya no se encuentra para la versión 6 en los repositorios de extras como antes lo estaba para las versiones de CentOS anteriores.

2. Segundo debemos bajarnos los paquetes dependiendo de la versión o arquitectura que estemos utilizando, ya sea la versión x86 o la de 64.
Esto lo hacemos desde el siguiente enlace. http://centos.toracat.org/misc/nx-freenx/6/ de los repositorios de toracat.

3. A continuación ponemos los dos paquetes que bajemos en una carpeta y nos disponemos a abrir una terminal Alt + F2 y en la casilla que aparece escribe gnome-terminal con esto se abre una terminal.

4. A continuación nos logueamos como usuario root con el comando su, y presionando Enter, con lo que proporcionamos las credenciales del superusuario.

5. Ahora nos dirigimos hasta la carpeta en donde tenemos nuestros paquetes descargados y ejecutamos el siguiente comando, siempre evidentemente con permisos de superusuario o root.
yum localinstall * (con este comando lo que hacemos es indicarle que instale todo lo que se encuentra en esa carpeta, recuerda que primero nos dirigimos hasta la carpeta donde se encuentran los rpm's de freenx y nx respectivamente).
Vemos que al terminar de instalar las dependencia no nos instala los paquetes ya que no están firmados, así que procedemos de la siguiente manera.

6. Ahora nos disponemos a instalar otras dependencias, ejecutando los siguientes comandos:
yum install xorg-x11-apps
yum install expect

Ambos se encuentran en el repositorio normal de CentOS, así que no hay complicaciones.

7. Y ahora si nos disponemos a instalar los paquetes que descargamos con el siguiente comando.
rpm -ivh * (esto siempre asumiendo que nos encontramos dentro de la carpeta donde estén los paquetes descargados anteriormente).

Luego de configurado el servidor, podremos iniciar desde los clientes.



jueves, 8 de septiembre de 2011

El padre de Java, James Gosling, abandona Google cinco meses después de su contratación

James Gosling, reconocido como el padre de Java y considerado como un desarrollador de gran ingenio y creatividad, abandona Google sólo cinco meses después de su contratación. El pasado martes, publicó una carta en su blog donde se despide del buscador y comunica sus planes de incorporarse a la pequeña empresa Liquid Robotics, donde tendrá el cargo de desarrollador jefe.


“Me he sorprendido y he hecho otro cambio de carrera. He estado un tiempo en Google, donde he conocido a mucha gente interesante, pero también me he encontrado con algunas personas fuera haciendo cosas completamente extraordinarias, y después de mucha angustia he decidido dejar Google”, explica en su blog Gosling.

La contratación de Gosling por parte de Google fue vista por los expertos como una estrategia que daría más fuerza al gigante de las búsquedas en la contienda que sostiene con Oracle sobre el tema de patentes de Java. Oracle ha demandado a Google por su motor virtual para Java, Dalvik, utilizado en el sistema operativo móvil Android.


Así cuenta el padre de Java su nueva andadura profesional: “Ahora estoy en una pequeña 'startup' llamada Liquid Robotics que tienen una creciente flota de vehículos autónomos que se mueven por el océano, y que recogen datos con una variedad de sensores de a bordo para subirlos a la nube. Los robots tienen un montón de equipamiento para comunicaciones por satélite uplink/GSM/WiMax y unidades GPS redundantes. Tienen un montón de implementaciones. Por ejemplo, hay un conjunto de robots patrullando el océano alrededor del pozo de Macondo en el Golfo de México, para monitorizar la química del agua. Estas embarcaciones se abastecen de la energía de las olas para la propulsión y pueden permanecer en el mar por un largo periodo de tiempo. El tiempo más largo que ha estado una nave fuera ha sido de 2,5 años (más o menos). Recorren los océanos... poco a poco. Sólo se mueven a 1-2 nudos, que es una gran velocidad para la recolección de datos”.

Robots “Wave Glider”

Los robots denominados “Wave Glider” de Liquid Robotics son pequeñas embarcaciones que recolectan datos de sensores. Las unidades tienen una eslora de aproximadamente dos metros y pueden comunicarse con sus bases mediante satélites y redes de telefonía móvil. Los robots aprovechan la luz del sol y la energía undimotriz. El producto está dirigido a las investigaciones comerciales y la industria de la defensa, según informa la propia empresa.
En su nuevo cargo, Gosling, como nuevo arquitecto jefe, trabajará en el desarrollo de software y en la gestión de los datos recabados mediante los robots. “Los sistemas actuales funcionan bien, pero tienen una gran variedad de áreas que hay que trabajar. Esto va a ser muy divertido”, concluye Gosling en su carta.