Internet distribuido


Internet of Things

…demonstrating that decentralization is about much more than just controlling our own data. It is a fundamental rethinking of the relation between data and applications, which—if done right—will accelerate creativity and innovation for the years to come.
Paradigm shifts for the decentralized Web

¿Qué es el Internet Distribuido?

El concepto viene recuperando fuerza desde hace tiempo ya. Cuando las redes sociales actuales se convirtieron en lo que son–hay que recordar épocas donde los anuncios que veíamos en redes sociales no tenían que ver con conversaciones que habíamos tenidos en voz alta–y nos dimos cuenta que somos el producto y no los usuarios. De repente, nos fuimos dando cuenta que las compañías son dueñas de nuestros contenidos, que compartimos libremente toda nuestra vida online y que esa información se la envíamos a una compañía sin ningún problema, y esa compañía monetiza nuestra data.

Un Internet distribuido significa que cada persona se responsabiliza por sus datos. Que cada persona es un nodo que se conecta al resto de nodos, en lugar de todos conectarnos a un nodo central–el cual dice qué, cómo, dónde, quién si, quién no, por qué y más, es decir, define las reglas del juego.

El Internet distribuido tiene que ver con recuperar el poder o, “empoderizar” (empower) de vuelta al usuario.

¿Cómo hacemos eso?

Hay muchos proyectos que ya lo están trabajando. Como parte de un proyecto interno en Citrusbyte he tenido la oportunidad de investigar las plataformas actuales con sus protocolos/herramientas. Entre las plataformas que investigamos están:

Cada uno con un acercamiento diferente. Nosotros nos decidimos en este proyecto por IPFS. Ellos ofrecen toda la suite de herramientas para trabajar con sus protocolos (en estado alpha con alto potencial de bugs y errores, algunos de los cuales describí aquí).

¿Qué implica esto para los usuarios?

No mucho, aunque todo. Desde el lado de desarrollo hay que entender la manera en la que las nuevas estructuras se utilizan y como encuadran dentro de la arquitectura de una aplicación, y lo que se busca es que la UI no tenga cambios, es decir, que se pueda usar la Dapp (aplicación distribuida) sin ningún cambio, sin tener que aprender nada nuevo–con la diferencia que hay por atrás.

Lo que sí hay que entender es que los datos son del usuario, y que se necesita una computadora prendida y online para transmitir esos datos. De ahi que es importante para los desarrolladores ofrecer estrategias de redistribución de contenidos eficiente y sustentable (dependiendo de cada Dapp).

¿Cómo seguimos?

Sigan atentos, cuando el proyecto esté listo ya avisaré por aquí. Así podrán tener una primera interacción con estas tecnologías. Y luego, ya iré escribiendo posts de las nuevas herramientas que acompañan este tipo de proyectos.

Saludos,
Gorka

Más información:


¿Qué es AquiGorka.net?


AquiGorka.net

There is no passion to be found playing small, in settling for a life that is less than the one you are capable of living.

AquiGorka.net es mi proyecto personal. Es mi búsqueda de hacer lo que yo quiero hacer.

El proyecto tiene como meta desarrollar “software de entretenimiento” para múltiples jugadores y que se pueda “jugar/usar” en tiempo real.

Software de Entretenimiento

Aka: videojuegos. Pero quiero usar este término porque creo hay una sombra aún sobre la palabra videojuegos. No son solo juegos, tiene que ver con entretenimiento, a veces es dinámico y otras pasivo.

Múltiples jugadores

Porque es más divertido, porque el “engagement” es mayor, porque somos seres sociales.

Tiempo real

Con un catch: que se pueda definir un etilo automático para cuando no esté el jugador y que así, pueda unirse/salir de la “partida” en cualquier momento.

He definido en otros posts conceptos como MORTE (Massive Online Real-Time Experiences) y también he hablado de la importancia que eSports va a tener en el futuro.

Como parte de este proyecto personal ya he trabajado en algunos juegos (Sliding Puzzle, Multiplayer Tetris, Puppets, Let there be light, Kickoff y Kuhhandel) y la capa que los une Game Night Experiments.

Lo divertido es que hay muchas cosas por hacer aún, y que la puerta está abierta a los que se quieran sumar–quiero ir creando un equipo para sacar adelante estas ideas.

Saludos,
Gorka


Usando Jekyll en Mac


Jekyll

Alguna vez ya hablé de esto, resulta que para usar Jekyll se necesita tener instalado Ruby. Las Macs ya lo tienen por default así que debería ser fácil no? Pues no.

gem install jekyll

Me regresaba algo de Permission Denied. Puf. Entre las soluciones comunes siempre salía eso de usar un Ruby Version Manager (rvm). Me niego. Y de repente, esto: Troubleshooting jekyll: Jekyll & Mac OS X 10.11. Fiesta.

La solución implica instalar Ruby usando Hombrew (Hombrew es una fiesta en sí, luego hago un post de eso) y agregar ese ejecutable al $PATH del usuario, con eso tenemos la última versión de Ruby lista para usar y, consecuencia, se puede instalar Jekyll.

De ellos mismos:

Either of these approaches are useful because /usr/local is considered a “safe” location on systems which have SIP enabled, they avoid potential conflicts with the version of Ruby included by Apple, and it keeps Jekyll and its dependencies in a sandboxed environment. This also has the added benefit of not requiring sudo when you want to add or remove a gem.

Perfecto y sin preocupaciones.

Espero les sirva.

Saludos,
Gorka


Empezamos el 2018


Start

Empieza el año y ya hay situaciones:

Asi que bueno. A seguir supongo, que esto solo acaba de empezar.

Saludos,
Gorka

P.D. - yo también empiezo mi año, esta vez como mentor en Thinkful. A ver que tal, me gusta mucho la oportunidad: guiar a personas que están interesadas en aprender de tecnologías Web. Ya contaré como va todo.


2017 Retrospectiva


Retrospective

How can we use the lessons of the past to improve our future?

Hace casi dos años aprendí una de las prácticas de retrospectivas para agile. Me encantó, desde la primera (en la que me invitaron como oyente) me dí cuenta de lo mucho que suma a un equipo. Luego, como participante activo le saqué también jugo – ofreciendo mejoras al equipo y escuchando de las mejoras propuestas, y super valioso, escuchando de los errores cometidos.

Es una práctica que recomiendo no solo para gestionar proyectos de software sino para cualquier tipo de proyecto, para cualquier tipo de equipo (desde 2 personas hasta quien sabe cuantas más).

Una pequeña introducción para el recuento de cosas que hubo este año.

tl;dr;

2017.

Tremendo.

Muy activo.

Un gran año.

Saludos,
Gorka


Emoji Trade


🐮 🤝 💸

Alemán: kuhhandel = horse trading
Holandés: koehandel = cow trading

Hace unos años me enseñaron este juego y desde ahí me gustó mucho. Al punto que cuando ibamos a acampar o había ganas de jugar algún juego de mesa decidía dibujar a mano los elementos necesarios para jugar.

Luego lo olvidé.

Hace poco se me ocurrió que estaría divertido hacer una versión en la que se usen los teléfonos celulares como control remoto para jugar este juego (la idea de los celulares no es nueva, ya lo hice con Tetris aquí: Multiplayer Tetris).

Fueron un par de semanas divertidas, lo primero decidí hacer una versión para npm - que además resultó ser mi primer paquete publico de npm: Kuhhandel.

Paréntesis.

Para este desarrollo decidí usar lerna que es una herramienta para tener varios paquetes en un solo proyecto. Es más fácil para un proyecto así tener todo en un solo repositorio.

El tema es que para continuous delivery tienes deploy de todo, y a veces no se hicieron cambios en todos los paquetes - por suerte los buckets que reciben los mismos archivos no cambian nada, así que en realidad es solo un poco de uso absurdo de recursos sin deploy real.

Lerna vale la pena.

Fin paréntesis.

El paquete para npm tiene (como es debido) tests y build. Y es parte de una idea que tengo de hace rato de hacer la parte de lógica de juegos como paquetes para descarga, y que luego cada quien les pueda hacer la interfaz visual como quieran.

Funciona sin servidores de signaling (pero con servidores de shortening) para hacer las conexiones WebRTC entre los clientes y se juega contra una primera pantalla (que puede ser un iPad, una compu o una tele).

Para futuro agregaré otras funcionalidades:

Así que bueno, eso, ahhhhh, y el catch divertido: el juego original usa animales de granja, yo decidí cambiarlo y que use emojis

Emoji Trade
Kuhhandel @ github

Saludos,
Gorka


Realidad Aumentada


Ya he escrito de Realidad Aumentada antes, es un tema que me encanta, me hace volar las ideas.

Me sorprende que hay pocos desarrollos/apps que le hayan pegado bien. Hay cosas muy buenas sí, pero falta esa manera de ver el mundo desde adentro del traje de IronMan, la metadata que se veía desde los ojos del Terminator. Falta starwalk pero para la vida real.

Así que se me ocurrió proponer un proyecto (otro más?) - ahora uso Github para abrir/planear proyectos, por qué no? Al final del día si alguien lo ve y se copa, adelante, ya está en una paltaforma de colaboración.

En fin, la idea del proyecto tiene un twist: en lugar de hacer una app para smartphone de realidad aumentada, es hacer una app de desktop.

¿Cómo?

Si. Una app que se inicia/ejecuta y crea un cristal que se ve por arriba de lo que hay en la pantalla. Y se muestra la metadata que se puede obtener de lo que hay en la pantalla en sí.

Ejemplos:

Y por qué para desktop y no para mobile?

Pues por eso mismo. Por lo disruptivo que suena y porque al final del día pasamos más tiempo viendo el mundo desde las computadoras que los celulares.

El ecosistema

La idea es que la app permita integrar plugins de cualquire persona y que pueda uno personalizar lo que ve a lo que le interesa, algo no tan raro y visto (los plugins de Vim y de Sublime Text, etc).

Así que bueno, esta es la idea, cuando tenga el repo agregaré acá el link.

Acá les dejo un video de una idea macabra de realidad aumentada pero con otras ideas muy buenas:

Saludos,
Gorka


Pagination