17 de mayo de 2013

Herencia de Modelos con Entity Framework Code First

En estos últimos días, hemos estado trabajando en unos prototipos para un cliente con MVC 3 y Entity Framework Code First. En el transcurso de este proyecto se nos vino a la mente una duda: ¿será posible heredarle un modelo a otro? Ya que si lo es, se podría eliminar el código redundante y se normalizaría la base de datos. Con esto en mente, nos pusimos a investigar.

9 de mayo de 2013

Depresión post Google Reader (y cómo superarla)

Desde principios del 2007 he sido un usuario activo de Google Reader, empezando con unos pocos feeds hasta llegar a este momento en el que tengo unos 40 aproximadamente. Lo uso en promedio 1 hora diaria y lo conozco mejor que a algunas de las aplicaciones que he desarrollado. El 13 de marzo del 2013, Google anunció que lo cerraría el 1 de julio del 2013 porque la gente ya no lo estaba usando lo suficiente.

Para muchas personas esto no representa nada en sus vidas, pero para una persona como yo, cambia totalmente la forma en que utilizo el internet. Si ya no puedo ver todos mis feeds en un mismo lugar tan fácilmente como lo hago con Google Reader dejaré de leer cosas que realmente me interesan y me ayudan en varios ámbitos de mi vida (ya sea en desarrollo, conocimiento de tecnologías, videojuegos o el simple hecho de poder pasar un rato leyendo tonterías que me hacen reír).

Gracias a esto, me he dado a la tarea de probar todo tipo de reemplazos y nuevas alternativas que he encontrado, como lo son Feedly, The Old Reader, Pulse, etc. y lamentablemente no he encontrado nada que llene mis expectativas. Pero este post no se trata (solamente) de quejarse, se trata de encontrar una alternativa que se ajuste a las necesidades de cada quien. Para esto daré un poco de mis impresiones de cada uno de las alternativas que probé y en qué se asemejan o se alejan a lo que es Google Reader. También explicaré cómo exportar tu archivo OPML desde Google Reader para pasar tus feeds a otras aplicaciones y tener un backup.

26 de abril de 2013

La importancia del issue tracking

Contrario a lo que muchas personas, ajenas y propias de la labor del desarrollo de software, piensan, el diseño, creación y mantenimiento de un producto de software, aplicación, o "programa" como lo conocen coloquialmente los usuarios mortales, es una actividad que requiere organización y disciplina y no nada más "tirar código". Uno de estos aspectos que considero crucial es el denominado issue tracking o "reportes de incidencias", tema muy poco fomentado en equipos de desarrollo, incluso en equipos de desarrollo medianos.

Más que dar una cátedra sobre el tema quisiera tocar los puntos más importantes que considero todo administrador de proyectos y programador deberían entender, conocer y dominar para poder entregar y sobre todo mantener calidad en nuestros productos.

17 de abril de 2013

Usando Red5 para guardar un video de webcam a un servidor (AS3)

Hace unos días me encontré con algo que en mi mente era muy fácil de hacer, pero en la práctica tuve más problemas de los esperados; grabar un video con una webcam y que se guardara directamente en un servidor.

Primero intenté hacerlo con HTML5 y su capacidad de usar webcam, pero me encontré con varios problemas y con soluciones nada óptimas (como grabar frame por frame las imágenes y juntarlo todo después). Gracias a esto decidí que lo mejor sería usar Flash para manejar la webcam. Haciendo un poco de investigación encontré que se necesitaba de un servidor de multimedia y ahorita en el mercado hay 3 opciones de servidores de este tipo para Flash, el Adobe Media Server, el Wowza Media Server y el Red5 Media Server. La decisión sobre cuál usar fue fácil, el Adobe cuesta cerca de 2,000 dólares, el Wowza cuesta 5 dólares por día y Red5 es gratis.

La razón por la que decidí escribir esto (aparte de un poco de motivación externa) es por lo que pasó después de decidir el servidor multimedia que usaría. La documentación de Red5 es muy mala, los tutoriales son muy pocos y son menos aún en español.

Crear dropdowns en cascada con MVC 3 y jQuery

Una cosa muy común que encontramos en cualquier sitio es la dependencia de datos. Podemos tener una forma donde nos pidan ingresar nuestro país de residencia junto con el estado, y cada vez que el usuario cambie el dropdown del país se debe actualizar la lista de estados. La manera correcta de hacer esto es evitando que se refresque la página completa tratando de conseguir los datos del dropdown dependiente. Les mostraré cómo hacer esto utilizando MVC 3 con jQuery y un ejemplo de fabricantes y modelos de automóviles.

4 de abril de 2013

Problemas con audio en skype para Linux

Uno de nuestros clientes recientemente nos pidió unos ajustes al código de una aplicación web en PHP que utiliza cURL para algunos requests. Debido a que WAMP tiene problemas con esta librería le pedí a Juan José que instalara Linux en su maquina ya que, para mi, la mejor manera de desarrollar aplicaciones web que no estén basadas en tecnologías Microsoft es Unix ya sea Mac OSX o Linux.

Varios "inconvenientes" surgieron después de que Juan José instaló OpenSuSE 12.3, que recientemente fue liberada. Uno de esos inconvenientes fue el audio con Skype. Debido a que a veces no estoy en la oficina es primordial para mi que podamos estar comunicados ya sea por Google Talk o por Skype. Este es un pequeño fix que encontré para solucionar los problemas de audio con Skype y Linux.

25 de febrero de 2013

Depurando aplicaciones PHP con FireBug y FirePHP

Un buen tiempo sin actualizar nuestro blog pero ya estamos de vuelta. Esta vez les presentamos un videotutorial para depurar aplicaciones hechas en PHP. Las herramientas que utilizamos son Firefox, Firebug y FirePHP.