La Carrera Maker

laser3_1700x900Recientemente tenía esta convesación con uno de mis compañeros de CostaRicaMakers.com. El ilustre Gerardo Mora.

Hablábamos de la dualidad o diversidad de destrezas que se presentan en el área Maker; principalmente con personas que saben tanto de software como de hardware.

De esta conversación puedo enumerar algunas de las áreas de conocimiento y de destreza que es importante explorar:

  1. Programación y Desarrollo de Software.

  2. Sistemas Operativos


  3. Hardware y Electrónica

  4. Prototipado e Impresión 3D

  5. Física y Química


  6. Documentación de Ideas, Proyectos y Procedimientos

  7. Diseño de Experiencias (User Experience)

  8. Gestión de Proyectos

  9. Desarrollo de Productos


  10. Comunicación Técnica para Audiencias no-técnicas

  11. Emprendimiento Externo (al público en general) e Interno (dentro de una empresa o corporación)

  12. Legislación Sobre Propiedad Intelectual

 

¿Conoces de más destrezas importantes para el área Maker? Compártelas con nosotros a través de los comentarios.

El peligro de la cultura Maker

Más allá del Prototipo

Todos hemos visto de una u otra forma los beneficios de esa cultura que está permeando en nuestra sociedad; esa de hágalo usted mismo; esa de aprender algo, mejorar la técnica y compartir el conocimiento.

Resulta difícil imaginar que una cultura tal pueda tener algún peligro inherente para la sociedad. En realidad expongo aquí un peligro que la cultura Maker enfrenta en su naturaleza y que requiere de un cuidado importante ya que limita sus alcances de manera significativa.

En la cultura Maker las personas se explotan su curiosidad, analizan, prueban, aprenden, mejoran lo que existe, y comparten lo que aprendieron; es una cultura que acelera de manera vertiginosa la capacidad de prototipado de nuevas ideas; de nuevos productos. Sin embargo el gran peligro que enfrenta es el de quedarse allí precisamente; en el prototipo funcional, de conformarse una y otra vez con el nivel “instructable básico” y de no profundizar en ese gran paso que enriquece a la sociedad, el de crear nuevos productos, nuevas soluciones dirigidas a las personas que no son maker, que necesitan una solución completa que puedan consumir y utilizar tal cual.

Dentro de las destrezas clave para un maker podemos enumerar varias: autodidacta, curiosidad, documentación, solución de problemas, integración de tecnologías; pero una que normalmente pasa desapercibida es la que yo llamo “productivización”; es decir la capacidad de diseñar un producto repetible que se desempeñe de manera estable y satisfactoria en el campo; que se pueda consumir con un mínimo de instrucciones de uso.

Siendo la cultura maker empírica por su naturaleza, la profesionalización progresiva del maker es algo que requiere medular atención.

Destrezas y conocimientos en áreas como Administración de Proyectos, Ciclo de vida de Productos, Mercadeo, Emprendimiento e incluso Propiedad Intelectual se vuelven vitales para una cultura Maker que vaya más allá en la generación de riqueza de un país.

Llamadas dinámicas a LINUX desde ARDUINO IDE en un Intel Edison – Aprendizaje de 10 minutos

IMG_20150307_170030

Uno de los súper poderes de las plataformas Edison y Galileo de Intel es la disponibilidad de LINUX y la posibilidad de ejecutar comandos de LINUX desde un “sketch” de ARDUINO.

En esta receta les comparto cómo hacer llamadas dinámicas al sistema de LINUX desde un sketch ARDUINO, concatenando valores en un objeto String y luego convirtiendo dicho objeto a un arreglo de caracteres necesario para la llamada de sistema.

La idea es poder concatenar comandos de sistema, con valores leidos de los sensores, y hacer llamdas a Linux para que haga algo a partir de estos valores.

En resumen:

  1. La llamada de sistema recibe un parámetro que es un arreglo de caracteres (no un String)
  2. La concatenación se puede hacer de manera muy sencilla usando un String
  3. La conversión se realiza creando un arreglo de caracters del tamaño del String mas un caracter terminador.
  4. El sketch abajo es una modificacion del ejemplo BLINK, que además de hacer parpadear un led, tiene un contador que lleva la cuenta de la cantidad de veces que se ejecuta el comando loop().
  5. La función “dynamicCommand(c)” recibe el valor del contador y genera un comando de sistema para realizar un listado del contenido de una carpeta y poner el resultado en un archivo. Este archivo es nombrado con un sufijo que indica la cuenta que lleva el contador.
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
int c = 0; //just a counter

// the setup routine runs once when you press reset:
void setup() {                
    // initialize the digital pin as an output.
    pinMode(led, OUTPUT);    
    Serial.begin(9600);
    Serial.println("TEST FOR STRING CONCATENATION"); 
}

// the loop routine runs over and over again forever:
void loop() {
    c++; //un simple contador
  
    Serial.println("Count: ");  
    Serial.println(c);

//  Serial.println("Count: " + c); //This behaves weird...  
    
    if( c < 10){ 
         dynamicCommand(c);
    }
    Serial.println("Blinking...");
    digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(1000); // wait for a second
    digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
    delay(1000);               // wait for a second
    Serial.println("Loop Complete!"); } 

dynamicCommand(int counter){
     Serial.println("dynamicCommand function..."); 
     String command = "ls > resultFile";
     command += counter;
     command += ".log";
     Serial.println("Concatenated command looks like this:");
     Serial.println(command);

//UPDATE: THIS COULD BE ACHIEVED USING THE buffer propery of the String object
//     Serial.println("Converting to char array...");
//     int commandLength = command.length() + 1;
//     char commandCharArray [commandLength];
     
//     command.toCharArray(commandCharArray, commandLength);
     
//     Serial.println("Command array looks like this:");
//     Serial.println(commandCharArray);
//     Serial.println("Making system call...");
//     system(commandCharArray);


system(command.buffer);

Serial.println("Done!"); }

Ya todo está inventado, y es mi herramienta

thefutureNo pretendo desanimar a nadie, mas impulsar a todos. Siempre escuchamos que el secreto del éxito es la innovación, que aquella empresa que quiebra fue por no ser lo suficientemente innovadora, innovación, innovación.

El detalle es el siguiente: existen varias definiciones de lo que es Innovación, unos dicen que es inventar lo que nadie ha inventado (correcto), otros dicen que es llegar al límite (también correcto), sin embargo saber el ¿qué? no nos va a decir el ¿cómo?. ¿Cómo podemos llegar a ser innovadores?. No se necesita ser Nikola Tesla, se necesita ser una persona normal, como usted y como yo, esas que los papás regañaban por andar desarmando cosas, o a quienes la curiosidad nunca se les acaba.

Todo está inventado, aprovechémoslo, la manera de llegar a nuevas cosas es tomar lo que ya existe y mejorarlo, utilizarlo, desarmar y volver a armar, ver ¿qué pasa sí?, accidentes de laboratorio por así decirlo. Una vez tenía un profesor que nos insistía en el “BenchMarking” no sólo como punto de comparación, sino como meta a sobrepasar, porque al ser millones de personas en el mundo, es la misma cantidad de ideas pero los métodos de implementación, son muy diferentes.

Por ejemplo lo innovador de Apple nunca ha sido las capacidades del sistema operativo, (muchas PC son mil veces más poderosas), lo que determinó Apple como ícono fue tomar la capacidad de hardware y software y convertirlo en algo amigable con el usuario, su interfaz, no era nada nuevo, ya habían interfaces, pero ninguna con ese objetivo. Steve Jobs vio una oportunidad de mejora y la tomó.

Innovador no es aquel quien tiene un Arduino en su posesión, Innovador es aquel que con ésta herramienta crea algo nuevo que nos ayuda a solucionar problemas cotidianos, que tal vez ni sabíamos que teníamos. Todas aquellas personas que son creadores de hardware y frameworks, son nuestros “Luthiers”, es nuestro trabajo crear esa pieza armónica y obra maestra que ni aquel que lo creó hubiera pensado en hacerlo, como los más grandes músicos.

Ya todo está inventado, ahora como Makers tenemos que tomar esas herramientas y volvernos locos, sólo así podemos ser innovadores.

¿Quién es un Maker?

Lo que hacen los makersDesde una perspectiva etimológica, un “maker” sería alguien que hace algo; pero todos hacemos algo; así que eso no nos ayuda mucho para definir el concepto.

Me gusta usar la “analogía del queque”; un “maker” es un practicante del DIY (do-it-yourself) es decir, alguien que prefiere hacer un queque antes que comprarlo; en otras palabras alguien que aprende cómo hacer un queque,  explora una o más recetas y elabora la suya propia y hace su propio queque.

Ahora bien, la “cultura maker” no se queda en la cocina, ni en la costura; sino que se ha extendido a muchos campos del quehacer humano; en especial el campo tecnológico.

Tampoco la cultura maker se queda en el aprender y hacer; sino que se extiende al mejorar y compartir.

Son realmente pocos los casos donde alguien aprende a hacer algo desde cero; todos partimos de una base; y si, puede que le agreguemos elementos completamente nuevos; pero siempre hay una base a la cual citar; y siempre donde hay mejora; hay un nuevo conocimiento que se puede compartir.

Desde otra perspectiva tenemos el concepto de “hacker”; es decir, aquella persona que investiga y entiende los detalles prácticos de algo; y es capaz de modificarlo para crear una mejora particular.

Un maker es un tipo avanzado de hacker que, en resumen, hace estas cosas:

  • aprende
  • hace/confecciona
  • mejora
  • comparte una receta

Si haces esto, definitivamente eres un maker.

Ahora, ¿existe algun inconveniente en ser un Maker? Pues bien, quzás quieras leer este otro artículo sobre el tema.

También: Hacker o Maker