Noticias: nuevos sitios web y blogs

news_icon

Hacía tiempo que no escribía por aquí, a parte de mi web portfolio de programador php freelance, ahora también hago videojuegos, bueno ,en realidad desde hace unos 3 años de forma profesional, monté XIXGAMES y además doy servicios de programación de videojuegos en programadorvideojuegos.com (otro caso práctico del framework zenphp).

El último proyecto que hice con zenphp fué una base de datos para pacientes ,una aplicación web 2.0. Antes de esa, construí el portal de videojuegos flash Arkatia.com

Como véis , zenphp sigue funcionando, sigo usándolo, es algo que me llevó unos años y he podido comprobar que con el paso del tiempo, es fácilmente adaptable por estar escrito de forma general, se puede adaptar a PHP6 de forma sencilla, quizás escriba un artículo acerca de ello :)

Seguiré usándolo por ahora, es de las mejores herramientas que he creado hasta ahora. Quizás debería mejorarlo con más código automático, ya veremos…

 

Compártelo

Aplicaciones web escalables con potencialidades sin límites

Escabilidad: Sistema de aplicaciones Atómico

Cuando empecé a programar en PHP allá por el año 2005 ya pensaba que no quería mezclar código HTML con PHP, es por esto mismo que los creadores del lenguaje PHP creyeron que era mejor si se utilizaban objetos, capas, separación, jerarquías, etc. , es decir, su deseo era crear algo más parecido a C y C++, igual que yo con PHP y este framework. En definitiva, estos lenguajes comparten características, en concreto dos muy importantes: escabilidad y potencialidad. Continue reading

Compártelo

Consultas avanzadas y plantillas simples

Cuando tenemos un sistema de aplicaciones web multidominio, las tareas como comprobar si un fichero existe cuando está en otro dominio virtual se pueden complicar.

Con el framework zenphp es fácil evitar el problema enfocándolo de una manera práctica y sencilla, he aprendido muchísimo desde que empecé con él en el año 2005, este truco os lo regalo, como todo lo que he hecho en mi trabajo :)

Veamos la solución al problema con un ejemplo sencillo: tengo que poner una imagen de miniatura en una parte de la web en cada dominio, pero el usuario es posible que no haya subido ninguna imagen de miniatura y si no lo ha hecho debemos crear un “thumbnail” famoso, pero,..y aquí viene la cuestión del millón de dólares…¿cómo podremos hacer la comprobación de existencia de un fichero si los almacenamos en el servidor principal que es virtual y no queremos crear ningún servicio web porque no queremos perder tiempo?

Lo primero que tenemos que hacer es crear una plantilla HTML con una etiqueta genérica del sistema de plantillas de zenphp (basado en una simple substitución de etiquetas entre #almohadillas# desde un array) de forma que el atributo src será de la forma:

<img src=”http://www.Mi_Dominio.es/#foto1#” width=”290″ height=”135″/>

bien, podéis fijaros que el dominio utilizado es donde reside nuestro almacén de imágenes, y que se restringe a un ancho y alto para mayor seguridad.

El siguiente paso es evidente, vamos a ir al visualizador (concepto mezcla de controlador/vista del patrón mvc), en este caso el de productos, la función que muestra el listado de productos, donde encontraremos en su lista de campos una modificación de foto1 por

if(miniatura<>”,miniatura,id) as foto1

así, le decimos a mysql: si ves que hay miniatura, quiero la miniatura, en otro caso el id de producto, pero lo llamamos en cualquier caso foto1 a este campo, tal como decía en la plantilla HTML.

Ahora, sabremos si el usuario ha usado una miniatura con una simple condición

[php]

if (is_numeric($dato[‘foto1’]))
$dato[‘foto1’] = “img/{$dato[‘foto1’]}/290/135/”; //redimensionada con la original
else
$dato[‘foto1’] = “fotos/thumbs/{$dato[‘foto1’]}”; //miniatura del usuario

[/php]

Lo cual viene a ser, que si es un ID, no hay miniatura y utilizaremos un script básico de creación de thumbnail (con redirección al nuevo fichero creado al terminar la operación de generación) y en otro  caso, muestra la miniatura.

Observar que en la generación de thumbnail con PHP se utiliza como parámetros el ID del producto para extraer la primera imagen y el tamaño, es decir, alto y ancho (290×135).

aquí está la función para crear el thumbnail:

[php]

/**

* Construye una imagen a partir del id de un producto
*  * @param array $datos  */

function img($datos=null){
$foto = $this->padre->bd->seleccion_unica(“foto1 from productos where id=”.intval($datos[0]));
if (!$foto) die(“No existe la imagen”);
//existe el thumbnail?
$w  = isset($datos[1])&&$datos[1]<600&&$datos[1]>20?abs(intval($datos[1])):101;
$h  = isset($datos[2])&&$datos[2]<600&&$datos[2]>20?abs(intval($datos[2])):100;
if (!file_exists(ZF_DIR_PPAL.”fotos/thumbs/$w$foto”)){

//crear el thumbnail

require_once(ZF_DIR_LIBRERIAS.”clase_zen_Imagen.php”);

$zi =& new zen_Imagen(ZF_DIR_PPAL.”fotos/$foto”,ZF_DIR_PPAL.”fotos/thumbs/$w$foto”);

$zi->redimensionar($w,$h);

}

//Redirigir a la imagen thumbnail

header(“Location: /fotos/thumbs/$w$foto”);

}

[/php]

Espero que os sirva y os lo paséis tan bien como en mi caso programando 😉

Compártelo

Artículo en Novática sobre zenphp

He aparecido varias veces en esta revista con los proyectos que presenté en los concursos de software libre.

Como nunca he publicado mi artículo extendido sobre zenphp en la revista, aquí os muestro algunos detalles del mismo.

Tengo que decir que los editores de esta publicación son excelentes, tras varios correos fuimos depurando el artículo y gracias a su creatividad, concretamente de Llorenç Pagés (que actualemente trabaja para la misma empresa que uno de mis mejores amigos :D), fuimos elaborando el resultado del que os muestro una intro :)

está en la revista nº195 de Ati – Novática,página 58 (septiembre-octubre Año XXXIV), lo que se puede hacer con este framework está en mi web de presentaciones como programador php : Juan Belón

Compártelo

Gracias ati por Novática

¿Sabéis?

Ayer llegué a casa,… abrí el correo (el físico xD) …y me encuentro un sobre grueso…como remitente: ati, entro en casa, abro el sobre…

Es un año entero de ati – Novática (2009) ¡¡gracias!! :)

Creo que me lo regalaron por mi mención en el proyecto del año pasado, lo iba a comentar en mi blog de programación de webs, pero aquí tiene más sentido jeje como dice mi amigo Antonio,

antonio:
se ve que te tratan bien

jajajaja :)

Compártelo

XCSS : reinventar la rueda del CSS dinámico

En Febrero del 2008 diseñé una clase llamada XCS que utilizaba PHP para generar CSS dinámicamente, con la posibilidad de utilizar variables dentro del mismo fichero de reglas de estilo para hacer webs con contenido modificable fácilmente.

Hace poco he encontrado el “primer framework CSS orientado a objetos” como lo nombra a sí mismo Anton Pawlik su autor, http://xcss.antpaw.org/ y que hace precisamente eso,…sin embargo ha tenido mucho éxito :)

A pesar de su sencillez, (la clase principal no es muy complicada) no se diferencia demasiado de la que escribí basándome en otra al mismo tiempo…aunque no la he llegado a usar como programador php

Compártelo

Más Documentación sobre Ingeniería del Software

He estado subiendo todos los documentos que tenía en la Forja a la web de SlideShare, además de algunas charlas que he presentado, iré subiendo conforme vaya haciendo nuevas.

Por ejemplo he subido una presentación llamada “Depurando Javascript con Firebug“:

e incluso la memoria del proyecto:

Si queréis mucha más información sobre Usabilidad y Arquitectura de la Información orientada a aplicaciones web, pasaros por la web Programador PHP.org.

Compártelo

Comparativa ATK Framework – zenphp framework

atk_vs_zenphp

Acabo de leer un artículo de Ivo Jansch, un profesional de Oracle diciendo que empresas de todos los tamaños tienen la necesidad de portar las aplicaciones de escritorio que usan bases de datos Oracle a aplicaciones web ,según nos dice, por la gran facilidad, usan un framework: ATK Framework.

El tesoro de este framework es la gran facilidad para crear administradores con sólo varias líneas de código, y es algo que me ha gustado bastante, podéis comprobarlo en su web.

Es justo la parte débil de zenphp.

Sin embargo, echando un vistazo al código vemos que realmente sí que son más líneas, porque se van definiendo los menús y sus accesos, se usan nodos de tipo atkNode, y como suele pasar con los frameworks gigantescos, tenemos que empezar a conocer la extensa terminología única de ATK:

—-
/**
* This node is new. It is used to edit profiles. A profile is a set of user
* privileges. In this scenario, each user has one profile (many-to-one
* relation).
*/
useattrib(“atkdummyattribute”);

/**
* The profileattribute can be used to edit the privileges.
*/
useattrib(“atkprofileattribute”);
—-

etc.

Son todas estas distracciones las que he intentado eliminar, por eso zenphp no tiene instalación, al copiarse ya se puede utilizar.

Y hacedme caso, no necesitáis escribir un framework completo para escribir una buena herramienta de administración, sobre todo tan reducida como la de ATK. Si queréis ver algunos ejemplos, mirad en http://programadorphp.org

Compártelo

Complementos de software libre para optimización de webs

Page Speed for the people!

Hace tiempo escribí un artículo sobre complementos de optimización, pero en ese momento no existía Page Speed,  si queréis saber lo que es podéis (si sabéis inglés) escuchar al autor en este vídeo:

Para instarlo ir a la web de Page Speed, previamente debéis haber instalado en vuestro Firefox el componente Firebug.

Es una herramienta genial para conocer los consejos de optimización más técnicos, como por ejemplo, usar diferentes dominios y subdominios para cada parte de la web, por ejemplo, podemos crear un directorio media y hacer un subdominio para alojar allí el contenido, o mejor, uno para cada tipo de multimedia: video.dominio.es, img.dominio.com, etc. , además explica brevemente por qué vuestra página carga tan lenta, y qué podéis hacer para solucionarlo. Si queréis ver algún ejemplo podéis pasaros por la web de un programador php. :)

Recomendado! 5 stars jeje

Compártelo