martes, marzo 30, 2010

Espacios Abiertos

Para las personas que me siguen en Twitter, posiblemente recuerden que hace algunas semanas se realizo la mención de algo llamado Espacios Abiertos.

Espacios Abiertos es un concepto en el cual se propone el contar con un lugar donde Freelancers de la ciudad de Tijuana puedan hacer uso para realizar su trabajo, en su mayoría los que hacemos trabajo de Freelance lo hacemos desde casa y en muchas ocasiones nos reunimos con clientes u otros Freelacers en algún cafe de la ciudad.

Si bien trabajar desde casa es muy cómodo, existen situaciones en donde tenemos que salir de ese espacio para mantener reuniones de trabajo en lugares concurridos, los cuales generalmente no son del todo aptos para el trabajo que realizamos, ya que no existe privacidad, mucha gente entra y sale y en su mayoría son ruidosos.

De entre la muchas limitaciones de estos lugares es que en muchos casos no cuentan con conexión de Internet confiable, no hay suficientes contactos de corriente y no es posible llevar una reunión con un cliente en forma y en general llevar a cabo una reunión con mas de tres personas puede ser todo un reto.

Como Freelance es un poco difícil el pensar en montar una oficina, debido a los costos que implica el encontrar un lugar apropiado, el montar muebles y el mantenerla, es por eso que Espacios Abiertos - como se mencionó anteriormente - busca de facilitar un espacio donde podamos realizar nuestras actividades de trabajo, colaborar con otros Freelancers e invitar a clientes para realizar reuniones.

Se propone que Espacios Abiertos como un lugar de trabajo sin oficinas ni divisiones, donde trabajar libremente y quizás inclusive encontrar a otros Freelancers que puedan aportar o ayudar cuando el proyecto así lo requiera.

Este espacio colaborativo entre otras ventajas ofrecería salas de juntas, área de descanso, cafeteria y servicios relacionados para poder llevar a cabo nuestras actividades.

Si bien, inicialmente Espacios Abiertos se vio como una opción para la gente que se dedica a TI, no se limita a Freelancers de esta área en particular, abriendo así la posibilidad de contar en un mismo lugar gente con giros y enfoques diferentes, pero al mismo tiempo complementarios.

Todo esto nació como una idea ya hace algunas semanas como mencione, una platica que inicio en Twitter y que posteriormente se traslado a Google Buzz, donde se demostró interés por llevar a acabo un proyecto como Espacios Abierto.

Por tal motivo, lleve la propuesta a Canieti Noroeste, con la ayuda de Ricardo Rosales, donde les intereso el proyecto, como para incluirlo en el proyecto del Centro de Software en el cual Canieti esta trabajando. Esta inclusión implica la posibilidad de obtener fondos para llevarlo a cabo y un espacio dentro del edificio donde se construye el Centro de Software.

Algo importante es que no se requiere ser miembro de Canieti ni profesionista TI para poder hacer uso de Espacios Abiertos, si se concreta; ademas que tampoco es requisito ser Freelance para participar en Espacios Abierto, ya que gente que busque salirse del ambiente de su oficina y trabajar algunas horas en un lugar agradable, también son bienvenidos.

Y aunque aun quedan muchos puntos por definir en conjunto con Canieti, el primer paso esta dado.

Para continuar con los siguientes pasos, los invito a contestar la siguiente encuesta, con 10 preguntas, que nos ayudaran a reafirmar el interés y las necesidades de los posibles usuarios de Espacios Abiertos.

Si conocen a alguien que le pueda interesar pero no lee este blog, por favor haganle saber esta información. En la encuesta se pide algo de información personal, la cual se usara estrictamente para fines estadísticos, respetando su privacidad.

Por ultimo les comento que se esta trabajando en un sitio web para Espacios Abiertos, el cual se espera este disponible y funcional en las próximas semanas espaciosabiertos.tijuanasoftwarecenter.com

jueves, marzo 18, 2010

VIdeo de IronRuby en ALT.NET Hispano

Hace ya algunas semanas previas había publicado el código fuente de Ruby que utilice en los webcasts en los cuales participe a finales de enero, hace unos días me avisaron de ALT.NET Hispano que ya estaba listo y disponible el video que se grabo sobre mi sesión.

Como muchos de ustedes ya están enterados, el próximo sábado 20 de Marzo se llevara acabo un curso de Ruby on Rails aquí en Tijuana - para información de como asistir ver este post -, si bien el video habla sobre IronRuby, los conceptos ahí expresados aplican para Ruby a excepción la interoperabilidad con .NET, por lo tanto es muy recomendable para quienes tengan la intención de asistir al curso.

Por otro lado la comunidad de ALT.NET Hispano es una comunidad de desarrolladores de habla español que cada semana presentan lo se conoce como "desconferencias" -VAN -, donde se abordan temas principalmente de como mejorar nuestras técnicas y conocimientos de desarrollo en .NET.

Para participar con la comunidad de ALT.NET Hispano, podemos estar al pendiente de las próximas VANs o ver los vídeos de las VANs pasadas, o bien unirse al grupo de discusión.


miércoles, marzo 03, 2010

Curso de Ruby on Rails en Tijuana

[Actualización, 10 de Marzo] El curso si se va a llevar a cabo el día 20 de Marzo en el Cesun Universidad, Campus Morelos, de 9am a 6pm en Av. Cucapah *Sur # 20100* Fracc. El Lago.

Los interesados en asistir por favor pongan su comentario en el post de @stanmx sobre el curso, ya que a esas personas Stan les hará llegar la información de pago del curso, recuerden que ese dinero es para la compra de comida y bebidas para el curso, por lo tanto es importante que quienes deseen ir paguen cuanto antes para comprar las cosas con anticipación, cualquier duda sobre el pago Stan les puede ayudar.

Adicionalmente la gente de TekPub fue amable de regalarnos una subscripción a la serie de video de Ruby On Rails, la cual cuenta con 10 videos de 1 hora aproximadamente, cubriendo diferentes aspectos de RoR.
La subscripción se le regalara, en una mecánica por definir, a alguno de los asistentes de curso.

[Actualización, 8 Marzo] Es muy probable que el curso se lleve a cabo el día 20 de Marzo en el Cesun Universidad, Campus Morelos. En cuanto este confirmado se les hará saber.

Después de un par de meses de que @stanmx me estuviese dando lata comentara sobre su interés de un curso de Ruby On Rails, decidimos hacer el ejercicio de ver si había interés entre los desarrolladores de la ciudad, y el ejercicio fue bueno, actualmente hay alrededor de 12 personas que levantaron la mano.

Entrando en detalles del curso, actualmente estamos viendo quien nos puede facilitar un espacio para al menos unas 15 personas, de preferencia que tenga acceso a Internet y que podamos hacer uso de un proyector, obviamente también buscamos un lugar donde nos puedan abrir un sábado y estar ahí entre 10 y 12 horas.

El curso no es gratuito, pero tampoco es lucrativo, se pide una cooperación de $250.00 pesos, lo que incluye el curso y bebidas/alimentos/botanas durante la realización del mismo.

Pre-requisitos para el curso
Contestando a preguntas directas que me han realizado, sobre que se necesita a para poder atender el curso, aquí les dejo la siguiente información.

  • Llevar su propia computadora, de preferencia laptop
  • Conocer por lo menos lo básico de algún lenguaje de programación
  • Preinstalar Ruby on Rails - esto para evitar perder tiempo con las instalaciones y entrar de lleno al curso desde el primer minuto -
  • Sentirse cómodo utilizando la consola de comandos :)

Observaciones
Ruby On Rails puede hacer uso de diversos motores de base de datos, pero por cuestiones de simplicidad vamos a hacer uso del motor de SQLite, aunque si se va a explicar como, por ejemplo, cambiar la configuración para conectarse a un MySQL.

La version de Ruby on Rails sobre la que se va a trabajar es la 2.3.5, aunque la version 3.0 Beta 1 esta disponible, vamos a irnos por la ruta de la version estable.

Si desean instalar algún administrador gráfico para SQLite y tienen instalado Firefox, pueden instalarle el addon SQLite Manager.

¿Como instalar Ruby On Rails en mi equipo?
Dependiendo del OS de nuestra laptop es como vamos a realizar la instalación, por la lista de amigos que levantaron la mano al curso puedo darme cuenta que vamos a tener OSX, Linux y Windows, así que aquí va las guías para cada OS.

RoR en Windows
Hace algunos meses escribí un post que detalla la instalación de RoR en Windows, utilizando cygwin y un editor llamado e-TextEditor. El e-TextEditor no es gratuito tiene un costo como de 40 USD y cuenta con versión de evaluación.

Otra opción de instalación es utilizar algún IDE de RoR, las posibles IDEs las menciono mas abajo en el post ya que estas son comunes sin importar el SO.

RoR en Linux
Esta guía en español y para Ubuntu es muy fácil y directa, pero fácilmente se puede adaptar para cualquier distro de Linux.

Si se sigue esta guía, es recomendable configurar gEdit para RoR, lo cual nos da un buen IDE para trabajar en Linux.

Otra opción de instalación es utilizar algún IDE de RoR, las posibles IDEs las menciono mas abajo en el post ya que estas son comunes sin importar el SO.

RoR en OSX
En OSX es necesario insertar el disco de instalación de OSX e instalar las herramientas de desarrollo.

Como IDE es posible usar TextMate, aunque no es gratuito, cuentan con versión de evaluación.

Otra opción de instalación es utilizar algún IDE de RoR, las posibles IDEs las menciono mas abajo en el post ya que estas son comunes sin importar el SO.

IDEs para RoR
Para quienes se sientan mas a gusto con un IDE completo hay 3 posibles opciones de las cuales solamente una no es gratuita, pero cuenta con versión de evaluación.

Para lo que tengan duda sobre si instalar una IDE o no, en el curso no nos vamos a enfocar a ningún IDE en particular, todos los comandos los vamos a ejecutar desde la consola, la IDE nos va a servir únicamente como un editor de texto.

El curso
El temario tentativo para el curso es el siguiente:

  1. Introducción al lenguaje Ruby
  2. Introducción a Ruby On Rails
  3. Conocer una aplicación de Rails, a través de los bloques ActiveRecord, ActionController y ActionView
  4. El Patron MVC en Rails
  5. Básico del patron ActiveRecord - CRUD -
  6. Básico de controladores: acciones, filtros, parámetros, sesiones y mensajes flash
  7. Básico de vistas: plantillas ERB, layouts, parciales y helpers
  8. Mas de ActiveRecord: Validaciones, asociaciones, agregaciones y find_by_*
  9. Rutas en Rails
  10. Pruebas con RSpec
  11. Depuración, logging y uso de la consola
  12. AJAX en rails

Fecha y lugar

De momento de desconoce, espero que se pueda confirmar en los próximos días, la fecha depende en gran medida de la disponibilidad del espacio que nos faciliten, así que estén pendientes a este blog y a

twitter

.


lunes, marzo 01, 2010

Voto electrónico en México; verdad, mentira o todo lo contrario

En el Bytepodcast 199 se presenta una entrevista donde comentan sobre la iniciativa de "No al voto electrónico" en México, donde al ser una entrevista de una de las personas detrás de la iniciativa de rechazo, obviamente comenta todo lo malo del voto electrónico; lo que a mi en particular me pareció totalmente parcial y satanizado.

Antes de proseguir quiero aclarar que no estoy en contra o a favor de la iniciativa, todavía, aunque por ser un tema tecnológico, y esta ser el área donde me desenvuelvo profesionalmente, tiene un interés adicional; y que no tengo filiación partidista.

Primeramente voy a comentar algunos comentarios que se vierten en el podcast.

El voto es un derecho plasmado en la declaración de los derechos humanos.
Cierto tal declaración esta en el articulo 21.3 donde parafraseando indica que se debe tener derecho a la igualdad y voto secreto u otro procedimiento equivalente que garantice la libertad del voto.

Aunque cabe aclarar que esta declaración son derechos universales que cada país los integra en sus constituciones donde se convierten en derechos y obligaciones de cada ciudadano. En el caso de nuestra constitución así se expresa, donde no estoy seguro es si en la constitución se expresa la forma de ejercer el voto o no, si no es así el sistema actual, el levantar la mano o un sistema electrónico cae dentro de lo legal, de no ser así, implementar un sistema electrónico requeriría las correspondientes modificaciones a la constitución.

El voto electrónico representa incertidumbre sobre si nuestro voto fue registrado y tomado en cuenta electrónicamente.
¿Yo comenzaría preguntando cual es el nivel actual de certidumbre que como ciudadanos tenemos de que nuestros votos depositados en las urnas contaron como se debe?
Para medir un poco este nivel de certidumbre, creo que basta recordar las elecciones presidenciales del 2006, donde hubo una tremenda crisis política, precisamente por la falta de certidumbre, o ¿no recuerdan el voto x voto?

Ahora la pregunta obligada es el cuestionarnos si un sistema electrónico de votación eleva nuestro nivel de incertidumbre, si nos crea mas suspicacia que nuestro voto no fue contado correctamente, se mantiene igual o nos da mayor certidumbre.

Dentro de ciertas recomendaciones generales sobre sistemas de voto electrónico, se recomienda no únicamente registrar el voto y ya en la maquina, si no también generar un rastro tangible del voto emitido, donde este rastro tangible el votante lo puede simplemente verificar pero no llevarselo y en otros casos inclusive llevarse el comprobante.

Esta acción del rastro tangible es cuestionada en dos comentario emitidos en el podcast, por lo tanto el desarrollo de ideas lo voy a extender en esos comentarios en especifico.

Mientras tanto la cuestión es si el contar con este rastro tangible nos da mayor o menor certidumbre con respecto al sistema actual, yo no cuento con los datos que me permitan decir que si o no mejora la certidumbre y buscando en el sitio de este movimiento tampoco los encontré.

Con el sistema de boletas, cualquier ciudadano puede contar los votos, o realizar una auditoria.
Yo contestaría a eso sí, pero no. Si bien es cierto que cualquier persona que sepa contar, puede contar los votos en una urna y apuntar los valores en la sabana; esto no permite que cualquier ciudadano que no haya sido nombrado funcionario de casilla lo pueda hacer y mucho menos permite que podamos realizar una auditoria general a una elección, ¿que no recuerdan el voto x voto?

El uso de sistemas electrónicos, agrega inherentemente un nivel mas de complejidad, es cierto, ya que la auditoria es a nivel de software en los dispositivos electrónicos, lo cual obviamente requiere de un cierto nivel técnico para poderlo realizar.

Si hablamos de verificar o auditar los votos en una casilla electrónica, al final de lo jornada, es muy difícil que un funcionario de casilla pueda auditar los votos almacenados en la memoria del dispositivo, a los mas solo le queda confiar con el reporte de resultados del dispositivo. Si existe un rastro físico, es posible contar manualmente los votos como se ha hecho anteriormente e identificar cualquier discrepancia con el dispositivo, pero ¿acaso el tener un rastro físico invalida el uso de un medio electrónico?

Aparentemente y por los comentarios del podcast parece ser que así es.

Un sistema electrónico arroja resultados mas rápidos.
En el podcast se menciona que esto es una mentira, ya que si tomamos en cuenta que los sistemas no estén conectados por medio de redes de datos, por cuestiones de seguridad, estos deben ser llevados a sitios específicos para ser "descargados", y que esto es lo que toma mayor tiempo en una elección, trasladar los resultados a el lugar indicado.

Si concedemos que conectar los dispositivos implica un riesgo a la seguridad y por lo tanto no estar conectados es la opción, el único tiempo de ahorro, asumiendo que los votos en el registro electrónico concuerden con los votos del rastro físico, debe de ser tremendamente mas rápido solo "descargar" y reconfirmar los datos para entren al sistema del PREP, creo que este puede ser mas rápido que capturar la información de la sabana a mano.

Aunque este ahorro de tiempo puede o no ser significativo en la obtención expedita de los resultados de la elección.

Se vuelve a cuestionar la seguridad de un sistema electrónico de votación.
Se vuelve a remarcar la seguridad en los votos, en lo efectivo de almacenar los datos en el dispositivo, que este no tenga código malicioso que cambie votos y agregue votos. Una vez mas, un sistema de auditoria física puede minimizar este temor, pero la pregunta va en relación a que ¿si sigue siendo este sistema electrónico mas o menos confiable que el actual?

Durante mucho tiempo se conoce de detalles de urnas alteradas, robadas, con votos de mas y muchos otro detalles mas, a esto hay que agregarle "caídas" en el sistema del PREP - quien no recuerda la de 1988 -, o los cuestionamientos al sistema del PREP en el 2006, del porque cuando parecía haber tendencia por Lopez Obrador de "repente" se enfilo a la victoria de Calderón.

El PREP es otro punto de posible falla/alteración/fraude en un proceso electoral y no veo en la iniciativa del no al voto electrónico que se ataque o que se pida que se elimine, ¿porque?.

El emitir un comprobante al votante favorece el "clientelismo"
Este es otro argumento, de que si al votante se le da un documento probatorio de su voto, este se va a utilizar para "canjearlo" por algún beneficio por el voto emitido; yo hasta ahorita he mencionado de dejar un rastro físico, pero que no es entregable al votante solo puede consultarlo en el momento para asegurarse que su voto fue registrado como el lo indico en el dispositivo electrónico.

Pero vamonos un poco mas atrás en este este, vamos al momento actual, al hoy, acaso hoy en día ¿no existe el "clientelismo", el voto corporativo, el acarreo, el reparto de despensas, camisetas, gorras, sodas, sandwiches, el que te llamen a casa para que vayas a votar, el que te toquen la puerta y te lleven a votar, todo esto en favor de algún partido político?

Este es un problema mas grave que con voto en boletas o electrónico, mientras haya gente necesitada y haya quien compre el voto, seguirá ocurriendo, electrónico o no.

El "clientelismo" existió, existe y seguirá existiendo mientras nuestra educación y nuestros valores cívicos no cambien, mientras no aprendamos a respetar nuestros derechos, mientras haya gente que se deje pisotear en su dignidad, electrónico o no electrónico.

La tecnología requerida es muy cara
Esto es cierto, y esto no se puede evitar si se desea implementar el voto electrónico, aquí no hay punto de desacuerdo.

Ademas que hablar de dispositivos electrónico, implica que alguno pueda fallar o funcionar incorrectamente el día de la elección.

Dependiendo del tipo de tecnología que se use, va a requerir mantenimiento posterior si se desea utilizar en algún otro proceso electoral, si es que no se descompuso de manera irreparable y si es que no se vuelve obsoleto tan rápidamente, situación que es muy probable.

Puntos adicionales
En el podcast también mencionan que hay "muchos" investigadores-científicos que se oponen al voto electrónico, citan casos de organizaciones en países americanos y europeos que están en contra del voto electrónico, por las razones mencionadas en este post o por algunas otras.

Pero la pregunta es, ¿hay en esos países voces confiables que no están en contra y cuales son sus argumentos?, o ¿como el movimiento esta en contra solo van a citar las voces a favor?

Otra pregunta importante es, ¿que dicen nuestros investigadores, científicos y académicos en México?, donde están las cifras, los datos que nos lleven a tomar una decisión realmente INFORMADA, y no solo escuchar lo que queremos escuchar, ya sea a favor o en contra.

Como realizar criticas sin aportar nada positivo no deja nada bueno, aquí esta mi opinión sobre como creo que se debe llevar a cabo el proceso de implementar elecciones electrónicas, no tengo todas las respuestas, ni todos los detalles, pero esta es mi opinión.

Primeramente si el gobierno desea seriamente implementar el voto electrónico, este se debe de manejar a nivel de Seguridad Nacional, por tal motivo la tecnología utilizada para este fin debe ser desarrollada internamente y no comprada al exterior.

Ademas para la empresas que desea desarrollar y vender esta tecnología, que se requisito primordial que exista vinculación con al menos 1 centro de educación superior que colabore en el desarrollo de dicha tecnología.

Para poder aprobar que la tecnología se use en una elección, esta debe abrirse para auditoria para que cualquiera de los expertos técnicos en el país puedan revisarla y validarla.

Que sean mas de una empresa la que se seleccione para proveer del equipo para las elecciones, todas ellas con especificaciones de interfaces estándar para el funcionamiento y la intercomunicación de los dispositivos, interfaces definidas por el gobierno a través de grupo consultivo.

Algo que si se tiene que considerar es que quizás este tipo de tecnología no pueda ser utilizada en todos los casos, ya que debemos tener en cuenta que hoy en 2010 hay personas que no están expuesta a la tecnología y por lo tanto obligarlas a votar de esta forma representa una barrera para ellos. Simplemente hay que recordar a la persona en el cajero automático que se "avienta" mas de 10 minutos para retirar efectivo porque no sabe que opciones usar.

Por ultimo yo he mencionado durante el post el concepto de "rastro tangible" y puede ser tan simple o complicado como colocar una impresora con rollo de papel - protegido - que le muestre a la persona que emitió su voto que lo que selecciono en la pantalla es lo mismo que se imprimió, ese rollo al final de la jornada se puede contar manualmente y comparar el resultado con el reporte del dispositivo electrónico.

Ya para terminar, el motivo de este post no es convencerlos o no que el voto electrónico es la forma correcta de llevar una elección en México, es simplemente expresar otro punto de vista, a lo que a mi parecer, fueron comentarios totalmente parciales en contra durante la entrevista del podcast.

A final de cuentas cada uno de nosotros deberemos hacernos este cuestionamiento si es que el gobierno piensa ir por este rumbo y decidirnos si estamos de acuerdo o no. Por lo pronto les dejo la siguiente pregunta:

¿Estas de acuerdo con el voto electrónico?


lunes, febrero 15, 2010

Migrar aplicación de ASP.NET Webforms a Mono

Hace un par de días me preguntaron, que se necesita para migrar una aplicación de ASP.NET Webforms a Mono y ejecutarla en un ambiente Linux.

Primeramente hay que conocer que según la pagina de ASP.NET Webforms de Mono, ASP.NET Webforms 2.0, ASP.NET Ajax y algunos controles 3.5 están soportados. Pero esto no es suficiente para algunas aplicaciones, ya que es posible que usen controles de 3ros. que no funcionan o funcionan correctamente en Mono, otro punto importante es que hay que recordar que los ambientes Linux son sensitivos a minúsculas/mayúsculas y si nuestra aplicaciones tiene archivos cuyos nombres están indistintos en minúsculas/mayúsculas muy probablemente vamos a tener problemas.

La opción segura para saber si nuestra aplicaciones puede funcionar o no en Mono es ejecutar MoMA, una aplicación para Windows que analiza nuestra aplicaciones ASP.NET Webforms y nos puede decir si todo esta bien o hay algo que no esta soportado en Mono.

Si nuestra aplicación no tiene ningún problema de acuerdo al reporte de MoMA, el siguiente paso es determinar si nuestra base de datos, usualmente MSSQL, server va a seguir en Windows o si también se va a migrar a MySQL o Postgresql.

Obviamente si se decide migrar la base de datos hay dos tareas importantes a realizar, la primera es convertir el esquema de MSSQL Server a la base de datos destino; la segunda tarea es que si nuestra aplicación hace uso de ADO.NET y estamos usando directamente las clases del namespace System.Data.SqlClient, vamos a tener que reemplazar esos objetos por los correspondientes a la base de datos destino.

Para MySQL hay que descargar el Connector/NET, el cual es un librería 100% .NET para conectarse a bases de datos MySQL. Si vamos a usar Postgresql, hay que descargar el Npgsql, librería 100% .NET para acceder a Postgresql.

SI ya llegamos hasta este punto y queremos publicar nuestra aplicación para que los usuarios se puedan conectar a ella; para tal efecto podemos utilizar el servidor Apache y el modulo Mod_Mono, que permite a Apache "servir" aplicaciones .NET.

Adicionalmente si vamos a desarrollar aplicaciones directamente desde Mono, una buena opción es descargar el ambiente de desarrollo llamado MonoDevelop; de esta forma vamos a poder desarrollar, modificar y depurar nuestras aplicaciones.

Sobre como instalar Mono, MySQL, Postgresql y Apache en Linux, va a depender de nuestra distribución, pero generalmente todas cuentan con un sistema de distribución de aplicaciones de donde podemos elegir tales aplicaciones para instalar. Como dato adicional, Ubuntu y SuSe son distribuciones "amigables" con Mono, por lo tanto ambas son recomendadas.http://mono-project.com/


martes, febrero 09, 2010

Pinta, alternativa de Paint para Gtk

Hace unos días me entere de la aplicación Pinta, la cual esta una alternativa sencilla para el dibujo/edición de imagines, desarrollada en Mono, usando como modelo Paint.NET.

Al ser una aplicación Mono basada en GtkSharp y Cairo, es altamente portable, y por lo tanto puede ejecutarse en Linux y OSX.

Una aplicación como esta, me es muy útil para realizar pequeños retoques a imágenes, por lo que procedí a descargarla, pero en la pagina solo existían paquetes para Suse y Ubuntu, ademas de la aplicación en un archivo zip.

Por lo tanto para poder utilizarla en OSX la única forma era ejecutarla desde la terminal, no muy amigable que digamos. Debido a esto decidí crear un Bundle para poder ejecutarla desde mi folder de Aplicaciones.

Le envié el bundle a Jonathan Pobst el Bundle, y a partir de ahora ya es posible la aplicación para OSX e instalarla como "un ciudadano de primera clase".

Pinta apenas esta en su versión 0.1 y le falta mucho camino por recorrer en Linux y OSX, pero aún así esta bastante completa para ser versión 0.1.


domingo, febrero 07, 2010

Ironruby webcasts

Hace un par de semanas tuve la oportunidad de presentar dos webcast/VAN, uno para el Club de .NET de la Universitat Oberta de Catalunya y para AltNet Hispano.

Si bien ambos los puede llevar a cabo no sin algunos contratiempos, ya que en esas fechas tuvimos una tormenta en la ciudad y hubo cortes de energía, pero finalmente puede participar.

Este post tiene como finalidad el realizar una recapitulación de ambas presentaciones ya que si bien las dos fueron en relación a IronRuby el enfoque fue un poco diferente.

¿Que es IronRuby?
Bueno esta pregunta se tiene que responder primero comentado que es Ruby.

Ruby es un lenguaje dinámico bajo el paradigma de Orientado a Objetos, con sintaxis inspirada en Python, Perl y SmallTalk. Lenguaje que vio la luz publica en 1995 bajo la mano de Yukihiro "Matz" Matsumoto.

Ruby es un lenguaje moderno que cuenta con características que son estándar en lenguajes modernos, como: manejo de excepciones, iteradores y clausuras, sobre carga de operadores, recolección de basura, portable, carga dinámica de librerías, introspeccion-reflexion-metaprogramacion entre otras-; ademas de que la sintaxis esta diseñada pensando en la productividad y diversión del desarrollador y sobre todo que sea lo mas natural al lenguaje humano.

Algo importante a notar es que Ruby es un lenguaje distribuido y licenciado bajo una licencia de Software Libre.

Ahora si vamos a al origen de la pregunta, ¿Que es IronRuby?, pues IronRuby es la implementación del lenguaje Ruby como un lenguaje dinámico para .NET, llevada a cabo por Microsoft.

IronRuby ofrece un interprete de Ruby compatible con la version 1.8.6, el cual permite ejecutar aplicaciones de Ruby de manera transparente o casi transparente, ademas de permitir a los programas que se ejecutan bajo IronRuby el poder interactuar con las librerías de .NET, e inclusive incluir dentro de una aplicación de .NET funcionalidad de "scripting" con el lenguaje Ruby.

IronRuby como se menciono es desarrollado por Microsoft y esta disponible bajo una licencia de Software Libre. Aunque aun no ha alcanzado si versión 1.0 - al momento de este post están en su RC 1 -, es lo suficientemente maduro para ser utilizado para el desarrollo de aplicaciones.

¿Porque usar IronRuby?
Es una pregunta un tanto difícil de contestar sobre todo porque depende de la perspectiva y visión de cada desarrollador, por lo tanto voy a contestarla desde mi visión.

Ruby cuenta con una gran variedad de herramientas maduras para realizar pruebas de código bajo los enfoques TDD y BDD ademas de herramientas para realizar Mocking de objetos, si bien en .NET también las hay, existen algunos proyectos que intentan replicar algunas de estas en C#, pero entonces ¿para que replicarlas si las podemos usar con un poco de IronRuby?

En Ruby esta Rake, una herramienta para hacer scripts para "construir" aplicaciones o archivos de "Build", bastante poderosa y flexible, tanto así que proyectos populares de Software Libre en .NET usan esta librería para ejecutar pruebas, compilar y empaquetar estos proyectos, tal es el caso que inclusive hay una librería llamada Albacore, la cual es una compilación de tareas Rake para .NET.

Ruby es un lenguaje que favorece la creación de DSLs - Domain Specific Languages -, por ejemplo en Ruby on Rails encontramos la implementación de DLSs en diferentes puntos del Framework. Otro ejemplo muy bueno es Sinatra, un DSL para la creación de aplicaciones Web.

En la lista de IronRuby, también mencionan que es mucho mas fácil y rápido realizar aplicaciones con Ruby en comparación con su contraparte en C#, tan es así, que se han creado un par de "wrappers" para la creación de aplicaciones ASP.NET MVC totalmente en Ruby, también es posible crear aplicaciones en Silverlight con un Framework al estilo Ruby On Rails llamado IronNails.

Gracias a IronRuby es posible reutilizar la gran cantidad de librerías de Ruby, Frameworks y aplicaciones en ambientes .NET y viceversa.

Por último, otro punto a favor es la posibilidad de darle a nuestras aplicaciones .NET la posibilidad de extenderlas mediante "scripting" en el lenguaje Ruby.

Quizás puedan estar de acuerdo conmigo o no, o inclusive a la mejor me faltan mas escenario que hacen que IronRuby sea "deseable" en .NET; lo que si creo que vale la pena es darle la oportunidad y crear nuestro propio criterio. Esta discusión en la lista de IronRuby abre un abanico un poco mas amplio de posibilidades.

¿Que necesito para iniciar en IronRuby?
Lo primero que hay que hacer es descargar IronRuby de la página de http://ironruby.net, su instalación es tan sencillo como descomprimir IronRuby en nuestro disco duro y agregar esta carpeta en nuestro path.

No voy a publicar como trabajar con IronRuby ya que eso se mostró en los Webcast/VAN, en el momento que alguno de esos videos estén disponibles, pondré los enlaces en este post.

Una pregunta recurrente que me han hecho y no solo para IronRuby, sino también para Ruby es ¿Que IDE uso para *Ruby?, bueno en el mundo *Ruby es muy común el uso de editores como Emacs y VIM o editores de texto como TextMate en OSX, en Windows también es posible usar editores sencillos como Notepad2, eTextEditor o un IDE mas en forma como RubyMine de JetBrains.

Siendo RubyMine una de las IDEs disponibles enfocada al desarrollo de aplicaciones en Ruby - Debo aclarar que gracias a AltNetHispano y JetBrains me obsequiaron una licencia hace unos días, pero aun antes de esto ya había yo mencionado/recomendado RubyMine -, inclusiveRubyMine tiene soporte para IronRuby.

Hay una solicitud en Microsoft Connect para que Visual Studio 2010 incluya soporte a desarrollar aplicaciones IronRuby desde el mismo IDE.

Show me the code! Show me the code!
Después de esta larguísima introducción, ahora si ha llegado el momento de mostrar el código de ejemplo utilizado en las dos presentaciones, casi todo este código se ejecuto desde el interprete de IronRuby ir.exe

Para poder ejecutar algunos de los ejemplos es necesario instalar primeramente algunas gemas de Ruby. Una Gema es una librería que extendiende la funcionalidad base de Ruby.

Para encontrar Gemas para casi todo lo que nos podamos imaginar hay que visitar GemCutter.

El siguiente comando instalara gemas para Sinatrarb, Rails, Rspec, Cucumber, Rake y el driver de SQLServer para Ruby. Es importante actualizar nuestro path en Windows para incluir el directorio donde esta el código binario de IronRuby y el código de las gemas; asumiendo que instalamos IronRuby en C:\IronRuby ejecutamos:

set PATH=%PATH%;C:\IronRuby\bin;C:\IronRuby\lib\IronRuby\gems\1.8\bin

Para instalar las gemas ejecutamos:

igem install sinatra rake rails rspec cucumber ironruby-sqlserver --no-rdoc --no-ri

- Variables
Al ser un lenguaje dinámico, en Ruby podemos la declaración de variables se hace sin tipo.

- Métodos
La llamada a métodos puede realizarse con paréntesis o sin paréntesis para pasar parámetros.

- Clases
Al redefinir una clase no es necesario declararla por completo, solo declarando lo nuevo o lo que se modifica es suficiente. La reflexión y el manejo dinámico de las clases es muy poderoso.

- Ruby es amor, "Sintactic Sugar"
El lenguaje de Ruby en ocasiones se "siente" tan natural

- Expresiones regulares
Ruby es tan poderoso para el manejo de expresiones regulares como Perl

- Reflexion
Metaprogramacion, reflexion en Ruby es algo tan natural

- Sinatra
La siguiente aplicación de ejemplo de Sinatrarb muestra el uso de el DSL para aplicaciones Web, es importante que antes de ejecutar el ejemplo, instalemos el siguiente parche al código fuente de Sinatra para que funcione correctamente con IronRuby:


Para ejecutar la aplicación solamente iniciamos con el siguiente comando:

ir SinatraSample.rb

Y apuntamos nuestro navegador a:

http://localhost:4567 http://localhost:4567/acercade http://localhost:4567 /Mario

Para conocer mas de Sinatra pueden ver este screencast en español.

- Ruby on Rails
Ruby on Rails es el framework mas famoso en Ruby para el desarrollo de aplicaciones Web. Con IronRuby podemos crear aplicaciones bajo este Framework. Para este ejemplo se requiere de tener una base de datos en SQL Server llamada ironruby_on_rails_dev.

Hay que seguir las instrucciones en el código que se muestra, ya que es necesario realizar algunos cambios a ciertos archivos de nuestra aplicación Rails para que pueda funcionar, una vez que ejecutemos el server de Rails podemos apuntar nuestro navegador a: http://localhost:3000/posts

Nuestra aplicación de debe de mostrar en el navegador.

- Usando IronRuby para probar nuestras aplicaciones .NET
Partiendo de la idea que tenemos la siguiente clase en C# que deseamos probar, inicialmente con Rspec, definimos únicamente es esqueleto de la misma, para compilarla, desde la linea de comandos ejecutamos:

csc /target:library /out:Bowling.dll *.cs

Ahora definimos su funcionamiento con Rspec

Para ejecutar nuestras pruebas podemos ejecutar alguno de los siguientes comandos:

spec --format specdoc spec --format html > spec_bowling.html

Después de ejecutar el comando podemos ver que pruebas pasan y cuales fallan

Si implementamos nuestra clase y la compilamos de la siguiente forma y ejecutamos nuestras pruebas, ahora nuestra especificación debe pasar

csc /target:library /out:Bowling.dll *.cs spec --format specdoc

Otra herramienta para probar nuestras aplicaciones es Cucumber, para poder traerlo a nuestro escenario, hay que crear un folder llamado features y crear el siguiente documento

Dentro de feature hay que crear otro folder llamado step_definitions y dentro creamos el siguiente archivo

Ahora si podemos ejecutar alguno de los dos siguientes comandos para ejecutar nuestra prueba con Cucumber

cucumber features/bowling.feature cucumber features/bowling.feature --format html --out features.html

- Extender clases de C# desde IronRuby
La reflexion y la metaprogramacion de Ruby la podemos llevar también a las clases de C#, por ejemplo con la clase compilada de Bowling.cs, si cargamos el interprete de Ruby podemos extenderla de la siguiente forma:

- Incluyendo Ruby para darle capacidad de scripting a nuestras aplicaciones en .NET
Con IronRuby podemos hacer que nuestras aplicaciones en .NET "hablen" Ruby

Para compilar el siguiente ejemplo ejecutamos:

csc Program.cs /r:IronRuby.dll /r:Microsoft.Scripting.dll /r:Microsoft.Scripting.Core.dll

La librerías requeridas están incluidas en la instalación de IronRuby.

Conclusion Ruby es un lenguaje con muchos pequeños detalles que hacen que sea agradable programar en el, el soporte y actividad de la comunidad Ruby es mas que excelente, el contar con un Framework para el desarrollo de aplicaciones que otros lenguajes/comunidades han buscado replicar, son puntos adicionales para investigar y experimentar con Ruby.

El plus que trae IronRuby es el poder unir los dos mundos, el dinámico y estático con .NET, de una forma que no causa "fricción" el pasar de .NET a Ruby y viceversa.

Me han preguntado por ejemplos de grandes aplicaciones que se hallan desarrollado en .NET, hasta ahorita no hay una que conozca, pero estoy seguro que una vez que IronRuby alcance la versión 1.0, no tardaremos en ver aplicaciones que hagan extenso uso de Ruby.

Recursos A continuación les presento los siguientes blogs/sitios con referencia sobre Ruby e IronRuby.

martes, febrero 02, 2010

DevLab: Git para Windows

En este video se muestra como trabajar con repositorios Git desde el ambiente Windows. Para tal efecto se usa la herramienta msysgit.

DevLab: Como usar Git en Windows from Mario A Chavez on Vimeo.


lunes, febrero 01, 2010

Super Happy Dev House Tijuana 3

Una vez más ha llegado el momento de anunciar el próximo Super Happy Dev House - SHDH - Tijuana que se realizará el sábado 13 de Febrero del 2010. Si tienes alguna idea de un proyecto a realizar, o quieres aprender algo nuevo de forma practica esta es tu oportunidad, únicamente basta con ir al wiki y anotar tu idea o proyecto.

Se agradece el apoyo del clúster de tecnologías de IT@Baja por facilitarnos el espacio para poder llevar a cabo el evento.

IT@Baja, Clúster de Tecnologías de Información de Baja California
Blvd. Diaz Ordaz # 4558-209
Colonia Las Palmas
A un costado del centro comercial Las Palmas

Recuerden que el evento no esta patrocinado por ninguna empresa u organización, lo patrocinamos todos, por favor si piensas asistir apúntate en la pagina de patrocinio con algunas bebidas o comida con que puedas contribuir.


viernes, enero 29, 2010

Los peligros de la vía rápida y la avenida Internacional

Hoy en día es muy común que al transitar a través de la vía rápida (en ambos sentidos) ver gente corriendo cruzando la mencionada vía, desde y hacia la canalización; lo mismo sucede en la avenida Internacional.

El problema de esta situación es que ambas la velocidad promedio va entre 40 a 80 kmh con trafico comúnmente denso distribuido en 2 o 3 carriles. Estas personas se colocan en el borde de estas vías listos para correr y cruzar en el momento que se abre un hueco entre el trafico, en ocasiones con las manos vacías, otras cargando algunas de sus pertenencias.

El problema de esta situación es, que por la velocidad y por la manera intempestiva en que aparecen estas personas cruzando durante todas horas del día, inclusive en la noche donde con la velocidad la visibilidad es muy reducida, son un peligro inminente latente de causar accidentes graves.

Accidentes que ponen en riesgo la vida de estas personas que cruzan y la vida de los automovilistas que se vean involucrados en un posible accidente. Ya que un impacto de 80 kmh a una persona, muy probablemente es un impacto fatal, con la posibilidad que el impacto cause la colisión de varios vehículos.

Y esta situación de peligro latente la tenemos que vivir todos los días y en cada ocasión que transitamos por esta vías, sin que hasta ahora se vislumbre alguna solución.

Y es que esta personas que de manera temeraria exponen sus vidas, son personas desamparadas, sin hogar, que se dedican a realizar trabajos pequeños, a la vagancia o a delinquir. Son personas sin hogar que habitan en los huecos de la canalización del río Tijuana, que duermen en la calle en la denominada "zona norte" a un costado de la barda que divide México de Estados Unidos.

En su mayoría es gente que llegó a esta ciudad en busca de una mejor vida o con la esperanza de cruzar "al otro lado" y que no pudo lograrlo o ha sido deportada del vecino país, y que al no encontrar una oportunidad en su lugar de origen, en Tijuana o en Estados Unidos, simplemente se quedó aquí a "mal vivir".

El motivo de este post no es con tintes xenofóbicos - lo aclaro antes de que algún lector se rasgue las vestiduras -, pero es necesario que la autoridad haga algo al respecto para eliminar este peligro, algunas de las acciones que se me ocurren:

  • Ofrecer el transporte a las personas que deseen regresar a sus lugares de origen.
  • Prohibir los lugares de beneficencia que les ofrecen comida se establezcan cerca de estas áreas, con la finalidad de alejarlos de ahí.
  • En el caso de personas que no sean adictos a sustancias, buscar la manera de que tengan algún trabajo.
  • Para los adictos, quizás tener algún lugar donde tratarlos.
El caso es moverlos de estas areas de peligro de forma más definitiva, ya que por ejemplo, si la policía municipal los detiene por "vagancia", cuando cumplen con su tiempo de detención regresan otra vez a los mismo lugares, exponiendose ellos y exponiendo a los que transitamos por las mencionadas vías.


martes, enero 19, 2010

Fraude de D'Newton Soluciones, segunda parte

Esta es la segunda parte y continuación de un post previo "Fraude D'Newton Soluciones, centro autorizado Apple".

En ese post explico la situación de FRAUDE que experimente con D'Newton Soluciones, en los comentarios algunas personas mas explican sus historias de "terror" también con esta empresa, al igual que en algunos comentarios que recibí al respecto en Twitter.

Al igual en los comentarios recibí criticas y hasta de ignorante me tachan por:

  • Mencionar nombres de los involucrados con quienes trate de resolver de forma amable mi situación
  • Por hacer publica mi queja/denuncia
  • Y por no investigar averiguaciones previas en el ministerio publico de D'Newton Soluciones contra sus ex-empleados.
En fin, solo voy a realizar algunas apreciaciones al respecto:
  1. A mi no me robaron equipo Apple, me robaron dinero de un trabajo que pague por anticipado y nunca realizaron, se de otra gente que si perdió sus equipos.
  2. Yo no ando "quemando" gente, ellos se "quemaron" solos al defraudar y no ofrecer ninguna explicación y/o solución, antes de poner la demanda a PROFECO, trate de solucionarlo el problema de forma amable con ellos, pero solo recibía evasivas.
  3. Antes de publicar el post paso más de mes y medio desde que tuve el problema y trate de hallar una salida con Clara Díaz de Grupo A-Arquitectos (ver detalles del post anterior del porque esta compañía)
  4. El Arq. Abraham Nuñez Ruiz realizo comentarios en el post, no lo borre ni censure le di la oportunidad de replica, dice que van a responderle a todos los afectados, en mi caso, otra vez no fue equipo, fue dinero el robado, Clara tiene mi correo electrónico y mi teléfono, ademas ella me asegura que usted esta enterado de mi queja, ¿porque no se ha puesto en contacto conmigo para encontrar una solución?
Siguiendo con la actualización con respecto al seguimiento de este problema ante PROFECO, el día 4 de Diciembre del 2009 se llevo una audiencia y a pesar de que en la PROFECO me aseguraron que D'Newton Soluciones estaba notificado, ningún representante legal se presento.

En una segunda audiencia con PROFECO el día 12 de Enero del 2010, la historia se repitió, nadie representando a D'Newton Soluciones apareció, aun y cuando en los comentarios del primer post el Arq. Abraham Nuñez aseguro que responderían como se debe.

Va a haber una audiencia mas en PROFECO en fechas próximas, espero que ahora si tome responsabilidad de los hechos y se presente, aunque lo dudo sinceramente.


domingo, enero 17, 2010

Webcasts sobre IronRuby en Enero

Esta semana voy a llevar a cabo un para de Webcasts sobre IronRuby, el cual es la implementación de Microsoft del popular lenguaje Ruby; y que presenta una de las propuestas de Microsoft sobre los lenguajes dinámicos en .NET

El primer Webcast se va a llevar a cabo el día 21 de Enero a la 19:00 hora de Madrid/París, 10:00 hora de Tijuana PST, para elClub .NET de la Universitat Oberta de Catalunya, para registrarse y atender el evento hay que dirigirse al sitio de MSEvents.

El segundo Webcast se va a llevar a cabo para la Comunidad ALT.NET Hispano el sábado 23 de Enero a las 10:00 hora de Tijuana PST, para atender el Webcast solo es necesario conectarse a esta dirección el dia y hora indicado.


domingo, enero 10, 2010

Primer SHDH Tijuana del 2010

El pasado sábado 9 de enero se llevo a cabo el SHDH Tijuana, primero del 2010, gracias a la gestión de @reaktivo, Marcel, la Universidad de Tijuana CUT y Protolab nos ofrecieron sus instalaciones para la realización del evento.

Poco a poco durante el transcurso de la mañana fue llegando la gente, primeramente llegaron los desarrolladores y posteriormente los diseñadores gráficos; y durante el día fue llegando mas gente, hasta que habíamos alrededor de 15 personas.

Fue bueno ver caras conocidas y caras nuevas que estuvieron presentes. Inicialmente se platico sobre la mecánica del SHDH ya que habían algunas dudas y/o comentarios al respecto, inclusive se comento acerca de ver la posibilidad de generar algún evento parecido al iWeekend donde algún proyecto que justifique ser una opción de negocio, pueda recibir un apoyo económico para llevarse a cabo.

Después de la platica amena, se decidió hacer un "brainstorm" sobre posibles proyecto de corto a mediano plazo que se pudieran realizar en conjunto, la parte interesante de este ejercicio es que habíamos alrededor de 15 personas con diferentes perfiles/visiones/conocimientos que un principio parecía que iba ser un poco difícil ponernos de acuerdo, pero fue todo lo contrario, al momento de proponer una idea, rápidamente salían sugerencias de como mejorarlas.

Al final se hizo una lista de cuatro posibles proyectos, de los cuales se decidió que enfocáramos el esfuerzo en únicamente dos de ellos, y así fue, se detallo mas el funcionamiento de cada uno de ellos, se reviso la parte técnica y la parte de diseño gráfico, ambos proyectos son proyectos de web.

Una vez con la información definida para cada proyecto se hicieron dos equipos con los presentes, en cada equipo había desarrolladores y diseñadores gráficos, uno de los proyectos se decidió hacerlo con Ruby On Rails y el segundo con CakePHP.

Durante el proceso de definición de los proyectos hicimos en forzoso "break" para degustar la comida gourmet, que una vez mas, patrocino 100% de DareleLuquin.com; y tal como en el SHDH anterior la comida estuvo de primer nivel.

Yá comidos, nos pusimos a trabajar en llevar el concepto de los proyectos a una realidad, aunque aun seguimos "rebotando" ideas, al final el tiempo de irnos nos alcanzo, pero llegamos a los siguientes acuerdos:

De momento los detalles de ambos proyectos van a permanecer entre los asistentes del SHDHTJ, mientras se concreta un avance significativo que pueda mostrarse y usarse, así que por favor estén al pendiente.

También al final se platicó acerca del siguiente SHDHTJ, el cual tentativamente se llevará a cabo el sábado 13 de Febrero 2010, por lo tanto si alguien tiene alguna sugerencia del lugar de reunión o nos puede contactar con los encargados para solicitarlo se les agradecerá bastante, si pueden ayudar, me pueden contactar en al corre de gmail como mario.chavez o en twitter mario_chavez.


miércoles, enero 06, 2010

Instalando Rails3 edge

Si tienen curiosidad de probar la próxima version de Rails, es muy sencillo instalarla en conjunto con la versión de Rails 2.x.

Aunque se supone que todavia no esta lista para produccion, ya por ejemplo 37Signals anunció que esta iniciando un nuevo proyecto con Rails3, además de que la versión beta se espera para finales de Enero.

Esta guia de instalación esta basada en el post "Rails 3" de Yehuda Katz, con algunas pequeñas modificaciones.

Primer paso. Instalar Bundler
Bundler es una gema de Ruby que nos permite crear un manifiesto de las gemas requeridas por nuestra aplicación, Bundler se encarga de leer ese manifiesto e instalar las gemas especificadas así como sus dependencias como parte de nuestra aplicación.

Este manifiesto se declara en un archivo Gemfile localizado en el directorio de nuestra aplicación.

$ sudo gem install bundler

Segundo paso. Clonar Rails3 desde el repositorio de Github
Ahora hay que descargar el código fuente de Rails3, para esto clonamos el reporsitorio de GitHub en algun lugar de nuestro disco duro.

$ git clone git://github.com/rails/rails.git

Tercer paso. Creamos una nueva aplicacion Rails3
<ruta_rails> apunta la directorio donde clonamos Rails3, lo de esta despues de rails/... es parte de las estructura clonada del repositorio y next_youtube es el nombre de nuestra aplicación Rails.

$ ruby <ruta_rails>/rails/railties/bin/rails next_youtube
$ cd next_youtube

Cuarto paso. Modifcar el archivo Gemfile
Para poder configurar las dependencias de nuestra nuestra aplicación, así como indicarle que es una aplicación Rails3, hay que hacerle unos ajustes a Gemfile.
<ruta_rails> apunta la directorio donde clonamos Rails3

# En la parte superior del archivo hay que agregar
rails_source_path = "<ruta_rails>/rails"directory
"#{rails_source_path}", :glob => "{*/,}*.gemspec"git "
git://github.com/rails/arel.git"
git "git://github.com/rails/rack.git"

gem "rails", "3.0.pre", :path => "#{rails_source_path}"
%w(activesupport activemodel actionpack actionmailer activerecord activeresource).each do |lib| gem lib, '3.0.pre', :path => "#{rails_source_path}#{lib}"
end


Quinto paso. Ejecutar Bundler para que instale las dependencias
Una vez que modificamos Gemfile, solo resta ejecutar Bundler para que instale las dependencias de nuestra aplicación.

$ gem bundle

Finalización.
Ahora ya podemos ejecutar script/server y ver como se "levanta" nuestra aplicación ejecutandose en Rails3. A partir de aquí ya podemos proceder a construirla.

Espero poder publicar algunos post de recopilaciones de nuevas características de Rails3 en las próximas semanas.


lunes, diciembre 21, 2009

Super Happy Dev House Tijuana, Enero 2010

Ha llegado el momento de anunciar el próximo Super Happy Dev House - SHDH - Tijuana que se realizará el sábado 9 de Enero del 2010. En esta ocasión el evento será exclusivamente SHDH, por lo tanto si tienes alguna idea de un proyecto a realizar, o quieres aprender algo nuevo de forma practica esta es tu oportunidad, únicamente basta con ir al wiki y anotar tu idea o proyecto.

En esta ocasión se agradece el apoyo de la Universidad de Tijuana CUT y protoLab por facilitarnos el espacio para poder llevar a cabo el evento, así como a la ayuda de Marcel Miranda (@reaktivo) por haber realizado la gestión ante el CUT.

@Protolab
Edificio Gallegos Planta Baja
Blvd. Agua Caliente #10535
Fraccionamiento Aviación
Frente a Soriana

Recuerden que el evento no esta patrocinado por ninguna empresa u organización, lo patrocinamos todos, por favor si piensas asistir apúntate en la pagina de patrocinio con algunas bebidas o comida con que puedan contribuir.


jueves, diciembre 17, 2009

Cristalazo y robo


El día de ayer ingrese como parte de las estadísticas de vergüenza de esta ciudad, por la tarde noche y ante un descuido de apenas unos minutos mi auto recibió unos de los famosos "cristalazos" de donde extrajeron tres mochilas cada una con una computadora:
  • MacBook Pro de 15" Mod 2007, N/S W87222PSX91
  • MacBook Pro de 13" Mod 2009, N/S W89447AL66D
  • Acer Aspire de 15" Mod 2009
El vidrio lo rompieron con sumo cuidado ya que la alarma del auto ni siquiera se activo y no se escucho ningún ruido pese a que estábamos a solo unos pasos del auto. Como siempre y aunque había gente alrededor, nadie vio nada; los ladrones simplemente se "esfumaron" tal y como llegaron.

Hasta eso, un convoy de policía municipal se acerco a tan solo minutos de que nos dimos cuenta de robo, fueron y dieron una vuelta por las calles aledañas y en los lugares para tomar transporte público, pero nada volvieron con las manos vacías, ya no había más que hacer.

Fuimos al Ministerio Publico a presentar la denuncia, al llegar y explicar lo sucedido, el MP hizo cara de “Otra vez, otra vez y en el mismo lugar”, nos comento que casos de esos le llegan todos los días de la misma área, Otay Constituyentes, sobre la avenida Lázaro Cárdenas (La rampa de subida de la Central Caminonera) y Blvd Industrial.

Mientras dábamos la declaración, llego una familia que alcanzo a escucharnos y se acercaron, ya que a ellos les acaba de pasar los mismo a un par de cuadras con solo 30 minutos de diferencia, mismo modo de operación, el “cristalazo”.

Realmente la denuncia la pusimos solo por no dejar, pero en realidad desde el momento que vimos el vidrio quebrado y que las computadoras no estaban, ya sabíamos que era una causa pérdida, tal y como le sucede a cientos de Tijuanenses, aunque las estadísticas oficiales digan lo contrario.

Podría expresar lo que siento escribiendo en contra de las autoridades, de la seguridad, de la educación y otros más, pero no, no tiene caso, no tiene sentido; solo voy a decir que fue culpa de mi estupidez por no haberlas puesto en la cajuela, aunque solo las descuidáramos unos minutos.
Sé que la probabilidad de recuperarlas hace una asíntota con tendencia a cero, pero si a alguien le llegan “ofreciendo” alguno de estos equipos, agradeceré el que me puedan avisar a mario.chavez en el correo de Google.

viernes, noviembre 27, 2009

Fraude D'Newton Soluciones, centro autorizado Apple

Este es un post de que alguna manera esperaba que no tuviese que ser escrito, pero dadas las circunstancias no me quedo otra opción.

D'Newton Soluciones era una empresa de Tijuana dedicada a la venta y servicios de equipos Apple, desde ya hace mucho tiempo, inclusive era un centro reconocido de servicio por parte de Apple.

En D'Newton compré un par de equipos Apple, así como utilicé sus servicios durante un par de años, principalmente porque los precios eran casi los mismos que en las Apple Store de San Diego, y pues D´Newton ofrecían la comodidad de estar aquí en Tijuana, inclusive llegué a recomendar a amigos los servicios de la empresa en mención.

En lo general nunca tuve gran motivo para quejarme o desconfiar de D'Newton, hasta hace apenas un par de meses cuando lleve una MacBook que tenia ciertos problemas, ellos realizaron el diagnostico y determinaron el cambio de un componente, el cual lo pague por adelantado para que realizaran la compra y el cambio de mismo.

Me dijeron que en 5 días hábiles el equipo estaría listo, pero al cabo de ese tiempo no sucedió así, insistí durante la semana siguiente prácticamente a diario sobre la reparación del equipo, siempre recibía excusas del porque no estaba listo o simplemente no me podía comunicar, hasta que el jueves de esa segunda semana, me dijeron que la empresa estaba cerrando y que la reparación no se había efectuado, pero que pasara al día siguiente por mi equipo y el dinero que había dejado para la reparación.

Aquí es donde la situación cambio de ser una queja de pésimo servicio a una situación de FRAUDE por parte de D'Newton, ya que el viernes siguiente pase a recoger mi equipo, pero el dinero, según me dijeron, no lo tenían a la mano de momento e inclusive la persona encargada de la devolución no se encontraba, pero me dieron un numero de teléfono y la dirección donde podía localizarla.

La persona a la que debía contactar es Clara Diaz de Grupo A, una firma de arquitectos, en el numero 664 621 0410 Nextel 152*153272*1, según lo que me dijo la persona de D'Newton que me atendió, Clara realizaba la parte administrativa de D'Newton y de Grupo A, ya que el Arq. Abraham Nuñez Ruíz, era uno de los socios de D'Newton, encargado de la parte administrativa.

Durante un par de semanas posteriores estuve en contacto con Clara, situación nada sencilla ya que era prácticamente imposible localizarla, vía telefónica y por email no contestaba. Después de muchos pretextos y falsas promesas, y obviamente la no recuperación de mi dinero, decidí proceder de otra forma.

Trate de darles a D'Newton y al Arq. Abraham Nuñez Ruíz la posibilidad de resolver esta situación de la forma mas sencilla posible, pero al ver que no tienen la menor intención de responder como se debe, procedí a interponer la denuncia en PROFECO.

En PROFECO reconocieron el nombre de D'Newton Soluciones, ya que al parecer contaban con una serie de denuncias por diferentes motivos. La licenciada que me atendió me indicio que procederían a realizar la notificación correspondiente para realizar una audiencia el próximo 4 de Diciembre, donde esperemos que tengan los pantalones para presentarse.

En resumen, de lo que pude investigar por mi parte es lo siguiente:
La parte administrativa de D'Newton estaba a cargo del socio Arq. Abraham Nuñez Ruíz, quien es socio de Grupo A Arquitectos, A Development y A1 Arquitectos. Además pertence al Colegio de Arquitectos de Tijuana, en donde tiene bajo su cargo la Secretaria del Exterior.

La pagina del Colegio de Arquitectos de Tijuana está "caída", por falta de pago en el dominio, pero la información se puede consultar a través del cache de Google.

También encontré que el Arq. Nuñez es miembro de la Federación de Arquitectos de México, en donde al parecer tiene el cargo de Enlace Internacional.

Grupo A se encuentra en Av. Independencia 13019/6 Col. Hipódromo 2, Tijuana, B.C. Tel 664 621 0410

Si alguien tiene mas historias de "terror" de D'Newton Soluciones o tiene información sobre el resto de los socios y quiere compartirla, con gusto lo agregaré esa información a este post.

De igual forma si me pueden ayudar a hacer eco de este post lo agradeceré.