OWarux

viernes, marzo 31, 2006

Mi primer post

Este será mi primer post en este Blog, de mi amigo y nefasto compañero Owar, para fines de prueba que baste con estas lineas y el brindis será despues,
Salud!

Lecter dice...

 Posted by Picasa

jueves, marzo 30, 2006

PROYECTO=$InCopy_Parser_[2];


Iniciando algunas funciones

Para el desarrollo de este proyecto, primero tengo que ver como extraer el texto de los documentos INCD, para lo cual, tengo que parsear cada archivo, y el resultado, siendo el contenido de la nota, guardarlo en la base de datos de MySql.

La forma más fácil que encontre para parsear el documento es con el codigo:

<?php
echo "Este es el contenido de un documento de InCopy <hr>";
$documento=new DomDocument();
$documento->preserverWhiteSpace=false;
$documento->load('mi_nota.incd');
$cadena_xml=$documento->saveXML();
echo $cadena_xml;
?>


Este codigo funciona, porque antes de este proyecto ya lo habia probado cuando estaba estudiando PHP, pero al hacerlo en casa (mi laboratorio de sistemas), marcaba error "PHP Fatal error:  Class 'DOMDocument' not found in test1.php". Por lo tanto el error estaba en mi servidor, no en el código. Dicho servidor esta corriendo en una modesta pc con un procesador Athlon XP con 512 de Ram, en el cual instale la version de Mandriva Linux 2006 Free Edition. Mis servidores anteriores los habia estado instalando con Mandrake 10.0 y no habia tenido este problema.

Despues de navegar en busca de referencias encontre que en las versiones de PHP4 hay librerias especificas para el manejo de XML y DOM, pero en PHP5 (que es la versión que viene en Mandriva 2006) ya viene compilada por default (al menos eso dicen), pero con este error veo que no es cierto, por lo tanto habia que buscar las librerias de php-dom y php-xml para esa version en paquetes RPM, las baje a mi server y las instale, pero el paquete php-xml marco un error donde decia que no podia descomprimir un archivo, pero al final dijo que si instalo el paquete. Asumiendo que estaban instalados ambos procedi a ejecutar de nuevo mi archivo php y esta vez funciono sin ningun problema. Ningun problema en ese momento.

Las codificaciones de caracteres que tienen estos archivos INCD son principalmente "iso-8859-1", "UTF-8" y uno que otro "UTF-16", los mas importantes para nuestro sistema son los dos primeros.

Pues bien, cuando probe pro primera vez utilice un archivo codificado en "iso-8859-1", pero cuando probe con uno codificado en "UTF-8" me dio muchos caracteres extraños, esto por que me los mando en "iso-8859-1" siendo en realidad "UTF-8".

De nuevo a investigar, y encontre que existen en PHP dos funciones denominadas utf8_decode() y utf8_encode(), la primera pasa de "UTF-8" a "iso-8859-1" y la segunda hace lo inverso, asi que no habia problema, para los archivos codificados en UTF-8 solo tenia que modificar mi archivo php de la siguiente manera:

<?php
$documento2=new DomDocument();
$documento2->preserverWhiteSpace=false;
$documento2->load('mi_nota_utf8.incd');
$cadena_xml2=$documento2->saveXML();
$new=utf8_decode($cadena_xml2);
echo $new;
?>


Esto deberia funcionar, pero en ese instante no lo hizo, ¿Que pacho? Pues bien, despues de horas de buscar, todo apuntaba a un problema en las librerias de PHP, dado que las funciones estan contenidas en php-xml, recorde que habia marcado un error al instalarla, asi que procedi a buscarla de nuevo en otro sitio, la instale y esta vez no dio error alguno durante la instalacion.Esto se ve logico, pero creanme, me tarde algunas horas en dar con el chistesito. Ya lo decia el emperador Marco Aurelio "Principios basicos... Simplicidad".

Después de esto, probé de nuevo el código y esta vez funciono.

Así que después de este pequeño éxito, me retiro a descansar un poco, que ya son las 6 de la mañana. Dudas, sugerencias, comentarios o donaciones son bien recibidas.

[owar@owarux ~]$echo "Buenas noches";

miércoles, marzo 29, 2006

Linux en el iPod

Tienes un ipod?, eres usuario de Linux?, esto te interasará, como hacer que tu ipod funcione con Linux, seria una buena forma de experimentación, pero por lo pronto mi iPod lo dejo como esta, hasta ahora no tengo queja de él, y aun siendo un iPod nano, no se me ha rayado mucho la caratula como dice por ahí.
 
El proceso para instalar Linux en el iPod es el siguiente: http://www.macuarium.com/cms/macu/pruebas/linux-en-tu-ipod.html
 
[owar@owarux~]$Hasta_la_proxima

martes, marzo 28, 2006

PROYECTO=$InCopy_Parser_1;

Planteamiento
En nuestro sistema de producción, manejamos como formato para los archivos de texto, el "INCD" que es formato propietario de Adobe InCopy, que junto con InDesign es nuestra suite de trabajo editorial.

Cada nota, a la cual de ahora en adelante manejare como archivo, desde su origen hasta su impresion, pasa por diversos elementos, ya sea el autor o un corrector; además de pasar por varias carpetas en el sistema de produccion.

Nuestro servidor de archivos principal (un servidor Dell con SO Mandrake 9.1, Samba) tiene su estructura de carpetas predetermindas, con sus respectivos permisos de usuario, para evitar accesos indeseados, ademas de tener programados ciertos servicios para agilizar el trabajo y realizar limpieza en la estructura de un dia para otro (esto mediante scripts .sh y cron).

Por aquello de la Ley de Murphy  lea!!, he desarrollado un servidor que funciona como mirror (espejo), asi que cada 20 minutos, hace una copia de los datos del server original (mediante Rsync), y asi tenemos una copia de datos por cualquier emergencia.

Los editores ocupan el Adobe InCopy para todo su trabajo, pero como no es el unico programa que utilizan necesitan maquinas con suficientes recursos, y los reporteros y correctores solo necesitan vaciar el texto en el sistema, para lo cual asignarles una maquina potente para el uso del InCopy significaba un gasto enorme, además de que tenemos aún suficientes máquinas con win9x que funcionan muy bien, pero que no soportan el Adobe InCopy.

Para este problema desarrolle un programa en Delphi, que no demanda muchos recursos de la maquina, se conecta a las unidades de red de los servidores, corrige ortografia y lo más importante, guarda en formato de InCopy, que es básicamente un archivo XML. Así, aprovechamos las maquinas que se tienen y con el programa propio, al cual llamare CapCopy, automatizamos las tareas, porque ya tiene predeterminados las carpetas por seccion y al guardarlo asigna el formato de nombre de archivo que nosotros utilizamos para su rapida identificacion.

Ahhh, pero algo que hace Capcopy me recuerda al RootKit de Sony, ya que guarda automaticamente una copia en otro servidor (el cual no es ni el original ni el mirror) para tener un archivo historico de todas las notas que hemos utilizado, como si fuera mi InCopyteca personal, y que ademas sirve cuando alguien pierde sus archivos o se los borran.

Pues Bien, después de esta breve explicación, el proyecto InCopy_Parser consiste basicamente en:

* Crear una base de datos en MySql donde se almacenaran todas las notas de cada dia de edicion, no importa si se publicaron o no, siempre y cuando esten en el sistema original.

* Mediante scripting se planea hacer mediante un servicio (cron) que a determinada hora, todas los archivos de InCopy sean parseados (por ser XML) y el texto obtenido sea guardado en MySql, asignando tambien fecha y seccion, entre otros datos. Originalmente Capcopy se conectaria al server de Mysql y guardaria la copia alla, pero implicaba muchos cambios estructurales.

* Ya con la DB en MySql, hacer un servidor web con Apache y PHP para poder accesar las notas y sobre todo poder buscarlas mas rapido, organizandolas por seccion, fecha, autor o contenido. Un servicio de consulta para archivo historico.

Ese es el planteamiento básico, así me retiro a seguir buscandole solucion.

[owar@owarux~]$Continuara

Booting

Este sitio lo tengo pensado para ir anotando todas las ideas y/o avances
concernientes a mi trabajo con computadoras. Actualmente trabajo en un
periodico de Veracruz, México, llamado El Dictamen. Estoy en el
departamento de Electronica, y mi tarea principal es la administracion
de los servidores que tenemos aqui, principalmente en Linux. Comforme
vaya escribiendo esto, ire dando mas detalles.

Este post es para plantear las reglas básicas de los temas que trataré.

Como son varios los proyectos que tengo en mente, y como no podre
explicar la necesidad y el desarrollo de un solo proyecto en un solo
post, lo que hare para identificarlos es poner a cada post como titulo
el nombre del proyecto seguido de un numero, y como subtitulo la fase de
desarrollo actual, asi se podra dar cantinuidad a todos los proyectos.

Si es un comentario o algo relacionado con linux, pero no tenga nada que
ver con los proyectos actuales, simplemente en el titulo no llevara la
palabra proyecto.

Basicamente eso es todo.

[owar@owarux]:#Empezamos

lunes, marzo 27, 2006

Parseando xml

Hoy he tenido una tarde de locos, porque necesitaba parsear unos documentos con las funciones de PHP, utilizando la clase domDocument(), y cuando ejecutaba el script siempre me marcaba el error de  "Clase no encontrada domDocument()".... arrgggg.......
parece que encontre la solucion, pero luego la escribo que ya es tarde y tengo que irme al trabajo. >:o