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.
Meltdown y Spectre rompieron todas las computadoras del mundo. Es un tema delicado, un problema de hardware que afecta (confirmado ya) los procesadores de Intel y AMD (casi todas las computadoras que hay). Hace unas semanas leía un post de un researcher que especulaba acerca de las últimas actualizaciones a linux, me dejó con un sentimiento de algo malo y grande se viene. Kaboom. Si les interesa hay muchos links para encontrar info de lo que está pasando, yo acá comparto este: https://googleprojectzero.blogspot.com.es/2018/01/reading-privileged-memory-with-side.html
5 lines of JavaScript broke every single Intel processor made in the past 15 years. Siguiendo con el punto anterior; resulta que la vulnerabilidad en los procesadores se puede atacar/explotar no solo desde línea de comando sino hasta el navegador! Y por supuesto que ya hay vectores de ataque. Qué hacen esas 5 líneas? No sé. Tampoco voy a probarlo. Pero lo peor es que no puedo confiar en ningún website hasta que se haya arreglado lo primero.
Volvieron a romper el Internet Una vez más, esta vez por un tema de la herramienta interna de seguridad, npm “perdió” paquetes lo que hizo que no se pudieran instalar esos paquetes ni los que los tienen como dependencia. Para algunos no es un tema tan grave, en lo personal creo que no poder instalar paquetes bastante conocidos (como create-react-app) porque tenían como dependencia alguno de los paquetes que desapareceieron si me parece grave. En un blog post que estoy escribiendo para Citrusbyte menciono la idea de crear una app decentralizada que ayudaría a evitar este tipo de problemas. Ya compartiré el link.
Por esto es que no podemos tener cosas chidas: manera sencilla de “cosechar” números de tarjeta de crédito y contraseñas desde websites Miedo. La sensación de tener que revisar el código de las dependencias de las dependencias de mi código es tan abrumadora que creo, prefiero ver hacía otro lado. Security through not looking. Este ataque es ficticio pero viable. El ecosistema JvaScript vive demasiado de la mano de la fé y confianza en código de otros.
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.
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.
Empecé el año trabajando como Product Owner - y hacía allá apunto de vuelta. El rol me encanta. Disfruto mucho desenvolver los proyectos en tareas y subtareas para definir el orden de prioridad según las necesidades, costos/beneficios y hacía donde apunta el big picture.
Barcelona. De repente en menos de dos meses del año boom! Nos mudamos a Barcelona. Y hace una semana pude ejercer mi derecho a voto en las elecciones locales que se llevaron a cabo con todo lo que estuvo pasando por parte del movimiento independentista. Hubo una declaración de independencia, wow. Hubo un acto terrorista, que mal. Por ahora la cosa va bien y por acá voy a seguir.
eDreams. Mi primera experiencia con el mundo corporativo. Choque total. No compatibilizamos – sea el momento en el que yo estaba o que mi personalidad no va con ese mundo, una experiencia de la cual aprendí por supuesto. Por ahora, no voy a recomendar a nadie trabajar para esa empresa.
Citrusbyte. La otra cara de la moneda. Una empresa con la cual me siento increiblemente a gusto. El momento en el que estoy y los proyectos que tienen, estamos sincronizados. Y lo estoy disfrutando mucho. El equipo? Fantásticos. Tantas personas tan chidas de las cuales todos los días puedo aprender – mucho, y me encanta. Y me esfuerzo también por hacer mi parte.
Github. Decidí tratar de hacer publicaciones todos los días por unas semanas. Todo salió bien, a veces cosas pequeñas, a veces aplicaciones web enteras. Decidí seguir. Ahí sigo. Por otro lado, hice mis primeros pull requests a proyectos de terceros! Unos se aceptaron, otros no – asi es esto. Uno de los que hice a IPFS lo aceptaron, el otro está en pausa :)
Herramientas. Nuevas herramientas y personalización de las que ya usaba. Muy nerd si. Pero, que se yo, en algún momento me burlé de las personas que trabajaban sólo con línea de comando. Ni modo, mi yo pasado se burló de mí, ahora le regreso el favor.
Sistemas de blog. Dos blogs. Uno más activo que el otro. Pero para empezar hay que dar el primer paso. Dos sistemas para aprender las diferencias y ver con cual me siento más cómodo. Los dos van muy bien.
Nuevos lenguajes. Aguante Golang! Un rato estuve jugando bastante, publiqué un starter para server, cambié de framework (por razones que ya conté antes). Voy a seguir haciendo cosas con este lenguaje por ahora.
Kickoff. Un juego que quiero hacer. Un proyecto que ya empecé y que ahi va. Tiene de todo lo que he aprendido en los años. VR, multiplayer, real-time, 2nd screen, esports. En fin, ya veremos como sigue.
Kuhhandel. Mi primer videojuego de mesa. Aún le faltan tuercas por apretar. Pero hice la versión digital de un juego de mesa, que se puede jugar usando los celures como control remoto. Tómala barbón.
Rompí una computadora. Bueno, no tal cual, alguien la podría arreglar. Alguien muy nerd que sepa de particiones de boot, grub y grub de rescate. Aprendí mucho, tanto que casi creo que quiero mandar arreglar la computadora para volver a intentarlo – sigo con ganas de isntalar y usar Arch Linux
Mi primer año como Ingeniero. Investigué qué más se puede aprender y me encontré Master of Human-Computer Interaction. Lo quiero. Si en algún momento creí que nunca volvería a la academia, este postgrado llamó mucho mi atención. Fue de las cosas que estuve leyendo mucho y este va aquí más como propósito futuro.
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:
que se pueda ver el juego en otra pantalla (así se puede jugar a distancia)
que se pueda jugar sin la primera pantalla (todos desde los celulares)
Así que bueno, eso, ahhhhh, y el catch divertido: el juego original usa animales de granja, yo decidí cambiarlo y que use emojis
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:
si se está viendo un video, reconocer las caras de las personas
si se está jugando un videojuego, que te vaya guiando para cumplir alguna meta
que se pueda interactuar con lo que se ve (por definir)
si se está viendo un partido de futbol que le ponga nombres a los jugadores, que sepa quién tiene la pelota, etc
en páginas web que te pueda ayudar a resolver temas
en fotografías que te reconozca personas/amigos
en facebook que te marque cual post es publicidad (y te lo bloquee?)
en twitter: información extra/relacionada de los tweets que se están leyendo
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:
Una opción que estoy por probar es la empresa Cloudflare. Los pasos a seguir en el setup son bastante sencillos:
1.- Crear una cuenta
2.- Scan
Hay que definir el website que se va a usar y ellos hacen un primer scan de los settings DNS.
3.- Revisión DNS Records
Si no se han usado estos settings lo más probable es que todo esté correcto. Si se agregaron subdominios o entradas específicas sólo hace falta revisar que están bien.
4.- Plan
Hay varios, en mi caso fui por el Free Plan.
5.- DNS
Te listan los nameservers a los que debe apuntar tu dominio.
6.- Overview + Check
Una revisión general de todo y te avisan si el cambio de DNS se hizo correctamente (esto puede llegar a tardar en lo que el cambio se distribuye).
7.- Crypto
Aquí viene lo bonito, hay que buscar las siguientes entradas y cambiarlas a las siguientes configuraciones:
SSL en la opción: Flexible
Always use HTTPS: sí
Automatic HTTPS Rewrites: sí
Y BOOM. Listo. Website con SSL, es decir, website con https al principio.
Cabe avisar que en realidad lo que se está haciendo aquí es que el “resto del mundo” va a acceder de manera segura a los servidores DNS de Cloudflare y que ellos van a regresar la información del website solicitado pero si no hay SSL en el website esta comunicacion (la de Cloudflare pidiendo la información) se hace sin SSL.
Bueno, bonito y barato. Ya les contaré como me fue.
The fastest way to take a customizable screenshot LightShot
Hace rato que vengo usando esta app, la descubrí trabajando con una computadora Windows - en Mac usaba el screen capture nativo. Y me gustí mucho los extras que ofrece.
Cuando tomas una “captura”:
puedes agregar formas (cuadrados, crículos) para resaltar algo específico.
puedes agregar flechas para hacer notar elementos.
puedes agregar texto en cualquier lugar.
puedes guarda la imagen en donde quieras (no queda siempre en el escritorio) y con el nombre que quieras (no un genérico screenshot más la fecha)
puedes hacer upload a sus servers y compartir el link
puedes hacer copy y llevar la foto a cualquier otro lugar/app
Le personalicé el shortcut a COMMANDO + SHIFT + ENTER y es muy cómodo. Mi función favorita es la que te permite “copiar” los screenshots, es lo más cómodo y fácil para enseñar algo: tomas un screenshot, lo copias y lo pegas.