Nuevas Herramientas


Digital toolset

La tecnología.
La tecnología ha de ser invisible para los usuarios. No tienes por qué entregar una lata de refresco con un drone si puedes entregarla en mano previamente, porque lo que importa es que el usuario tiene sed, no que tú tengas un drone.
Daniel Granatta

No sé si estoy de acuerdo. Tampoco creo que estoy en desacuerdo.

Lo que pienso en ambos casos es así (está mezclado):

Creo que ese tipo de propuestas harían que no hubiera innovación por el gusto de hacer innovación. Para qué se necesita el drone si se puede entregar el refresco en mano, si la necesidad es la sed del usuario - pero y la necesidad de saciar la sed en un lugar al que se puede acceder mucho más rápido vía drone?

En la ciudad entregar refrescos con drone es un claro overkill, pero en zonas austeras donde no hay acceso a tiendas en cada esquina, ahí tiene sentido.

Entonces, entregar refrescos en drones tiene sentido sólo cuando existe la necesidad? Ahí es donde digo que no estoy de acuerdo, el hecho que se puedan entregrar refrescos con drones abre las puertas a repensar muchos otros lugares/necesidades donde se puede aplicar ese overkill de tecnología - lugares donde no es un overkill y donde el status quo no hacía/dejaba ver que había una necesidad, un problema a mejorar; y el uso de drones en otro lado por efímero que parezca puede ser un disparador de innovación en otro.

Un par de ideas para empezar el post. Ahora a las nuevas herramientas:

Vim

Es lo más divertido. Es un editor de texto al estilo línea de comando, dónde escribir es sólo un modo y en realidad, todo lo que haces lo haces por comandos - para todos ya es común usar CTRL+V y CTRL+C para copiar y pegar, bueno Vim es así para todo, hay comandos y combinaciones de teclas para cada cosa (y las que no existen se pueden crear).

Tiene un learning curve alto, pero te acostumbras y poco a poco lo usas para todo. Y lo divertido es que tiene plugins y una comunidad gigante haciendo mejoras constantemente. Hoy por hoy, mi editor of choice.

tmux

Trabajando con Vim ahora de repente me la vivía acomodando ventanas por todos lados y tuve que buscar un tile manager para hacer eso de manera rápida. Luego aprendí que con Vim puedo tener varios archivos abiertos y trabajar entre ellos, así sólo necesito 1 ventana abierta al máximo y hacía el splitting desde Vim. Kapow!, llegó tmux (y es gracioso, uso tmux en iTerm que puede ser un overkill pero hay lugares donde no tengo iTerm así que de esta manera es todo una sola forma). En fin, tmux: una solo programa tamaño máximo y ahí mismo múltiples sesiones, es algo como múltiples escritorios dentro de un solo programa.

Muy cómodo y fácil de usar, y también todo configurable - apenas estoy aprendiendo qué y cómo para ver como lo defino a mi gusto personal.

Zsh

Al estar usando Vim y tmux (y menos Sublime, Atom y Visual Studio) me encontré cada vez más trabajando con línea de comando, si bien ya instalaba y jugaba un poco con Zsh ahora empecé a configurar a mi gusto todo (desde alias, binarios propios, plugins e instalaciones automaticas). Y por supuesto Oh My Zsh - una comunidad de agregados super chulos para Zsh.

Los temas son muy cómodos y variados, y la idea es que con un dotfiles te puedes llevar esas configuraciones a todos lados facilmente (https://github.com/AquiGorka/dotfiles)

Go

Aprendí a programar en C y luego C++. Nunca más los volví a ver, nunca los usé y no creo usarlos (nunca digas nunca). Pero de repente me crucé con un lenguaje que te ofrece la potencia, fuerza y velocidad de C pero con una sintaxis y con interfaces más sencillas de usar: Golang.

No jugué aún con los channels pero parece que para hacer sistemas que corren en paralelo ya viene optmimziado - genial!

Lo que si hice ya, y sigo haciendo es usar Go para mis servers de api (https://github.com/AquiGorka/kickoff/game) y viniendo de Node, la verdad es que es muy fácil hacer esto.

Luego encontré Crystal, que sería el Go para los que vienen de Ruby (yo vengo de Node) y plantea la misma idea: La fuerza y poder de C pero con la sintaxis sencilla y limpia de Ruby - no niego que me da curiosidad, pero por ahora no lo voy a probar, solo lo mantengo en el radar.

Docker/Vagrant

Los casos de uso por los cuales ya estoy usando este tipo de programas (si es que los puedo llamar así, en realidad son virtualizaciones de software):

Para el primero: no me hace falta instalar las herramientas y programas para desarrollar si ya vienen en una imagen - para que instalar node, ruby, go, php, mysql, mongo, etc, etc. si puedo tenerlo listo en un ambiente virtualizado donde simplemente monto/comparto los archivos de mi máquina y los trabajo con mi editor de costumbre y listo.

Tampoco es overkill isntalar esos otros programas de desarrollo en mi máquina, lo acepto PERO que pasa cuando tienes versiones que chocan entre lo que quieres y lo que tienes - ejemplo las mac vienen con ruby y gem pero no puedes usarlo para desarrollos propios y no lo vayas a modificar porque si lo jodes, kapow! te llevas el sistema. Cómo se resuelve esto? Con version managers, que PAJA - un version manager de ruby, otro de node, otro de npm, nel. Ambientes virtualizados con las versiones que necesito y punto.

Para el segundo: estuve aprendiendo a hacer un continuos delivery desde bitbucket a google cloud engine (futuro post y código en github). Y pues qué más fácil que bajar la imagen de la máquina de bitbucket que hace el test y build y delivery, correrlo local y cuando todo funcionaba mandar el script a bitbucket y confirmar que todo seguía ceteris paribus.

Para el tercero: cuando lo haga lo cuento.

Así que bueno, ahí está un resumen rápido (pero no corto) de las herramientas que vengo aprendiendo y usando ultimamente - me faltaron otras: jekyll, hugo y github pages pero esas las contaré en otro post.

Saludos,
Gorka


Comunicación


La calidad de los equipos se puede medir por la calidad de sus conversaciones.

La frase de la imagen la encontré hace poco y me encantó. Me ayudó a entender algo que estaba ahí pero que no podía realmente ponerle palabras.

De forma sencilla veo como aplica a todos los niveles: desde startups hasta grandes empresas. En mi experiencia en empresas de diferentes tamaños esto lo he visto constantemente.

La empresa pequeña que tiene que pivotear y cambiar constantemente (a veces para satisfacer a los clientes, a veces el capricho del liderazgo y otras el capricho de los miembros del equipo) que al final no encuentra su modelo de negocio, tiene que desarrollar sistemas _flexibles _que no están para quedarse.

Las empresas medianas que encontraron el “sweet spot” (grupos de desarrollo con 5-6 devs, 1 project manager, 1 product owner y 1 diseñador/ux), son (en mi opinión) las que pueden encontrar más fácilmente las mejores estructuras dado que no dependen de estructuras burocráticas.

Y las empresas grandes, que tratan constantemente de convertirse en empresas agiles (y que pueden lograrlo porque al final del día apuntan a equipos tipo/tamaño sweet spot).

Y tiene sentido, al final del día, los sistemas que se diseñan son canales de comunicación y esos sistemas de comunicación son los mismos que usan las empresas para comunicarse internamente - open source y github se acaban de ganar una nueva capa.

Quiero decir, a través de herramientas de versión de control descentralizdas (git), repositorios públicos (github) y procesos de responsabilidad/ownership con code reviews hacen una muy buena estructura de comunicación asíncrona (que funciona y es ágil) y que se ve repetida en los sistemas/software que producen.

La cita la encontré cuando me cruce con esta maravilla: www.mosaic9.org que me llevó a esta presentación: https://www.youtube.com/watch?v=E0s3EGCefB0 - por ahora no voy a hablar de micro servicios en frontend, es un tema que merece un post en sí solo, pero es algo que vale la pena mucho.

Saludos,
Gorka


Vamos con el 2017!


"Returns zero on success, or FALSE on error."
php::sleep (ahhh buenoooooo)

Y seguimos con el 2017 y nuevas aventuras - en realidad este post debía ser de Febrero así que me voy a apurar para hacer dos este mes.

Ahora viviendo en Barcelona! Con un nuevo proyecto trabajando para eDreams - ya iré contando qué tal.

Y por otro lado, con muchas ideas, conociendo nuevas personas muy divertidas y muy inteligentes, y, por supuesto siempre platicando y aprendiendo mucho.

Ya tengo proyecto personal para trabajar este año (aún no tiene nombre). Pero va a tener las siguientes características:

Y pido ayuda a la gente que lee este blog (hay quién lo hace?), se acuerdan de un juego de mesa de futbol donde los jugadores estaban fijos y tenían aros de metal alrededor de la cintura/parte baja y que la pelota al ser de metal se les acercaba y quedaba pegada. Luego la persona tenía que presionar el muñeco (se podían girar para dar dirección) para que “pateara” la pelota - algo así como Soccero.

Bueno, si alguien se acuerda me encantaría que me dejaran el nombre del juego en los comentarios (y un like?? medio youtuber eso no? jajaja).

Saludos,
Gorka


Y de repente el 2017...


Computer engineering is a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.
Computer Engineering @ Wikipedia

Estrenando título (hell yeah!) y contando que espero poder seguir hackeando y aprendiendo muchas cosas - además de tratar de volver a escribir más seguido.

He estado jugando con un iPod touch viejo que tengo. Mi idea es convertirlo en un _server mobile_, es decir, lo llevo conmigo abre una red wifi a la cual cualquiera se puede conectar y les mando los contenidos que yo quiera - desde publicidad, hasta juegos, servicios y otros. Ya tenía hasta un wordpress instalado pero preferí intentar con node (Javascript) y tengo una versión vieja instalada - ahora tengo que ver si le funciona socket.io (estaría muy divertido).

¿Dónde se podría usar? Escenarios o eventos de mala conectividad o conectividad limitada (aeropuertos? autobuses? adentro del avion? estadios de futbol? etc.).

También estoy jugando con un headset de mindwave! Charán! ¿Qué es eso? Un headset para brain control computing - otra vez, ¿qué? pues un dispositivo que lee las señales que genera la mente, espero poder lograr algo divertido por ahí también.

Ya iré escribiendo y contando

Saludos,
Gorka


Me dueles a la distancia México


Cuando advierta que para producir necesita obtener autorización de quienes no producen nada; cuando compruebe que el dinero fluye hacia quienes trafican no bienes, sino favores; cuando perciba que muchos se hacen ricos por el soborno y por influencias mas que por el trabajo, y que las leyes no lo protegen contra ellos, sino, por el contrario son ellos los que están protegidos contra usted; cuando repare que la corrupción es recompensada y la honradez se convierte en un autosacrificio, entonces podrá, afirmar sin temor a equivocarse, que su sociedad está condenada.
AYN RAND (1950)

Entre Ferraris, guardaespaldas y “mi-reyes”…


So long and thanks for all the fish


6a00d8341bf7f753ef0120a6340fc8970c

2015. Un año divertido. Hubo muchas cosas.
Gorka

Lo dejo con las cosas que tengo en la cabeza, algunas sólo ideas al aire, otras, si me animo se convertirán en realidad y otras tal vez si alguien de ustedes se anima…

Saludos,
Gorka


Presentación oficial: Puppets.life


puppets

I wanted to go beyond the most used example of using the smartphone as a steering wheel for a simulated car and showcase something that mimics life itself, hence the puppet.
@ Puppets.life

Me gusta lo que propone el autor: usar los teléfonos como controles remotos de juegos para web y para smart tv's. Estoy seguro que piensa hacer juegos "sociales" (pensemos en generala, mentirosa, juegos de cartas, etc) para reuniones entre amigos. Una smart tv o una computadora conectada a una televisión y de repente todo mundo tiene una consola de juegos - obviamente de juegos más sencillos, no creo que el autor esté pensando en echarse un juego triple AAA de inicio.

Me encantaría saber sus opiniones, me encantaría escuchar sus críticas porque al final del día, sólo así puedo romper la burbuja que me he creado yo mismo de lo que quiero que sea este juego y los que iré desarrollando con el tiempo.

Un proyecto más, otra vez con el gusto de hacer algo propio y con los sueños y miedos que eso lleva - con la experiencia que ya tengo, de lo que estoy seguro es que va a ser muy divertido.

Saludos,
Gorka


Pagination