La Terminal

Archive for the ‘Trabajo’ Category

Bueno ha pasado largo tiempo desde que publico algo, pero el trabajo y la vida casado aún no las domino XDD

Ya hay algunas mejoras en el terreno laboral entre ellas nueva laptop =) lo malo es que con Windows Vista =( como ya se imaginarán el migrar implica instalar programas, y cambiar muchos otros por la compatibilidad y más si hablamos de vista.

Hoy me dí unos minutos para ver porque en firebug no trabajaba la instrucción CONSOLE, encontré sin muchos problemas la solución en el siguiente enlace:
http://www.bram.us/2008/08/29/firebug-12-vs-firefox-2-fixing-the-console-is-not-defined-error/

El cual explica que se debe llamar a "window.loadFirebugConsole()" antes de usar la instrucción CONSOLE y listo =P

Solo es necesario cargarlo una vez y realizar las llamadas necesarias a CONSOLE.

Saludos.

Etiquetas: , ,

No me había dado cuenta que hace ya casi 15 días por fin salio una nueva versión de la clase favorita de los que inician con php y los reportes en pdf.

Así es hablo de FPDF de la mano de su autor Olivier Plathey, la versión en cuestión salio el 03 de Agosto de este año 2008 y aunque no la he revisado estas son las mejoras.

v1.6 (2008-06-08)
– GIF image support.
– Images can now trigger page breaks.
– Possibility to have different page formats in a single document.
– Document properties (author, creator, keywords, subject and title) can now be specified in UTF-8.
– Fixed a bug: when a PNG was inserted through a URL, an error sometimes occurred.
– An automatic page break in Header() doesn’t cause an infinite loop any more.
– Removed some warning messages appearing with recent PHP versions.
– Added HTTP headers to reduce problems with IE.

Como siempre no esta de más recordar que es una clase libre y gratuita incluso para utilizar en proyectos donde se consiga un beneficio económico, además esta clase es la base para muchas otras variantes (ver página del blog fpdf).

Enlace para descargar Aquí.

Fuente: Foro fpdf

Etiquetas: , ,

mysql

Normalmente cuando se requiere un servidor de base de datos gratuito y de uso extendido pensamos en MySQL, pero ¿que pasa cuando una aplicación por cuestiones de compatibilidad no puede ejecutarse en las versiones más nuevas?

Eso es lo que ocurrió en un proyecto que se esta llevando a cabo, primero intentamos hacer correr la aplicación en realidad montar la BD (de una versión 4.0.12) en la versión 5.0.5 de Mysql pero debido a la gran cantidad de cambios no fue posible, de hecho se cambio la contraseña para adecuarla a la versión 4.0.12 pero solamente hasta ahí llegamos.

En ese punto me pone a pensar en el poco compromiso que tienen algunas compañías en ofrecer un producto cada vez mejor, es decir, el soporte de la versión 4 de Mysql ya acabo y lo de menos sería entender que están utilizando la versión 4.1 en el programa pero no es una versión más anterior. Pero ni hablar que acá se buscan soluciones y no culpables =P

Para hacer trabajar 2 versiones de Mysql solo necesitamos leer un poco en la documentación y listo, a continuación solo les proporcionare la forma en que se implemento en el proyecto pero existen variantes interesantes que pueden ser de más utilidad.

Enlaces utilizados

2.3 Instalar Mysql en Windows, pasando por todos los temas y subtemas.

No es indispensable la lectura de todo pero ayuda a comprender el funcionamiento.

5.11 Ejecutar más de un servidor MySQL en la misma máquina, pasando por todos los temas y subtemas.

Recomendación:

No se debería agregar el directorio bin de MySQL al PATH de Windows si se están ejecutando múltiples servidores MySQL en el mismo ordenador. Para comprobar esto consulte el enlace al tema 2.3.12. En caso de omitir este paso y el directorio bin de mysql se encuentra en el path el segundo mysql no trabajará.

Ya que los programas cliente y utilidades de Mysql no pueden localizar el archivo my.ini (configuración) y se intenta cargar desde el directorio de Windows. Si lo encuentra la configuración de ese archivo se utiliza para todas las versiones instaladas, en este caso como las versiones son 4 y 5 ocurre un error ante las diferencias.

NOTA: Estos pasos son solo una sugerencia, no me hago responsable de los errores que se puedan originar del mismo. Se probo en 2 versiones de Windows (XP Professional y 2003 Server Business) con una instalación previa y funcional de mysql 4.0.12. La información que muestro corresponde a una configuración, y por lo tanto se debe entender que solo una pequeña muestra de lo que se puede realizar con los archivos de configuración y comandos de mysql.

Instalación:

El tipo de instalación elegida fue por un archivo ZIP por hacer más sencillo (a mí parecer) el proceso.

Una vez que se ha descargado la versión se descomprime y se crea una carpeta, para este caso el nombre a utilizar será (Mysql5) y se ubicará en C:\.

La otra versión también se encuentra en C:\ hasta este paso debemos de tener 2 carpetas con mysql.

C:\

|_ mysql

|_ mysql5

Cada una con sus respectivos subdirectorios y bases de datos. Lo siguiente debería ser la instalación con la instrucción C:\mysql5\bin>mysqld -install desde la línea de comandos, sin embargo aunque se instale se obtendría un error al intentar ejecutarlo. De hecho lo más seguro es que generé un error al intentar instalarlo como un servicio si ya existe otra versión instalada. Más abajo se comenta el porque de esta situación.

Archivo de Configuración:

Las opciones por default son leídas de los siguientes archivos y en el siguiente orden:

C:\my.ini C:\my.cnf C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\Archivos de programa\
MySQL\MySQL Server 5.0\my.ini C:\Archivos de programa\MySQL\MySQL Server 5.0\my.
cnf

En nuestro caso la ruta C:\Archivos de programa\MySQL\MySQL Server 5.0 se convierte a C:\mysql5, como se menciono en la recomendación al inicio en el path de windows no debe agregar la ruta de mysql, ¿pero entonces como le indicamos la configuración al nuevo mysql?

En la carpeta mysql5 encontraremos diferentes archivos INI (configuración), tomaremos el más simple (my.ini) y le haremos los cambios necesarios. Por default el servidor de mysql se instala como servicio con el nombre MySQL y en el puerto 3306, por lo tanto el nuevo mysql debe tener otro nombre y puerto para este ejemplo quedará con el nombre MySQL5 y el puerto 3307. Si no se cambian los valores se obtendrá un error o comportamiento anormal.

Además es necesario cambiar la ruta del servidor de base de datos y el directorio de los datos. El basedir y datadir respectivamente,

  • El primero quedaría: basedir= C:/mysql5
  • El segundo sería: datadir= C:/mysql5/data

A continuación lo guardaremos con otro nombre, para este ejemplo el nombre será my5.ini, en la misma carpeta C:\mysql5

El inicio (ejecución) de mysql puede ser desde la línea de comandos (ver 5.11.1.2) o como un servicio (ver 5.11.1.2) en este caso se instalo y se inicio como un servicio con la instrucción:

C:\mysql5\bin>mysqld –install MySQL5 –defaults-file=C:\mysql5\my5.ini.

Donde la instrucción –install le indica el nombre del servicio que tomará, además omite la lectura del archivo de opciones por default, donde el nombre es mysqld. Ver  5.11.1.2 para más detalles.

Mientras que la instrucción –defaults-file= Obliga  a leer las opciones por default del archivo dado en este caso my5.ini.

Ahora solo falta reiniciar (es Windows xDD) y listo. Las dos versiones de Mysql trabajarán sin problemas, existen configuraciones del archivo INI que permiten trabajar con diferentes versiones y los mismos datos pero eso queda fuera de esta guía, además que no es nada aconsejable.

Si te sirvió deja un comentario 😀 si lo quieres compartir solo cita la fuente o sea este blog 😉

Fuente: Mysql.

Imagen: http://www.lnds.net/images/

Como es normal me tienen trabajando xD pero eso no quiere decir que el blog estará muerto solo que las publicaciones serán algo tardadas.

De momento solo entre para compartir con ustedes la siguiente página:

http://www.parabox.ru/w3chm/

La cual tiene una lista de los estándares del W3C en formato CHM, nunca esta de más tener a la mano la documentación y más si tienen mala memoria como yo xDD

Esta es la lista de temas Generales, donde cada uno tiene a su vez por lo menos un chm. No tienen desperdicio.

  • Document Object Model (DOM)
  • Extensible Markup Language (XML)
  • Graphics on the Web
  • HyperText Markup Language
  • Privacy
  • Semantic Web
  • Technical Architecture Group
  • Web Accessibility Initiative (WAI)
  • Web Services
  • Web Style Sheets

Saludos.

Etiquetas: , , , , , ,

En ocasiones necesitamos que nuestro PDF generado con la clase FPDF o derivadas tengo una mejor presentación con el uso de la fuentes, pero las fuentes que tiene la clase son muy pocas, si revisamos la documentación encontramos que la instrucción SetFont explica lo siguiente:

“Establece la fuente usada para imprimir cadenas de carácteres. Es obligatorio invocar este método por lo menos una vez antes de imprimir texto o el documento resultante no será válido.

La fuente puede ser una estándar o una adicionada via el método AddFont().”

Es decir, las fuentes estándar son aquellas que vienen con la clase y para su uso se debe tener acceso a los ficheros de medida. No podemos usar las fuentes de forma directa.

El método AddFont describe de forma muy clara aunque a la vez escueta la forma de agregar fuentes.

“Importa una fuente TrueType o Type1 y la hace disponible. Es necesario primero generar un archivo de definición de fuente con la utilidad makefont.php.

El archivo de definición (y el archivo de fuente mismo cuando es incorporado) debe estar presente en el directorio de fuentes. Si no puede ser encontrado, es generado el error <Could not include font definition file>.”

Bueno agregar una fuente de acuerdo al Tutorial 7 no es tan fácil como agregarla con un define(‘ruta’), ya que se requiere un fichero de medidas y un archivo de definición de fuente. Si hay otra forma más sencilla adelante expreselo en los comentarios 😀

Añadir una nueva fuente requiere tres pasos para las TrueType (las comunes):
* Generación del fichero de medidas (.afm)
* Generación del fichero de definición de la fuente (.php)
* Declaración de la fuente en el script

En el tutorial esta muy bien explicado y el archivo de la clase viene acompañado con un ejemplo, de todas formas hice la prueba con una fuente y no tuve mayor problema.

Para el ejemplo NO manejo la misma cantidad de pasos pero el resultado es el mismo, además utilizo la siguiente <Ruta: C:\servidor_web\fpdf> y tengo la siguiente estructura de directorios:

servidor_web <localhost>
|_genera_fuente.php
|__ FPDF
|____ afm
|____ doc
|____ font
|____ makefont
|_______ makefont.php
|____ pfm
|____ tutorial

El directorio AFM (Adobe Font Metrics) contiene el programa tff2pt1 del proyecto “True Type Font to Postscript Type 1 Converter“. Puede descargarse desde la página del proyecto o desde la liga de FPDF, antes de descargar cualquier cosa sigan leyendo hasta terminar el paso uno.

El directorio PFM (Printer Font Metrics) contiene el programa pfm2afm una utilidad para convertir ficheros de medidas. Se puede descargar desde la liga de FPDF, por cierto no encontré referencia hacia alguna página oficial de la utileria y la fecha que muestra el archivo es de 1991 😦

El directorio Makefont tiene el archivo makefont.php que genera el archivo de definición de fuente y que podemos utilizar a través de un archivo php.

IDENTIFICACIÓN DEL TIPO.
El paso 1 es identificar el tipo de fuente a utilizar (TrueType o Type1), ya que si se tratase del segundo caso (Type1) ya nos ahorramos algo de trabajo y pasaremos al paso 3, sino es así continuar en el paso 2-b.

Nota: Además de la fuente Type1 se necesita un archivo AFM, si en lugar de este último se tiene un archivo PFM continuar en el paso 2-a.

GENERACIÓN DEL FICHERO DE MEDIDAS.
El paso 2 consiste en generar un archivo AFM (el fichero de medidas).

2-a. Si su archivo de medidas esta en formato PFM se debe convertir con la ayuda de la utilidad PFM2AFM, el enlace en párrafos anteriores.

En una ventana de DOS (si esa pantallita en negro sin soporte para ratón y sin iconos xDD) escribir:
pfm2afm infile [outfile] -a = pfm2afm evanescence.pfm evanescence.afm -a

infile corrresponde al nombre del archivo PFM
outfile corresponde al nombre del archivo AFM que será generado.
El parámetro -a se los quedo a deber 😛
Como resultado tendremos el archivo de medidas en formato AFM.

2-b. Se debe generar un archivo AFM con la utilidad ttf2pt1, el enlace en párrafos anteriores.

En una venta de DOS escribir:
ttf2pt1 -a infile.ext [outfile] = ttf2pt1 -a impact.ttf impact

infile corresponde al nombre del archivo con su extensión TTF (Fuente TrueType)
outfile el nombre que tendrá el archivo de medidas, no es necesario indicar la extensión.
El parámetro -a se los quedo a deber 😛

Como resultado obtendremos una lista extensa como salida en la pantalla y el mensaje Finished – font files created. Se generan dos archivos el AFM que nos interesa y otro con extensión T1A que podemos borrar con toda confianza.

Nota: Las fuentes se encuentran en las respectivas carpetas para evitar problemas de rutas, los archivos resultantes también se generan en las respectivas carpetas.

El tutorial 7 tiene como ejemplo la fuente Comic Sans y la ruta c:\windows\fonts\comic.ttf, la cual no probe pero los invito a intentarlo 🙂


GENERACIÓN DEL FICHERO DE DEFINICIÓN DE LA FUENTE
.
El paso 3 ya que se tiene el archivo de medidas AFM es generar la definición de la fuente con ayuda del archivo makefont.php. Aunque su uso es sencillo tal vez la fuente o el idioma en el que se utilice requiera ciertos ajustes en los parámetros de la función que realiza la definición (Como el uso del símbolo del Euro € o caracteres aún más especiales).

La función MakeFont tiene los siguientes parámetros para su uso.
MakeFont(string fontfile, string afmfile [, string enc [, array patch [, string type]]])

fontfile: Ubicación del fichero .ttf o .pfb.
afmfile: Ubicación del fichero .afm.
enc: Nombre de la codificación. Valor por defecto: cp1252 codificación (Europa Occidental).
patch: Modificación opcionar de la codificación. Vacío por defecto.
type: Tipo de la fuente (TrueType o Type1). Valor por defecto: TrueType.

Como esto es un ejemplo y no me quiero complicar la existencia usaremos lo mínimo de parámetros, para eso genere el archivo “genera_fuente.php” no quedo muy elegante pero todo es cuestión de que ustedes le agreguen una interfaz para seleccionar la ruta y fuente, el fichero AFM y la codificación. NO prometo nada pero si tengo tiempo luego lo mejoro.

<.?php
require(‘fpdf/font/makefont/makefont.php’);
MakeFont(‘c:\\windows\\fonts\\impact.ttf’, ‘fpdf/afm/impact.afm’, ‘cp1252’);

//como la fuente es nativa de windows intente utilizar el directorio y no hubo problemas.

//La ruta con la estructura de carpetas es C:\\servidor_web\\fpdf\\impact.ttf

?.>

Por favor eliminen los puntos antes y después de los signos de interrogación, lo puse porque wordpress me edita los códigos 😛

La salida del archivo es la siguiente:
Font file compressed (impact.z)

Font definition file generated (impact.php)

Recuerden solo se genera el archivo Z si tienen activa la librería de compresión ZLIB. El activarla queda fuera de esta explicación, esa es otra historia XD

Los archivos generados deben buscarlos en la misma carpeta donde tienen el archivo genera_fuente.php o en su caso el archivo que hace la llamada a la función MakeFont.

Bueno ya tenemos 2 archivos (impact.z, impact.php), lo menos que pueden obtener es 1 archivo (impact.php).

Ahora hay que copiar los ficheros generados (menos el AFM) en el directorio de fuentes (de la clase NO de windows). Si el fichero de la fuente no pudo ser comprimido (impact.z), copie el .ttf o .pbf en lugar del .z.

Como en mi caso se genero el archivo comprimido (Z) solo copie los archivos impact.z y el archivo impact.php. Si no me hubiera generado el comprimido habría tenido que copiar los archivos impact.ttf y el archivo impact.php.

Nota: Si por alguna razón pierden el archivo Z y no tienen, no saben o no quieren instalar la librería ZLIB editen el archivo PHP y cambien la línea $file=’impact.z’; en lugar de hacer referencia al archivo Z debe hacer referencia al archivo TTF.

En el archivo PDF solo hay que establecer las fuentes a utilizar e indicar en que momento.
El método AddFont puede llevar por lo menos un parámetro (El nombre de la fuente) para trabajar.

El nombre de la fuente la puede obtener al ver las propiedades de la misma (en windows Abrir), si el nombre no es correcto la fuente no se cargará y el pdf generará un error. Como referencia revisen la fuente que incluye la clase calligra.ttf (nombre: Calligrapher).

$pdf->AddFont(‘Calligrapher’,”,’calligra.php’); //Fuente de ejemplo que incluye la Clase.
$pdf->AddFont(‘Impact’,”,’impact.php’); //Fuente de windows convertida con el proceso.


$pdf->SetFont(‘Impact’,”,15);
$pdf->Cell(0,4,’Soy Una Fuente muy Impactante’,0,1,’C’);

$pdf->Ln(10);
$pdf->SetFont(‘Calligrapher’,”,25);
$pdf->Cell(0,4,’Mi caligrafía puede mejorar’,0,1,’C’);

Anexo el mismo documento PDF del ejemplo el cual usa dos fuentes incorporadas Calligrapher <fuente demo del zip> y la fuente Impact nativa de Windows.

Click en la imagen para ver más grande.

Uso de Fuente Impact

Uso de Fuente Calligrapher

Archivo de Ejemplo click para bajar.

Si alguien desea los archivos de la fuente Impact o los cambios al archivo de ejemplo por favor deje un mensaje.

Saludos.

Etiquetas: , , ,

Hace muchos post comente algo parecido en este mensaje, lo realmente increíble es que exista gente que no entiende.

Ayer recibimos una llamada de un cliente que nos solicitaba instalar una red entre 3 computadoras, sin embargo la secretaría (que decía era nueva) nos alegaba que el servicio de instalación ya se había realizado desde al año pasado por una persona de nuestra compañía, después de preguntar en la oficina me explicaron que fue un empleado eventual y que el trabajo se realizo sin problemas y ellos ya habían pagado.

Entonces le cuestione cual era su verdadero problema, la chica no sabe mucho pero después de que me confirmará que tenia acceso a Internet supe que no era la Red como ella decía en un principio ella me explico que deseaba compartir unos archivos y compartir otras cosas entre los equipos.

Le explique que eso consistía en otro servicio ella ante la duda le pregunto a su jefe y este último me decía que el compartir carpetas y otros recursos era parte de la red por lo que él no pagaría por otro servicio, es decir, este individuo en su momento no expreso que deseaba compartir carpetas, impresoras y vayan a saber que otra cosa (al parecer también Escritorio Remoto) lo que no hubiera sido un problema.

Pero la instalación de la Red se realizó desde Octubre y ahora en Enero quiere que se haga ese servicio sin costo porque el Señor considera que Un servicio es igual a soporte por un año (relacionado con la Red).

La verdad no deja de sorprenderme la idea (quiero creer)  errónea que tiene la gente de lo que es un servicio y hasta donde llega el mismo. Y es que como a muchos que están en el medio uno se encuentra de todo. Ya me imagino si hubieramos accedido a su petición, más adelante iba a pedir que se le revisará la impresora porque esta en red y es parte del servicio no ¿…?

Lo peor son aquellos clientes que después de realizado el servicio tardan para liquidarlo :S vamos que acaso es tan complicado entender que nuestra paga sale de los trabajos que realizamos en sus empresas.

Bueno ya me desahogue que era lo importante je, je.. 🙂 un saludo a todos.

Bueno salio antes que el Service Pack que interesa más (el de Vista o será el de XP) pero no por eso hay que ignorarlo, de hecho salio ayer pero era difícil acceder a la página de descarga.

La información no destaca nuevas funcionalidades y sí mejoras y correcciones de errores detectados hasta la fecha, centrándose en la “estabilidad, comportamiento y seguridad de las aplicaciones”

SP1 se enfoca en los temas más importantes de nuestros consumidores basados en sus propias experiencias y la directa retroalimentacion asi como el reporte de errores de las herramientas. Puede esperar:

  • Estabilidad. Usando datos del sistema de reporte de errores Dr Watson se han arreglado aquellos problemas principales de cada aplicación en  Office 2007.  SP1 tambien mejora la estabilidad de componentes de servidor y entrega una mejor compatibilidad con Windows Server® 2008.
  • Rendimiento. El SP1 de 2007 Office mejora el rendimiento en todas aplicaciones y servidores.
  • Seguridad. Se incorporaron características avanzadas en seguridad, además el SP1 ofrece a usuarios del hogar y oficina mejor protección contra software malicioso y su privacidad.

Más detalles en el whitepaper del producto, el cual como es obvio esta en docx.

De momento prefiero seguir con la versión 2003, de parte del trabajo se tienen las licencias del 2007 pero ni ganas de cambiarlo 😛 vamos que no le encuentro muchos cambios que me sean útiles.

Nombre del archivo:    office2007sp1-kb936982-fullfile-es-es.exe
Versión:    1.0
Artículos de Knowledge Base (KB):    KB936982
Fecha de publicación:    08/12/2007

Sitio de descarga, en un periodo de 3 a 6 meses pasará a ser una actualización automática, curioso el dato de la fecha.

Fuente: Engadget Español.


julio 2017
L M X J V S D
« Feb    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Blog Stats

  • 1,100,030 hits

FeedBurner

Flickr Photos