La Terminal

Archive for the ‘Testeo’ Category

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/

Últimamente reviso los portales de empleos para curiosear y tal vez encontrar ese trabajo que me necesita (hoy amanecí con el ego muy inflado). Pero continuemos con lo importante..

Primero busque en Monster México el cual no me termina de convencer ya que las ligas apuntan a chambanet en la mayoría de los casos, tratando de revisar una de esas ligas me devolvía un error la página de chambanet.

Trate de cargar la página y me apareció la siguiente imagen
Aviso

Una vez que presionamos click se carga otra pantalla de bienvenida y de inmediato aparece el “Portal del Empleo”, entiendo que a veces es difícil poner nombres pero no se les ocurrió algo mejor :S

Nuevo portal

Una vez dentro hay buenas y malas noticias.
Las buenas

  • Cuentan con FEED 🙂 es necesario consultar esta página y agregar la url según el estado.  Para Veracruz la dirección es http://www.empleo.gob.mx/solicitante/rss/VER.xml
  • Consultas por teléfono y otros dispositivos vía web.
  • Los tipos de búsquedas (8 en total) van desde lo general hasta lo específico, ahora se puede buscar empleos para personas con discapacidad, para adultos mayores, incluso en otras bolsas de trabajo, etc.
  • Ahora existe una carpeta personal para organizar las ofertas de empleo.Carpeta Personal
  • Por fin me reconoce los datos, en la versión anterior (chambanet) no me dejaba ingresar con mi anterior usuario, intente con el mismo en esta versión porque no hay aviso alguno de que haya que registrarse de nuevo pero tampoco me dejo ingresar. Tuve que crear otra cuenta y no he tenido problemas con el logueo.

Las malas (que son muchas)

  • En Firefox el sitio da problemas con el login de usuario. Tuve que ingresar en IE7 :S
  • Al parecer cambiaron el aspecto estético y un poco la forma en que el usuario interactúa con el portal.
  • El Feed para Veracruz no regresa NADA pero en la página si hay empleos :S
  • El registro sigue siendo algo tedioso, no me permitió poner mi nombre con acentos :S
  • Al parecer la sesión no se mantiene 😦 cambie de página y me pidió mis datos de nuevo en cada una de las opciones, lo cual es muy MOLESTO.
  • No hay indicios de haber iniciado la sesión en las páginas, ni siquiera un enlace para cerrar la sesión ya iniciada.
  • Tampoco existe una imagen o vínculo para acceder a la página de los feeds, recuerden que pocos se toman el tiempo para buscar entre varias decenas de páginas.
  • Aún no está listo la totalidad del sitio, el directorio me regresa una página 404 personalizada :p Por cierto el mensaje me pareció curioso (Abra la página principal de WebBuilder y busque vínculos a la información que desea.)
  • En el caso de la Carpeta Personal algunas opciones como Modificar mi perfil laboral nunca cargaron 😦
  • Los filtros son insuficientes ya que solo permite elegir Delegación o Municipio y una palabra clave, mostrando los resultados desordenados en las fechas.

Para terminar tienen planeada una Feria Virtual de Empleos el día 31 de Marzo del año en curso, aunque no ofrecen muchos detalles. Habrá que visitar el sitio para enterarse mejor.

El sitio tiene mejoras pero tampoco para olvidarse de él y pasar a otras cosas, existen cientos miles de personas que buscan trabajo y una buena herramienta como este portal siempre debe mejorar.

La página oficial para comentarios, quejas y sugerencias es: http://www.empleo.gob.mx/wb/BANEM/BANE_quejas sino carga a la primera intenten de nuevo :p

Recuerden quejas y sugerencias respecto al portal:
contacto_portaldelempleo@stps.gob.mx
empleo@stps.gob.mx

Saludos.

P.D. Envíe un email al portal para que conozcan mi opinión personal y las de aquellas personas que lo han utilizado o piensan usarlo.

Después de leer el comentario de Luis me puse a probar unas cosas que tenía ganas de agregarle a la clase y el resultado fue este pequeño post, que espero sirva de algo, aunque sea de referencia xD.

El ejemplo básico de fpdf es el siguiente:

<?php
require(‘fpdf.php’);

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont(‘Arial’,’B’,16);
$pdf->Cell(40,10,’¡Hola, Mundo!’);
$pdf->Output();
?>

Si deseamos cambiar la orientación del papel, tamaño o unidad de medida solo tenemos que indicarlo en los parametros que se pasan al constructor.

FPDF([string orientation [, string unit [, mixed format]]])
Por defecto el constructor tiene los siguientes valores:
FPDF($orientation=’P’,$unit=’mm’,$format=’A4′)

Si queremos generar un pdf en forma horizontal con una hoja tamaño legal y con dimensiones en centímetros tendríamos que pasar los siguientes parámetros:
$pdf=new FPDF(‘L’,’cm’,’Legal’);
Orientación:
* P o Portrait (normal) por defecto
* L o Landscape (apaisado)

Unidad
* pt: punto
* mm: milimetro por defecto
* cm: centimetro
* in: pulgada

Un punto es igual a 1/72 de pulgada, es decir cerca de 0.35 mm (siendo una pulgada 2.54 cm). Esta es una unidad muy común en tipografía; los tamaños de fuentes son expresados en esa unidad.

Formato (texto sensible a minúscula/mayúscula)
* A3
* A4
* A5
* Letter
* Legal

Un formato personalizado en la forma de un array de dos elementos conteniedo el ancho y el alto (expresado en la unidad dada por unit).

La clase tiene por defecto una serie de opciones, pero eso no es una limitante para ampliarlas =) Por ejemplo si quisieramos manejar un tamaño no contemplado en la clase tendremos que agregar la descripción y luego comparar el valor recibido.

La sección es Formato de Página:

//Page format
if(is_string($format))
{
$format=strtolower($format);
if($format==’letter’)
$format=array(612,792);
elseif($format==’a4′)
$format=array(595.28,841.89);

elseif($format==’mcarta‘) //media carta
$format=array(311,396);

$this->fwPt=$format[0];//ancho del formato de página en puntos
$this->fhPt=$format[1];//alto del formato de página en puntos
}

Con eso debería bastar para tener otra formato de página, en el caso que se desee pasar un tamaño personalizado, el constructor tendría que alterarse un poco más.

Recibiendo los valores de ancho, alto de la página y válidando el formato con la cadena recibida como en el caso de arriba, asignado al Array los valores de ancho y alto.

FPDF($orientation=’P’,$unit=’mm’,$format=’A4′, $wcustom=0, $hcustom=0)

elseif($format==’custom’) //Personalizado
$format=array($wcustom,$hcustom);

y lo demás es historia je, je.. Por lo tanto el código al inicio del post solo cambiara en una línea: $pdf=new FPDF(‘P’,’cm’,’mcarta’);

Fuente: fpdf.org, tutorial constructor.

P.D.  Obtención de medidas

Pulgada – 2.54 cm
Punto – 1/72 pulgada
Punto – 0.35 mm – 0.03527 7777 (valor tomado en los calculos)
Por defecto es mm

Ejemplo Tamaño Carta medidas w 21.59| h 27.94.
612 x 72 = 44064
792 x 72 = 57024

21.59 / 612 = 0.03527 7777
27.94 / 792 = 0.03527 7777

21.59 / 0.03527 7777 = 612.0000135
27.94 / 0.03527 7777 = 792.0000175

Tomando el valor en mm las medidas aumentan un poco, queda a criterio de cada uno

21.59 / 0.035 = 616.86
27.94 / 0.035 = 798.29

Media Carta
10.79 / 0.03527 7777 = 311 – 310.9606368
13.97 / 0.03527 7777 = 396

¿Recuerdan que el post anterior menciona la 8va maravilla solución que atrapo a mi jefe inmediato? Se trata del framework Ext JS, el cual se comenzó a desarrollar a principios del 2006 por Jack Slocum como un conjunto de extensiones para la librería Yahoo! User Interface (YUI) para los amigos (la cual sigue sin convencerme), estas extensiones recibieron el nombre de yui-ext.

El otoño del 2006 la librería gana tanta popularidad (con su versión 0.33) que cambia su nombre a Ext (con licencia BSD) como un reflejo de su madurez e independencia como framework.

En 2007 se forma una empresa y se liberan las versiones 1, 1.1 y para mediados de este mes (noviembre) se libera la 2.0 (aunque la RC1 ya esta disponible). Fuente: FAQ Ext Js.

Actualmente tiene una licencia dual (LGPL y comercial)  y un costo accesible desde un desarrollador ($289 usd), vamos sale más barato que un Wii, XBOX o PS3 XDD

Así que ahora tocar estudiar JSON y el dichoso bicho =S

Entre las bondades de este framework tenemos:

  • Modelo de Componentes.
  • Modelo de Contenedores.
  • Capas.
  • Grid.
  • PlantillasX.
  • Vistas de Datos.
  • Sirve de puente entre las librerías JS más usadas (Prototype, JQuery, YUI). Debido a que se inicio como una extensión de YUI esta presenta una cierta ventaja de compatibilidad respecto a las otras dos.

Un buen ejemplo de lo que se puede hacer con este framework lo tenemos en la documentación de su API.

Ejemplo del Grid: http://www.sk-typo3.de/index.php?id=345.

Ejemplo de Acordeón, Tabs,  Paneles: http://aariadne.com/accordion/.

Nota: Es un framework muy nuevo por lo que no encontrarán mucha información fuera del foro y algunos blogs. Muchos ejemplos son de la versión 1.1 que tienen algunos problemas con la versión 2.0, por lo que es mejor comenzar con la última versión. Aunque si quieren adaptar alguno de los ejemplos es buena referencia la Guía de Migración entre versiones 1.x a 2.0 

Soporta los navegadores:

  • Internet Explorer 6+
  • FireFox 1.5+ (PC, Mac)
  • Safari 2+
  • Opera 9+ (PC, Mac)

Lista de empresas que lo utilizan:

Sitio Oficial: http://extjs.com/.

Aprender es divertido.. bueno cuando tienes a alguien que te oriente… esta bien cuando encuentras como hacer las cosas después de navegar por Internet y claro leerte algunos libros.. así comencé con AJAX o al menos eso creo ya que la aplicación hasta donde tenía entendido solo usaría php y JS para las validaciones y otras funcionalidades “básicas”.

Siendo realistas el generar soluciones nosotros mismos nos da la “facilidad” de saber que “cosa” hace “que” en los cientos de líneas de código de nuestra aplicación. Sin embargo es invertir mucho tiempo que no tenemos o que podríamos invertir en aquel juego o la novia =P

Todo eso lo entendió mucha gente hace mucho tiempo y las soluciones han ido apareciendo poco a poco, cada nueva solución es mejor que la anterior (o al menos lo intenta). Hace poco después de leer algunas referencias me decidí a usar JQuery, pero el destino me tenia deparado otra cosa ya que me pidieron una forma que diera de alta pedidos con su respectiva lista de productos (alta, baja, edición, que cocine, que saque la basura, etc..).

El problema es que no soy un ducho en el tema, así que probando y revisando código logre hacer algo más o menos decente pero con cientos de línea de código que me dan miedo nada más en pensar el cambiar el modo de interactuar con la forma.

Así que de repente mi YO interior reacciono, me hizo darme cuenta que el desarrollo en PHP cada vez tendía más a CERO :S que invertía mucho tiempo en JS aprendiendo funciones, sintaxis y un largo etcétera que si no fuera Internet una gran biblioteca estaría frito. Tengo que aceptar que ver un ejemplo ahorra mucho tiempo, en lugar de ver la instrucción “simple”.

El líder del proyecto y jefe inmediato necesitaba implementar un comportamiento extra a un combo box (lista de opciones) y se encontró con un framework el cuál comentaré después, el detalle es que le encanto y ahora tocará cambiar varias funcionalidades que se habían desarrollado por las soluciones del framework.

Tengo opiniones encontradas por mi cuenta, no me agrada que desechen lo que hago nada más porque otra solución se ve mejor, pero después de darlo un vistazo y las capacidades de la misma tengo que aceptar que facilitan el trabajo y por fin tendré más tiempo para mí 🙂 (y ella 😉 ).

Y que tal es su día a día en las actividades de sus respectivos trabajos.

Etiquetas: , ,

Ok tampoco es para emocionarse, solo es un ejemplo “sencillo” comparado con tanto recurso AJAX suelto por ahí.

Pero me encanta generar mis propias soluciones, aunque muchas veces termine cambiándolas por otro recurso.

El ejemplo lo pueden consultar en el siguiente enlace:

http://jachable.host.sk/tisoft/alta_pedido2.php

Dejo una imagen de referencia (Click para agrandar)

Lista de Productos

Pueden utilizar las siguientes  claves para agregar los productos (solo existen 2 en la BD).

Claves: 123123, 123456 en el input de Clave de Producto.

Si quieren realizar una búsqueda seleccionen una forma de buscar y escriban un criterio si existen resultados podrán consultarlos en el SELECT Resultado de la Búsqueda. La imagen les puede servir para escribir criterios de búsqueda.

El script es sencillo pero me hizo dar un par de vueltas, ya que al recuperar la información de la BD y agregarla a los campos me devolvían un error UNDEFINED, ojalá alguien me pudiera orientar.

Se que faltaría la explicación mientras tanto dejo el enlace a los códigos que si no mal recuerdo no deberían expirar, o en el peor de los casos desaparecer después de un mes je, je.. si es así por favor avisen para volverlos a subir.

Espero le sirva de referencia a alguien =)

Saludos y espero sus comentarios.


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