• Instalar y usar un plugin ágil en Redmine

    gnu-linux planeta-codigo software software-libre

    Redmine

    Las metodologías ágiles para la gestión de proyectos son ya ampliamente usadas, como scrum o programación extrema (XP). Una diferencia entre las metodologías ágiles y las metodologías empleadas tradicionalmente como el modelo en cascada es que en las metodologías ágiles se tiene en cuenta que se pueden producir cambios en el desarrollo del proyecto y suelen ser más flexibles y adaptables ante estos cambios.

    En el modelo de metodología ágil podemos usar un panel kanban donde ver de un vistazo rápido las tareas terminadas, las que están en progreso y las próximas tareas planificadas reflejando la realidad del equipo de desarrollo. Reorganizándolas según prioridades que pueden cambiar de una semana a otra, en las metodologías ágiles no se realiza una planificación completa inicial sino que se va realizando a medida que el proyecto progresa.


    Continuar leyendo...

  • Hemeroteca #6

    gnu-linux planeta-codigo software software-libre

    Octopress

    Seis nuevos meses para el Blog Bitix cumpliendo un año como tal y siendo la continuación de los casi cuatro años de El blog de pico.dev. Otro año que finaliza y toca hacer recapitulación de los que he escrito durante este tiempo, 26 nuevos artículos escritos con puntualidad uno por semana y publicados el viernes o sábado.

    Aunque aún no puedo usar profesionalmente el framework web Apache Tapestry con el realmente me divierto programando sigo escribiendo sobre él con algunos temas interesantes tales que cómo usar un CDN, cómo crear plantillas para dar un aspecto común a todas las páginas de la aplicación, una comparativa entre el modelo «pull» que usa Tapestry y el modelo «push» que normalmente se usa en los framework basados en acciones, cómo crear una doble barra de botones sin duplicar el mismo código, como forzar el uso de https o la anotación Cached. Todo este contenido lo he añadido al libro PlugIn Tapestry y que puedes descargar de forma totalmente libre en varios formatos. No está mal y aún tengo más contenido pendiente por publicar tal que como embeber una aplicación web usando tomcat-embed de forma que la aplicación esté autocontenida y el despliegue sea más sencillo y evitemos problemas, hacer un ejemplo con el componente Grid que muestre sus grandes posibilidades y la gran cantidad de trabajo que nos puede ahorrar, …


    Continuar leyendo...

  • Introducción al gestor de proyectos y tareas Redmine

    gnu-linux planeta-codigo software software-libre

    Redmine

    Bitnami

    Para desarrollar un proyecto de software se hace imprescindible disponer de algunas herramientas que nos permitan realizar las tareas. Una de estas herramientas es un gestor de tareas, peticiones o errores, que nos permite recoger en una herramienta gran parte de la información, conocer el estado, planificar y hacer el seguimiento las tareas necesario para desarrollar de forma ordenada, sin que perdamos nada de información y pudiendo recuperarla en cualquier momento en un futuro.


    Continuar leyendo...

  • Ejercicios (katas) para mejorar habilidades de programación practicando

    java software-libre planeta-codigo programacion

    La semana pasada escribía sobre algunos libros que leer para ser mejores programadores, sin embargo, toda esa teoría solo sirve cuando se interioriza para usar más tarde en la práctica. Para interiorizar parte de ese conocimiento hasta el momento creo que no se ha inventado mejor manera que escribiendo código teniendo en cuenta esos principios.

    Las katas y dojos son unos ejercicios que se realizan para practicar, son problemas sencillos de los que se conoce la solución pero lo importante no es resolverlos sino aplicar las lecciones aprendidas y mejorar nuestras habilidades de programación que posteriormente usemos en los proyectos que trabajamos. Estos ejercicios se suelen realizar con otras personas, en la página Katayunos - Merendojos se suelen organizar encuentros en algunas ciudades y fechas, si no nos cuadran las fechas y lugares podemos realizarlas individualmente cuando y donde prefiramos aunque una de las partes que nos perderemos es aprender de las habilidades y formas de trabajar de otras personas.


    Continuar leyendo...

  • 8+ libros para mejorar como programadores

    java software-libre planeta-codigo programacion

    Hay cantidad de información para aprender y en diferentes formatos desde libros si queremos tener un conocimiento más profundo sobre alguna materia pasando por presentaciones en SlideShare o SpeakerDeck que aún comentando los detalles de forma escueta sirven para conocer los detalles importantes sobre un tema, charlas de hangouts que quizá requieran menos esfuerzo y tiempo por nuestra parte que leer un libro como las compartidas en desarrolloweb o en Virtual JUG, blogs con artículos que explican un detalle específico (aquí hay una buena colección de bitácoras sobre java), katayunos y merendojos en los que se practican técnicas de programación sobre un problema conocido, sencillos, de los que ya se conoce su solución y que se realizan junto a otras personas, convenciones como Codemotion, PyCon, Greach, LibreCon, CAS, Spring I/O, ApacheCon, BilboStack… En estas convenciones se hacen presentaciones de alrededor de una hora para los asistentes, además siendo presenciales permiten reunirse con otras personas con los mismos intereses y de las que algunas los vídeos están disponibles en YouTube… en definitiva, para aprender lo único que se necesita es tiempo y motivación que no es poco después de una jornada laboral que ocupa la mayor parte de nuestro tiempo.


    Continuar leyendo...

  • Introducción a Bitnami

    hardware gnu-linux planeta-codigo software software-libre

    Bitnami

    Instalar algunas aplicaciones, herramientas o servicios no siempre es sencillo y rápido. En la mayoría de los casos los pasos están explicados suficientemente pero en la práctica nos pueden surgir dudas o problemas que no están documentados que pueden hacer que la experiencia de instalación no sea agradable o necesitar dependencias que hay que instalar a la vez para obtener un funcionamiento correcto. Además, sin emplear una máquina virtual se necesita instalar en el propio equipo o servidor cuando quizá solo interesa evaluar el producto con lo que al hacer la desinstalación se acaba con archivos temporales que quizá no se eliminen y permanezcan ocupando espacio para siempre o hasta ser eliminados.


    Continuar leyendo...

  • Integración entre Ansible y Docker

    gnu-linux planeta-codigo

    Ansible

    Docker

    En la introducción de Docker y inicio básico de docker explicaba como usar Docker y en la introducción a Ansible explicaba las características de Ansible y como usarlo. Podemos usar Docker y Ansible de forma separada pero también podemos combinarlas para beneficiarnos de las propiedades de cada una. En Ansible disponemos de dos módulos que nos permite manejar las imágenes y los contenedores de Docker, estos son docker y docker_image.

    Usando tareas de ansible podemos automatizar el arranque del servicio de docker, la construcción de las imágenes con los Dokerfile y el inicio o parada de los contenedores de docker. En el ejemplo se construye una imagen base en la que se basarán el resto de imágenes, se crea una imagen con mysql, otra de redis y finalmente la imagen apps donde se ejecutarán las aplicaciones que usarán los servicios de mysql y redis.


    Continuar leyendo...

  • Introducción a Ansible

    gnu-linux planeta-codigo

    Ansible

    Siempre que nos sea posible deberíamos automatizar las tareas que realizamos. Automatizar tareas hará sencillo realizarlas permitiéndonos hacer todos los despliegues de una aplicación que queramos con menos posibilidades de cometer errores manuales o nos permitirá disponer de una nueva máquina aprovisionada exactamente como pueda estar la máquina de producción en mucho menos tiempo. En el ámbito del aprovisionamiento de máquinas y administración de la infraestructura IT hay varias opciones, entre ellas están Chef, Puppet y Ansible.


    Continuar leyendo...

  • Cómo crear una imagen para Docker usando un Dockerfile

    gnu-linux planeta-codigo

    Podemos usar los contenedores disponibles en Docker Hub, donde están disponibles las aplicaciones de bases de datos, servidores de aplicaciones de múltiples lenguajes, servidores web más populares y entre otras muchas herramientas. Pero también podemos definir nuestras propias imágenes personalizadas con las necesidades que tengamos. Lo que necesitamos es escribir un archivo que contenga la receta para construir la imagen del contenedor, este archivo es el Dockerfile.
    Continuar leyendo...

  • Cómo filtrar contenido HTML de forma segura

    java programacion planeta-codigo

    Java

    Algunos sitios y aplicaciones pueden tener la necesidad de «scrapear» el contenido de sitios web para extraer información de ellos y posteriormente usarla de alguna forma. El contenido «scrapeado» o obtenido de una fuente externa debe ser filtrado, si no es filtrado y posteriormente es servido a los usuarios puede enviárseles principalmente scripts con contenido malicioso (provocando un ataque cross-site scripting, XSS) o causar una desmaquetación al visualizar el contenido. A la hora de implementar la agregación de contenido de forma segura en Blog Stack, contenido obtenido de una fuente RSS o Atom pero que en esencia es HTML he usado la librería jsoup, de tal forma que solo el contenido considerado seguro o confiable de los artículos sea agregado.


    Continuar leyendo...

  • Generar URLs semánticas y amigables

    java programacion planeta-codigo

    Java

    En algunas web las urls incluyen el identificativo del objeto de la base de datos a partir de cual se muestra el contenido principal de la página, en Blog Stack esto podría ser un artículo pero en otras páginas webs podría ser un producto. Esto genera direcciones de páginas webs «feas» de cara al usuario y al SEO de los buscadores además de exponer cierta información de la base de datos que probablemente no interese a nadie excepto al desarrollador de la página. En este artículo voy a explicar una forma de generar urls semánticas, «bonitas» o amigables de cara al usuario y al SEO para los buscadores y como lo he implementado en un ejemplo real como es Blog Stack.


    Continuar leyendo...

  • Agregador Blog Stack rediseñado

    planeta-codigo

    Blog Stack

    Estas últimas semanas he podido dedicar un poco de tiempo a al proyecto personal de Blog Stack. Blog Stack es un agregador o planeta de bitácoras en español sobre linux, software libre, programación, desarrollo, metodologías ágiles y tecnología. En dos artículos anteriores explicaba más en detalle que es Blog Stack, en uno de ellos hacía una descripción y presentación y en otro explicaba como está hecho en el aspecto técnico tanto detallando cuales son las tecnología que usa como la arquitectura del proyecto.


    Continuar leyendo...