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?