lunes, septiembre 24, 2007

Hugin, fotos panoramicas

Hugin es una aplicacion open source para componer fotografias panoramicas a partir de un mosaico de fotografias.

Hugin funciona en Linux, Windows y OSX.

Algunos ejemplos:





Carretera escenica Tijuana-Ensenada





Rumorosa, vista a Mexicali

martes, septiembre 18, 2007

Cubo tipo compiz para Windows

Si has visto los efectos del cubo de compiz y te gustan, pero no tienes Linux, solo tienes Windows XP o Vista, pues aqui hay un plugin que crea un efecto similar para el escritorio.

lunes, septiembre 17, 2007

Programas libres para OSX

Compendio de programas libres para libres para OSX, libres en el sentido de Open source y gratis. Hay programas en varias categorias: Graficos, Organizacion, Base de datos, Ciencias, etc.

http://web.mac.com/simon_elliott/iWeb/simon_elliott%40mac.com/Software.html

jueves, septiembre 13, 2007

Día mundial del software libre en Tijuana


El día mundial de software libre se llevará a cabo este 15 de septiembre en el CECUT. Este evento esta organizado por la comunidad Linux Baja

Este año tenemos programadas conferencias, distribución gratuita de Software Libre.

El evento es gratuito y se realizará en la Sala de Lecturas del Centro Cultural Tijuana, el sábado 15 de septiembre de 2 P.M. a 6 P.M

Orden del día
  • 2:00 PM - 2:15 PM Registro y Bienvenida
  • 2:20 PM - 3:00 PM Conferencia "Compiz Fusion o Cómo impresionar a tu chic@ en la primera cita"
  • 3:05 PM - 3:45 PM Conferencia "Experiencias con Software Libre"
  • 3:50 PM - 4:30 PM Conferencia "Formatos Abiertos"
  • 4:35 PM - 5:15 PM Conferencia "Ubuntu o Cómo saber la temperatura exacta del punto de congelación de un bubulubu"
  • 5:20 PM - 6:00 PM Conferencia "Retos del Software Libre o Cómo usar Linux sin morir en el intento"

Actividades simultáneas
Distribución gratuita de Software Libre
Se estará distribuyendo gratuitamente el disco “The Open CD” que contiene Software Libre para Windows. Es necesario registrarse el día del evento para obtenerlo.



miércoles, septiembre 12, 2007

Siguiendo los Rubies

Desde hace algunos meses he estado siguiendo a un nuevo jugador en el área de desarrollo de aplicaciones para Web, ese nuevo jugador es Ruby.

Ruby es un popular lenguaje de programación interpretado de pasada-unica con características orientadas a objeto y multiplataforma. Ruby tiene ya como 10 años de que fue desarrollado, pero creo que ha ganado una gran popularidad en los últimos años debido a un framework (marco de trabajo) que permite la creación de aplicaciones web con relativa facilidad y potentes; este framework se llama Ruby On Rails (RoR).

RoR esta basado en 2 patrones primordialmente, Model-View-Controller (MVC); el cual permite realizar una separación entre el manejo de los datos, el control de flujo y la presentación o interface web, permitiendo una mejor organización y control del código de la aplicación, el otro patrón es ActiveRecord, el cual funciona como un ORM, y ayuda a realizar una "mapeo" transparente entre un objeto y una entidad relacional, ayudando a acceder a datos en una base relacional como si fueran objetos.

RoR ofrece algunas características que creo que han sido pieza clave en el éxito que tiene, una de ellas es que al hacer uso del patrón MVC ayuda a crear pruebas automáticas sobre el modelo de los datos y el controlador para asegurar que la aplicación una vez puesta en producción va a funcionar adecuadamente, ademas de ayudar a verificar que cambios introducidos en el código no van a romper funcionalidad existe, y si esto pasa, bueno al menos identificarlos por medio de las pruebas para su corrección antes de pasarlos a producción.

Otra característica interesante es el "Scaffolding", el cual es una manera de poder crear prototipos de una manera rápida en RoR, ya que se crea código de manera dinámica (código para operaciones CRUD) a partir de las entidades de la base de datos, mas tarde el "Scaffold" se puede ir reemplazando por nuestro propio código de forma gradual.

Ruby y RoR tienen una comunidad muy activa que aporta soluciones para extender la funcionalidad de ambos.

Si acaso la única desventaja (desventaja entre comillas) es que como mencione anteriormente Ruby es interpretado al momento de ejecución por un compilador de pasada única, esto implica que no se va a ejecutar tan veloz como un programa nativo (por ejemplo creado en C), pero el que el compilador sea de pasada única ayuda en que código que ya se interpreto no se va a volver a interpretar si se vuelve a ejecutar, en su lugar se va a utilizar su imagen ya interpretada.

Como mencione al principio Ruby ha llamado mi atención fuertemente, pero al parecer hay comunidades fuera del ámbito original de Ruby que también han sido atraídas por las joyas.

Una de esas comunidades, es la comunidad Java con el desarrollo de JRuby, el cual se enfoca en hacer que un programa de Ruby pueda ejecutarse dentro de la maquina virtual de Java.

Otra de las comunidades es la comunidad .NET, en donde a diferencia de Java, se ha implementado Ruby para ejecutarse en .NET, pero no por un grupo de programadores en su tiempo libre, si no que es un esfuerzo lidereado desde dentro del mismo Microsoft, el proyecto se llama IronRuby.

Lo curioso no es que Microsoft haya implementado Ruby para .NET (cuando ya existía un esfuerzo previo, por terceros para llevar a cano esta tarea Ruby.NET), lo interesante son las interpretaciones que gente como Martin Fowler, Scott Hanselman, Sam Gentile y algunos miembros del sitio Codebetter le dan a este hecho.

La realidad es que Microsoft y grupos open source no se llevan del todo, durante ya algo de tiempo han habido golpes bajos y FUD entre ambos; por su parte Microsoft parece estar empeñado a reemplazar las herramientas de desarrollo open source populares en el mundo .NET, por las suyas (por ejemplo el caso de NUnit o NAnt), lo cual es una duplicación de esfuerzo, ya que algunas de esas herramientas no superan a las ya disponibles en open source; pero por otra parte hay descontento entre algunos de los denominados "Líderes Técnicos" en el mundo .NET por la complejidad de las herramientas y tecnologías que Microsoft ha liberado en los últimos años, por ejemplo ASP.NET, cuenta con asistentes que ayudan a crear una aplicación fácilmente en minutos, el problema viene cuando hay que darle mantenimiento a esa aplicación o es necesario "crecerla" a un nivel corporativo, y en buena parte es por el modelo de ASP.NET el cual trata de llevar el paradigma de aplicaciones de escritorio a Web; otro punto es que es un tanto difícil seguirle los pasos a Microsoft en cuanto a la liberación de tecnologías, cambia el rumbo muy fácilmente, en solo un par de años por ejemplo el auge de los WebServices se extinguió y ahora existe WCF, el cual tiene otra visión; parte de este problema son también las incompatibilidades que ocasiones se crea al introducir nuevas tecnologías.

El problema que Microsoft quiere atacar con la implementación de IronRuby (desde la perspectiva de Martin y Scott), es que no esta detrás del dinero, es decir no espera obtener ganancias directas por implementar Ruby, lo que busca es que los "Líderes Técnicos" que están considerando soluciones menos complejas, como por ejemplo RoR, continúen trabajando en ellas, pero dentro de su plataforma Windows ( que ahí si es donde espera ganar dinero ) y no se migren a Linux u OSX, y junto con ellos se queden los desarrollares que siguen las opiniones de estos líderes, que a final de cuentas muchos evangelizadores de la plataforma .NET.

Solo el tiempo dirá si las cartas que se juega Microsoft son las correctas para mantener su amplia base de desarrollares.

Yo por mi parte, me interesa bastante Ruby, de hecho ya instale la plataforma en mi Mac, pero no he tenido el tiempo de experimentar con RoR; aunque tengo algunos proyectos web, el requisito hasta ahorita de mis clientes es que sea en ASP.NET, aun así he decido implementar los proyectos con MonoRail y ActiveRecord para .NET, con la finalidad de irme haciendo mas a la idea de RoR, tanto MonoRail como ActiveRecord están implementados en C#, pero con la misma filosofía del framework RoR, pero de ellos espero hablar en un siguiente post.

miércoles, septiembre 05, 2007

Morrissey en el Foro

Este 20 de Septiembre viene Morrissey a El Foro de Tijuana, venta de boletos a partir del 8 de Septiembre.

Nota: El anuncio del concierto aparecio en la edicion del Zeta de la semana pasada

Era cuestion de tiempo

El dia de hoy tanto Scott Guthrie de Microsoft como Miguel de Icaza anunciaron el acuerdo de colaboracion para llevar Silverlight oficialmente a Linux/Unix.

Si bien Microsoft anteriormente yua habia colaborado en proyectos de codigo fuente abierto como Xen y PHP, al parecer es la primera vez que colaboraria en el area de escritorio (segun lo que espresa Miguel en su post).

El acuerdo consiste en implementar las especificaciones Silverlight 1.0 y 1.1 en el proyecto llamado Moonlight, al cual Microsoft le ofreceria el apoyo necesario para que se lleve a cabo, ademas de poner a disposicion los codecs binarios para audio y video para Linux/Unix.



Miguel comenta que Moonlight continuara siendo open source, lo unico que permanecera cerrado son los codecs de Microsoft, pero que Moonlight puede utilizar otros codecs que sean open source aunque no se puede asegurar en ese caso la compatibilidad con Windows.

Aunque el acuerdo al que se llego esta demarcado por lo dicho anteriormente, el esfuerzo del equipo Mono no se centra en solo ejecutar aplicaciones Silverlight, tambien se esta desarrollando herramientas para poder diseñar aplicaciones en Linux/Unix y MacOS, ya que la herramienta Expression Blend de Microsoft para el diseño solo va a estar disponible en Windows. Aqui es donde entra en juego "Lunar Eclipse" que aun esta en proceso de desarrollo.



Ahora solo resta esperar y ver cual es la reaccion de los "trolls" en sitios como Slashdot al respecto de este anuncio.