16 de septiembre de 2008

minimizar a la barra - alltray


uso bastante thunderbird es mas es lo unico que uso creo! porque puedo manejar todas mis cuentas de correo y ademas es portable, a winbug o a otro linux con solo llevarme la carpeta (ya son 400mb del año.. huff) en fin, en winbug hay un addonns que se llama algo de systray algo asi donde se puede mandar a bandeja o barra de tareas lado inferior derecho en winbug,, bien pero para linux preciso para debian?? no hay, y por casualidad me he encontrado con esta fabulosa herramienta e indispensble para mi desde hoy..

ALLTRAY
http://alltray.sourceforge.net/

solo debes ejecutar y automaticamente te pide escoger ventana a poner en tray, osea ya puedes minimizar a barra de tareas tu thunderbird o firefox! que no quieres cerrarlo pero si tenerlo minimizado.

en debian lenny, como siempre tan sencillo:

apt-get install alltray

luego en menu aplicaciones, submenu accesorios, ALLTRAY.

espero les sirva.

en mi nueva faceta de amante de gnome, sobretodo de tomboy, ya no puedo vivir sin ese utilitario, y junto a bookmarks de google para que mas.

bueno hoy me tropece con un desktop especial, no añade opciones el menu, cuando instala algo, puede ser el instalador o la pc, me dio flojera investigar el problema, pero la solucion es:

digamos que instalaste el Mono Developer, o monodevelop,

claro lo sabemos un apt-get install monodevelop y listo ya tiene tu ide mono develop. pero que paso no creo un acceso directo desde menu programacion, entonces que hacemos?

paso 1.- ubicar donde esta monodevelop

root@rtc:~# which monodevelop
/usr/bin/monodevelop

paso 2.- probar si se ejecuta
presionamos juego de teclas alt-f2 y al cuadro de dialogo ejecutar ponemos la ruta completa del programa en cuestion y enter.


bien si funciono y ejecuto tu programa procede a ejecutar con alt-f2 este comando:alacarte
si alacarte es el editor de menus para gnome, o si tu sistema esta completo debes ir a MENU sistema, SUbmenu preferencias, OPCION: Main menu y da lo mismo entonces ahi añadimos lo que queremos en el sub menu que queremos o quitamos lo que no queremos.


al lado izquierdo de este blog dice DEBIAN verdad!! ojo! uso lenny.

No soy muy adicto a las letras y diseños de microsoft (no es mi rubro el diseño), pero en fin, siempre suele necesitarse usar una que otra letra, por ejm. la tan agradable verdana (prefiero todo en courier.. en fin gustos) y una que otra letra que viene de micro$oft.

uso debian lenny/sid. asi que fue tan dificil como esto:

apt-get install msttcorefonts

y listo tenemos ya las fuentes tipicas en DEBIAN, y openoffice las levanta al toque sin mas ni mas...

recordemos que a futuro en lenny esto pasara a llamarse ttf-mscorefonts-installer.

asi que a futuro haremos lo siguiente

apt-get install ttf-mscorefonts-installer

y listo.

algunas de las fuentes:

Andale Mono
Arial Black
Arial (Bold, Italic, Bold Italic)
Comic Sans MS (Bold)
Courier New (Bold, Italic, Bold Italic)
Georgia (Bold, Italic, Bold Italic)
Impact
Times New Roman (Bold, Italic, Bold Italic)
Trebuchet (Bold, Italic, Bold Italic)
Verdana (Bold, Italic, Bold Italic)
Webdings

15 de julio de 2008

debian symfony


Nuestro querido debian tambien ya incorpora symfony, y de la manera mas facil como nos tiene acostumbrado debian.

1.- añadir en /etc/apt/sources.list

deb http://www.symfony-project.org/get debian/

grabar y luego:

2.- apt-get update

3.- apt-get install php5-symfony

y listo instaladito y listo para usar, lo unico malo que en la version unstable, tenemos la version 1.0, pero de todas maneras si quieren estar actuales, ya saben ir a :

http://www.symfony-project.org/installation/1_1


un buena noticia ha llegado al mundo de los frameworks, especificamente a symfony! sin duda ya habiamos pasado los pininos en postgresql, y el ya acostumbrado mysql y mysql innodb, ahora bien oracle tambien ya esta dentro de ORM de symfony.

leer aqui todo los pasos como usar oracle con symfony.

y leer aqui todo sobre symfony

14 de julio de 2008

chat linux

Revisando unos correos de la lista del plug, he visto que estan incentivando reunas via chat el viejo (pero recordado) irc, bueno el famoso y conocido mirc no hay, asi que recordaba el x-chat que es bueno tambien, pero viendo opciones de pidgin, resulta que dentro de los protocolos que soporta estan irc, realmente soporta casi todo, yo solo uso yahoo, y msn el clon a-msn:

  • AIM
  • Bonjour
  • Gadu-Gadu
  • Google Talk
  • Groupwise
  • ICQ
  • IRC
  • MSN
  • MySpaceIM
  • QQ
  • SILC
  • SIMPLE
  • Sametime
  • XMPP
  • Yahoo!
  • Zephyr
aqui un screenshot de mi conexion al plug,:
canal #linux-plug en irc.linux.org.pe (alias de freenode)

11 de junio de 2008

SuperTuxKart juegos en linux

La verdad no se mucho de juegos, ni en win he jugado mucho, creo que lo maximo fue doom, pero me parece simpatico este jueguito de tuxkart,, y lo mas genial que esta para debian!! aqui los pasos para la complicada instalación:

#apt-get install supertuxkart

y listo tal como la imagen lo tendran en su menu de juegos y listito para usar!

http://supertuxkart.sourceforge.net/Main_Page

1 de junio de 2008

FIREFOX: DOWNLOAD DAY 2008

Download Day
Firefox Download Dia 2008, inscribanse y a motivar el dia download ojala se gene ese record guiness!!

27 de mayo de 2008

debian lenny virtualbox

en temas de virtualización hay mucho que hablar, sin duda xen es uno de los mejores, pero para su implementación hay que ir de nuevo a la universidad! y explicarlo es casi otra jarana un curso de pedagogia 5 años...

pero igual despues de haberlo tenido en mi desktop por casi 1 año es que decidi poner un pc virtual en mi laptop, siempre se requiere tener winbug por muchos motivos cosas de los clientes!! asi que ya habia leido mucho de virtualbox y por las caracteristicas no es un xen, pero es casi.. asi que dije manos a la obra! he visto mucho para etch pero no para lenny asi que denuevo a chocar con los sources.list de /etc/apt.

veamos un poco de resultados, para que se animen y lo usen.

aqui virtualbox corriendo winxp sp2, a 1024x762, ie7, mi pc enlazada a 2 directorios compartidos de linux! y corriendo msn y demas cosas en mi debian!

aqui el manejador de pc virtuales VIRTUALBOX, tan sencillo como nos gusta siguiente, siguiente etc, y todo en spanish!! si todo...
ahora veamos que tan dificil es instalar. veran que es muy facil.

primero debemos identificar que tenemos como kernel, en mi caso :

aroot@rtc:~# uname -a
Linux rtc 2.6.24-1-686 #1 SMP Sat Apr 19 00:37:55 UTC 2008 i686 GNU/Linux
root@rtc:~#

1.- /etc/apt/sources.list
root@rtc:~# cat /etc/apt/sources.list
deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib

deb http://http.us.debian.org/debian/ lenny main contrib non-free
deb http://www.debian-multimedia.org/ lenny main

#Unstable
deb ftp://ftp.fr.debian.org/debian/ lenny main contrib
deb-src ftp://ftp.fr.debian.org/debian/ lenny main contrib

deb http://ftp.de.debian.org/debian sid main

deb http://www.virtualbox.org/debian etch non-fre

2.- apt-get update

3.- apt-get install linux-headers-$(uname -r) uml-utilities bridge-utils

4.- apt-get install virtualbox-ose virtualbox-ose-source

5.- m-a prepare

6.- m-a a-i virtualbox-ose

7.- modprobe vboxdrv

8.- arrancando el virtualbox
#modprobe vboxdrv

9.- root@rtc:~# lsmod | grep vboxdrv vboxdrv 55792 0 10.- usermod -G vboxusers -a renzo 11.- luego debemos abrir menu APLICACIONES, HERRAMIENTAS DEL SISTEMA, VIRTUAL BOX OSE.
y debe aparecer una pantalla como el 2do grafico en este post.

y listo señores, pueden gozar de un buen virtualbox que la verdad nada que envidiar a XEN, y muy versatil! y todo aplicado al sistema

finalmente esta es la version 1.5.6, no la 1.6. en un prox. pongo la actualización.
http://www.virtualbox.org/

25 de mayo de 2008

ftp desde consola linux

hace poco compartiendo experiencias sobre ftp desde consola, he logrado entender y hacer entender la versatilidad del poderoso midnight commander (conocido en norton como nc o norton commander). que no solo es un poderoso aplicativo para copiar via SCP (secure shell o ssh), ademas de poder hacer conexiones ftp, que era el tema de discusion!, estaba lftp ampliamente usado en muchas distros, pero en debian no viene, al menos en lenny, esto se soluciona con

apt-get install lftp

pero no es el caso, ya que si vamos de consola y tener cosas rapidas pues esta

apt-get install mc

en fin con mc es todo sencillo, sin contar que es un utilitario, para copiar, mover, editar, manejar atributos chmod, chown, etc etc. y ademas de manejarse en 2 ventanas, para copiar de un lado a otro. todo es sencillo. les dejo algunos screenshots para la muestra.

claro todo esto si no tenemos X y necesitamos usar algo practico y poderoso en cuestiones locales a remotas.

ahora si tenemos x y usamos gnome, pues les servira saber que hay para X el Gnome-Commander.




les dejo algunos links para su uso sobre ftp client en el orden de uso.

http://www.ibiblio.org/mc/

http://www.linuxcommand.org/man_pages/lftp1.html

http://filezilla-project.org/download.php

http://gftp.seul.org/

http://www.nongnu.org/gcmd

23 de mayo de 2008

debian dhcp y dns

hace mucho tiempo que los dns de timofonica y otros proveedores se ponen bien lentos, entonces use opendns y de verdad que ayuda bastante, excepto ha veces con dominios .pe, pero en fin a pesar de eso va bien. entonces hace poco puse mi di-524 para usar wifi en mi lap y me di cuenta que me asigna el 192.168.0.1. cosa que no queria, sino que use los de opendns.

entonces el punto es evitar que el dhcp coja los dns que viene por defecto en su configuracion o asigna el isp. los pasos son los siguientes:

$ cp /etc/resolv.conf /etc/resolv.conf.auto
$ vi /etc/dhcp3/dhclient.conf
# append the following line to the document
prepend domain-name-servers 208.67.222.222,208.67.220.220;
# save and exit
$ /etc/init.d/networking restart

y listo. yo he desmarcado unas opciones de domain-names y domain-search. asi no busca nada de eso y es mas rapido.

21 de mayo de 2008

lenny Filezilla


ya estaba harto de usar gftp, fue bueno durante un tiempo! pero realmente para trasladar archivos de 10000 o 5000 archivos para arriba se hace todo un drama encima que mi linea de casa no es la super super que digamos, asi que extrañaba el buen filezilla, ya conocido en winbug digo win32. asi que usando lenny netamente lenny, no tenia en mi repositorio filezilla, pero sabiendo que si existe para debian pues me di un vistazo en sid y que creen lo encontre asi que para poner filezilla en DEBIAN LENNY, solo hacer esto:

1.- vi /etc/apt/sources.list y añadir esto:

deb http://ftp.de.debian.org/debian sid main

bueno como ya sabemos los latinos, y en general me parece, los repositorios mas actualizados y rapidos son el fr y de. si no gustan el de cambien solo el server por:

ftp.fr.debian.org/debian

2.- apt-get update

3.- apt-get install filezilla darle "y" bajara "filezilla-common filezilla-locales" y listo ya tienen filezilla funcionando en español y de lo mejor! no hay otro mejor creo!! ahi el screenshot respectivo.

http://filezilla-project.org/


Bueno, firefox firefox!! tiene inenumerables extensiones!! y vaya que las tiene. quiero compartir y anotar 2 buenas extensiones de firefox

1.- el google bookmarks, si bien firefox tiene el sincronizador firefox no es muy bueno porque hay incompatibilidad en winbug con linux y algunas versiones incluso, asi que googleando, encontre el plugin para firefox y este si va bien! donde quieras y donde sea incluso en winbug explorer...

https://addons.mozilla.org/es-ES/firefox/addon/2448


2.- amas firefox! pero está cansado de las tareas repetitivas como visitar los mismos sitios todos los días, completar formularios, y tener que recordar contraseñas, entonces iMacros para Firefox es la solución de sus sueños! iMacros fue diseñado para automatizar las tareas más repetitivas en la web. Si hay alguna actividad que tiene que hacer frecuentemente, sólo recuérdesela a iMacros. ¡La próxima vez que necesite hacerlo, el macro lo hará simplemente al apretar un botón!

aqui https://addons.mozilla.org/es-ES/firefox/addon/3863

bueno,
finalmente el knote de kde no me gusto mucho! kde tiene todo lo que un usuario final, pero ese todo es lo que yo no quiero, asi que gnome sigue siendo mi tomboy adiction!! encima con las opciones de sincronizacion a disco, a webdav, etc, y ademas que ahora se puede postear a blogger, o a cualquier blog que acepte atom, que son la mayoria.

algunos screenshots:


tomboy 0.10.0, bajo lenny - gnu debian

Bueno, siempre las peores cosas me pasan en mi pc!! :) y agradezco esa situación! prefiero en casa que en el trabajo, la verdad he instalado muchos apache2 y no habia tenido este problema! sera que siempre configuro dominio y esas cosas y en casa no hago eso, asi que aqui el problema:

root@rtc:~# /etc/init.d/apache2 start
Starting web server: apache2apache2: apr_sockaddr_info_get() failed for rtc
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

no es para hacer drama, al toque uno dice ha ya es cuestion de definicion de nombre del localhost o fqdn, la primera linea de error era la que me confundia, pero entonces procedi a corregir el error mas solucionable:

agregue la linea siguiente en /etc/apache2/httpd.conf
ServerName localhost

grabe y listo una reiniciada para ver si habia otro error y bueno solucionado el asunto.

8 de mayo de 2008

Kde por Gnome

Bueno encontre un post sobre kde 4 y realmente no veo kde hace muchos años, es mas recien uso gnome asi a fondo hace un año! :) bueno la cosa es que aqui encontre un link buenazo de como usar kde 4 en debian lenny testing obvio. y temo decir que esta bien rapido! mas rapido que gnome! creo que voy a extrañar tomboy, que es basicamente por lo que usaba gnome! :) ojala el knotes no me defraude, aunque se ve bien por ahora.
aqui el proceso.

he corrido inkscape, gimp, quanta, bluefish, openoffice y otras aplicaciones y normal el proceso es realmente mucho mas rapido que en gnome, de todas maneras el fin de semana le dare su depurada a gnome para ver si lo acelero, pero por ahora mi comentario va a KDE!! les comparto este post con su respectivo enlace de donde obtuve los pasos bien sencillos.

  1. Abrimos con nuestro editos preferido el archivo de repositorios (/etc/apt/sources.list) y agregarmos los siguientes repositorios:

    deb http://ftp.debian.org/debian/ experimental main non-free contrib
    deb-src http://ftp.debian.org/debian/ experimental main non-free contrib

    También es necesario agregar los repositorios de unstable (sid)

    deb http://ftp.cl.debian.org/debian unstable main contrib non-free
    deb-src http://ftp.cl.debian.org/debian unstable main contrib non-free

  2. Actualizamos la base de datos de los repositorios, para ello:
    #aptitude update
  3. Y por último, solo nos queda realizar la instalación:
      Instalación Básica:
      apt-get install -t experimental kdebase-workspace kdebase
      Instalación completa
      apt-get install -t experimental kdebase-workspace kdebase kdegraphics kdegames kdemultimedia kdenetwork kdeutils kdeedu kdeadmin kdetoys kdeartwork kdesdk

http://www.rgsoluciones.cl/blog/?p=42

7 de mayo de 2008

microsoft migraine upgrade

sin palabras.... solo un sentimiento!!! menos mal que ahora hay bastantes analgesicos, me pregunto si microsoft invertira en ellos... :) :)

19 de abril de 2008

Netetiquette!!


Hay listas de interes donde hay tipos que exageran el netetiquette, no participo en muchas hoy en dia, pero aqui un claro ejemplo de lo que pasa en algunas, me habre K...ado de la risa... no recuerdo de donde la baje, pero antes de borrarla la comparto , para tenerla siempre ahi, cuando alguien me pregunte cosas tontas!! :) :)

MVC


Aqui una imagen del modelo MVC, para fundamentacion del anterior post :)

Sin duda apache2 es otra cosa a lo que era el buen apache 1.3.x en fin, que vamos de mejor a mejor! apache2 sin duda gasta hasta menos memoria! bueno el caso de esto es simple usar comando:

a2enmod

nos permite activar y desactivar los modulos, que obviamente estan en /etc/apache2/mods-available, para ponerlos en enlace a /etc/apache2/mods-enable, obvio en mi caso instale con apt-get :), si lo hicieron manualmente capaz lo ubico en otra ruta. pero el caso es que para activar modulos es simple:

digamos si quieren activar DAV (si webdav), los modulos para su uso seria

Habilitar Modulos

a2enmod dav_fs
a2enmod dav

Deshabilitar Modulos
a2dismod dav_fs
a2dismod dav
y listo, espero os sirva.

otro ejemplo el popular rewrite.

Habilitar Modulos

a2enmod rewrite

Deshabilitar Modulos

#a2dismod rewrite


Un buen diagrama y diseño de como trabaja cakephp seria este grafico, espero tambien les aclare el funcionamiento de este buen framework.
http://grahambird.co.uk/cake/tutorials/howitworks.php


Siempre me preguntan porque cakephp, y creo que esto lo confirma una vez mas, aunque fui tentado por Symfony!! lamento haber ya avanzado por cakephp! pero ahi estamos bien!!.

Este articulo me parece bueno y detalladado, lo extraje de aqui, para lectura y aclaración de las dudas (soy malo explicando) .


PHP es un lenguaje orientado específicamente al desarrollo de aplicaciones web ampliamente difundido debido a su facilidad de aprendizaje, el soporte de una importante comunidad de programadores, la abundante documentación y su libertad de uso. En este lenguaje encontramos una multitud de frameworks, estructuras de software que ayudan a la contrucción de aplicaciones, de la cual la mayoría están basados en el patrón Modelo Vista Controlador (MVC: Model-View-Controller). En el presente artículo se abordarán las características de tres de ellos, que comparten este enfoque de diseño.

CakePHP

CakePHP [http://www.cakephp.org/ ] es un framework de desarrollo rápido de aplicaciones de código abierto en PHP. Inspirado en Rails, un framework para la construcción de sitios web que utilizan una base de datos como fuente de recursos, posee una infraestructura que tiene como finalidad permitir el desarrollo de aplicaciones web de manera ágil y estructurada, sin perder flexibilidad.

Entre las características más destacables de CakePHP se incluyen:

- Arquitectura basada en el patrón Modelo Vista Controlador (MVC) y orientada a objetos: define clases modelo, vista y controlador con funcionalidades básicas y de las cuales heredan todas las clases que se ajustan a este patrón y que son usadas en la aplicación construida con el framework.
- Una comunidad activa de usuarios: creada tras la publicación del framework en 2005 y que ha contribuido a mejorar el framework (a través de subproyectos específicos en CakeForge.Org) y difundir su uso.
- Licencia flexible: es distribuido bajo la licencia X11, más conocida entre los desarrolladores de software como MIT License.
- Compatible con PHP4 y PHP5: aunque en PHP4 se requiere especificar algunos parámetros de configuración adicionales en las clases a implementar.
- Operaciones básicas en base de datos (Creación, Obtención, Actualización y Borrado): estas operaciones están integradas para interacción con la base de datos y la simplificación de consultas.
- Estructura de aplicaciones (Application Scaffolding): permite al programador hacer uso de un conjunto de convenciones aplicables a la estructura de la base de datos de la aplicación y el framework se encarga de generar el código para la interacción a lo largo de todas las capas de la aplicación.
- Despachador de peticiones: permite acceder a la aplicación a través de URLs amigables y configurables.
- Incorporación de validaciones a lo largo del framework.
- Generación de plantillas de manera rápida y flexible: usando la sintaxis de PHP y con asistentes o helpers.
- Incorporación de asistentes de construcción de vistas: para la automatización de la generación de código en AJAX (Asynchronous JavaScript and XML), JavaScript, formularios HTML, entre otros.
- Componentes de seguridad, manejo de sesiones y de peticiones: que reúnen las mejoras prácticas estandarizadas por la industria del software.
- Listas de control de acceso flexibles: para gestionar el ingreso de usuarios a la aplicación construida con el framework.
- Verificación de ingreso de datos permitidos (Data Sanitization): permite determinar qué datos pueden ser ingresados y darle el formato adecuado a aquellos que no cumplen las reglas de validación.
- Almacenamiento en caché de las vistas: para acelerar la descarga de las páginas web.
- Trabaja en cualquier subdirectorio de un servidor web: requiere poca o nula configuración del servidor Apache donde se instalará.

El framework surge como un proyecto personal de Michal Tatarynowicz y a agosto de 2007 existe una versión estable (1.1.16.5612) y una versión de desarrollo (1.2.0.5427alpha).

Symfony

Symfony [http://www.symfony-project.com/ ] es un framework diseñado para optimizar el desarrollo de aplicaciones web a través de diversas características clave. Separa las reglas de negocio de la aplicación, la lógica del servidor y las vistas de presentación. Contiene una gran variedad de herramientas y clases para conseguir acortar el tiempo de desarrollo de aplicaciones web complejas. Adicionalmente, automatiza tareas comunes para que el programador pueda enfocarse por completo en las especificaciones.

Entre las características generales del framework podemos citar:

- Fácil de instalar y configurar: ha sido probado con éxito en plataformas Windows y derivadas de Unix.
- Independiente del manejador de base de datos: utiliza Propel, una capa de abstracción que le permite interactuar con varias bases de datos.
- Simple de usar: y al mismo tiempo lo suficientemente flexible para adaptarse a escenarios complejos.
- Basado en la premisa de "convención sobre configuración": el desarrollador sólo necesita configurar aquellos aspectos sobre los cuales no hay una tendencia definida.
- Cumple con la mayoría de las mejores prácticas en diseño web y patrones de diseño.
- Utilizable en entornos empresariales: puede adaptarse a políticas y arquitecturas ya existentes en tecnologías de información, y es lo suficientemente estable para proyectos de largo plazo.
- Código legible: con comentarios en phpDocumentor para su fácil mantenimiento.
- Fácil de extender: permitiendo la integración con otras librerías.
- Incorpora herramientas que facilitan la prueba y depuración de aplicaciones: como unidades de generación de código, pruebas del funcionamiento del framework, panel de depuración, interfaz por línea de comandos y configuración en tiempo real.

Adicionalmente, pueden señalarse otro grupo de características que permiten la automatización de ciertas tareas relacionadas con la construcción de aplicaciones web, como las siguientes:

- Incorpora una capa de internacionalización: que posibilita la traducción de datos e interfaces, así como la localización de contenido en función de la ubicación geográfica del usuario.
- Uso de plantillas: las cuales pueden ser elaboradas por diseñadores de páginas web que desconocen el resto de detalles técnicos del framework.
- Asistentes de vistas: que reducen la cantidad de código de presentación al escribir grandes bloques de código con simples llamadas a funciones.
- Validación y regeneración automática de formularios: lo que asegura una buena calidad de los datos en la base de datos y una mejor experiencia de usuario.
- Verificación de la salida enviada por la aplicación: que ofrece una protección frente a ataques por datos corruptos.
- Manejo de memoria caché: lo cual reduce el uso del ancho de banda y la carga en servidor.
- Mecanismos de autentificación y credenciales: que facilitan la creación de secciones restringidas y la gestión de seguridad de usuarios.
- URLs inteligentes: que permiten que las direcciones de las páginas web sean parte de la interfaz y resulten amigables a los motores de búsqueda.
- Una gestión de listas más amigables al usuario: gracias a la paginación automática, ordenamiento y filtrado de resultados.
- Las interacciones usando AJAX son fáciles de implementar gracias a los asistentes de una sola línea de código que encapsulan efectos en JavaScript compatibles con varios navegadores.

Symfony, al igual que CakePHP, se originó a partir de un proyecto personal. Su primer desarrollador fue Fabien Potencier y la primera versión fue publicada en el año 2005. A agosto de 2007 existe una versión estable (1.0.6), aunque ya se comenzó a recibir sugerencias para la versión 2.0.

Zend Framework

Zend Framework [http://framework.zend.com/ ] destaca el hecho de que no sólo busca facilitar la programación a través del patrón MVC, sino también automatizar tareas más específicas, como el acceso a base de datos, el filtrado de datos ingresados a la aplicación o la búsqueda en un sitio web ordenando resultados por relevancia.

Entre sus metas se encuentran:

- Proveer un repositorio de componentes de alta calidad y que cuenten con soporte activo.
- Proveer un sistema completo para el desarrollo de aplicaciones web elaboradas en PHP5.
- Facilitar el aprendizaje en el uso del framework sin tener que aprender un nuevo lenguaje de programación.
- Organizar la colaboración de la comunidad para una programación avanzada en PHP5.

Los componentes con los que cuenta este framework pueden ser agrupados en las siguientes categorías:

- Infraestructura del núcleo del framework: componentes requeridos por otros bloques del framework, como memoria caché, configuración del ambiente de trabajo, operación por línea de comandos, registro de actividades y gestión de memoria, entre otros.
- Autentificación y autorización de acceso: responsables de la configuración de listas de control de acceso, autentificación de usuarios y manejo de sesiones.
- Base de datos: clases de acceso, modificación de tablas, obtención de datos mediante consultas SQL y lectura en formato XML.
- Internacionalización y Localización: para configurar la fecha y hora, la ubicación geográfica que tomará como base la aplicación web, las unidades de medida a usar y la posibilidad de traducir la información a otros idiomas.
- Emails, formatos y búsquedas: generación de archivos PDF, mensajes de correo electrónico en formato de texto y MIME (Multi-Purpose Internet Mail Extensions, Extensiones de correo Internet multipropósito)
- Modelo-Vista-Controlador: centra su atención en el desarrollo de controladores genéricos y específicos: de acciones, de atención de peticiones, de generación de URLs; además de una clase para las vistas.
- Web y Servicios Web: permite que la aplicación web pueda hacer uso de servicios web ofrecidos por aplicaciones externas y exponga servicios web propios.
- Documentación: intenta facilitar la lectura del código fuente, brindar ejemplos de su uso, promover equipos de traducción de la documentación y elaborar un tutorial del desarrollo de una aplicación web.

Zend Framework, a diferencia de los otros entornos de desarrollo presentados previamente, es un intento dirigido por la compañía responsable del desarrollo del lenguaje PHP, Zend Technologies Ltd, y mantenido por una comunidad de voluntarios. A pesar de ello, a la fecha aún no consigue niveles de eficacia y adopción similares a los frameworks en PHP ya existentes. A agosto de 2007 su última versión recibe la denominación de Zend Framework 1.0.1 y se espera el lanzamiento de la versión 1.1.0 en septiembre del mismo año.

Cuadro Comparativo de frameworks en PHP

Características

Cake PHP

Symfony

Zend FW

Arquitectura de aplicaciones

Incorporación del patrón Modelo Vista Controlador orientado a objetos.

X

X

X

Operaciones CRUD (Create, Retrieve, Update y Delete) asociadas a patrón Active Record.

X

X


Mapeado de objetos a bases de datos relacionales (ORM).

X

X

Independiente del manejador de base de datos.

X

X

X

Estructura por defecto para aplicaciones (scaffolding).

X

X

Archivos de configuración de la aplicación.

.php

.yml*

.php

Acceso vía web

Despachador de peticiones HTTP.

X

X

X

Generación de URLs amigables.

X

X

X

Implementación de código HTML

Uso de plantillas en PHP.

X

X

X

Posibilidad de uso de plantillas en Smarty.

X

X

Implementación de ayudantes de plantillas (helpers).

X

X

Seguridad

Manejo propio de sesiones por usuarios.

X

X

X

Manejo de privilegios de acceso a secciones de la aplicación (Access Control List).

X

X

Verificación de la salida generada en HTML por procesamiento de peticiones (Data Sanitization).

X

X

Usabilidad y acceso rápido

Almacenamiento en caché de las vistas.

X

X


Almacenamiento en caché de configuración de las aplicaciones.

X


Documentación para su uso

Manual de referencia.

X

X

X

Documentación de la Interfaz de Programación de Aplicaciones (API).

X

X

X

Herramientas de programación

Generación de código PHP.

X

X

Herramientas de prueba y depuración.

X

X

Interfaz de línea de comandos para la creación y mantenimiento de aplicaciones.

X

X

Almacenamiento de logs de funcionamiento del framework.

X


Extensibilidad y opciones adicionales

Integración con otras herramientas a través de plugins.

X

X


Implementación propia de llamadas Asyncronous JavaScript and XML (AJAX)

X

X


Soporte para Web Services.

X

Soporte para envío de correo electrónico.

X

X

Generación de contenido sindicalizado (RSS).

X

X

Generación de archivos PDF.

X

X

X

Soporte para internacionalización y localización de contenidos.

X

X

Soporte PHP

Soporte para PHP4.

X

Soporte para PHP5.

X

X

X

Características adicionales

Licencias libres.

X11

X11

BSD

Comunidad activa de usuarios.

X

X

X

* YAML: YAML Ain't Markup Language, formato de archivos similar a XML, pero más intituito y legible.

Literatura de Referencia

[AND2006] ANDERSON, John y Larry E MASTERS. CakePHP: A Rapid Development Framework. CakePHP Programmer's Reference Guide . Cake Software Foundation Inc. En: CakeForge.

[CHA2006] CHASE, Nicholas. Understanding the Zend Framework, Part 1: The basics . En: developerWorks: IBM's resource for developers (27 Jun 2006).

[POT2007] POTENCIER, Fabien y François ZANINOTTO. The Definitive Guide to symfony . Apress, 2007. ISBN: 1590597869. Traducción al español disponible en http://www.librosweb.es/symfony/ .

[ZEN2006] ZEND TECHNOLOGIES. Why Zend Framework? . En: Zend Framework: Roadmap.

[ALA2007] ALAMOS, Roberto. Top 13 reasons to use a web framework and never look back. En: CoderBattery: Enpowering Developers.

Actualización

En IBM developerWorks se ha iniciado una serie de cinco artículos sobre frameworks en PHP enfocada en Zend Framework, Symfony y CakePHP:

IBM developerWorks
PHP Frameworks, Part 1