November 22nd, 2011 Category: Ambiente de Desarrollo cloud Open source Programacion
3 Comments »

Hay una serie de herramientas que son necesarias en cualquier ambiente de desarrollo, en esta serie de post, vamos a ver como crear un ambiente semi ideal para el desarrollo en equipos de desarrollo.Como primer topico vamos a hablar sobre la documentacion.

Seguramente les paso muchas veces que tuvieron que heredar algun desarrollo ya empezado, y tenian que perder mucho tiempo leyendo codigo y usando la aplicacion para entender como funcionaba y sin embargo siempre encontraban algo nuevo. Que genial seria poder leer la documentacion de como esta diseñado un software y poder entender, alcance, features, bugs, puntos de entrada, tecnlogias usadas, etc. Lamentablemente esto casi nunca pasa, y tenemos que hacerlo de la forma dificil y lenta. Pero nosotros podemos cambiar eso, e implementar politicas de documentacion para nuestros proyectos.

En estos sistemas podemos agregar documentos, screenshot, imagenes, especificaciones de instalacion, configuracion, librerias a usar, detalle de servidores, listado de grupos de desarrollo (en el caso que sean varios grupos), etc. Todo lo que puede servir para que una persona nueva en el grupo o alguien que herede nuestro codigo pueda entender como funciona leyendo la documentacion del desarrollo.

Como formato ideal de documentacion para este tipo de cosas, me parece que gana el estilo wiki. No solo tenemos wikimedia, sino que tambien contamos con Trac, Confluence, PbWorks, y muchos mas. Pero obviamente si les resulta comodo usar google docs, o archivos con formato Word o Excel tambien es valido, pero por experiencia siempre terminamos teniendo carpetas inecesarias con un monton de archivos que no sabemos de que hablan, y capaz que ya perdieron vigencia.

Aca les voy a contar de algunos proyectos interesantes que pueden usar para sus proyectos.

Mediawiki.

El mismo codigo que se usa para la wikipedia esta disponible para que nosotros podamos instalarlo internamente en nuestro servidor con nuestros documentos privados, funciona de la misma forma que la wikipedia y se puede descargar de http://www.mediawiki.org/wiki/Download/es, dentro de nuestro ambiente lo podemos configurar como una pagina comun y corriente.

Mediawiki es un producto open source. Y no hay que pagar por usarlo

Confluence

Esta es otra alternativa a mediawiki que se presume mas completa y facil de integrar con otras herramientas como Jira.
http://www.atlassian.com/software/confluence/overview

Lamentablemente este servicio es pago. Pueden usar los servidores de atlassian.com o pueden usarlos dentro de su ambiente. Cualquiera de las dos es viable, el producto es muy bueno a pesar de su precio.

Trac


Durante mucho tiempo use Trac, no solo por la wiki, tambien por su integracion con el repositorio de svn, la verdad es que hoy no me resulta comodo, hay muchas alternativas, y esta paso a ser de mis ultimas elecciones. Trac esta desarrollado en python, y tiene plugin para integrarlo con git y creo que tambien con mercurial y bazaar. Es open source y gratuita.
PBWorks
Uno de mis favoritos, es un servicio online, de documentacion de proyectos colaborativo, anda muy bien. La version gratuita es muy completa. Se puede pagar por algunos features especiales.
http://pbworks.com/

Basecamp

Es uno de los mas famosos, y brinda una solucion un poco mas amplica, no recuerdo si tiene wiki, pero si soporta compartir documentos, e integra muchas funcionalidades. Es un servicio pago mensualmente
http://basecamphq.com
Github
Sin dudas mi primer eleccion, tanto para proyecto privados pagando el fee mensual, como para proyectos opensource, no solo integra git en tus proyectos, sino que ademas brinda la posibilidad de crear wiki, ticket, comentar parte de codigos, hacer comentarios de una review, trabajar con la cantidad de colaboradores que quieras, seguro, facil. Tiene bugtrucker. Git no seria lo que es hoy sin este servicio espectacular que crece dia a dia, PHP, el Kernel de Linux, Zend Framework entre otros decidieron pasarse a github para sus proyectos. Hoy yo tengo casi todos mis proyectos en github y funciona excelente. Como wiki cuando la documentacion crece quizas sea mejor decision pensar en mediawiki, o pbworks.https://github.com

 

 

Red Mine

Me olvidaba  de una de las mejores alternativas opensource, RedMine. Desarrollado en Ruby on Rails, es una excelente alternativa a Jira + Confluence, un producto super completo y libre.

http://www.redmine.org/

 

Conclusion

Hay otras soluciones, pagas y gratuitas para documentar nuestros desarrollos. Estas son con las que trabaje, en el proximo articulo vamos a tratar de elegir que software de control de versiones usar, y cual elegir entre tantas opciones nuevas.

No solo es importante configurar un ambiente sino tambien usarlo. Si implementamos algun sistema para documentar y no lo usamos no tiene sentido, es una buena costumbre documentar el codigo, y es algo vital para el futuro inmediato.

Seguir leyendo

January 11th, 2011 Category: Open source
4 Comments »

Por casualidad hoy volvi a visitar el blog de Sebastian Bergmann, un groso dentro del ambiente de PHP. Sin dudas el proyecto mas importante que realizo fue PHP Unit el cual esta tomando cada vez mas repercusion dentro de los desarrollos actuales.

Uno de los grupos de desarrolladores mas importantes en la web que usa PHP Unit es Facebook. Y a traves de un mail le agradecen  a Sebastian Bergamann de la siguiente forma

“Hey Sebastian,

we would really like to thank you for all the work you’ve done on PHPUnit this year. Testing is important when we’re talking about 500 million people; a bug for 1% of Facebook users is still affecting 5 million people!

To show our appreciation we’d like to give you a free year of a GitHub paid account. The link below provides one year of more space, more collaborators, and private repositories. If you already have a paid GitHub account, it will add a bunch of credit instead.”

Mas alla que para Facebook una cuenta por un año en github no significa nada, si tenemos en cuenta los millones de dolares que recibe de inversion, tambien es verdad que no hacia falta quedar bien con Sebastian porque el lo hace sin animo de lucro,  sin embargo el grupo de desarrolladores de Facebook consiguieron retribuirle a Sebastian su trabajo, de una manera muy interesante.

Lo mas importante de esto fue el comentario de Sebastian sobre este mail.

“Thank you, Facebook!

It feels good to be appreciated for the work I do to make the life of PHP developers better by working on development and quality assurance tools such as PHPUnit.”

Creo que esto simboliza el esfuerzo que cada uno hace por el open source. No hablamos de plata, de dolares ni de cuentas gratis por servicios online, sino la satisfaccion personal de saber que lo que hacemos le sirve a otras personas.

Cuando compartimos nuestro trabajo estamos facilitando las cosas a muchas personas. En este caso una de las herramientas mas utiles a la hora de desarrollar una aplicacion, y asegurarnos de que todo anda bien.

Pagina de Sebastian

Seguir leyendo

December 11th, 2008 Category: blogzf Open source Zend Framework
7 Comments »

Primero que nada quiero contarles que se unió scramatte al grupo de trabajo del Blog. Scramatte va a estar desarrollando junto conmigo todo el proyecto, todavía no hay una convocatoria abierta a participar del desarrollo pero los que tengas ganas pueden dejar su comentario.

Esta incorporación voluntaria es muy importante para el proyecto ya que Scramatte ya había empezado a desarrollar un blog con Zend Framework, y tiene bastante experiencia. Si hacen un update del proyecto van a notar grandes cambios. Y digo grandes, porque ya tenemos un Diseño de base de datos mas completo, acorde a las necesidades, y el sistema en el frontend ya adquirió mucha de las funcionalidades.

Por el lado del backoffice (backend/admin), tome prestado otro estilo, no va a ser el definitivo, pero necesitaba una estructura para trabajar. También incorpore el plugin de Zsamer para el manejo de errores. El login ya tomo un poco de forma, y solucionamos algunos problemas con las vistas.

En la parte anterior vimos el uso de módulos dentro de nuestros sistemas. Y anticipamos el ABML de módulos como el de usuario, para los abml vamos a usar los ejemplos de CRUD también del blog de Zsamer, que a mi gusto están muy bien hechos, y además ya podemos usar el manejador de errores.

Otro cambio importante, y es lo que voy a tratar de explicar hoy es la incorporación de 3 externals nuevos. Estos externals son los componentes que necesita Dojo. Voy a hacer lo posible por implementar de la mejor manera este componente, porque tal como me lo describió scramatte, es un monstruo. Lo mas fácil seria usar Mootools o Jquery, pero Zend_Dojo, me parece el mas completo. Por ahora solo vamos a usar Zend Dojo View Helpers.

Lo primero que tenemos que hacer es agregar estos 3 Dojo toolkit como externals, que es la manera correcta de hacerlo, en la carpeta webroot para que pueda ser accedida públicamente, lo ideal seria tener un branch propio donde tengamos el ultimo release de estas Dojo Toolkit en nuestros propios repositorio, pero por ahora no va a hacer falta, y vamos a agregar directamente los repositorios de dojo.

Una vez tengamos los dojo toolkits dentro de nuestro webroot tenemos que habilitar Zend_Dojo en nuestro sistema. La forma que por ahora vamos a usar en nuestro proyecto es poner el código dentro de nuestro plugin de View, y como por ahora solo vamos a usarlo en el Backoffice, vamos a habilitarlo ahí solamente. El código para habilitar Zend_Dojo es el siguiente.

_view->addHelperPath( 'Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper' );
/**
* Ahora habilitamos Zend_Dojo en nuestra vista
*/
Zend_Dojo::enableView( $this->_view );
/**
* Configuracion de Dojo
*/
$this->_view->dojo()->setDjConfigOption( 'parseOnLoad', false );
$this->_view->dojo()->setDjConfigOption( 'userPlainJson', true );
Zend_Dojo_View_Helper_Dojo::setUseDeclarative();

Ahora desde nuestro layout vamos a cargar la librería dojo, como dice el Manual de Zend Framework. Desde el header html de nuestro layout agregamos la siguientes lineas.

        dojo()->isEnabled() ) {
                $this->dojo()->setLocalPath('/js/dojo/dojo.js');
                echo $this->dojo();
            }
        ?>

Esto despues de <?= $this->headScript() ?>.

Con esto ya podemos usar los helpers de Zend_Dojo, y tenemos habilitado la libreria de Dojo. Se que es mas dificil que.

<script src="http://www.google.com/jsapi"></script>
<script>google.load("mootools", "1.11");</script>

Pero a la larga vamos a apreciar esto. La gran integracion de Dojo con Zend Framework es algo muy favorable, y agil. 

En proximas entregas vamos a tratar de darle un poco mas de onda a nuestro backoffice haciendo uso de estas librerias.
Seguir leyendo

November 14th, 2008 Category: Open source
1 Comment »

Hoy me pasaron un video de un interesante proyecto open source, llamado Open Croquet, y me puse a investigar un poco mas, y llegue a varios articulos interesantes.

Basicamente es crear un entorno de usuario 3D aprovechando las redes Peer to peer (P2P). El proyecto es open source.

Voy a copiar un texto sacado de www.amphibia.com.ar que cuenta un par de cosas sobre este proyecto.

“Por decirlo en pocas palabras: los usuarios de Croquet pueden modificar el entorno, que no habitan en soledad sino que lo comparten con otros usuarios, y que está online permanentemente, incluso con aplicaciones compartidas. Los participantes del Croquet tienen la capacidad de crear y de modificar el espacio informacional y de crear conexiones completamente dinámicas a otros espacios o recursos de la red. Se trata de un entorno donde cualquier cosa puede ser creada o ser representada; donde todo puede ser modificado. El entorno de Croquet pierde sentido si lo pensamos como un espacio privado, porque se trata de una arquitectura abierta, de interacción física y cognitiva, donde esa interacción no se da tanto con la interfaz como directamente con la información y con los usuarios de la red.”

Demo del producto

Video presentacion del proyecto.

Link del proyecto

Otro Articulo interesante

Seguir leyendo

November 12th, 2008 Category: Open source
No Comments »

Gracias a tux info 11, me entero de este largometraje completamente realizado con software libre ( Blender ). En la voz de uno de los pajarracos, me parecio reconocer a Guido Kazka, no encontre la lista de autores para confirmarlo.

El proyecto esta bastante bueno, no solo porque apoya al software libre, sino porque ademas esta hecho en Argentina y es un producto de alta calidad.

Mis felicitaciones a este producto con sabor a Asado.

Sitio Oficial

Seguir leyendo