All Posts in “Tecnología”

Termostato remoto con Intel Edison y NodeJS

Motivación

Hace algún tiempo participé en un hackathon de movilforum_ donde los evangelizadores de Intel anunciaban la placa Intel Edison (entre ellos mi amigo @franbuitragoPa).

El hackathon estaba orientado al desarrollo de proyectos relacionados con IoT (el famoso Internet de las Cosas) y mi compañero @dennyf11 y yo mismo nos pusimos a currar hombro con hombro y finalmente presentamos un proyecto para domótica del hogar al que bautizamos como proyecto Aurora.

La idea de partida consistía en un termostato que aprendiese automáticamente cuales eran los mejores patrones para calentar la casa en función del clima en el exterior y en el interior de la casa. En lugar de realizar un estudio de la distribución de las habitaciones y otras características, lo que haría sería aprender para minimizar el tiempo de encendido y proporcionar calorcito en las horas que estuviese programado. Con el tiempo, incluso, podría beneficiarse de la temperatura que emanase de las casas vecinas, si se trataba de un piso, ya que respondería a sus propios patrones de comportamiento e influiria en nuestro “clima”.

Después la verdad es que se nos empezó a “ir la pelota” y empezamos a diseñar una especie de “mente enjambre” que hiciera que los termostatos de todas las casas vecinas funcionasen de forma colaborativa para maximizar este efecto… y muchas cosas más.

Dani, Majs y yo en el hackathon

Majs, Dani y yo en el hackathon

Cuando el hackathon finalizó, nos llevamos cada uno un Intel Edison y un kit de groove a casa, y la vida cotidiana hundió nuestro proyecto en las profundidades más oscuras del armario mas recóndito de la casa…

Pero llegó el invierno, y miré el termostato instalado en mi casa (un botón analógico de encendido apagado con una rueda de temperatura y sin opciones de programación) y decidí rescatar la placa Intel Edison de su olvido y hacer un termostato programable y accesible via HTTP, para programarlo desde el móvil, por ejemplo.

Aprender a usar MongoDB: Guía 7

Ya sabemos mucho acerca de mongo, hemos insertado datos, añadido indices para hacerlo realmente rápido, y creado nuestras consultas para utilizarlo en nuestra aplicación… pero en algún momento podríamos querer analizar los datos y entender qué tenemos ahí dentro, para sacar provecho de todas esa información y hacer las cosas aún mejor.

Para el análisis de datos, agrupación, ordenaciones, proyecciones, y un montón de otros tratamientos, MongoDB nos entrega una herramienta realmente poderosa: Aggregation Framework. Hoy vamos a ver rápidamente un montón de operaciones que podríamos hacer con él.

Anteriormente

Guía 6: Crear, manejar y entender los índices

Análisis de datos con el Framework de Agregación en MongoDB

Aprender a usar MongoDB: Guía 6

Ahora que ya hemos aprendido a diseñar correctamente la estructura de los datos en MongoDB, y que sabemos realizar todo tipo de consultas, seguro que se nos ocurren multitud de posibilidades con documentos anidados y estructuras complejas para que nuestra aplicación sea realmente rápida.

Sin embargo, cuando tengamos una cantidad masiva de datos, por defecto MongoDB solo nos ofrecerá un alto rendimiento cuando las consultas utilicen filtros que utilicen el identificador (_id) del documento raiz, ya que de otro modo MongoDB deberá buscar sobre todos los elementos de la colección antes de empezar a procesar los resultados. En la publicación de hoy vamos a aprender a crear otros indices que nos permitan realizar operaciones eficientes sobre otros atributos, así como algunos detalles sobre su uso.

Anteriormente

Guía 5: Esquema de datos dirigido por la aplicación

Trabajar con índices en MongoDB

Aprender a usar MongoDB: Guía 5

En publicaciones anteriores hemos aprendido a utilizar multitud de comandos y operadores para consultar y manipular nuestros datos en MongoDB… pero aún no hemos visto una de las cosas que más diferencias tienen en una base de datos noSQL frente a un entorno tradicional SQL o relacional: el hecho de que el esquema de datos está determinado por la aplicación (es decir, por el uso que se va a hacer de los mismos) y no por su propio esquema o modelo de dominio. Este será el tema que abordemos en este post.

Anteriormente

Guía 4: Comandos y operaciones avanzadas

Esquema dirigido por la aplicación (Application-driven Schema)

Aprender a usar MongoDB: Guía 4

Anteriormente hemos visto como introducir datos en la base de datos MongoDB, y cómo realizar todo tipo de consultas para obtener los datos almacenados con distintos tipos de filtro.

En el post de hoy, vamos a trabajar en las operaciones que quedan, como las actualizaciones, borrado de datos, paginación y consultas por cursor.

Anteriormente

Guía 3: Comandos y operaciones esenciales

Operaciones avanzadas en MongoDB

Aprender a usar MongoDB: Guía 3

En posts anteriores hemos visto una introducción a mongodb y cómo se pone en marcha, e incluso como se puede hacer una importación de datos.

En esta nueva publicación vamos a empezar a trastear con la base de datos, introduciendo algunos datos y jugando con ellos para aprender algunos comandos esenciales. Es un post largo, ya que es un listado de operaciones, ¡pero espero que sea útil!

Anteriormente

Guía 2: Arrancar MongoDB e importar datos  ‎

Comandos esenciales en MongoDB

Aprender a usar MongoDB: Guía 1

Hace algún tiempo completé uno de los fantásticos curso de mongo university y me encantó. A veces, cuando utilizo mongo, me toca rebuscar entre los apuntes para recordar algún dato de los que habitualmente pueden caer en el olvido… y para evitarlo: a modo de nota personal, y para compartirlo con vosotros, he pensado en escribir un breve resumen del aprendizaje obtenido en dicho curso en una serie de varios posts. Espero que os guste, y no dudéis en hacer preguntas ¡o en comentar vuestras experiencias si también hicisteis el curso!

MongoDB, introducción, propósito y conceptos clave.