Primera experiencia con los Arduinos

Últimamente en revistas como Make de O’Reilly se ha puesto de moda hablar de lo «último» en hardware libre: Arduino

Arduino es básicamente un microcontrolador Atmega8, una placa para dicho controlador que le añade el reloj y el conexionado, un bootloader, el software para programarlo y la comunidad que se crea alrededor del invento. La gracia está en que el software involucrado es software libre, y los diseños pueden ser empleados con una licencia creative commons Attribution/Sharealike.

Esto en teoría tiene varios usos: el docente/discente, y el facilitar los desarrollos empotrados de software libre.

Como algunos saben, uno de los proyectos que llevo entre manos es el de una plataforma domótica libre. Arduino parecía la plataforma ideal; por lo que me puse manos a la obra: me puse a buscar en el site web, y encontré dos tipos de Arduinos, los NG y los mini. Según ponía en la documentación, la diferencia entre ambos es que el mini es más potente, tiene más memoria, es muy pequeño, y necesita un adaptador especial para conectarse a USB. Por todo lo demás, son iguales. O eso decía la documentación.

Me pongo manos a la obra, y compro diez arduinos mini para una instalación de prueba, tres NG para el cacharreo, y el adaptador USB. En total, 301 euros.

Después de hacer el pedido, me descargo el diseño de la placa y veo que el sitio web donde describe los Arduinos, así como donde habla de los mini y sus diferencias con los NG, tiene un error: los minis tienen otra diferencia más «no documentada»: carecen de i2c, que permite establecer redes de dispositivos; algo que sí tiene el Arduino NG, y sí tiene el microcontrolador que acompaña al mini, pero que no ha sido cableado. Comunicar más de dos Arduinos mini es extremádamente complicado sin modificarlos; y con un microcontrolador menor que una uña y soldaduras de superficie no es trivial sacar las señales de i2c -SDA y SCL-.

Mandé un correo a cada una de las direcciones que pude conseguir de smartprojects -info@smartprojects.it y info@pcb-europe.net-, indicando lo siguiente:

====================================

I have discovered that arduino mini has not direct i2c support without soldering, and Arduino NG has the two i2c ports connected to a pin.

I need i2c to the project that I am working, so: Is there a way to change on my order from:

1 x USB/serial converter () = 15.00EUR
3 x Arduino NG USB Board () = 66.00EUR
10 x Arduino Mini () = 220.00EUR
————————————–
Sub-Total: 301.00EUR

to:

15 x Arduino NG USB Board () = 300.00EUR
————————————–
Sub-Total: 300.00EUR

Sorry for the annyoance.

Yours:

David Santo Orcero

=======================================

El correo no fue respondido, a pesar de ser enviado una hora después del pedido tanto desde mi dirección de orcero.org como desde la de gmail.

Durante la siguiente semana me mandan mensajes indicando que el pedido lo están preparando, que lo preparan y finalmente que lo mandan. No se si me están ignorando, o que no leen los correos a la dirección que me dan de información.

Una semana más tarde, Daniela Antonietti me manda un correo electrónico con la factura del pedido, y le repito lo del cambio:

=========================================================

I have discovered that arduino mini has not direct i2c support without soldering, and Arduino NG has the two i2c ports connected to a pin; so far I need i2c to the project that I am working I asked for change the arduinos mini and the USB/serial converter to the same money in arduinos NG boards. The message was sent to Smart Projects snc and info@smartprojects.it, by my orcero.org account and my gmail account.

=========================================================

Más adelante, le repito:

=========================================================

When I bought the mini arduinos I thought that have the same outputs than arduino NG, but with twice as much program space. As far as the mini arduinos are completly useless for me (I need i2c), I want to ask if there is any way to change the minis -I send to you the minis, and you send to you the NGs-. I have not problem on paying the transport.

Please, be educated and respond to this e-mail.

=========================================================

Es decir, que le mando los 10 arduinos mini y el adaptador para programarlo, y me manda a cambio 12 arduinos. Yo pago los portes.

===================================================

tomorrow or Wednesday I’ll ship the Arduino NG to Your address.
But please be a little patience because I have to answer to many people.

===================================================

Aceptan. Bien, me suben la moral. Todavía uno se puede fiar de la gente. Mando los
10 arduinos mini y el adaptador, y finalmente me llega su paquete.

El paquete contiene 10 arduinos NG.

Es decir, ante la petición de un cambio en el que yo perdía un euro y los pagos de porte -cambio a coste-, han decidio cambiar arduino NG por arduino mini, y que el adaptador USB/serie yo se lo mande de regalo. Finalmente he pagado 300 euros por un producto de 260 euros.

Me quedo con la sensación de que me han tomado el pelo. Han ganado 40 euros con el cambio.

Por cierto, los arduinos de la segunda tanda estaban muy mal embalados, en un sobre con 3mm de acolchado;uno me ha llegado con los pines dañados. Aún tengo que probarlos.

Comenzamos mal. Si no me lo hubieran cambiado, me hubiese quedado con la sensación de que una vez vendido el producto, ignoran al cliente. Ahora estoy con la sensación de que si te la pueden colar te la cuelan.

Technorati tags:

Las reglas del juego del software libre – Introducción

Aquellos que me conocen saben que soy aficionado a un juego de origen chino, llamado Weiqi (围棋); y del que hay mucha afición en Asia. No voy a hablar de este juego ahora, aunque sí haré una entrada futura sobre él.

Ser un jugador de Weiqi en Málaga es muy complicado, especialmente porque hay muy pocos jugadores, a la mayor parte de ellos les he enseñado yo, y esto hace complicado encontrar gente nueva para jugar. Por ello, aprovecho todo jugador potencial para echarle unas partidas.

Hace unos años, de visita en casa de una amiga japonesa que vive en Málaga, le propuse echar una partida. En Japón, llaman go (囲碁) a este juego. También era popular en Japón, donde tubo mucha aceptación en al época feudal, y entre los militares por su profundidad estratégica. Desgraciadamente, en Japón hoy en día es un juego que practican ancianos, y gente muy culta; y mi amiga sabía jugar apenas al 将棋 -shogi-, un juego que culturalmente es como nuestras damas: juego familiar, que juegan los niños con las madres…

Mi amiga, -y ahora adversaria-, me preguntó si sabía jugar. Yo recordaba las reglas de haberlas leído hace tiempo, pero no había jugado nunca una partida real contra nadie. Le pregunté los distintos movimientos de las piezas, y ella me refrescó la memoria respecto a dichos movimientos.

La estructura de la partida parecía similar a la del ajedrez -distintas fichas con distintos movimientos, y un rey que capturar-, por lo que confié en la transferibilidad de mis conocimientos en ajedrez. Es cierto que no soy bueno en ajedrez -es un juego que no me ha llamado la atención nunca-, pero si he jugado algo y conocía algunos trucos.

Comenzamos. Pronto noté que me estaba haciendo con el juego. Parecía que valían las mismas tretas: le hice a mi adversaria un doble ataque por descubierta, y poco después una clavada. Noté como mi contendiente o se estaba comenzando a sentir incómoda o se le estaban durmiendo las piernas en seiza (正座). Esto es muy poco probable, teniendo en cuenta que es una buena japonesa tradicional.

En este punto, comencé a envalentornarme. Ya tenía seguridad que mis habilidades eran completamente transferibles. Comencé a planificar tácticas de ataque.

La partida seguía su curso, y vi como mi adversaria hizo algunas jugadas que me parecieron no tener sentido. Finalmente, hizo un cambio de calidades realmente estúpido, cambiandome un 飛車 -hisha, que se comporta como una torre de ajedrez-, por un 香車 -kyosha, que solamente se puede mover hacia delante-. Noté que ponía una sonrisa de oreja a oreja -algo extraño en un japonés, que no son precisamente expresivos-; pero yo seguí a mi ritmo. Ella tenía pocas piezas, y mal situadas.

Ella movió su 角行 -kakugyo, que se mueve como un alfil-, amenazando a mi 王将 -osho, el rey-. 王手!, dijo mi adversaria -puede ser traducido como «jaque». Vale, estaba pensado. Está lejos. Puedo protejer el osho. Muevo el 金将, interponiendolo entre el 角行 y mi 王将. Sonrío. Pero ella sonríe más. Coge el 香車 que me había capturado, lo pone en el tablero y dice «王手詰み!»: literalmente, «jaque mate». Ha ganado.

En estos momentos se te pone cara de tonto. Y, aunque me tengo por jugador deportivo -cualquiera que me ha visto recibir paliza tras paliza en los torneos nacionales de weiqi puede atestiguarlo-, lo de tomar una ficha y ponerla en el tablero era demasiado fuerte como para no poner cara de estar viendo extraterrestres.

Los europeos somos mucho más transparentes en nuestras expresiones faciales que los japoneses, por lo que ella se percató con facilidad de mi estado mental. Entonces me explicó que aquello de poner fichas en el tablero era una jugada legal.

En esos momentos resumí mentalmente la situación: había luchado desde el principio con posibilidades de ganar, mi posicionamiento táctico era bueno, y mi mayor experiencia con este tipo de juegos me había permitido controlar la partida. Además, me faltaban pocas jugadas para ganar. Y era inevitable haber ganado…

…si las reglas del juego hubiesen sido las que yo creía. El error había sido enteramente mio: recordaba vagamente las reglas, pero no las conocía bien. Particularmente, no conocía la de volver a poner en el tablero las fichas capturadas. No tenía experiencia real en partidas
al shogi, por lo que había confiado plenamente en la transferibilidad de mis conocimientos de ajedrez. Debía haber repasado todas las reglas con mi invitada, en lugar de dar por supuesto que sabía jugar por haber leído algo sobre el juego hace tiempo, y apenas conferir que recordaba los movimientos de las distintas piezas.

La conversación posterior con ella me permitió descubrir lo que había pasado, y la diferencia con lo que yo estaba creyendo que pasaba.

Al comenzar la partida, mi invitada, ya adversaria mía, se encontró con la desagradable sorpresa que hacía cosas no predecibles para un 外人 -gaijín, un no japonés-. No es que los japoneses sean racistas; sino que son plenamente conscientes que son raros -�?��?��?��?�る, creo que es el término que emplearían los propios japoneses-, y que nuestras costumbres son muy distintas; por lo que aceptan y perdonan nuestra (mala) educación y nuestro aparente escaso やる気. De hecho, le sorprendió que un gaijín jugase a mi nivel al shogi.

A lo largo de la partida, mi adversaria se vio en varias situaciones complicadas. Pero lo que más le incomodaba es que, jugando al nivel que yo jugaba, no remataba la faena poniendo piezas entre las capturadas cuando podía ya haber terminado la partida ganando; por el contrario, veía como yo coleccionaba las piezas. En determinados juegos -como el weiqi o el propio shogi-, eso es una muestra de recochineo. Sin embargo, conociendome y viendo como iba el percal, sumó: gaijín, no ha jugado nunca, recuerda las reglas de haberlas leído hace tiempo… ya conocía mi vulnerabilidad: me autoimponía algunas limitaciones importantes que suponían un handicap demasiado grande por el hecho de no conocer adecuadamente las reglas del juego y haber supuesto una transferibilidad total de mis conocimientos de ajedrez.

Aquí ella desarrolló su táctica: muy consciente de lo que hacía, acorraló al osho de una forma que nadie que conociese el juego aceptaría -pero que yo, desconocedor de una regla clave, encontraba inofensiva-, hizo un cambio de calidades que nadie en su sano juicio, conociendo las reglas, haría. Y ganó.

Vale, ¿Y que tiene que ver esto con el título del post?

Todo.

El software libre y el software privativo, para el que no sepa las reglas de estos juegos, son dos juegos muy similares. Los dos se basan, aparentemente, en sentarse delante de un ordenador y escribir miles de líneas de código; y luego ganar dinero de este código.

En principio, el software privativo gana dinero de la venta de las licencias del código, del soporte de uso, de desarrollo a medida, de personalización, y de consultoría sobre el código generado. Cada empresa de software privativo ha desarrollado un modelo de negocio basado en uno o varios de estos elementos.

Ahora que el software libre se está poniendo de moda, muchas personas piensan que el software libre es como el software privativo, con la única diferencia que no se gana dinero con la venta de licencias de uso, pero que se gana dinero con todo lo demás. Y presuponen que toda la habilidad buscando las personas adecuadas -recursos humanos-, programando, coordinando equipos y dirigiendo empresas es transferible del software privativo sin adaptaciones. Y esto es un error muy grande.

El software libre nos permite tomar cualquier pieza de código que ya sea software libre, por grande que sea el código, e incorporarla a nuestro código. E incorporar cualquier trozo de código bueno disponible en el «corpus» de software ya liberado. Esto significa que si dos programadores igual de buenos comienzan a desarrollar un proyecto desde cero, uno hace un desarrollo de software privativo y otro hace un desarrollo de software libre, ¿quien tendrá el código mejor, de más calidad y antes?

Respuesta: el de software libre. Simplemente, porque el software libre puede tomar muchos módulos de otros proyectos desarrollados por terceros, e incorporarlos. No necesita programar desde cero el mejor algoritmo que haga la tarea «X»; sino que lo toma de otro proyecto, y lo incorpora a su proyecto. Esto le permite ganar mucho tiempo por no necesitar reinventar la rueda: termina antes, y tiene más tiempo para aumentar la calidad final. Y hay millones de líneas de software libre, muchas de gran calidad, esperando para ser reaprovechadas. En el mundo científico ya sabían esto; como decía Newton: «Si he llegado a ver más lejos que otros, es porque me subí a hombros de gigantes»

Si vieramos el «hacer el programa» como «andar por un camino» veríamos como el software libre se «teletrasporta» hacia adelante cada vez que aprovecha código de otros proyectos. Es injusto tomar atajos en una carrera, y más teletransportarse. Pero es que ahí está el problema: las reglas de juego no son la mismas. Del mismo modo que en mi partida yo pensaba en las reglas del ajedrez, y mi adversaria pensaba en las reglas del shogi, aquí el software privativo piensa con sus reglas, y el software libre, piensa con las suyas.

En el software privativo está explícitamente prohibido emplear código de otros. No es legal. El único código que podemos reaprovechar es el ya desarrollado por la propia compañía. Las empresas de software deben hiperespecializarse si son pequeñas, o ser tremendamente grandes, si quieren ser competitivas. Es imprescindible la mano de obra barata: surgen las software factories en las regiones subdesarrolladas en las que la hora de programador tienen costes ridículos, aprovechando la desesperación de los programadores ante la tesitura de que no hay industria local fuerte que pague buenos salarios. Este es un escenario lose-lose para las pequeñas empresas y los trabajadores donde solamente ganan los directivos y accionistas de las multinacionales del software y de las software-factories, versiones modernas informatizadas de los telares del siglo XIX.

El problema es que hay una regla del juego que no pueden emplear: tomar código libre. Este es el lastre del software privativo, y lo que lo hace ineficiente. En el software privativo, hay que reinventar constantemente la rueda. El software libre puede «poner fichas ya capturadas». Lo que en ajedrez es trampa, en Shogi es legal. Lo que en software privativo es ilegal, en software libre no lo es.

Salvo que por presiones legales, de monopolios o de patentes irracionales el software privativo consiga abortar la partida, el software libre la va a ganar. Es una innovación disruptiva que permite acelerar los procesos de desarrollo y mejorar la calidad. Esta nueva regla de reaprovechado ilimitado de código de otros proyectos externos hace no transferibles muchas de las habilidades propias del software privativo, y fuerza a cambiar muchas estrategias y actitudes.

A lo largo de una serie de posts vamos a ver como será necesario cambiar estrategias y actitudes para poder sobrevivir en un nuevo mercado en el que algunos pueden reciclar miles de líneas de código y ahorrar ingentes cantidades de tiempo de desarrollo. La próxima entrada sobre este tema, búsqueda y selección de personal en empresas de software libre. No se la pierdan.

Technorati tags: , ,

々歩

¿Sabes lo que significan términos como やる気 o 頑張る? Pues el gran Pietro Zuco me ha fastidiado una entrada al blog estupenda en la que estaba trabajando, en la que precísamente hablaba de la importancia de estos dos términos tanto para un trabajador en la empresa como para cualquier emprendedor.

Y esto se debe a que Pietro ha comenzado a escribir un blog: haciendo el camino. Y nadie mejor que Pietro para hablar de Japón, de términos japoneses y de cultura japonesa.

Para el que no lo conozca, Pietro es una persona muy especial, y todo un personaje: un italiano que habla perfectamente español y que tiene una personalidad y una cultura del trabajo completamente japonesas. La forma de Pietro de enfrentarse a los retos, de asumir compromisos y de responsabilizarse personalmente de lo que hace, sólamente la tiene un japonés. Por ello, cuando en esta entrada Pietro habla de やる気 o de 頑張る, yo no tengo nada más que hacer que borrar el borrador de mi entrada, y referenciar a la fuente: nadie mejor que Pietro para hablar de estos temas: él ha vivido en Japón, ha trabajado en Japón, y cuando trabajas con él te das cuenta que es el modelo de trabajador que tiene mucho やる気; al que todos nos gustaría tener en el equipo, y el tipo de persona que todo empresario debería perseguir.

ピッコ�?�ん, ブロッグ�?� 頑張る�?日本�?�頑張る�?

La auctoritas y la gestión de equipos

A los romanos les debemos muchas cosas: el derecho y parte de la organización política son algunas de ellas. Fueron capaces, con unas comunicaciones pobres -¿Cuanto se tardaba de punta a punta en recorrer el Impero?- y con un ejército pequeño -¿Que porcentaje de población era militar respecto al total de población?- de mantener a Europa unida bajo un único poder político. Y durante más tiempo que nadie.

Durante todo el Imperio Romano, que abarcó desde la fundación de Roma hasta la caída de Constantinopla, hubo numerosas etapas, algunas francamente mejorables, pero otras muy interesantes. Yo prefiero quedarme con la época senatorial; en la que un romano prefería morir a faltar a su palabra o a perder el honor.

En esta época estaban muy en boga lo que llamaban los romanos «virtudes». Distinguían entre dos tipos de virtudes: las personales, que cada uno debía cumplir en privado y en público, y las públicas, que eran aquellas virtudes que se esperaba que una sociedad tuviera.

Los individuos no tenían virtudes públicas, pero con sus elecciones personales sí eran responsables de que las sociedades en las que participaban tuvieran estas virtudes. Hablamos de justicia, libertad o paz. Pero hablaremos de esto más adelante en otro post, para no perdernos.

De lo que vamos a hablar es de una virtud personal en particular, cuyo concepto desgraciadamente se ha perdido: es la Auctoritas.

Auctoritas es la cualidad por la cual una persona se hacía merecedora del respecto de los que la rodeaban a través de la experiencia, y la realización plena y completa durante mucho tiempo de otras virtudes: la Pietas, y la Industria.

Pietas era el respeto por los valores sociales de la república, y por la cultura; estos dos incluían el respeto por la Triada Capitolina y los antepasados, como manifestación de la religio. Pero la Pietas no era apenas un respecto social o cultural: también exigía el respecto por los que te rodean.

Industria era la capacidad de trabajar duro durante toda la vida para obtener tus objetivos.

Por lo tanto, para tener auctoritas, un romano debía labrarse una historia personal de trabajo, esfuerzo, experiencia y respeto por una serie de valores, así como respeto por las personas. Podías tener poder -potestas- o incluso poder absoluto -imperium-, pero el hecho de tener potestas en ningún momento aseguraba ni un ápice de auctoritas.

La forma de ganar auctoritas para los romanos que no participaban en el ejército era laboriosa y discreta, por lo que los ejemplos que pueda poner pueden escapar al imaginario cultural de la generación LOGSE. Pero en el caso militar, todos sabemos lo que hacían los generales para conseguir auctoritas: una vez que conseguían la potestas -es decir, que podían mandar-, seguían caminando con la tropa, iban la batalla en línea de frente, comían con los soldados y eran un ejemplo para todo el ejército. Llegado a un punto, sus subordinados no lo seguían porque tuviese potestas, sino porque creían en él. Era su ejemplo. Muchos militares de la gens Cornelia que anduvieron por España, o militares famosos como Cesar -o más recientemente Napoleón- entendieron la importancia de la auctoritas.

En el día de hoy, no es plan de ponerse a adorar la Triada Capitolina, o a tomar una gladius e ir a hacer el majara al monte. Si pensamos en esto, es que no hemos entendido nada de la Auctoritas. Auctoritas es el hecho de que la gente te escucha y acepta lo que dices no porque tienes el poder, sino porque tu, personalmente, tienes todo un registro de trabajo duro, de esfuerzo, de respeto, de sacrificio, y de conocimiento, que hace que la otra persona, que se siente respetada, piense «si fulanito lo dice, es porque es cierto».

Actualmente se escriben cientos de libros sobre gestión empresarial hablando del liderazgo. Pero el hecho triste es que todo esto es necesario porque hemos olvidado algo que nuestros antepasados sabían: auctoritas no es lo mismo que potestas. El hecho de que puedas dar ordenes no significa que alguien las vaya a obedecer. La gente hace algo bien si de buena fe cree en ello, y en el que lo propone.

Por el látigo también se pueden conseguir algunos resultados: si tienes medios incoativos para forzar el cumplimiento de tus ordenes, las ordenes serán ejecutadas. Pero luego no llores diciendo que tus empleados o subordinados hacen mal las cosas, que se te van, que tienes una alta rotatividad, que no te fías de ellos, o que no son proactivos -esto último es lo más gracioso ¿No los has castrado antes ejerciendo tu poder de forma indiscriminada?-. Puedes tener potestas, pero ni sospechas que es la auctoritas.

¿Quieres tener auctoritas? Muestra que respetas y escuchas a los que te rodean. Adquiere conocimiento. Mucho. Demuestra trabajo duro, responsabilidad y respeto durante años. Y cuando adquieras la potestas, no solamente no debes perder todo esto, sino además debes ser un ejemplo para todos. Y verás como tus subordinados creerán en ti, y lucharán junto a ti por conseguir los objetivos.

Actualización: La continuación, entrando en más detalle en la potestas sin auctoritas.

Technorati tags: , , ,