martes, 25 de noviembre de 2014

Plagio a la vista de todos

Hace un par de días me topé en la televisión con un proyecto del concurso "Una idea para cambiar la historia", organizado por el canal de cable History Channel, que me llamó la atención. No por su ingenio, no niego que es bastante ingenioso, sino porque estaba seguro que ya había visto algo así antes. Por tanto me puse a investigar y hacer memoria de dónde lo había visto antes. Finalmente lo recordé, hace varios años lo publicó un investigador de la Universidad de las Naciones Unidas. Un método para obtener aceite y combustibles a partir de bolsas de plástico.

No quiero ser desconfiado, ni decir que quien presentó el proyecto a concurso es consciente de no se trata de un proyecto original, pero ciertamente habla bastante mal de la producción del concurso el hecho de que este proyecto en particular se encuentre en la etapa de semifinalistas. Evidentemente alguien no se tomó la molestia de revisar con cuidado los proyectos y verificar que cumpliesen con un requisito de originalidad entre ellos, y cito textualmente de las reglas en el sitio del concurso, el apartado b del punto 10: "Los Materiales remitidos no podrán infringir o violar los derechos de ningún tercero, bien sea una persona física o jurídica, en ninguna parte del mundo, incluyendo, pero no limitándose, a los derechos de autor, propiedad intelectual, derechos marcarios, derechos de la personalidad, imagen y derechos de privacidad o publicidad, etc. Asimismo, no se considerarán aquellos Materiales que, a criterio del Organizador y/o del Jurado, sean considerados como pertenecientes a terceros, inapropiados, inmorales, indecentes, obscenos, contrarios a la moral o las buenas costumbres o pornográficos, discriminatorio u ofensivo para cualquier grupo o sector de la población, los cuales serán automáticamente eliminados de la base de datos del Concurso. Asimismo, se descartarán todos aquellos Materiales que no cumplan con los requerimientos establecidos en estas Reglas."

Pero bueno, aquí dejo las ligas para que cada quien se forme su propia opinión.

Esta es la liga al proyecto presentado en el concurso: http://mx.online.tuhistory.com/una-Idea/idea.html?idea=64

Esta es la liga al proyecto de la Universidad de las Naciones Unidas: http://ourworld.unu.edu/en/plastic-to-oil-fantastic

Pd. Incluso si mi interpretación de las reglas es errónea, el proyecto de la ONU tiene una licencia de Creative Commons Atribución-NoComercial-CompartirIgual que entre otras cosas especifica que "...no se puede usar el material con fines comerciales..." siendo un fin comercial "... aquel que pretende principalmente obtener ventaja comercial o compensación monetaria."

sábado, 8 de noviembre de 2014

Mejores prácticas para librerías de Arduino

Con todo el auge que está teniendo el movimiento Do It Yourself y la cantidad de herramientas que surgen todos los días, debo decir que me ha sorprendido bastante lo difícil que me ha resultado conseguir una librería en C o C++ que me permita trabajar en una tarjeta SD desde un micro AVR. Y me refiero a algo que integre tanto una implementación de sistema de archivos, FAT en este caso, como que utilice el protocolo SPI. Sonaría como algo muy lógico y elemental que exista algo así, o al menos a mi me lo suena. Y resulta muy desconcertante ver que no es así. Prácticamente todo lo que he encontrado está escrito para Arduino. Y eso no está bien.

Primero que nada quiero aclarar que no tengo nada en contra del Arduino, me encanta el Arduino y la flexibilidad que ofrece para prototipar rápidamente ideas tanto de hardware como de algoritmos. Aplaudo que haya una comunidad tan grande a su alrededor que lo utilice y genere nuevas librerías y shields y proyectos basados en él. Lo que me causa cierta incomodidad es el hecho de que por eso mismo, se haya estancado el desarrollo independiente de librerías más generales. Tratar de sacar de contexto una librería de Arduino y utilizarla en un proyecto en C es, en el mejor de los casos, bastante engorroso. En otros tantos es más bien imposible. Las librerías de Arduino son tan interdependientes que para utilizarlas fuera del "ambiente Arduino" uno termina copiando y editando cantidad de archivos que no tenía contemplados. Por ejemplo, para intentar utilizar la librería SD fuera del "ambiente Arduino" hay que a su vez copiar la librería SPI. Y hay que copiar los archivo Stream y Print entre muchos otros, para que al final el código no compile. Empieza entonces un largo y tedioso proceso de ir revisando y ajustando librería por librería y archivo por archivo lo cual no garantiza que al final el resultado vaya  a ser el deseado.

En la mayoría de los casos todo se debe a la utilización de "atajos." En lugar de implementar una serie de funciones necesarias para la librería que se está creando, simplemente se invoca ese mismo método de otra librería. Muy bonito de hacer, muy fácil y reduce en buena medida la cantidad de código que se debe escribir. Pero aparte de volver la librería dependiente de la presencia de otras librerías, también la vuelve vulnerable a fallar si el API de la otra librería cambia. Un remedio, más que una solución, sería que se documentase mejor esas dependencias de terceras librerías de manera que si uno quiere utilizar la librería fuera del ambiente Arduino, sepa qué funciones tendría que implementar y eso le permita tomar una decisión mucho más informada.

Resumiendo, si vas a escribir y compartir una librería:

  1. Evita en la medida de lo posible tomar atajos. Escribe un código completo e independiente.
  2. No asumas que el usuario final tiene tal o cual cosa. Si debe de tenerlas, házselo saber.
  3. Si no escribes un código independiente, intenta utilizar librerías que a su vez no dependan de otras librerías. Documenta de qué librerías se trata, dónde se pueden conseguir y qué funciones son las que uno tendría que implementar en caso de querer generar una librería independiente.
  4. Si no vas a hacer un código independiente ni a utilizar librerías independientes, de todas maneras documenta qué funciones son las que uno tendría que implementar en caso de querer generar una librería independiente. Trabajarás un poco más, no tanto como implementando las funciones, pero seguramente la cantidad de personas que usen tu librería será mucho mayor y serán mucho más felices.

sábado, 27 de septiembre de 2014

Aspirantes a makerspace

Hace un par de días asistí a un evento para inaugurar "el primer espacio para makers de la Ciudad de México" (o al menos eso dicen los dueños) que resultó más de lo mismo de siempre, una gran tomada de pelo adornada con unas chelas y muchos amigos que aplauden. No sé si soy yo o son los otros (después de averiguar se concluyó que son los otros) pero hasta donde mi comprehensión llega, en un makerspace a uno le proporcionan las herramientas y asesorías necesarias para realizar proyectos y llevarlos a buen puerto, SIN IMPORTAR las negras intenciones que uno pueda llegar a tener con su proyecto. Y con negras intenciones me refiero a si es un proyecto dominguero o un proyecto con aspiraciones a volverse un producto comercial. Pero aquí no, aquí se aspira a cobrar una cuota bastante elevada, 3,500 pesos mensuales, por permitirle a uno acceder a equipo al cual en muchos laboratorios universitarios se puede acceder de manera gratuita y además con eso pagar derecho de piso para poder pagar cuotas adicionales y opacas por utilizar impresora 3D y cortadora laser. Y les llamo cuotas opacas porque uno jamás puede saber por adelantado cuanto va a pagar. Uno puede ir un dia a fabricar algo y pagar N y volver un par de días después y pagar 3 ó 4 veces esa cantidad por fabricar lo mismo Lo cual sólo permite suponer que la máquina es idiota y no sabe hacer su trabajo o que la persona que la opera no posee la destreza o cualificaciones suficientes para operar correctamente la máquina. Eso dejando de lado la calidad inconstante del trabajo resultante. Resulta mucho mejor inversión acudir a un lugar que a todas luces se ostenta como un negocio y pagar para que ellos realicen la labor de fabricación con la garantía de un buen y satisfactorio servicio que acudir a este "lugar de construcción y desarrollo comunitario" donde nadie se hace responsable de nada.