Category Archives: Técnico
Ayer 7 de junio, participé en la primera edición de la PHP Barcelona Workshops. Es el primero que se organiza en Barcelona, con talleres prácticos, porque en Febrero ya organizaron una conferencia de PHP, a la cual también asistí.

Esta vez, el lugar que escogieron fue el Citilab de Cornellà. A mi parecer no pudieron elegir mejor sitio, una antigua fábrica rehabilitada que alberga un centro para promover la sociedad de la información, con salas para conferencias, formación y espacios para navegar por Internet.
La jornada empezaba a las 9:30, pero no se tuvo en cuenta el tiempo para las acreditaciones, y hizo que todo se retrasara 30 min.
Por la mañana empezamos con el de Symfony, uno de los frameworks de PHP más conocidos. Y básicamente trataron la instalación, muy básicamente, porque no dio mucho tiempo a avanzar y se quedó todo en mucha teoría.
Al mismo tiempo hicieron la de Motores de Workflow, pero claro sólo podíamos asistir a una de las dos.
La siguiente sesión a la que asistí, después del desayuno que nos ofrecieron, fue la de i18n – Internacionalización de proyectos PHP. Cómo bien indica el título explicaron cómo realizar localizaciones de proyectos web para poder lanzarlos en varios idiomas y también la localizaciones (fechas, monedas,…). Al igual que pasó con Symfony, tampoco pudimos practicar mucho, y eso se convirtió en la tónica de toda la jornada.
Paralelamente a la de i18n, también se realizó una sesión de programación PHP con VIM.
El primer taller de la tarde fue de Ajax, de cómo mejorar páginas web 1.0. Básicamente nombraron varias librerías javascript (Prototype, JQuery, ExtJS, YUI y explicaron algunas características de cada una, pero luego el taller se centró en la librería de Yahoo, la YUI, las explicaciones y los ejemplos que enseñaron de la librería estuvieron muy bien, pero como en las otras faltó tiempo para practicar nosotros.
Y para cerrar la Workshop, una sesión para proteger nuestros proyectos de ataques XSS, nos enseñaron, muy básicamente, como realizar ataques de inyección javascript/html, SQL, o como hacer inclusiones de archivos remotos (Remote File Intrusion).
Como conclusión podemos decir que probablemente más que workshops se podría decir que fueron unas conferencias, porque fue mucha teoría y poca práctica. El temario de esta jornada parecía muy interesante y más si podías practicar allí mismo con tu ordenador, pero al final no fue tanto.
Por último decir que es muy de agradecer que se lleven a cabo iniciativas como esta, y que lo más seguro que las siguientes salgan mucho mejor.
En el último post hablaba de cómo organizar un proyecto para Zend Framework, cómo crear directorios para diversos componentes, como son los índices para lucene, caché, logs y demás.
Pues hoy 17 de Marzo de 2008 ha sido presentada oficialmente la nueva versión de este Framework, la versión 1.5, que viene con las mejoras que ya expliqué en la entrada de la primera versión, la Preview release.
Uno de los añadidos que más se había esperado era el Zend_Layout, que es el componente que nos permite crear un Template para nuestro sitio y así favorecer enormemente la tarea de hacer el site lo más uniforme posible, a la vez que facilita mucho la programación.
Aunque la documentación, fuera del manual, aún deja un poco que desear os dejo unos enlaces a unos tutoriales que enseñan tanto a empezar con Zend Framework 1.5, como a utilizar Zend_Form y Zend _Layout.
Y junto con la presentación de esta nueva versión también se ha efectuado una remodelación del sitio de Zend Framework para hacerlo más accesible.
Tutoriales de la página Akra’s DevNotes (en Inglés)
Con la llegada de la nueva versión de Zend Framework, la 1.5, se han añadido nuevos componentes para facilitarnos el desarrollo de aplicaciones php con dicho framework.
Una de las características más importantes que incorpora es la que nos permite desarrollar la aplicación diseñando con el patrón Two-Step-View o lo que es lo mismo diseñando la aplicación con Layouts.
Antes de empezar a picar código debemos pensar un poco en la estructura de directorios para nuestro proyecto, cómo organizar los archivos php, javascript, css, templates,… porque, si lo vamos haciendo sobre la marcha, nos pasará puede pasar que acabemos creando archivos donde no toca o directorios con archivos php que no tienen nada que ver entre sí y esto nos dará muchos problemas a la hora de llevar a cabo el mantenimiento de la aplicación.
En el manual de Zend Framework nos enseñan dos maneras de organizar los directorios, una estructura básica y la otra estructurada en modulos. Pero estás dos soluciones se quedan un poco cortas a medida que la aplicación va creciendo, y después no sabemos donde crear los helpers para controllers, archivos temporales de la caché.
En esta entrada quería enseñar una forma un poco más completa (que no tiene que ser la mejor) de estructurar un proyecto web basado en este Zend Framework.
Los directorios están pensados para la utilización de los componentes que nos aporta Zend Framework (caché, Lucene, locales,…) y también para guardar otros archivos que no están directamente relacionados con Zend pero sí con nuestro proyecto, como son los scripts SQL, scripts de línea de comandos CLI, PHPUnit, documentación.
zfApp/
app/
config/
controllers/
layouts/
models/
views/
filters/
helpers/
scripts/
data/
cache/
indexes/
locales/
logs/
sessions/
uploads/
docs/
html/
css/
images/
js/
.htaccess
index.php
lib/
zfApp/
Zend/
scripts/
tests/
tmp/
Una vez enseñada la estructura voy a dar una pequeña explicación de algunos directorios y archivos:
- zfApp: Nombre de la aplicación
- app: Directorio de la aplicación donde irá la estructura MVC (Modelo Vista Controlador).
- config: Configuraciones Globals.php, config.ini.
- controllers: Controladores de MVC.
- layouts: Templates para las vistas si utilizamos el componente Zend_Layout.
- models: Modelos de los objetos.
- views: Páginas HTML que se generarán a partir de los controladores.
- data: Archivos de datos, organizados por carpetas según el tipo de datos a guardar.
- cache: Donde se guardarán los archivos de caché.
- indexes: Archivos de índices del buscador.
- locales: Archivos de internacionalización de la aplicación.
- logs: Directorio para se guardarán los archivos de log.
- sessions: Directorio donde guardar las sesiones.
- uploads: Directorio donde se podrán subirán archivos.
- docs: Documentación de la aplicación con phpDoc, pdf.
- html: Directorio público.
- css: Archivos de estilos.
- images: Imágenes.
- js: Archivos javascript.
- .htaccess: Archivo de Apache para la configuración módulo mod-rewrite.
- index.php: Archivo bootstrap, archivo PHP de entrada a nuestra aplicación.
- lib: Librerías Zend y propias.
- zfApp: Clases y funciones desarrolladas por nosotros, helpers de controllers,… (mismo nombre que la aplicación).
- Zend: Librería Zend Framework.
- scripts: Scripts CLI, generar indices Lucene, limpias cachés, SQL.
- tests: Archivos de test de la aplicación (PHPUnit).
- tmp: Archivos temporales.
Esta es mi propuesta de cómo se puede organizar un proyecto con Zend Framework.

El sábado 23 de febrero de 2008 tuvo lugar en el Espai Jove Bocanord la primera PHPBarcelona Conference.
Las presentaciones fueron todo un éxito tanto a nivel organizativo como en el contenido, ya que se trataron temas muy interesantes para los desarrolladores.
Aquí tenéis las presentaciones que se llevaron a cabo:
Agradecer a los patrocinadores (SmallSquid y LocalBilling) del certamen por el desayuno y los premios del concurso (aunque no me tocara nada
)
Por último agradecer también a los organizadores y animarles para que esta primera PHPBarcelona conference no se que de en sólo una.
A continuación un vídeo-resumen de lo que fue la jornada:
Vía el blog Zend Framework In Action he visto que han presentado una versión previa de Zend Framework 1.5 la cual viene con muchas correcciones y añadidos importantes.
Entre las mejoras, podemos encontrar estos nuevos componentes:
- Zend_Form para la creación de formularios con soporte para elementos Ajax
- Nuevas actions y helpers para facilitar el trabajo con Ajax
- Nuevos adaptadores para la autentificación OpenID, InfoCard, LDAP
- Soporte para las búsquedas complejas con Lucene, patrones y rangos de fechas
- Soporte para formatos de ficheros de Lucene 2.1
- Helpers de vistas parciales, de marcadores y de acción para la composición de vistas avanzadas y renderizado
- Nuevo componente Zend_Layout para automatizar y facilitar el trabajo con capas
- Soporte UTF-8 en documentos PDF
- Nuevos web services de Technorati, SlideShare, y Remember the Milk
También han actualizado la documentación de Zend Framework con los nuevos componentes.
En Bloguzz ya estamos realizando pruebas con esta nueva versión de Zend Framework para así seguir mejorando la plataforma.
Via Linux para los seres humanos nos encontramos con los que podrían ser los 13 mandamientos que todo usuario de Ubuntu en particular, y linux en general debería seguir. A mi me han hecho mucha gracia, y que conste que no tienen ninguna connotación religiosa.
No iniciarás como root. Usa “sudo” o “su -” para las tareas de administración del sistema
Comunicarás tus conocimientos. El mundo de Linux se basa en ello, no te los guardes como Bill
Ofrecerás al que necesite un sistema operativo Ubuntu. Salvaras muchas vidas
Usarás el gestor de paquetes todo lo posible. Algunas veces instalar desde las fuentes no se puede evitar, pero
cuando uses el gestor de paquetería de tu distro para instalar
software, también podrás usarlo para actualizarlo y quitarlo. Esta es
una de las fortalezas de Linux.
Serás parte de una comunidad. El mundo de Ubuntu es gratis ayuda tu como ellos te ayudan a ti.
Leerás la documentación y manuales. La fortaleza de un Ubuntero está en su conocimiento, estudia tu biblia.
Usarás el sistema de soporte. Cambiarse a Ubuntu Linux puede ser difícil. Puede ser frustrante, pero hay gente que puede y quiere ayudarte. Déjalos hacer su trabajo.
Buscarás. En la mayoría de los casos, tus preguntas y problemas han sido respondidos. Intenta buscar las respuestas que han sido resueltas antes de preguntar a alguien.
Explorarás. Linux te abre un nuevo mundo de opciones y posibilidades. Intenta todo lo que puedas no desista por que no logres resolver un problema, lo que hoy es difícil mañana no lo será
Usarás la línea de comandos. Usa este medio para todo en Ubuntu Linux dado que con el lograras hacer cualquier milagro con tu ordenador.
No intentarás recrear Windows. Ubuntu no intenta ser un clon de Windows. Es diferente. Acepta y aprecia las diferencias.
No te darás por vencido. Intenta con diferentes distribuciones sobre todo Ubuntu hasta encontrar la que más te guste. Instala distros de vez en cuando. Intenta con diferentes programas que sirvan para un sólo propósito antes de establecerse (amarok, xmms, beep, exaile para música; azureus, ktorrent, deluge para bittorrents). Si ni te gustan los programas “de fábrica”, recuerda que casi siempre puedes cambiar a lo que más se te acomode por ello se te ha dado el libre elección.
No hablarás mal de Windows solamente Describirás Linux. Deja que los demás elijan este camino (hombre siempre se puede poner un poco de afán en resaltar lo bueno y lo malo).
Si por alguna razón necesitais instalar una versión más actual de PHP en vuestro servidor CentOS Enterprise Linux 5 aquí os explico donde podeis encontrar los paquetes rpm de php 5.2.x
El repositorio en cuestión es el de Utter Ramblings y en él se pueden encontrar versiones actuales de Apache, Mysql, PHP (con extensiones individuales), subversion,…
La dirección donde se encuentran los RPM’s es: http://www.jasonlitka.com/media/EL5/
Si os interesa añadir el repositorio a YUM
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
Y la key GPG
rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
Fuente: Utter Ramblings
Esta mañana, ha llegado a casa el paquetito con los dos cd’s de Ubuntu.
Y también cuatro pegatinas de regalo, como la otra vez
C.U.P.I.E. (Charlas ubunteras por IRC en español), es un proyecto divulgativo que nace con la intención de ayudar a la gente a comprender y optimizar el uso de su sistema operativo Ubuntu, así como la filosofía que define al mundo del soft libre.
Se realizaran tanto charlas practicas como informativas, siempre de forma publica y abierta, cualquiera puede asistir, y también participar preparando o sugiriendo nuevas ponencias.
Las charlas se desarrollaran en el canal de IRC #cupie, alojado en FreeNode.net , canal que podéis usar también para contactar si os interesa colaborar, podéis consultar temarios, logs, calendario etc, en esta pagina.
El ciclo de charlas comienza el próximo lunes 29 a las 16:00 UTC, con una sobre el terminal de comandos a nivel básico.
Ayuda a difundir este proyecto poniendo un banner de C.U.P.I.E.!! o directamente copiando y pegando este post en tu blog para darle la mayor difusión posible!!
¿Te gusta la barra dock que tiene el MAC OS Leopard de Apple?
¿Te gustaría tener una parecida en tu Ubuntu Gutsy Gibbon?
Pues aquí te enseño como instalar Avant-Window-Navigator fácilmente.
Tienes que añadir estos repositorios al final del archivo /etc/apt/sources.list
#AWN
deb http://download.tuxfamily.org/syzygy42 gutsy avant-window-navigator
deb-src http://download.tuxfamily.org/syzygy42 gutsy avant-window-navigator
A continuación instalamos la clave de firmado para estos repositorios con el siguiente comando:
wget http://download.tuxfamily.org/syzygy42/reacocard.asc | sudo apt-key add reacocard.asc
Actualizamos los paquetes:
sudo apt-get update
Y ya podemos proceder a la instalación de Avant-Window-Navigator:
sudo apt-get install awn-core-applets-bzr libawn-bzr avant-window-navigator-bzr
Una vez instalado, ya podemos ejecutarlo desde el menú Aplicaciones -> Accesorios -> Avant Window Navigator
Si queremos que se arranque al iniciar el sistema, debemos configurarla desde el menú Sistema->Preferencias->Sesiones
Para añadir lanzadores a AWN sólo tenemos que arrastrarlos desde el menú Aplicaciones encima de la barra.























