Pagina principal Fernando Ortiz's Main page

Contenido/contents:
Informix
PHP
Aubit4GL
ADOdb
Perl
Smarty
Linux
Open Office
Vim (Visual Improved)
Factura Electronica
migraciones/migrations


Español/SpanishIngles/English
Los puntos de vista aqui presentados son mios y no representan de ninguna manera la posicion oficial de la empresa para la cual laboro. The coments stateted here are my own, and in no way represent the position of the company I work for.

Informix
NOTA: Desde el aão 2008 no uso nada de IBM/Informix, todo lo tengo ya migrado a Aubit4gl con Postgresql asi que la informacion no esta actualziada.
CUANDO ME DIGAN QUE ESTA INFORMACION DE INFORMIX OBSOLETA TAMBIEN LES ESTORBA MAS DE QUE LO AYUDA TAMBIEN LA QUITARE.
Durante muchos años la base de datos que mas penetracion a tenido en Mexico es Informix.
Principalmente sus usuarios son empresas de gobierno o industrias paraestatales.
Sin embargo varias empresas de la iniciativa privada tambien la usan. Pocas personas pueden dudar que a nivel tecnico, Informix es una de las mejores bases de datos, pero desafortunadamente tuvieros varios problemas administrativos y fueron otra victima mas de IBM.
IBM va a integrar las caracteristicas de Informix a su base de datos DB2 para 'facilitar' la migracion de los usuarios actuales de Informix a DB2.
Como no me gusta la burocracia de IBM estoy migrando el codigo que teniamos desarrollado en Informix 4GL a otros lenguajes. Algunas partes del codigo se estan migrando a PHP y otras a Aubit4GL.
Ambos lenguajes nos permiten seguir usando por el momento la base de datos Informix pero nos permiten migrar facilmente a otra base de datos.
Tengo una pequeña guia de configuracion de Informix tanto en servidor Linux como en clientes linux y windows.
PHP
Cuando empece a hacer mis pinimos en programacion HTML, evalue y tome cursos de varios lenguajes de programacion para web.
Antes de entrar a modo Web yo ya conocia los siguientes lenguajes: COBOL, Basic, Informix 4GL y de un poco de lenguaje C y de MS Visual Basic.
Tome los cursos de introduccion a HTML y de Java y empece a hacer mis primeras paginas interactivas con CGI en Java.
Al defraudarme el tiempo de respuesta de los CGI y de la complejidad de Java, empece a evaluar los lengaujes de script interconstruidos en Apache, principalmente Perl y PHP.
Como podran suponer me conquisto la simplicidad de PHP, maneja clases pero no lo hace un 'dogma de fe'. Maneja variables con tipo automatico y varias bases de datos. Tambien tiene un excelente conjuntio de funciones para el manejo de arreglos.
Empece programando con las funciones nativas a la base de datos que yo uso, Informix, por lo cual mi codigo tenia varias funciones que empezaban con ifx_. Cuando IBM adquirio a Informix note que si tenia que cambiar a DB2 tendria que corregir todos mis programas para usar las funcioens db2_ (de acuerdo debi de haber usa el principio de n-tier y separar la logica de la presentacion pero eso es otra historia).
Por lo cual decidi hacer el cambio de una vez a una clase que me ocultara los APIs nativos de PHP para cada base de datos y escogi ADOdb.
Tambien empece a usar smarty para el despliege de la informacion.
Como pueden ver mi camino de aprendizaje tuvo contratiempos pero fue totalmente empirico (no he tomado ningun curso de PHP), pero ya se esta desarrollando en base 3 capas:
  • Presentacion: Smarty
  • Logica: PHP
  • Base de datos: ADOdb
Aqui esta el procedimiento que segui para configurar mi servidor RedHat 9, con las ultimas versiones de Apache, PHP, OpenSSL, freetype, CSDK, etc. Here is the procedure I follow to configure my server with RedHat 9, and the last version of Apacge, PHP, OpenSSL, freetype, CSDK, etc.
Seguido la gente pregunta en los foros '¿como me conecto a informix con ADOdb? y al decirles la sintaxis de ADOdb, dicen que PHP no reconoce la funcion ifx_*, al decirles que tienen que instalar el CSDK preguntan como se hace.

Al tener instaldo el CSDK preguntan como se conecta uno a su servidor, al decirles como no tenian habilitada la conexion de clientes TCP en el servidor.

Por lo anterior tambien estoy haciendo una pequeña guia de la conectividad con Informix por conexiones TCP.
En the forums people ask, How to connect to Informix using ADOdb? when then sintax of ADodb is given they said that PHP doesn't kwnow the ifx_ funcion,so they're directed to install Informix CSDK.

When at last the have installed the CSDK, ask how to connect to their remote server, after several intents they realize they have to enable TCP connections in the server.

That's why I'm also write this small guide for TCP connections to the Informix server.
Aubit4GL
Aubit4GL es una alternativa libre para reemplazar el codigo que se tenga en el lenguaje Informix 4GL, a pesar de que querix ya tiene una version gratuita no es GPL. Aubit4GL is a FREE alternative to replace the code made with Informix 4GL, Querix also has a free version but it isn't GPL.
En mis pruebas que he efectuado con Aubit funciona razonablemente bien y las fallas que he reportado las corrigen mucho mas rapido que las fallas que he reportado a IBM. During my expirince with Aubit works reasonably well and the bugs I'd found (and reported) are fixed faster then the bugs I had reported to IBM.
En este lugar tengo una pequeña guia de configuracion del Aubit. In this page is a small configuration guide for setting Aubit4GL up.
Si ya tienes instalado el Aubit4GL y la pregunta es, como lo uso? que sigue?. En esta otra pagina estan una lista de preguntas y respueas para iniciar su uso. If you have already Aubit4GL installed and the question is, what's next? How do I use it?, in this other page you'll find a FAQ for starters.
ADOdb
En la epoca en que busque alternativas de clases de abstraccion de bases de datos evalue PEAR pero no manejaba Informix. Once upon a time I searched for database abstraction libraries, I tested PEAR but didn't handle Informix.
Intente hacer mi clase Informix de PEAR pero se me hizo muy complicada la estructura de la clase. I tried to make the Informix class for PEAR but was to complicated for me.
Enconte ADOdb que ya manejaba Informix aunque con algunas limitaciones. Entre al codigo de la clase y me gusto su simplicidad. I found ADOdb that already had a Informix class but with some limitations. I dig into the code and I loved his simplicity.
Esta tan sencillo que le pedi al autor de la clase si podia integrar algunos cambios que le hice al driver de informix. It's so easy that asked the author to include some changes I made to the informix driver.
Cual fue mi sorpresa que el mismo dia me acepto los cambios y para la siguiente version de ADOdb ya estaban publicados. For my astonishment he accepted my changes the same day and for the next release they got published.
¡Muchas gracias John Lim por el excelente servicio en un producto con licencia BSD y LGPL! Thanks a lot John Lim for the excelent support to an BSD/LGPL product.
Para uso del personal de la compañia hice una traduccion al Español de la documentacion que viene con la version 4.22. For internal use at the company I made a spanish translation of the documentation set included in version 4.22.
Aqui esta la documentacion en Español, o lo prefieres el manual original en ingles. Here is the spanish manual or if you prefer the original english manual.
Nota: me tome algunas libertades con la traduccion, deje algunos terminos en ingles (recordset, driver) y use un trato informal con el lector. Les agredecre cualquier comentario o sugerencia para mejorar la traduccion a mi correo electronico. Note: I took some liberties with the translation. Any comment to improve the translation are welcome to my e-mail.
fernando.ortiz (arroba) gmail (punto) com fernando.ortiz (at) gmail (dot) com
Perl
No he usado mucho el lenguaje Perl, lo unico que tengo en produccion es un pequeño programa que lee la informacion del tarificador del conmutador Alcatal A4400 via TCP/IP Sockets y graba el registro de las llamadas telefonicas en una tabla de la base de datos.
En esta pagina explico el procedimiento que segui para configurar el Perl con el Informix.
Smarty
Smary es un paquete que nos ayuda a separar la parte de la presentacion de la parte de la logica.
Un compañero del trabajo tradujo el manual de Smarty al español y voy a dejar a Mario que nos comente sus experiencias.
Linux
En efecto soy un usuario convencido de linux, no solo en lo personal, como jefe de departamento de informatica en una empresa con 3,500 empleados he podido evaluarlo tanto en servidores como en maquinas clientes de usuarios finales sin ninguna experiencia.
En esta pagina les cuento la historia de las maquinas y sistemas operativos por los que pasamos hasta llegar a la actual pareja perfecta actual Dell/Linux.
En esta otra pagina menciono que tuve que hacer para instalar Fedra Core 3 en una servidor Dell Poweredge 8450 que tiene el controlador RAID PERC 2/DC, explicando los pasos para instalar el 'driver disk' (dd) del controlador megaraid 'viejo' durante la instalacion y como instalar el nuevo kernel con el driver ya incluido.
Sabian que a partir de Fedora Core 3 ya no estan actividas la opciones para los 'raw devices', o sea, el acceso a partiaciones del disco duro sin pasar por el cache del sistema operativo? Tienes la duda de como te va a afectar para la velocidad en el acceso a los 'chunks' de informix? No te preocupes solo lee esta otra pagina donde veras que ya es mas sencillo.
Uno de los mayores problemas que tube para que mi codigo que tenia trabajando en HP-UX y SCO Unix sirviera en linux fue el manejo de las impresoras. Mi problema fue que ma mayoria de mi codigo invoca a comandos "lpr -d..... -o.... " que eran compatibles con LPRNG pero que ademas usaban un archivo de interface para reconocer las opciones.
Pude haber convertido mi codigo pero mi solucion fue hacer una emulacion de las interfaces del SCO UNIX y HP-UX en linux!, en estapagina explico como le hice.
Open Office
Si ya se dieron cuenta estoy en contra del uso de productos MS. La razon principal es que los usuarios 'asumen' que si mandan por correo electronico un archivo adjunto de MS Powerpoint, MS Word o MS Excel el destinatario los puede habrir porque 'seguro' esta usando los productos de MS.
Algo parecido me paso cuando IBM empezo a mandar sus propuestas usando el formato de su Lotus Smartsuite.
Es correcto que IBM exija a sus empleados que usen la herramienta que ellos venden, pero no es correcto que quieran obligar a sus clientes a comprar el producto para ver los documentos que mandan.
De acuerdo tanto MS como IBM distribuyen gratutiamente 'visores' para sus programas. Pero ¿porque tengo que instalar un visor para cada tipo de documento que se les pegue la gana enviarme?.
Afortunadamente OpenOffice corrigio la lentitud y la mayoria de los problemas de compatibilidad que tenia StarOffice y usando la version 1.1.1 la mayoria de los usuarios pueden usarlo para su trabajo diario.
El problema principal son los archivos que mandan entidades como Walmart y el SAT que desean que se les llene su archivo de MS Excel usando su apliacion VBA. Algo parecido ocurre con algunos documentos que se reciben de los bancos y entidades financieras.
Vim Editor
En mis primeros dias con Xenix/Unix yo usaba el edior de linea 'ed'. Esto porque tambien usaba el editor de la maquina Honeywell Bull y 'ed' era lo parecido al editor de esa maquina.
Afortunadamente despues nos decisimos de ese mounstruo y solo usamos maquinas Unix (SCO, HP-UX, Aix, etc.) por lo cual el editor comun fue vi.
No he tenido necesidad de aprender otro editor (emacs, pico, etc.) porque con el vim tengo todo lo que me ha hecho falta hasta ahora.
En esta pagina tengo unos ejemplos de configuracion para que el vim trabaje bien con x4GL y PHP, esto incluye el coloreo de la sintaxis y la indentacion. In this page I have some configuration examples to enable vim to work well with x4GL and PHP, inclusing syntax colouring and indentation
Factura Electronica
AQUI TENIA LAS LIGAS A LOS PROGRAMAS QUE EFECTUE EN 2005 PARA ELABORAR CFD, PERO COMO BIEN ME LO HICERON VER YA ESTOY OBSOLETO.
CON LA LIBERACION EN 2011 DE LOS CFDI, LO QUE YO SE Y PUBLIQUE ESTORBA MAS DE LO QUE AYUDA, ASI QUE YA NO LES PUEDO AYUDAR.
Migraciones/Migrations
En mi historia laboral he participado en varias migraciones exitosas:
  1. COBOL/Honeywell Bull a COBOL/HP MPE
  2. COBOL/Honeywell Bull a Informix/HP-UX
  3. COBOL/SCO Unix a Linux/Apache/PHP/Postgresql
  4. Informix/HP-UX a Informix/Linux
  5. MS Office a OpenOffice sobre windows
  6. OpenOffice sobre Windows a OpenOffice sobre Linux
  7. Informix 4GL a PHP
Actualmente estoy en proceso o planeando las siguientes migraciones:
  1. Informix 4GL a Aubit4GL
  2. Informix IDS a postgresql