Si necesitamos por esas cosas de la vida ver una web con IE podemos instalar IEs4Linux. Este software es open source, si queres podes colaborar vía paypal.
El proceso de instalación es muy fácil, y esta disponible una guia para las distribuciones mas importantes.
Estuve probando esta aplicacion para un error especifico con IE6, y el error lo genero perfectamente :( .
martes, 24 de junio de 2008
Internet Explorer en Linux
jueves, 19 de junio de 2008
Zend Framework y el Patron MVC
En un post anterior vimos como trabajar con MVC, pero en esta oportunidad vamos a ver como trabajar con MVC con Zend Framework.
El documento esta en ingles, pero lo suficiente mente claro ;)
Programacion Orientada a Objetos II
Ampliando la documentacion del post anterior de POO. Voy a compartirles un manual escrito por la gente de desarrollo web muy completo sobre PHP5.
Creacion de scripts en linux
Encontre este interesante articulo creado por jcmoreno. Un usuario de slideshare, que nos explica como crear scripts avanzados en Linux
Programacion Orientada a Objetos
No seremos programadores Zend sino programamos orientado a objetos. En este documento vamos a tener una introduccion a los conceptos basicos de la POO. Y nos puede servir de guia para nuestros primeros pasos.
Tambien es importante que tengan como referencia la web oficial de PHP, y su capitulo de PHP5
Python para todos
La gente de mundo geek realizo un manual de Python, titulado "Python para todos".
Es un manual muy bien escrito y claro. Es una excelente guia para aprender a usar Python y tenerlo como libro de referencia.
El temario que vamos a encontrar es el siguiente.
- Tipos básicos
- Control de flujo
- Funciones
- Orientación a objetos
- Programación funcional
- Excepciones
- Módulos y paquetes
- Entrada / Salida
- Expresiones regulares
- Sockets
- Interacción con webs
- Threads
- Serialización de objetos
Los que quieran descargarse el libro o saber mas al respecto pueden visitar la web de Mundo Geek en la sección del libro. O pueden usar la descarga directa que habilite hoy.
martes, 17 de junio de 2008
Zend Studio for Eclipse 6.01.
Ya tenemos la nueva versión de Zend Studio para "comprar".
Al parecer solucionaron los problemas de cuelgues habituales en ZS.
Lo mas destacado de los cambios son.
- Soporte para Zend_Layout.
- Zend Framework 1.5.2
- Paquete de lenguajes para Alemán, Italiano y Danés (para cuando el español? )
- Supuestamente solucionaron los problemas de cuelgues y consumo excesivo de memoria. Para solucionar esto en la versión 5 tenia que deshabilitar los builders, y Validation de cada proyecto.
- Refactoring: Ahora además de hacer refactoring rename, también podemos mover y organizar includes
Pero en definitiva, después de leer todo esto me baje el trial y lo probé un poco.
Esta es la pantalla que aparece mientras carga el IDE.
Una vez cargado lo primero que hice fue modificar mi workspaces a /var/www. Cuando se reinicio aparecieron los proyectos que ya tenia cargado en la versión anterior.
Lo segundo a configurar es la forma en que nos formatea el código, y para eso fui a windows->preferences->php->formatter y elegí la opción Zend Framework en Active Profile. Acá también podemos configurar nuestros propios standar de código (no recomendable).
Cuando quise entrar en Code Gallery, el sistema colapso y tuve que cerrarlo forzosamente.
Como ven en la imagen el consumo de memoria era bastante alto.
La realidad que el resto anda muy bien, podemos ver al eterno builder trabajando más rápido.
Y las nuevas opciones de refactoring en el menú contextual.
Zend Studio es el IDE mas completo y profesional para PHP5 y su integracion con Zend Framework. Pero todavía le falta algunos puntos como la optimizacion de recursos.
Lo probé en un Pentium 4 2.8 ghz 1gb de memoria ram con Ubuntu 8.04
Si queres saber mas sobre esta versión entra en este link
miércoles, 11 de junio de 2008
Utilizando componentes ZF individualmente
Una de las ventajas que tiene Zend Framework sobre otros, es que podemos usar sus componentes sin necesidad de migrar todo el sistema al framework, de esta manerapodríamos incluir en nuestro proyecto solo el componente de Base de datos Zend_Db. Lo único que tendríamos que hacer es en nuestra raíz del sistema crear una carpeta Zend que contenga las librerías que necesitemos para ese componente, es recomendable descargar todas las librerías.
Un ejemplo muy simple, para conectarnos en una base local, e insertar datos seria este1
<?php
2 require_once 'Zend/Db/Adapter/Pdo/Mysql.php';
3 $db = new Zend_Db_Adapter_Pdo_Mysql(array(
4 'host' => 'localhost',
5 'username' => 'desarrollo',
6 'password' => 'jsdlk123o',
7 'dbname' => 'trueque'
8 ));
9
10 $datos = array (
11 'nombre' => 'Josemir',
12 'estado' => '1',
13 );
14 $db->insert ( 'nombre_de_la_tabla', $datos );
15 ?>
Y listo. De la misma manera que usamos insert, podemos hacerlo con cualquiera de los otros metodos.
No solo es util para Zend_Db, sino para cualquiera de los demas componentes. En algunos casos es necesario cargar anteriormente el componente Zend_Loader.
Esto es util cuando queremos ir migrando de a poco nuestros sistemas.
lunes, 9 de junio de 2008
Errores tipicos programando POO en PHP5
Preparando la clase de PHP Orientada a objetos que empiezo a dictar hoy, me encontre con estos 10 tipicos errores, Programando PHP Orientado a Objetos. Muchos puntos parecen basicos pero increiblemente se ven a menudo.
El articulo fue extraido de Cristal Labs
1. Usar variables globales dentro las clases: una de las ventajas más importantes de la programación orientada a objetos es la reusabilidad de los códigos. Al usar variables globales ($_GET, $_SESSION, $_POST, $_COOKIE, global) dentro de las clases, esta se ve comprometida considerablemente. La razón es que todos los proyectos no tienen las mismas variables globales.
2. Mezclar código HTML en la definición de las clases: es una de las cosas que me sorprenden cada vez que la veo. Es inaceptable que esto se le haya ocurrido a algunos. Al mezclar HTML en el código PHP se compromete la reusabilidad de la clase, no todos los proyectos tienen el mismo código HTML.
3. Imprimir salida (echo) dentro de las clases: aunque esto se parece a la anterior, me refiero a los echo o similares dentro de los métodos. Si una clase no está destinada para emitir salida no lo debe hacer. Para eso muchos utilizamos sistemas de plantillas.
4. Identificadores de clases, métodos y propiedades sin sentido: un identificador siempre debe ser lo más descriptivo posible. A muchos le gusta usar identificadores increíblemente irrelacionados con su propósito. Esto compromete enormemente la lectura de un código. (Mira las reglas de codificación en PHP)
5. Mezclar uso de versiones de php en una misma clase: a partir de la versión 5 de PHP, la programación orientada a objetos se puede implementar de una manera más formal, pues se introdujo los modificadores de visibilidad public, private, protected. Aparte de que se pueden crear clases de alto nivel (clase Abstractas) y métodos abstractos con la palabra reservada abstract. También se pueden definir los métodos y propiedades estáticas formalmente con la palabra reservada static. Mezclar la programación orientada a objetos en PHP 4 (donde todo era publico) con la de PHP 5 hace un código “sucio”. Consejo: elige una de las versiones y programa para ella.
6. Más de una clase en un mismo archivo: definir distintas clases en un mismo archivo es otra de las cosas que no se debe hacer. Las clase se han de componer lo más reusables posible y si puedes nombrar al archivo con el nombre de la clase muchísimo mejor. Sigue el camino de los grandes lenguajes como: Actionscript, Asp.net, Java entre otros.
7. No hacer pruebas unitarias a las clases: al terminar de codificar una clase recuerda de hacer pruebas unitarias para asegurar el correcto funcionamiento de clase. Esto es simplemente probar todos los posibles caminos que pueda tomar un estado (propiedad), parámetro de método, etc para que la clase no “explote”.
8. Todos los métodos y las propiedades publicas en una clase de PHP 5: los programadores novatos cometen el error de definir todos los métodos y propiedades como públicos, por desconocer las ventajas de los modificadores visibilidad. En PHP este es un problema grave porque no hay tipeado de datos. El problema de las propiedades públicas es que no podemos controlar de manera fácil el tipo de datos que contiene por lo que nuestra clase pudiera explotar por un tipo de dato inesperado. Si no estas seguro de que visibilidad le debes poner a una propiedad hazla privada. Valida los tipos de datos de las propiedades al menos de una manera básica.
9. Duplicación de métodos para ocultar falla de lógica: A diferencia de otros lenguajes como Java y C++, PHP no admite la sobrecarga de métodos. Al menos no de la manera tradicional. Esto, sin embargo, no es excusa para duplicar métodos sólo porque un dato cambia para la operación que éste realiza.
10. Variables de configuración dentro de las clases: Los datos de configuración de base de datos, web services y otros deben ir en un archivo de configuración aparte, NO dentro de la clases que hacen uso de estas. Aunque se admite en clases que sea exclusivamente para ello.
A estos puntos yo añadiria los siguientes
A- No usar clases genericas, que incluyan metodos o propiedades que no tengan nada que ver con el identificador
B- No declarar las propiedades como publicas, para eso tenemos los metodos getter y setter. Cada objeto y solo ese objeto debe saber sus propiedades.
Y seguramente me estoy olvidando de alguna más
martes, 3 de junio de 2008
Ruby Facíl
Ruby Facíl es un libro con licencia creative commons creado por Diego F. Guillém Nakamura, el libro es bastante simple y claro si queremos empezar a aprender Ruby, esta edicion no habla de Rails, el framework que hizo famoso a Ruby, pero es una buena base.