Ya fue liberada la version 1.0 el proveedor Linq para NHibernate, en el siguiente post pueden encontrar mas informacion.
Archivo de Septiembre 2009
Linq para NHibernate, versión 1.0 liberada!
Publicado por Miguel Gonzalez en 9 Septiembre 2009
Publicado en Uncategorized | 2 Comentarios »
38 menús desplegables con jQuery y CSS
Publicado por Miguel Gonzalez en 8 Septiembre 2009
Impresionante como la comunidad amante de JQuery dia a dia realiza tantos aportes para facilitar la vida de los programadores en la creacion de componentes reutilizables, entra a este enlace listado de 38 menús desplegables desarrollados usando jQuery y CSS. ¿Necesitas alguno?
Publicado en JavaScript | Etiquetado: CSS, JQuery | Deja un Comentario »
La Técnica Pomodoro
Publicado por Miguel Gonzalez en 7 Septiembre 2009
El método pomodoro es una técnica de gestión de tiempo muy sencilla y que puede ser una alternativa a GTD o incluso complementarse. Consiste básicamente en organizar una lista de tareas a realizar en el día y asignar intervalos de tiempo de 25 minutos a una tarea hasta conseguir completarla, haciendo descansos de 5 minutos entre los intervalos de trabajo. La técnica toma el nombre de los relojes de cocina con forma de tomates que se usan para controlar el tiempo de cocción de las comidas.
Para conocer más sobre la técnica se pueden seguir estos enlaces:
- La técnica pomodoro, en Café Bar Ágil. Una explicación en castellano de la técnica Pomodoro.
- The Pomodoro technique. La web del creador de la técnica.
- Pomodoro technique illustrated. Un libro gratuito con explicaciones sobre la técnica.
La base de la técnica Pomodoro consiste en intentar mantener la distracción durante un pomodoro, que es como denomina a los 25 minutos de trabajo sin pausa. Esta técnica puede ser de aplicación al trabajo diario, pero también es aplicable a un night job dedicado a la programación.
Se puede usar la técnica Pomodoro mediante un software especializado o simplemente con una aplicación de cronómetro. Entre las primeras tenemos Concentrate! o Pomodairo, esta última es una aplicación gratuita multiplataforma que corre sobre el runtime de Adobe Air. En cuanto a los cronómetros tenemos un montón de aplicaciones gratuitas, a mi me gustan especialmente Menubar Countdown para Mac y DinnerTimer para Windows.
Publicado en Metodologias | Deja un Comentario »
Definiciones de Arquitectura
Publicado por Miguel Gonzalez en 3 Septiembre 2009
Tratare de enunciar las lineas que encierran mejor el concepto de arquitectura que comparto.
Según Kruchten, Booch, Bittner, y Reitman la arquitectura abarca un conjunto de decisiones importantes sobre el sistema de software de una organizacion. Estas decisiones comprenden:
– Elementos estructurales y sus interfaces.
– La colaboración entre ellos.
– La composición de estos elementos estructurales y de comportamiento dentro de subsistemas mas grandes.
– El estilo arquitectónico que guia a la organizacion.
Según Fowler este delinea algunos temas comunes como por ejemplo:
– Dentro de la arquitectura deben estar las decisiones del mas alto nivel.
– Dentro de un sistema pueden convivir múltiples arquitecturas.
– Y que las decisiones de arquitectura son duras al cambio.
Bass, Clements y Kazman dicen mas o menos lo mismo son grandes elementos estructurales que se relacionan entre si a través de sus interfaces publicas.
Por que necesitamos la arquitectura? Por que sin ella estamos destinados al fracaso, por lo menos en la mayoria de los casos pienso yo.
Las preguntas que validan este hecho son bastantes claras:
- Como se implementara la aplicacion en producción?
- Como estaran usando los usuarios la aplicacion?
- Cuales son los requerimientos atributos de calidad, tal como seguridad, desempeño, concurrencia, internacializacion, y configuracion?
- Cuales son las tendencias que deberian impactaren la aplicacion ahora o despues que sido implementada?
Arquitectura vs Diseño: Aqui se vuelve a repetir que los componentes de alto nivel junto con las relaciones entre sus interfaces es la vista arqsuitectonica del sistema y que una vista mas detallada pertence al diseño.
Usuario, negocio y objetivo del sistema: Son los actores que deben tenerse en consideracion en la arquitectura del sistema y la medicion del exito en cada una de ellas.
Objetivos de la arquitectura: Busca crear un puente entre los requerimientos del negocio y los tecnicos, comprendiendo los casos de uso para poderlos implementarlos en el software. Descubrir los requerimientos que impactaran en la estructura del sistema. Busca ser lo suficientemente flexible para afrontar los cambios en el transcurrir del tiempo y sobre todo un balance entre los requerimientos funcionales y los atributos de calidad (tal como desempenio, seguridad, mantenibilidad, interoperatibilidad, escabilidad, etc.).
Lineas base de Arquitectura
Del enfoque a la arquitectura dice el texto que lo primero que hay que definir es el tipo de aplicacion, el estilo y lo concerniente a la transversalidad (tal como lo muestra el grafico).
Los tipos de aplicaciones son variadas, pueden ser en un entorno mobile, sobre clientes ricos en web o de escritorio, del tipo servicios, cliente-servidor, etc.
La estrategia de implementacion esta claro que es regida por las restricciones que podemos encontrar en las politicas de la organizacion en cuanto a la seguridad, infrastructura, tecnologia, tipo de redes a utilizar, protocolos, etc. (es como si puseramos a schumacher a correr en el TC2000 tendria que acomodarse un poquito, no?).
En cuanto al estilo de arquitectura hay varios factores que inciden en la eleccion de cada una, la experiencia de nuestros desarrolladores, la capacidad de infrastura de la organizacion. Lo mismo se puede decir de las tecnologias de que seeccionar todo esta atado a las posibilidades que podemos encontrar en la organizacion donde debemos desempenarnos.
Los atributos de calidad son varios, desempenio, seguridad, mantenibilidad, interoperatibilidad, escabilidad, pero podemos usar solo algunos de ellos deacuerdo de las necesidades del proyecto o buscar un equilibrio entre aquellos que generen conflicto entre ellos como es el ejemplo de performance y seguridad.
Casi por razones de tiempo en mi caso hay que negociar cuantas fichas vamos a poner en cada y asi poder llegar a la fecha de entrega que tanto preocupa al cliente.
Las funciones trasnversales enumeradas son las que existen en casi todos los proyectos. Estas son: Autenticacion, Autorizacion, Caching, Comunicacion, manejo de excepciones y logging.
Principios claves de la arquitectura
- Construir para el cambio
- Analisis del modelo y reduccion del riego
- Uso de herramientas de comunicacion y colaboracion
- Identificar las decisiones claves de ingenieria (cuadro de la guia)
Fuente: patterns & practices Application Architecture Guide 2.0
Publicado en Arquitectura | Deja un Comentario »