¿Cómo comenzarías en Computación ubicua y programación para ello?

La idea detrás de la computación ubicua es que viene la tercera ola de computadoras (o ya está aquí).

La primera ola fue Mainframe Computing: las computadoras son máquinas grandes que solo se encuentran en pequeñas cantidades en grandes empresas y tienen varios usuarios cada una. La segunda ola es la Computación Personal: cada hogar o, como máximo, una persona tiene una computadora “de escritorio”. La tercera ola es la computación ubicua: hay (muchas) más computadoras que usuarios. La computación móvil que estamos viendo hoy, donde los usuarios tienen varios dispositivos (computadora, tableta, teléfono, sistema de automóvil …) es un intermediario entre la segunda y la tercera ola.

La computación ubicua “real” puede abarcar muchas cosas: redes de sensores, polvo inteligente, robótica, humanos aumentados … Básicamente es la visión de un futuro donde la computación esté en todas partes.

Con respecto a la programación, el cambio es que, en oleadas anteriores, una aplicación se estaba ejecutando en una computadora. En la computación ubicua esto ya no es posible, ya que puede haber menos aplicaciones que dispositivos. Una aplicación se ejecuta en * varias * computadoras. Esta es la razón por la cual la idea de la nube está (más o menos) relacionada con la computación ubicua.

Entonces, aprender a programar para la computación ubicua es, ante todo, aprender a escribir algoritmos distribuidos. No tengo idea de cuál es su nivel actual, pero si es al menos un programador de nivel intermedio, un buen comienzo es el problema del consenso y el algoritmo Raft. También se beneficiaría de aprender Erlang y / o jugar con sistemas como 0MQ / nanomsg.

Sin embargo, otras cosas serán importantes. No puede tener cientos de dispositivos por usuario que consuman 50 W de potencia, por lo que parte de la programación deberá ser consciente de la energía. Eso significa que será de muy bajo nivel. Lo más probable es que esté más cerca del diseño de circuitos en realidad, por lo que diría que aprender sobre cosas como FPGA y VHDL podría ser algo bueno. Jugando con Arduinos también.

More Interesting

¿Qué significa que las funciones de activación (como ReLU) en NN inducen la escasez en las unidades ocultas?

En el aprendizaje profundo, ¿se pueden obtener buenos resultados cuando usas una función lineal entre las capas ocultas?

¿Por qué la mayoría de las competencias recientes se centran en el aprendizaje profundo / redes neuronales? ¿No crea esto un desequilibrio en los tipos de problemas que se ofrecen?

¿Qué versión de Python debería usar en 2016 en Machine Learning y Data Science, Python 2.7 o Python 3.0+?

¿Cuál es el artículo o recurso web más informativo sobre el modelado similar?

¿Cómo aprende IBM Watson de los libros y documentos médicos?

¿Cuáles son las mejores fuentes para aprender el aprendizaje automático y el procesamiento del lenguaje natural?

¿Ya es posible aprender las reglas de un juego como Monopoly utilizando un aprendizaje no supervisado?

¿Cuál es la diferencia entre neurociencia, neurobiología, neuroingeniería y neuropsicología?

¿Cómo elijo theta0, thetaL y thetaU en un modelo de proceso gaussiano de scikit-learn?

¿Cómo aprendo el aprendizaje automático y dónde puedo practicarlo?

¿Es posible que, en el futuro, los países sean manejados por una súper computadora que calcule el mejor resultado de una decisión política?

Cómo decidir el tema de mi interés de investigación para obtener un doctorado en visión artificial y aprendizaje automático

¿Cómo se puede imitar la intuición humana en los algoritmos de aprendizaje automático? ¿Es importante el modelado de la intuición en el aprendizaje profundo?

¿Qué es la minimización alterna en la optimización convexa?