Ya sacamos las uñas ¿Poder CiudaQUE??, que carajo, aqui ya sabemos quien manda, imaginate que esto te lo haga tu jefe en frente de las camaras de televisión, bueno, ese es el precio que se paga por llevar una vida de zancudo. !! Estamos Listos en el Paisito !!, estos majes no pasan de Marzo.
Monthly Archives
Conociendo el Standard ISO8583

Como ya leimos en el articulo anterior, jPOS trabaja de la mano del Standard ISO8583, que no es nada mas que un standard para sistemas que intercambian transacciones electrónicas realizadas por poseedores de tarjetas de crédito o si lo quieres mas sencillo, segun la wiki el ISO 8583 es un Standard para Transacciones Financieras con Mensajes originados en una tarjeta.
Como ya vimos un Mensaje ISO8583 esta compuesto de 3 partes fundamentales.
- MTI
- Bitmap
- DataElements.
El meollo de todo el asunto se encuentra en la informacion que trae el Bitmap o mapa de Bits, Porque.. ? por que el Bitmap se encarga de mostrarte que elementos de datos del standard se encuentran incluidos en el mensaje.Estos elementos de datos son los que llevan la informacion detallada que se esta utilizando en la transaccion.
Tenemos el siguiente Mensage ISO8583: 0400 2020000000800000 000000000001 21292501, el cual esta divido asi, segun lo que ya hemos aprendido
MTI(4 digitos)--0040 Bitmap(8 bytes o 16 caracteres Hexadecimales) 20200000 00800000 |
Luegos eparamos esta información y la convertimos en binario para obtener que bit de la cadena es verdadero, una vez tengamos los bit verdaderos presentaes en el Bitmap, conoceremos que elementos de datos acompañan al mensaje. Haciendo la separacion y convirtiendo la info, quedaria algo como asi, ahora solo te toca conocer la posicion de los bits verdaderos
20 = 0010 0000 20 = 0010 0000 00 = 0000 0000 00 = 0000 0000 00 = 0000 0000 80 = 1000 0000 00 = 0000 0000 00 = 0000 0000 |
Si, comprendistes, habras encontrado que los campos que estan presentes en el mensaje son: 3,11,41, Ahora tienes que repasar la tablita del standard donde econtraras los 128 campos que lo componen, por lo menos en las versiones del ISO8583 del año 1987 y 1992. Si ya checastes el Standard te habras dado cuenta que el campo Numero 3, es un campo numerico de 6 posiciones, el Campo 11; es un campo numerico de 6 posiciones y el campo 41 es un campo ans, es decir que acepta caracteres alfanumericos, numericos y caracteres especiales y tiene una longitud de 8. Una vez que ya tienes esta informacion , regresas a tu mensaje y obtienes los elementos:
Campo 3( Codigo Procesamiento)=000000 Campo11(Numero de Rastreo del Sistema para auditoria)=000001 Campo41(Identificacion de la terminal que acepta la tarjeta)=21292501 |
Una vez puedas decodificar el Mapa de Bits, el resto es pan comido.
Qué es jPOS?
JPOS, es un framework desarrollado en Java, para la implementación del estandar ISO-8583 que fue pensado para las Transacciones Financieras con Tarjetas de Crédito, entre los POS (Puntos de Venta) o ATM (Cajeros Automaticos).
Para trabajar con JPOS, primero es necesario entender completamente el ISO-8583, un mensaje en el 8583 puede ser algo asi.
0200bbbbbbbb165500007891111111003000000000000100 |
Es capaz de traducir lo siguiente en una transaccion común y corriente, por ejemplo.
Los primeros cuatro dígitos pertenecen al MTI (0200), Requerimiento de fondos, usualmente de un ATM o Cajero Automatico, la segunda parte del mensaje se llama Mapa de Bits (bbbbbbbb16550000), esta parte indica que campos del mensaje estan presentes, puede venir en 8 bytes o 16 caracter, y luego están los Data Elements, que son los campos del mensaje, puede ser, el Id del Comercio, de la terminal, el monto de la transaccion, el numero de la tarjeta, la fecha de caducidad, depende del tipo de transacción.
Un mensaje, no siempre tiene el mismo tamaño, y varia para cada procesadora de tarjetas de crédito, VISA, MASTERCARD tienen sus formas de generar sus propias cadenas para comunciarse con las entidades bancarias.
Un ejemplo de como crear un mensaje iso con JPOS
import org.jpos.iso.*; ISOMsg m = new ISOMsg(); m.set (new ISOField (0, "0800")); m.set (new ISOField (3, "000000")); m.set (new ISOField (11, "000001")); m.set (new ISOField (41, "29110001")); m.set (new ISOField (60, "jPOS 6")); m.set (new ISOField (70, "301")); |
ISOMsg, es una de las clases mas usadas en aplicaciones jPOS basadas en el ISO 85-83.
Existen las siguientes fuentes de información, todas en inglés, pero, son dirigidas por los mismos creadores de jPOS.
- jPOS News http://feeds.feedburner.com/jpos
- jPOS commits http://feeds.feedburner.com/jpos-commits
- jPOS users forum http://groups-beta.google.com/group/jpos-users/feed/msgs.xml
- jPOS developers forum http://rss.gmane.org/gmane.comp.java.jpos.devel
- jPOS en Yahoo Groups (creada en 1999) http://tech.groups.yahoo.com/group/jpos-dev/
Liberada RichFaces 3.3.0 GA, editor y queue novedades

Hoy se liberó la versión 3.3.0 de RichFaces, entre los elementos nuevos que trae son 2, los Queue y el Editor (imagen de arriba)
http://livedemo.exadel.com/richfaces-demo/richfaces/editor.jsf?c=editor&tab=usage
y abajo un ejemplo del Queue.
http://livedemo.exadel.com/richfaces-demo/richfaces/queue.jsf?c=queue&tab=usage

Descargate las librerias y los nuevos Skins de la siguiente direcciónes.
| darkX-3.3.0.GA.jar | Plug’n'Skin Example v.3.3.0. Skin Dark-X. | 27.4 KB | 14 Jan 2009 | LGPL | 76 | Download |
| glassX-3.3.0.GA.jar | Plug’n'Skin Example v.3.3.0. Skin Glass-X. | 30.7 KB | 14 Jan 2009 | LGPL | 66 | Download |
| laguna-3.3.0.GA.jar | Plug’n'Skin Example v.3.3.0. Skin Laguna. | 25.2 KB | 14 Jan 2009 | LGPL | 64 | Download |
| richfaces-ui-3.3.0.GA-bin.zip | JBoss RichFaces 3.3.0 Binary (zip) | 30.4 MB | 14 Jan 2009 | LGPL | 331 | Download |
el nuevo ferrari f60
Impresionante video, del estreno del f60 de ferrari, creo que es mejor que veas el video y escuches el motor, increible.
ohloh, la comunidad social para programadores
Aquí no se suben fotitos, ni videos, ni templates rosados chillones, es una comunidad seria para programadores, aqui se alojan ni mas ni menos que los proyectos Open Source más usados en internet, desde WordPress, Firefox, Firebug, Putty, Subversion, Apache o MySQL y miles de proyectos más.
Aqui puedes ser parte de un proyecto, facilmente, si te gusta programar y te gusta poco el dinero, creo que es el lugar perfecto para aprender, puedes aportar parte de tu conocimiento a Firefox o a WordPress y así sentirte realizado.
El gráfico de arriba pertenece al desarrollo de encuestame y las líneas de codigo que tiene el proyecto.
En el grafico siguiente
Podemos apreciar el porcentaje de los lenguajes en el que esta elaborado el proyecto.
Es una manera muy sana de aprender a programar y tambien de aprender a colaborar, he visto varios Nicas registrados y que durante un tiempo aportaron activamente a los proyectos que participaron.
Te puede servir para demostrar, en un futuro, sobre todo si sos Universitario, una trayectoria como programador, cuando busques empleo, ya que, por experiencia, si no tienes el respaldo de lo que has elaborado como profesional, estas perdido en este mundo de la programación, un ejemplo de lo que les digo, miren el perfil del Lider del Proyecto de Subversión Karl Fogel.
Protege tus creaciones

Siempre se nos ocurren buenas ideas, una canción, un software, un buen logo, pero claro, luego llega un listo y nos roba la idea, no dejes que eso te vuelva a pasar, tal vez, tu logo, algun día, valga mucho dinero, pero como protegemos nuestras obras? existen unabuena forma de hacerlo.
La primera en tu propio país, existen legislaciones en cada país, pero, si esta opciones, no es muy conocidas en tu país, como por ejemplo en Nicaragua, no tengo la mas mínima idea de como proteger una creación, entonces puedes acudir a safecreative.org.
Puedes proteger lo que tu quieras, poemas, libros, monografias, software, bases de datos, imagenes, dibujos, tu lo subes a sus servidores y ellos veleran por los derechos de tu obras.
Yo protegí un logo que creé, que no es una maravilla, pero, es creación propia, y se debe proteger. Aqui el ejemplo que te ofrecen para agregarlo a tu web o blog.
Dale estilo a tu SVN

Que tosco es el modulo de SVN para apache, pero podemos darle un mejor aspecto, es muy facil, en solo 5 minutos.
Primero descarga el Repos Style
Copialo a tu root de Apache, o crea un Alias, como desees, pero trabajemos con la primera opción, luego dentro de tu bloque LOCATION de SVN, solo tienes que incluir lo siguiente
SVNIndexXSLT "/repos-web/view/repos.xsl"
Hazle un Reload o un Restart a tu Apache2, y listo, el resultado es este,

Joda-Time para manejar fechas y horas
Java ofrece unas librerias para manejar horas y fechas, son Calendar y Date, del paquete java.util.
Pero al ahora de hacer cosas complejas estas librerias se vuelven muy tediosas para hacer cosas a veces sencillas, como por ejemplo, manejar programaciónes al estilo Outlook.
Joda-Time ofrece un paquete fenomenal para manejar todas estas cosas, primero descargate el paquete aqui.
Un ejemplo de como se calcula la diferencia entre dos fechas era esta
Date date1 = new Date(); Date date2 = new Date(); Long dif = date1.getTime() - date2.getTime(); System.out.println("Dias entre fechas: " + date1.getTime()); System.out.println("Dias entre fechas: " + date2.getTime()); System.out.println("Dias entre fechas: " + dif / 86400000L); |
Con Joda-Time es mucho mas sencillo, vean el siguiente ejemplo.
DateTime start = new DateTime(); //Devuelve la fecha actual al estilo Date DateTime end = new DateTime(); //Devuelve la fecha actual al estilo Date //Buscar la diferencia int days = Days.daysBetween(start, end).getDays(); System.out.println("days = " + days); |
Como convertir un objeto DateTime a un Date y a un Calendar, pues la mayoria de los otros frameworks trabajan con el objeto Date por defecto, aunque Joda tambien puede trabajar de la mano con Hibernate.
DateTime datetimeRented = new DateTime(); Date date = datetimeRented.toDate(); Calendar calendar = Calendar.getInstance(); calendar.setTime(datetimeRented.toDate()); |
Ahora que hemos visto un ejemplo que presentó algunas de las API, echemos un vistazo a las principales clases que un usuario de Joda-Time puede usar. Puedes ver el detalle de esta tabla aqui.
| Concepto | Sub-Concepto | Inmutable | Mutable |
| Instante Actual |
DateTimeDateMidnightInstant |
MutableDateTime |
|
| Parcial | LocalDateLocalDateTimeLocalTimePartial |
||
| Intervalos | Interval |
MutableInterval |
|
| Duración | Duration |
||
| Periodo | Cualquier Campo |
Period |
MutablePeriod |
| Solo un campo |
SecondsMinutesHoursDaysWeeksMonthsYears |
||
| Cronologia | BuddhistChronologyCopticChronologyEthiopicChronologyGJChronologyGregorianChronologyIslamicChronologyISOChronologyJulianChronology |
PDT 2.0, eclipse para php

Ya está disponible la versión 2.0 de los PHP Development Tools (PDT) de Eclipse, para los desarrolladores en PHP de acuerdo a los estándares del proyecto Eclipse.
PDT 2.0 y Eclipse 3.4.1, incluye además un robusto soporte de características de orientación a objetos, como herencia y polimorfismo, siendo también más pequeño y rápido gracias a la reducción de sus dependencias innecesarias (como componentes Java y J2EE).
Descárgate aquí la versión para tu plataforma
- Download: PDT 2.0 + Eclipse 3.4.1 (Linux)
- Download: PDT 2.0 + Eclipse 3.4.1 (Mac OS X)
- Download: PDT 2.0 + Eclipse 3.4.1 (Windows)

