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…

 

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.

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

Freelance Programador PHP ofrece sus servicios

juan_belon_PHP

Después del artículo programador Zen, sólo quedaba demostrar que con paciencia ,dedicación y perseverancia se consiguen terminar muchos proyectos, ésta web: Programador PHP, sólo refleja algunos de ellos por cuenta propia, en ella,además ofrezco mis servicios desde ella,…a algun@s ni les cobro! jajaja.

Hay que seguir mejorando, nunca dejar de aprender, esa es la actitud, …finalmente o eres bueno en lo que haces o te retiras…

En mi caso, antes de que acabe el año tengo que preparar dos presentaciones de zenphp en mi Escuela, una en Octubre y otra en Diciembre…me han pedido que lleve más ejemplos técnicos. ¡Deséame buena suerte! 🙂

Continue reading

Extendiendo los procesos de automatización

Para automatizar los procesos de una aplicación web lo mejor es usar un esqueleto y escribir código a partir de él. Aunque muchas veces el problema es como se dice en todos sitios, la curva de aprendizaje de un método.
Con cualquiera de las formas de pensar a la hora de hablar de programación encontramos similitudes porque los humanos pensamos de la misma manera XD ¿Qué quiero decir con esto? Pues ,pasa lo mismo que con las ideas que se tienen implementando capas de redes, cuando a alguien se le ocurre una idea para proteger,enviar o recibir, encriptar,…lo que sea!, seguramente se le ha ocurrido a otra persona antes, y si no se le ha ocurrido se le ocurrirá pronto 🙂 y me explico, a mi se me ocurren ideas que me parecen muy buenas y dada mi experiencia con programación orientada a objetos para programar páginas web considero que debo compartir lo que he aprendido y he de mezclarlo con los conocimientos ya adquiridos y puestos en la red con libertad de uso…lo que a mi se me ha ocurrido se le puede haber ocurrido a cualquiera otra persona en cualquier otro momento, sin embargo lo voy a publicar, para que cualquier otra persona no tenga que implementar lo que en mi caso, con más experiencia, me cuesta menos expresar en líneas de código. El resultado es un conjunto de clases llamadas librerías que están muy organizadas y disponen de un sistema de comunicación entre sí que permite seguir las normas de la programación estructurada fácilmente gracias a la documentación asociada a estas librerías asi como seguir los ejemplos propuestos.
La fases de los procesos de automatización de un Sistema Gestor de Contenidos fueron expuestas en anteriores artículos de este mismo blog. Lo que ahora es más interesante es preguntarse de qué forma se puede implementar un SGC para que no se convierta en la desconfianza de Joomla en cuanto a sus módulos y la desorganización entre versión tras versión que hace chocar implementaciones entre si e imposible reutilizar código por joven que éste parezca…y la respuesta es el generador de código, que mantiene la sincronización actualizada de los procesos de automatización, en otras palabras, se encarga, una vez actualizado, de compilar los paquetes de módulos contenidos en uno/s cartucho/s para generar una salida adaptada a la versión más reciente, a partir de ahi el código final puede surgir cambios pero sólo si no se está usando en modo de programación orientada a aspectos, esto permite realizar cambios directamente en el cartucho y obtener la versión actualizada del framework en ese momento.

Las primeras pruebas las estoy utilizando para proyectos simples y en los que me baso para ir mejorando poco a poco.

Asi es como se puede extender un proceso de automatización sin riesgos.

Ahora estoy aprendiendo un poco de ASP, y creo que me va a resultar difícil encontrar un SGC de código libre en condiciones…:P

Ideas que funcionan: las rutas de una aplicación

El año pasado cuando empecé a escribir el enrutador del framework lo hice de forma muy general, para dar al programador la libertad de escribir el suyo propio y lo pudiera enlazar con cualquier aplicación de modo que se pudiera escribir una clase como zen_enrutador y asignar expresiones regulares únicas para determinadas rutas propias definidas por el usuario.

Un ejemplo de que la idea funciona es que se está usando en muchas páginas web, por ejemplo en el Pais, ¿cómo podemos descubrir que la idea del enrutador se está utilizando?, muy fácilmente, eliminando parte de la URL xD

…Veamos un ejemplo,de un artículo del país…

La dirección original es la siguiente:

http://www.elpais.com/articulo/sociedad/traje/cibernetico/
permite/personas/paralisis/volver/correr/
elpepusoc/20080411elpepusoc_4/Tes

De aquí, podemos ir “quitando trozos” que sabemos que no forman parte de la acción de un controlador de una aplicación web, sólo por el nombre. Lo explicaré con un ejemplo, un nombre de acción puede ser: “articulo”, “sociedad”, etc. sin embargo aquí se puede eliminar “sociedad” quizás, se dejó para categorizarlo en google…veamos como sigue funcionando la URL con las palabras clave de las acciones y los datos que necesita el modelo para recuperar el artículo:

http://www.elpais.com/articulo/usamos/un_enrutador_muy_parecido/al/de/zenphp/
elpepusoc/20080411elpepusoc_4/Tes

Por lo que podemos deducir que la acción es “articulo” y que los datos que necesita son:la fecha en formato AñoMesDia, con el autor y un identificador para el artículo, de forma que se analizará primero la acción y se tomará el final de la URL de derecha a izquierda para recuperar el identificador único de artículo a mostrar, si seguimos eliminando al final observaremos que esta pequeña introducción a la ingeniería web (inversa) nos indica que las ideas simples suelen funcionar, mirad como queda la URL válida al final:
http://www.elpais.com/articulo/20080411elpepusoc_4/Tes
es lo único que necesita, podeis comprobar por qué el 4 es el número de artículo porque (además de ser lo más lógico) podemos ir a
http://www.elpais.com/articulo/20080411elpepusoc_3/Tes ,que es el siguiente 🙂

Saludos!

Análisis del código de zenphp por Ohloh

Gracias al proyecto del amigo Juan Pedro Bolívar he descubierto Ohloh, una web donde al introducir la dirección SVN de tu proyecto se analiza y te cuenta cosas interesantes…hasta cuánto cuesta en dólares escrito desde 0 (from scratch) por un número determinado de desarrolladores…
He aquí alguna información interesante sobre zenphp…
[leer más]
Continue reading

Pruebas con PHPUnit

Para instalar PHPUnit se necesita PEAR, para ello basta con hacer, en GNU/Linux :

apt-get install php-pear

Además necesitamos graph-viz para mostrar los resultados gráficamente:

apt-get install graph-viz

sudo pear install Image_Graphvi

entonces podemos hacer las pruebas con una macro que he reutilizado del proyecto ContactR.

~/csl2-zenphp/trunk/documentacion/test$ make

Para saber más, estoy preparando un PDF para completar la información.

zenphp recomienda xpages

¿Por qué?

se puede leer en el documento de rendimiento de aplicaciones web con JavaScript para comprender, que su uso se puede ver como un cuello de botella o como una ayuda impresionante para manejar el DOM de un sitio web…

Para mejorar la eficiencia de un proyecto con mucho uso de JavaScript recomiendo usar xpages: http://xpages-es.blogspot.com/

Progreso: zen_andamio (scaffolding) & UML

Estoy actualizando el diseño de la jerarquía ,diagrama de clases,casos de uso, diagrama de entidad,vistas de componentes, vistas de despliegue y las vistas lógicas de zenphp porque me parece que Umbrella (y no es el tema americano ese del paragüas aguas aguas que tanto éxito tiene por España XD) lo hace estupendamente.

Dejo las capturas y el enlace para descargar el fichero XMI.

Casos de uso: Librerías: Diagrama de clases de zenphp
Diagrama de casos de uso tipo web Esquema de dependencias de librerías extra de zenphp

Todo free ,por supuesto 😉

La siguiente captura es de como está quedando el Scaffolding de zenphp, llamado zen_andamio. He adoptado la idea de Django de utilizar una lista de las últimas acciones con un iconillo al lado para mostrar lo que vamos haciendo…

La idea es: para llamar al scaffolding, añadimos la variable al modelo de datos “$andamio” y puede ser lanzado desde la ruta sin más que poner el nombre del modelo  después de index.php, por ejemplo ,para la captura se llama a index.php/noticias/andamio, las palabras que activan el scaffolding se pueden configurar en /zen.php en la constante ZF_PALABRAS_ANDAMIO, separadas por coma.

Espero que os guste 🙂