Category Archives: Carrera Maker

Algunas buenas prácticas para programar

26 Jul , 2017,
Jose Nunez
, , , , , , ,
No Comments

Lineamientos Generales para todos los lenguajes

  1. Los métodos y variables privadas comienzan con minúscula y se escriben en formato “camelCase”
  2. Los métodos, variables y propeidades públicas comienzan con mayúscula y se escriben igual en formato “Camel Case”
  3. Las constantes se escriben usando todas las letras en mayúscula y separándo palabras con “guión bajo”. Ej.: MI_CONSTANTE
  4. Haga declaración explícita de las variables locales
  5. Evite el uso de variables globales
  6. Las declaraciones de variables se agrupan al principio de clases y métodos. En ocasiones es adecuado declarar una variable pública justo antes de la declaración de un método que use esa variable de manera exclusiva o prioritaria.
  7. Está bien declarar variables que se usan exclusivamente en bucles iterativos (for-loops) en la declaración de dichos bucles.
  8. Inicialice las variables que declara, y escriba su lógica de manera que pueda procesar valores “undefined/falsy/null”
  9. Evite el uso de raya baja o guiones en los nombres de métodos o variables. En casos excepcionales se puede usar raya baja para describir alguna situacion consistente a lo largo del proyecto. Por ejemplo es mejor escribir  var blueColor que  var blue_Color. Pero podría ser adecuado escribir  function testControllerInit_SuccessCase()
  10. Como convención de nombramiento, use verbos para los métodos y sustativos para las propiedades.
  11. Evite el uso de valores literales “hard0-coded” en diversos lugares. Hágalos reusables en constantes.
  12. Los operadores lucen mejor con espacios al rededor. Por ejemplo es mejor escribir  var x = 10 + 10;  que  var x=10+10;
  13. La indentación es primordial. Muchos editores de código traen herramientas para indentar adecuadamente el código.
    Good tools for code auto-format are Netbeans, Atom and Visual Studio Code.
  14. Utilice las herramientas de análisis estático de códigopara encontrar variables no utilizadas, métodos demasiado largos y errores de sintaxis. NetBeans provee herramientas muy útiles para lenguajes como JS, CSS, PHP, TypeScript, C++ y HTML.
  15. Mantenga las líneas de código de una longitud menor a 80 caracteres.
  16. Mantenga los métodos de una longitud menor a 30 lines
  17. Mantenga las anidaciones a menos de 3 niveles
  18. No deje código comentado. Escriba comentarios para encontrar código legado en su lugar.
  19. Evite comentarios innecesarios y reiterativos como /*This function creates a user*/ para una función llamada “CreateUser(args)”
  20. Aproveche las facilidades de los ambientes de desarrollo para generar documentación a partir de comentarios estructurados. Especialmente para los Web API’s y las API’s en general.

JavaScript

  1. Nunca declare objetos de tipo Number, String or Boolean
  2. No use “new Object()“. Use var x = {} en su lugar.
  3. Recuerde que JS tiene un mecanismo automático de conversión de tipos
  4. Use === en vez de  == siempre que se pueda.
    1. En ocasiones es apropiado usar  == cuando el tipo de los objetos no se ocnoce de manera predecible/estable. Sin embargo la situación de manejar objetos de tipo desconocido o impredecible debe ser evitada también.
  5. Ponga atención a los parámetros que adoptan una “definición” undefined cuando no se proveen en una llamada a una función y actúe consecuentemente.
  6. Termine los bloques “switch” con “defaults
  7. Nunca use eval()
  8. Use nombres de variable significativos comocuentaor valorPrevio en lugar de  c or vp
  9. Es apropiado utilizar funciones anónimas cuando estas serán llamadas solamente desde un mismo lugar. En caso contrario es necesario extraer las funciones con un nombre apropiado en el entorno (scope) correcto.
  10. No deje sentencias de tipo “debugging” tales como console.log en el código del ambiente productivo.
  11. En JavaScript, iniciar una declaración de bloque con una llave “{” en la misma línea de la declaración es correcto:var constants = {
       COLOR_RED: "#FF0000",
       COLOR_GREEN: "#00FF00",
       COLOR_BLUE: "#0000FF"
    };
  12. Referencias:
    1. https://www.w3schools.com/js/js_best_practices.asp
    2. https://www.w3schools.com/js/js_mistakes.asp
    3. https://www.w3schools.com/js/js_performance.asp

HTML

  1. Utilice etiquetas en minúscula de manera consistente. Use <div> en lugar de  <DIV>
  2. Asegúrese de cerrar todas las etiquetas HTML de manera apropiada. Por ejemplo,  <div> debe cerrar con una etiqueta  de cierre </div> mientras que <hr> luce mejor si se cierra de manera individual <hr />
  3. Utilice minúsculas para los nombres de atributo. Also, use camelCase format for ID’s of DOM elements. I.e.: <div id="myDiv">...</div>
  4. Utilice guiones para separar palabras en los nombres de las clases CSS: <div id="myDiv" class="jumbotron-alternative">...</div>
  5. Use comillas dobles para declarar los valores de atributos HTML: I.e.:<div id="myDiv" class="jumbotron-alternative">...</div>
  6. Use las etiquetas <table> apropiadamente para elementos tabulares no para generar estilos o layout.
  7. No agregue espacios entre los nombres de atributos, símbolo de igualdad y los valores de atributos.
    This is good<link rel="stylesheet" href="styles.css">
    This is bad: <link rel = "stylesheet" href = "styles.css">
  8. Utilice indentación apropiadamente, especialmente con elementos jerárquicos como listas, tablas, entradas de selección.
  9. Evite usar espacios en blanco, líneas en blanco o indentación innecesaria.
  10. Use comentarios de manera apropiada:
    Good for short comments:     <!-- This is a comment -->
    Good for longer comments:
    <!-- 
      This is a long comment example. This is a long comment example.
      This is a long comment example. This is a long comment example.
    -->
  11. Las definiciones de estilo van en un archivo separado, no en el código HTML. Nunca use estilos “en-línea”
  12. Coloque las referencias a archivos JavaScript al final del código HTML
  13. Valide su código HTML por medio de análisis estático. Netbeans tiene muy buenas herramientas de análisis estático para HTML.
  14. Utilice nombres con significado para variables y reglas de estilo/clases.
  15. Referencias:
    1. https://www.w3schools.com/html/html5_syntax.asp

CSS / SCSS

  1. Los estilos van en archivos separados del código HTML.
  2. Es apropiado escribir reglas cortas CSS en una sola linea.
  3. Las reglas más largas (que involucran multiples configuraciones) deben hacerse en modo multi-línea.
  4. Nótese que CSS suporta comentarios
  5. Referencias:
    1. https://code.tutsplus.com/tutorials/30-css-best-practices-for-beginners–net-6741

AngularJS Specific

  1. Organice las carpetas y archivos en una estructura basada en componentes.
  2. Remueva las dependencias no usadas en los controladores. Netbeans tiene buenas herramientas de análisis de código para detectar código no utilizado.
  3. Es apropiado usar funciones anónimas en controladores si estas serán llamadas desde un solo lugar. De lo contrario, es mejor agregar una función no-anónima y hacer las llamadas respectivas por medio de dicha función.
  4. Se recomienda usar notación de arreglo al instanciar controladores.
  5. Mantenga la lógica de presentación fuera de los controladores. Los controladores manipulan e modelo de datos y las vistas son quienes reaccionan a los cambios realizados en esos modelos. Los controladores no deben realizar llamadas de tipo document.getElementByID para encontrar elementos del DOM en una vista.
  6. Referencias:
    1. https://dzone.com/articles/angularjs-coding-best
    2. https://www.upwork.com/hiring/development/angularjs-best-practices/

C# and .Net

  1. Haga uso extensivo y prudente del registro de eventos de manera que se pueda habilitar solución expedita de problemas en ambientes productivos.
  2. WIP

SQL Server

  1. Tenga cuidado del acople y la cohesión al desarrollar Procedimientos Almacenados.
  2. Use Procedimientos Almacenados y/o vistas cuando esto mejore de manera significativa los procesos de acceso a datos. Especialmente consultas de múltiples tablas.
  3. WIP

TypeScript

  1. Una buena referencia a TypeScript: https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines

Una Introducción a la tecnología de Realidad Aumentada (AR)

9 Mar , 2017,
Luis Diego Jimenez Sanchez
, ,
No Comments

El 6 de Julio del 2016 salió Pokemon GO, uno de los actuales juegos pioneros en el mundo de la realidad aumentada y un despertar al mundo del interés sobre AR.  Quizás hayan escuchado sobre realidad virtual y realidad aumentada, así que, que las diferencia?  Realidad virtual, o conocido por sus siglas en inglés como VR, es la aplicación de un entorno o ambiente digital o virtual, que detecta diferentes caracteristicas de tiempo real del usuario y reacciona de manera que este siente que es real.  Realidad aumentada, es la ampliación de imágenes reales mediante el uso de algún dispositivo, de manera que agrega imágenes virtuales a lo que el usuario está observando.

Para empezar la investigación y aprendizaje de la realidad aumentada, un área totalmente desconocida para mí, el plan era iniciar con los Google Glass debido a su fama como empresa, esto antes de darme cuenta que el proyecto había sido descontinuado desde el 2015.  A partir de aquí, lo único que quedaba era iniciar búsqueda de  los productos que hay en el mercado.  Son 5 los que más me llamaron la atención, esto según los siguientes parámetros; precio, quien los produce y a que mercado se dirige el producto y como empezar a usarlos.   Después de investigar en internet por dispositivos de la naturaleza de AR, construí una lista de los dispositivos que mejor se acomodan a mi necesidad de entender el funcionamiento y alcance de estos.  Los dispositivos son los siguientes:

VUZIX M3000 Smart Glasses:

               Producido por la empresa VUZIX, la cual se dedica a la fabricación de lentes de VR y AR, los lentes M3000 tienen fecha de lanzamiento este verano de 2017, con precio que ronda los 900$.  Este producto tiene las capacidades de un teléfono inteligente con capacidad de conectarse a redes WIFI, basada en Android y se puede considerar una mini computadora.  Los M3000 se pueden personalizar, son más dirigidas a empresas de manera que se usen para entrenamientos, registros de procedimiento y data, y otros aspectos de la industria.  A continuación un link con demo de estos Smart glasses, https://www.youtube.com/watch?v=y6SGlOLVpg8.

VUZIX M3000

Imagen 1. VIZUX M3000 Smart Glasses

Microsoft HoloLens:

               El kit de desarrollo de HoloLens se puede encontrar por unos $3000 en la página,  https://www.microsoft.com/microsoft-hololens/en-us/buy.  Producido por los gigantes en la industria, Microsoft, tiene versiones comerciales desarrolladas para casos específicas.  Un ejemplo es para Case Western Reserve University tiene un programa de Anatomía Humana con el uso de hologramas.  Otras empresas que utilizan HoloLens para mejorar aspectos en su performance son Lowes, Volkswagen y Airbus.  Para el interés de desarrollar, el kit viene con su SDK respectivo, hay versión de SDK en Unity Engine donde se pueden crear objetos, escenas y usar comandos para reconocimientos de gestos.

hololens

Imagen 2. Microsoft HoloLens

Sony SmartEye Glass:

               Sony SmartEye Glass, no se puede comprar directamente en Costa Rica ni America Central, sino que es por pedido especial en Estados Unidos y algunos otros países en Europa.  El precio en la siguiente página es de $900.  Al igual que los otros lentes de realidad aumentada, estos también son Developer Kits por lo cual se permite al usuario darle el uso según las capacidades de lo que podas desarrollar.  Sony es la empresa que las produce y una diferencia de las demás es que esta trae un control cableado a los lentes, es pequeño por lo cual no produce incomodidad en el usuario.

sony smarteye glass

Imagen 3. Sony SmartEye Glass

Lenovo Phab Pro 2:

               Este teléfono, Lenovo Phab Pro 2 vale alrededor de $499.99 si se compra directamente de la página de Lenovo.  A mi opinión, no es un kit de desarrollo ni nada por el estilo.  Está destinado más hacia el uso de apps que incluyan AR, juegos por ejemplo ya se encuentran en el mercado.  La aplicación más interesante que encontré es roOomy Reality, esta permite mostrarle al usuario como se vería una nueva pieza de mueblería en algún determinado cuarto de su hogar.  Parece arropar la idea de la realidad aumentada al facilitar una tarea de la vida real mediante el uso de imágenes digitales.

lenovo phab pro 2

Imagen 4. Lenovo Phab Pro 2 celular

Intel RealSense:

              Aunque Real Sense no es una tecnología directamente relacionada con realidad aumentada en lo referente a proyeccion de elementos visuales a la vista del usuario, si permiten un acercamiento a esta mediante la comprensión experimental de las librerías y tecnologías adyacentes tales como captura, análisis y manipulación de imágenes y video.  Real Sense es un producto de un concepto tecnológico denominado “Perceptual Computing” que tiene que ver como los dispositivos computacionales pueden percibir mensajes del usuario diferentes al teclado/mouse tales como los gestos que vas a experimentar. Augmented Reality tiene que ver más con anteponer contenido a las imágenes que se le presentan al usuario; sin embargo en efecto las tecnologías y conceptos se traslapan.

La tecnología Intel RealSense, ofrece varios dispositivos y kits de desarollo, en precios que van desde los $99 para una cámara R200 hasta los $349 para un kit de desarrollo con cámara R200 y sistema computacional UP Board.

real sense

Imagen 5. Intel RealSense camera F200

Las cámaras, cuentan con la capacidad para hacer escaneos en 3D, reconocimiento facial y puede generar imágenes basándose en distancias de cuerpos u objetos de las cámaras.  Los SDK, kits de desarrollo de software, de Intel, en mi opinión es la mejor opción para empezar a trabajar con realidad aumentada y en siguiente mis razones:

  • Precio: es el producto más accesible, siendo el de $349 el kit más costoso. A pesar de que no se pueden comparar estos productos directamente debido a que sus objetivos y alcances son muy distintos, si los puedo comparar al tratarse de un primer acercamiento a esta tecnología.
  • Aplicación del hardware:  Para efectos de aprendizaje, tales como los mios, en el cual es necesario entender el alcance de registrar data a partir de entradas por camara, me parece mejor opcion usar el RealSense debido a las librerias que trae como reconocimiento facial o de gestos.

Mi primer experimento será con Intel RealSense, probablemente algún carro o robot al que pueda darle direcciones con gestos de mis manos.

Iniciemos con SimpleCV en 5 minutos en Linux MINT 18 (Ubuntu 16.04)

4 Mar , 2017,
Jose Nunez
, , , ,
No Comments

Como les mencioné en mi publicación anterior, estamos investigando un poco sobre Vision Computarizada, y en eso nos tropezamos con SimpleCV como una propuesta práctica para adentrarnos en este mundo.

Me tomó cerca de 30 minutos (quizas por culpa de mi propio déficit atencional) instalar SimpleCV, así que aquí va un resumen para echar a andar esto en 5 minutos:


PASO 1 – Instalar dependencias de Python Support

wget http://launchpadlibrarian.net/109052632/python-support_1.0.15_all.deb
sudo dpkg -i python-support_1.0.15_all.deb

(tomado de http://askubuntu.com/questions/766169/why-no-more-python-support-in-16-04)


PASO 2 – Descargar SimpleCV de SourceForge.net

  1. Página Principal en SourceForge: http://simplecv.sourceforge.net/
  2. Página oficial: http://simplecv.org/
  3. Paquete que yo descargué: Paquete SimpleCV-1.3.deb (versión 1.3-1)

PASO 3 – Instalación

  1. Puede usar el comando sudo dpkg -i ~/Downloads/SimpleCV-1.3.deb
  2. También puede instalarse mediante la interfaz gráfica, haciendo clic derecho sobre el archivo SimpleCV-1.3.deb ubicado en la carpeta de descargas (Downloads), selecciona “Open with GDebi package installer” y hacer clic en el botón “Install Package

PASO 4 – Algo antes del Hello World…

  1. En la terminal, ejecutar el comando simplecv. Esto abre una consola simplecv
  2. En la consola simplecv, ejecute los siguientes comandos uno por uno:
    cam = Camera() #Esto genera una instancia de la cámara principal en una variable llamada cam
    img = cam.getImage() #Esto captura una foto de la cámara accesible desde la variable img
    d = img.show() #Esto abre una ventana que muestra la foto de la variable img. La variable d se usa para maniuplar esa ventana.
    d.quit() #Esto cierra la ventana de visualización.
    

Listo… para más información hay tutoriales en la página oficial. También la consola simplecv tiene tutoriales que uno puede llevar digitando el comando tutorial dentro de la consola simplecv. En mi caso, los tutoriales fallaban en algunas tareas. Pero si me sirvieron para obtener una idea de por dónde empezar.

 

Robot de dos llantas + acelerómetro/giroscópio > Una experiencia de Aprendizaje

13 Ene , 2017,
Jean Paul Jimenez
, , , , , , , , , , ,
No Comments

robot-willieResumen

Les confieso que esta es mi primera publicación; por pura insistencia de mi editor estamos acá escribiendo. En esta primera entrada discutiremos mi experiencia en Intel en la investigación de cómo programar un robot de dos ruedas mediante diversos micro-c0ntroladores, incluyendo el S4A-EDU, Arduino UNO, Aruduino 101 y Sparkfun Thing.

Detalle

A principios de este año 2017. tuve la bendición de poder pasar unos días en Intel en una experiencia “ad-hoc” de aprendizaje de tecnología, investiación, desarrollo, auspiciada por el Centro de Innovación de Intel y por José Núñez.

En esta experiencia pudimos explorar las diferentes reacciones que que tenia el robot cuando instalábamos diferentes programas (en ARDUINO IDE) con  diferente controladores para realizar rutinas como por ejemplo: movilidad hacia adelante y atrás, movimientos con giros con duración específica y también pudimos ver funcionar el acelerometro y giroscópio del chip Intel Curie.

En el fondo nos concentramos en tratar de entender cómo hacer que se mueva el robot (descrito acá) en distintas direcciones y cómo hacer que este pueda tener un movimiento rectilineo preciso, controlado utilizando el giroscopipo disponible en el Intel Curie.

Experiencia con el Acelerómetro de Intel Curie

Comenzamos aprendiendo sobre las diferentes funciones del Intel Curie. Para esto realizamos diversos experimentos descritos en este artículo de Jose Nunez acá en CostaRicaMakers.com.

La verdad me resultó sencillo de utilizar y muy útil para aprender a hacer las lecturas de los diferentes sensores (acelerómetro y giroscópio) y la utilización de las funciones de Blue Tooth Low Energy (BLE)

Experiencia con el Robot de dos llantas y el controlador S4-EDU

La verdad es que comencé con esta experiencia con altas expectativas de lo que podría aprender y hacer. Al principio el primer problema que enfrenté fue aprender un poco de programación, creo que tengo un largo camino por recorrer en esta área.

El robot en sí permite realizar movimientos de manera muy versatil gracias a su sistema de dos llantas independientes sobre las que podemos controlar dirección individual y velocidad.

Como mencioné antes fuimos probando diversos controladores, comenzando por el original del kit del robot (el S4A-EDU) que cuenta con un circuito muy interesante denominado “Puente H” (H-Bridge) que nos permite controlar la dirección y velocidad de los motores.

Una vez que pudimos hacerlo moverse usando el controlador original (S4A-EDU) nos dimos a la tarea de reemplazar dicho controlador (parcialmente) con un ARDUINO101 que como dijimos tiene sensores de movimiento (acelerómetro y giroscopio). Para esto pudimos facilmente desconectar el puente H del S4A-EDU y conectarlo al ARDUINO 101.

Como dije antes, el principal reto que enfrentamos fue la programación. Realizamos diferentes tipos de programa usando el ambiente integrado de desarrollo (IDE) de ARDUINO.

Una vez controlado por el ARDUINO 101 para realizar los movimientos básicos, el siguiente reto era comenzar a utilizar el giroscopio para leer cuanto se desviaba hacia un lado u otro el robot al caminar en una misma dirección. Para poder extraer los datos (que son muchos) de las lecturas del giroscopio, tratamos inicialmente de subirlos por WiFi a un servidor en Internet. Pare este fin introducimos un controlador más: el SPARKFUN THING.

La programación del SPARKFUN THING es algo “truculenta” ya que requiere una interfase serial para conectar la laptop donde uno escribe el programa y subirla al micro-controlador. Intentamos con un cable tipo FTDI, pero no tuvimos suerte. En resumen no funcionó por que el cable que teníamos no cuenta con línea DTR… (eso me queda pendiente de entenderlo mejor). Al día siguiente conseguimos otra interfase denomiada “FOCA V1.2” la cual permite comunicación serial con diversas opciones, con y sin línea DTR, a diferentes voltajes (3V, 5V) etc.

Ahora bien, subir datos por via WiFi a un servidor en Internet, el tiempo minimo que toma son 3 o 4 segundos… y el giroscopio generaba datos cada 200ms o menos… o sea, no nos servía la opción del WiFi… fue entonces cuando decidimos cambiar la solución. En vez de guardar los datos en Internet nos avocamos a graficarlos en mi celular usando una conexion Bluetooth Low Energy (del ARUDINO 101). Para esto fue necesario instalar una app en mi celular denominada nRF Toolbox descrita en el artículo mencionado sobre ARDUINO 101.

En este punto logramos que el robot se moviera en una misma dirección durante dos segundos y graficar durante ese tiempo las lecturas del giroscópio cada 200ms.

Control de Velocidad

Aprendí que la velocidad del robot se puede controlar mediante un método que se llama PWM (Pulse Width Modulation) y la idea es utilizar ese principio para ajustar la velocidad de cada rueda para compensar micro-desviaciones del movimiento rectilineo que queriamos lograr. Desafortunadamente no nos dio tiempo de implementar esa parte correctiva.

Conceptos Relacionados

Quiero listar acá algiunos conceptos que me parece importante profundizar en el futuro para mi propio aprendizaje en el área de robótica, tecnología y mecatrónica:

  • Variables y Constantes
  • Funciones y Métodos
  • Pasos e Instrucciones
  • Condicionales
  • Vibración
  • Frecuencia
  • Ancho de Pulso
  • Voltaje
  • Corriente/Amperaje

Agradecimientos

Quiero agradecer a el Señor Jose Núñez por permitirme esta oportunidad de estar en Intel aprendiendo mediante estos experimentos. Sinceramente me ha servido de mucho, tanto para mis estudios como para mi futuro.

El último punto funcional reproducible

14 Mar , 2016,
José Núñez
, ,
No Comments

admin_exprMucho del quehacer maker está relacionado con procesos de experimentación, de aprendizaje y con la creación de nuevo conocimiento.

Durante este tipo de procesos de experimentación “ad-hoc” es fácil caer en una parálisis en la cual “giramos en círculo” con partes de experimentos que a veces son éxitosas y a veces no, sin que podamos comprender la causa de estos resultados divirgentes; especialmente cuando no tenemos una forma estructurada de administrar las incertidumbres y los aciertos resultantes de nuestros experimentos.

Recientemente vivimos esto durante nuestra experimentación para grabar sonido usando Intel Edison, donde a ratos teníamos pruebas exitosas y a ratos “las mismas pruebas” fallaban.

Este tipo de parálisis puede resultarnos costosas, no solo a nivel de tiempo y recursos, sino también en lo referente a la motivación del equipo, al verse desvanecer los éxitos del trabajo sin una razón aparente.

Es por esto que compartimos en este artículo algunas medidas que nos permiten asegurar el éxito progresivo alcanzado en diversos experimentos y avanzar con un paso más seguro, evitando parálisis de análisis.

  1. Planee sus experimentos de manera individual y documente el plan
  2. Documente los pasos a realizar en cada experimento. Mantenga una política de “Un cambio a la vez”
  3. Documente los resultados obtenidos y las desviaciones del plan realizadas durante cada experimento
  4. Una vez obtenido el éxito en cada etapa, verifique la repetibilidad del éxito en cada experimento.
  5. Haga una revisión retrospectiva del plan de experimentación luego de terminar cada experimento.
  6. Una vez alcanzado un nivel de éxito aceptable en diversos experimentos, documente y publique los pasos para alcanzar dicho éxito.
  7. Verifique la reptibilidad antes de publicar sus resultados; y lleve seguimiento de cada “punto funcional reproducible

¿Y qué significa el término “punto funcional reproducible” (PFR)?

Básicamente es el conjunto de pasos que hemos verificado que funciona para llevarnos a una conclusión.

Llevar seguimiento de cada PFR significa ponerle un nombre, una identificación que nos permita referirnos a cada PFR y que nuestros nuevos procedimientos se basen en el PFR más reciente, donde se concentra el conocimiento acumulado más reciente.

En el ejemplo, terminamos documentando los pasos de un proceso de grabación con Intel Edison que pudimos constatar como repetibles; de forma que nuestros siguientes experimentos puedan tomar este PFR como su punto de partida.

La cultura Maker es también una cultura de Investigación

28 Feb , 2016,
José Núñez
No Comments

Cuametodo_cientificondo se trata de cultura Maker, la investigación es esencial.

Y no me refiero a la “investigación” esa de simplemente googlear algo que necesitamos aprender.

Me refiero a la adquisición de conocimiento y su respectiva mejora y creación de nuevo conocimiento; a muchas horas practicando, aprendiendo, documentando y publicando.

Algo que hemos estado aprendiendo sobre la marcha de diversos proyectos y colegas; como es el caso de nuestros colegas de UNED-LiiT (http://investiga.uned.ac.cr/)

Wikipedia: Investigación

Wikipedia: Ciclo de la Investigación Científica

Wikipedia: Protocolo de Investigación

 

Los grandes científicos tienen grandes publicaciones… los grandes “makers” también

26 Feb , 2016,
José Núñez
No Comments

Los grandes científicos tienen grandes publicaciones… los grandes “makers” también.

Ejemplos:

  1. Blogs
  2. Facebook Updates
  3. Tutroriales
  4. Instructables
  5. Evaluaciones de Productos/Dispositivos
  6. Publicaciones Formales en Revistas Científicas
  7. Libros

¡Recuerdenlo!

La Carrera Maker

21 Feb , 2016,
José Núñez
, , ,
No Comments

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.