Mentor at Thinkful


Thinkful

The modification or control of a process or system by its results or effects.
Define feedback @ Google

Hace 4 meses empecé un proyecto más: ser mentor para los estudiantes de Thinkful. Esta empresa ofrece coding bootcamps online con atención personalizada y trainings 1 a 1.

Hace unos días recibí el email que mi primera “mentoree” había completado satisfactoriamente su curso de introducción–como acabo de empezar tengo que pagar derecho de piso y ser mentor de estudiantes de curso de introducción y después de tres estudiantes que lo cumplan satisfactoriamente ahí puedo pasar a ser mentor de otro de los cursos más avanzados.

La verdad es que ha sido una experiencia muy satisfactoria, y muy instructiva. No recordaba todo lo caminado y por lo mismo, lo que tienen que aprender las personas hoy en día para entrar al mundo de desarrollo web–y encima, esto es lo básico, después faltan todas las apps/frameworks/estructuras modernas. Largo camino, pero bonito camino.

Me voy a tomar una semana o dos de descanso y ahí volveré a buscar alumno. Con muchos ánimos.

Saludos,
Gorka


Apps que uso: Hyper


Hyper

The goal of the project is to create a beautiful and extensible experience for command-line interface users, built on open web standards.
Project Goals @ Hyper

Pasé por varias apps antes de llegar a esta. Use la terminal nativa de Mac, luego pase por iTerm 2. Ambas las disfruté en su momento-en cada caso estaba aprendiendo diferentes cosas y usos.

Para empezar estuvo muy bien la terminal de Mac, la pude personalizar facilmente, luego con Zsh la cosa fue mucho más “propia”. No podria dar una sola razón por la que cambié a iTerm 2 pero fue por el tiempo que estuve aprendiendo tmux (creo) y me sentí cómodo enseguida (creo que tiene que ver con las personalizaciones de colores pero tampoco lo puedo jurar).

Por el camino ví hyper (es del equipo de Now ya hablaré de ese proyecto tmb) y al principio la usé y la desintalé. Y no recuerdo tampoco por qué, pero decidí darle otra oportunidad.

Bueno, basta de introducciones de ese tipo donde no me acuerdo de nada, pffff. Hyper es una terminal basada en tecnologías web. Es personalizable desde donde uno quiera–desde la configuración general, usando un archivo general, hasta entrando en el código fuente y moviendo la UI (usa React + redux).

En mi caso, lo único que hice fue agregar un par de temas de colores (primero OceanicNext y ahora Nord) y lo demás lo hago por personalización de mis dotfiles. En realidad tmb agregué un font: Inconsolata.

Es gracioso, no es que pueda decir algo como que esta app me cambió el mundo pero es la app que uso diario (seguro que es la app que más uso).

Hay opciones, con esta, yo me siento a gusto, por ahora.

Saludos
Gorka


Extended Reality


Extended Reality

Extended reality (XR) is a term referring to all real-and-virtual combined environments and human-machine interactions generated by computer technology and wearables.
Extended Reality @ Wikipedia

XR = AR + AV + VR

Empecemos por lo básico:

Augmented Reality

De la definición de AR @ Wikipedia:

Augmented Reality is a live direct or indirect view of a physical, real-world environment whose elements are “augmented” by computer-generated perceptual information, ideally across multiple sensory modalities, including visual, auditory, haptic, somatosensory, and olfactory.

Es decir, la Realidad Aumentada tiene que ver con ambientes del mundo físico (difícil usar el término real como lo hacen arriba) que son “aumentados” por información generada por sistemas computacionales. El ejemplo más sencillo que se me viene a la mente es pensar en un celular con la cámara encendida y que sobrepone información de lo que está “viendo”. Por ejemplo, información de los colores que ve, o de los materiales que ve, o el número de objetos, etc.

Tiene que ver con agregar meta-información de lo que se tiene en la cámara y mostrarla al usuario.

Augmented Virtuality

Este término lo descubrí mientras hacía research para este post, la definición de AV @ Wikipedia:

Augmented Virtuality is a subcategory of mixed reality which refers to the merging of real world objects into virtual worlds.

Este es divertido, tiene que ver con sistemas/mundos virtuales donde algo cambia tomando como consideración factores del mundo físico. Como ejemplo se puede imaginar una página web que cambia el color de fondo dependiendo del clima, es edcir, si una página web que muestra información del clima de una ciudad (en tiempo real) decide cambiar detalles como el color de fondo, o hacer efectos de sol o lluvia de manera referente a las condiciones actuales de la ciudad. En Pokémon Go lo hacen, si está lloviendo cambian los bichos que los usuarios que encuentran, dependiendo de lluvia, viento, sol, nubes, etc.

Tiene que ver con agregar condiciones a sistemas computacionales basado en factores del mundo físico.

Virtual Reality

Ya he hablado antes del tema, como referencia agrego la definición de VR @ Wikipedia:

VR is a computer-generated scenario that simulates a realistic experience.

Es decir, tiene que ver con simulaciones virtuales que buscan involucrar al usuario de tal manera que experimenten situaciones realisticas. Medio vaga la definición, porque, hasta una página web puede logar entrar ahí, pero los ejemplos usados hoy en día tienen que ver con sistemas de mundos virtuales que se disfrutan usando headsets envolventes–estilo el Samsung VR Gear que me acabo de conseguir.

Así que bueno, este post es introductorio al tema porque estoy emocionado que las herramientas actuales favorecen y facilitan nuevos desarrollos que participen de estas categorias (what?). Espero que pronto empecemos a ver cosas muy interesantes en estos temas y, yo seguir publicando experimentos que demuestren lo que se puede hacer.

Saludos,
Gorka


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.


Pagination