El pasado 9 de noviembre del 2019 se realizó el Boyaconf, una conferencia de tecnología realizada en la ciudad de Duitama, Colombia. Fue una de las mejores conferencias que he participado y tiene un especial recuerdo para mí por ser la última conferencia siendo parte de Mozilla Techspeakers y antes de la pandemia global que tuvimos. Ademas que me enteré que iba a ser ponente muchos meses antes y pues esperaba con ansias que se hiciera.

Breve resumen del Boyaconf 2019

El evento constaba de un solo día con una variedad de charlas tanto nivel básico como avanzado. Ademas, los temas eran diversos así que había contenido para aprender sin importar que rama de la informática te gusta.

La calidad de los ponentes era chévere, con presencia de varios países de latinoamérica. El evento estuvo animado por Karolina Landino quien hizo un excelente trabajo presentando a los ponentes y animando a la audiencia entre charlas. Posteriormente, Jahir Fiquitiva nos dio una introducción/bienvenida al evento y los detalles como organizador.

Las charlas estuvieron excelente, se habló sobre Android, Javacript, complejidad computacional, Inteligencia Artificial, escalar sistemas para alta demanda, realidad virtual (excelente ponencia de Fabio Cortés), micro-servicios y mas. El hecho de tener contenido variado logró captar la atención de toda la audiencia y ser entretenida a lo largo del día.

Luego del evento procedimos a tomarnos fotos, recibir swag de los patrocinadores y compartir un rato entre ponentes y asistentes. Tuve la oportunidad de ver a varios de mis ex-alumnos de la universidad, pero ya egresados como colegas de la ingeniería.

¡Finalmente el evento cerró con un after-party excelente! Pero los detalles quedan ajenos al artículo 😄. Para mi fue excelente porque venía de estar casi un mes viajando por todo el mundo dando charlas y podía cerrar con broche de oro.

Mi charla sobre WebAssembly

Mi charla fue una introducción a WebAssembly con nueva incorporaciones de demostraciones y contenido para la fecha del evento. La charla era una de la versión en español de la dictada en BrazilJS 2019 y por esta misma razón quedo muy corta. Me di cuenta que cuando la dí en inglés tuvo una duración de 25 minutos, mientras que en el Boyaconf fue de 20 minutos porque mi español es rápido y tenía mas dominio del tema.

Recuerdo que hubo excelentes preguntas y el público estaba interesado. Había una cantidad notable de gente de mi ciudad natal (San Cristóbal, Venezuela), por lo que al nombrar de donde era ellos hicieron bulla para darse a conocer (no me ha pasado en ningún otro evento).

Luego de mi charla pude interactuar con mucho público. De todos los eventos que he participado en Colombia, los del Boyaconf 2019 fueron los asistentes como que mas pude interactuar, hablar y tomar fotos.

Fue una excelente experiencia, ojalá se repita y pueda volver a asistir. Al parecer los organizadores están buscando como hacer una conferencia similar para el próximo año, así que entra en contacto con ellos y trata de brindar tu ayuda para que se haga realidad.

La entrada Mi experiencia en el Boyaconf 2019 se publicó primero en El blog de Skatox.

Entre los requirimientos de Windows 11 están una CPU moderna, arranque EFI seguro y un dispositivo de seguridad TPM versión 2.0. A continuación os comentaré como lo instalé sin trucos en una máquina virtual dentro de una máquina que no tiene ni TPM ni arranque seguro EFI, así que el único requerimiento que cumplía era el tener una CPU algo moderna, con virtualización hardware, claro.

Para poder probar cosas con el Windows 11 en el trabajo he querido instalar Windows 11 como siempre hago con los Windows, es decir, en una máquina virtual dentro del sobremesa, hasta ahora siempre lo he hecho con VirtualBox, es cómodo y cumplía con lo que yo necesito.

Sin embargo en este caso, si queremos instalar Windows 11 sin trucos, necesitaremos un dispositivo de seguridad TPM, que no existe en VirtualBox, así que... he explorado un poco el mundo de libvirt usando por debajo KVM, que sí que nos permite usar un TPM software y el resto de cosas que necesita Windows 11 para funcionar.

He utilizado los paquetes de Bookworm (ahora en testing mientras no se convierte en la nueva estable) para contar con las últimas versiones y no tener que andar haciendo las cosas "a mano" editando los XML y tal, con las versiones de Bookworm se puede hacer todo en plan gráfico sin problema, con versiones anteriores igual también se puede, pero en algunas hay que tocar los XML a mano.

La cosa para mi ha sido instalar por un lado la parte de libvirt, instalé estos paquetes: virt-manager virt-viewer libvirt-daemon-driver-qemu libvirt-daemon-system libvirt-daemon-system-systemd libvirt-daemon-config-nwfilter libvirt-daemon-config-network libvirt-clients gir1.2-spiceclientgtk-3.0

Por otro lado para cumplir con los requerimientos del Windows 11 (TPM y arranque EFI) instalé: swtpm-tools ovmf

En algunas pruebas en alguna máquina muy "barebones" no tenía un polkit adecuado así que le instalé: lxpolkit Esto no será necesario en sistemas normales con interfaz gráfica ya que ya tendrán instalado un polkit, sino... el propio virt-manager os lo indicará con un error, sino... arrancarlo con "--debug"

Entre los requerimientos de Windows 11 están la CPU, que tiene que ser moderna y que el arranque sea EFI, por ello definiremos una nueva máquina en el virt-manager poniendo de arranque la ISO del Windows descargada de MS, dejaremos que detecte el operativo (detecta Windows 10, por ahora no tienen 11, pero nos sirve) y justo al final, antes de darle a finish, activaremos "Customize configuration before install" y ahí le ponemos en "overview" tendremos que cambiar el apartado "firmware" de BIOS a UEFI con arranque seguro (secboot), además iremos a la ventana "CPUs" y eligiremos en "Configuration" la opción "host-passthrough".

Si le dimos a "apply" en las opciones podemos volver a "overview" y comprobar en el xml que nos queda algo como esto:

machine=pc-q35-7.1 cpu mode='host-passthrough' ... firmware UEFI x86_64: /usr/share/OVMF/OVMF_CODE_4M.secboot.fd

El otro requerimiento que tiene Windows 11 y que no suelen cumplir las máquinas menos modernas es el TPM, pero al ser una máquina virtual usamos el TPM software que hemos instalado y listo. Para esto añadimos a la máquina un dispositivo nuevo de tipo TPM y modelo TIS, y listo, ya podemos darle a "Begin installation".

Esta configuración de máquina es con la tarjeta gráfica qxl, cuando terminemos la instalación de Windows será conveniente instalar en el Windows 11 las spice guest tools que podemos descargar de spice-space.org para tener un buen soporte del esta y el resto del hardware.

Una vez instalemos eso apagamos la máquina y en el virtual-manager en la ventana de la máquina virtual Windows 11, seleccionamos "view", "scale display" y marcamos "autoresize vm with window"

Listo, con esto Windows debería reconocer todo el hardware y hacer escalado de la pantalla al tamaño de nuestra ventana.

Desde hace un par de años he sido seguidor del evento de Nerdearla. Principalmente por ser organizada por sysarmy, una de las mejores comunidades de habla hispana sobre tecnología, servidores, seguridad, etc. Ademas el año pasado tuvieron en el evento una excelente charla con John Romero, quien es uno de mis héroes como programador por ser co-creador de Doom, Wolfeinstein, id Software. Y este año tuve la oportunidad de ser ponente dando una charla sobre las DevTools de los navegadores web.

El navegador es tu mejor amigo para el desarrollo web

A pesar de haber dado esta charla en varias oportunidades. En esta ocasión actualicé el contenido y utilicé como ejemplo la página de Nerdearla. Ya que la audiencia tuvo que haber visto la página y así estar familiarizado con los ejemplos.

Respecto a las herramientas, compartí las mas básicas pero modernas. Así que si deseas conocer sobre como usarlas, te recomiendo ver mi presentación e iniciarte en el mundo de las DevTools.

YouTube Video

Mi presentación sobre las DevTools para Nerdearla 2022

Cómo conseguir mas información de las DevTools

Si estas interesado en el tema y deseas conocer mas sobre ello, te recomiendo visitar DevTools tips, una página con una gran recopilación de consejos que puedes usar para mejorar tu flujo de trabajo en el navegador.

La página de Firefox Developer Edition contiene material introductorio para comenzar a usar estas herramientas. También puedes consultar Mozilla Web Docs que contiene buen material sobre cada herramienta al igual que la documentación oficial de Chrome sobre las Devtools.

Con estos enlaces y mi charla, puedes empezar a usar las Devtools de tu navegador favorito para mejorar y optimizar tu flujo de trabajo. Y si te gustó el contenido de este artículo compartelo en tus redes sociales para que otros también puedan aprender sobre este gran tema.

La entrada Mi charla sobre las DevTools del navegador en Nerdearla 101 del 2022 se publicó primero en El blog de Skatox.

Las aplicaciones de escritorio remoto son aquellas que se instalan en una computadora, para permitir que un tercero se conecte a esa computadora desde Internet. Esta aplicación permite a quienes se conectan: ver la pantalla, controlar el mouse y teclado para usarla como si estuviese sentado frente a ella.

Con el escritorio remoto te puedes conectar remotamente a otros y trabajar como si estuvieses allí
Desde un equipo te puedes conectar remotamente a otros y trabajar como si estuvieses allí

¿Cuándo usar escritorio remoto?

Este tipo de aplicaciones te ayudan mucho para resolver problemas. Para entenderlo mejor, consideremos los siguientes escenarios donde usar escritorio remoto te resolverá tus problemas:

  • Sirve para acceder a tu computadora desde cualquier parte del mundo. ¿Olvidaste un archivo? ¿Necesitas acceder a información en tu computadora? ¿Solo puedes acceder a tu banco desde tu equipo? Con este tipo de aplicaciones puedes acceder a tu equipo como si estuvieses frente a él, acceder a los archivos y enviarlos.
  • ¿Tu banco o página institucional sólo permite el acceso al sistema desde tu equipo? Accede y entra desde tu equipo. Como el equipo donde esta instalado el escritorio remoto es realmente quien accede a Internet podrás entrar sin problemas a sitios autorizados desde cualquier lado.
  • Si necesitas reparar o hacer soporte técnico a nivel de software a una computadora. ¿No puedes o deseas evitar transportarse para acceder físicamente al equipo? Conectándote remotamente puedes acceder y realizar el trabajo de soporte sin problemas y luego cobrar por el servicio. Si necesitas reiniciar, el software se puede configurar para que se encienda cada vez y evitar quedarte sin conexión.
  • En mi caso, necesito acceder a páginas restringidas a Venezuela. No existen buenos VPN (y no confío en muchos de ellos) por lo que me conecto a mi equipo allá y así puedo acceder a realizar las tareas que necesito. A pesar de estar fuera de Venezuela, el equipo local con la aplicación de escritorio remoto sí. Entonces la conexión se hace desde ahí y no habrá problemas.
  • Muchas personas utilizan estas aplicaciones para la enseñanza. Puedes conectarte a la computadora de tu estudiante y trabajar juntos en el problema académico, controlar las láminas que está viendo, entre otras cosas.

Qué aplicaciones usar

Casi todos los sistemas operativos poseen una herramienta incluida que permite el acceso remoto. Por ejemplo en Windows está Remote Desktop, Linux y MacOS traen servicios de VNC (un protocolo para conectarse a escritorio remotos) y aplicaciones gráficas para conectarte con pocos clic. Las diferencias entre estas aplicaciones son muy pocas y funcionan casi igual, tal vez que unas cifran la información, otras comprimen la data transmitida, otra permite usar distintas resoluciones, entre otros.

Sin embargo, también hay aplicaciones como AnyDesk (puedes descargar AnyDesk aquí) que ofrecen mas funcionalidades como tener pestañas para conectarse a múltiples equipos al mismo tiempo, ver las aplicaciones a la misma resolución, mejor ancho de banda entre otros. Para mas información de este tema, no dudes en visitar la web oficial de AnyDesk.

YouTube Video

Beneficios de usar un software de escritorio remoto

  • Permite usar una computadora totalmente: acceder archivos, escritorio, lanzar programas, entre otros. Desde cualquier parte del mundo a través de Internet.
  • El punto anterior, te permite hacer trabajo a cualquier persona sin tener que acceder físicamente al equipo. Puedes trabajar, dar clase, presentaciones, demostraciones y demás desde Internet.
  • Puedes acceder a otra computadora y utilizar su conexión de Internet para realizar cualquier tarea. Es decir, la computadora remota funciona de proxy o VPN.
  • Puedes acceder a un equipo con cualquier sistema operativo desde otro diferente. Por ejemplo, desde un celular Android  puedes conectarte a un equipo Windows para ejecutar un programa. O desde un iPhone conectarse a tu máquina Linux para correr una aplicación de escritorio.

En fin, con estos beneficios puedes darte cuando del poder de usar una aplicación de escritorio remoto. Estoy seguro que te ayudará a resolver mas de un problema que tienes a bajo costo y de una forma muy sencilla.

La entrada Los beneficios de usar un software de escritorio remoto se publicó primero en El blog de Skatox.

Hace unas semanas empecé usar JAMStack para rehacer mi sitio profesional usando tecnologías mas nuevas (el stack original tenía 11 años pero es tema de otro artículo). Al investigar decidí usar Hugo y me enteré de la HugoConf. Por lo que envié una propuesta de mi experiencia y fui aceptado a participar en ella.

Afiche de la HugoConf 2022 de la charla de la experiencia de usar JAMStack con Hugo viniendo de un entorno LAM
Mi charla del HugoConf 2022

Mi camino desde el stack LAMP hasta JAMStack con Hugo

Esta presentación es un tema totalmente nuevo. Decidí enfocar mi experiencia de hacer mi primer sitio web con Hugo viniendo de muchos años de hacer sitios con PHP/MySQL y con WordPress (es decir, con o sin CMS). En ella les comento como es el proceso para elegir un generador de contenidos, porqué usé Hugo, las características y herramientas que provee Hugo, como empezar a hacer sitios, ventajas y como hacer optimizaciones del sitio para que cargue muy rápido.

Te recomiendo verla a continuación si deseas conocer como es eso de crear sitios web estáticos y deseas conocer como comenzar:

YouTube Video

Mi charla en el HugoConf 2022

Mi experiencia en la HugoConf 2002

Fue excelente evento totalmente virtual. Como estaba empezando a usar Hugo fue interesante ver todo lo que puedes hacer con este generador de contenido estático. Y por la misma razón me sentía un poco intimidado por mi charla porque pensé que era la de menos nivel. Pero la receptividad fue muy buena, se generaron varias preguntas y tuve comentarios muy positivos de esa experiencia. Me motivó a seguirla dictando o crear nuevo contenido similar.

Palabras finales

Espero que te haya gustado la presentación. Si vienes un entorno LAMP (Linux Apache MySQL y PHP) estos consejos te ayudarán a iniciarte en el mundo de JAMStack. Pronto haré un artículo con mas detalles sobre la experiencia de usar Hugo para rehacer mi sitio profesional y obteniendo mejores resultados.

La entrada Mi charla de la HugoConf 2022: migrar a JAMStack viniendo de un entorno LAMP se publicó primero en El blog de Skatox.

Hace unas semanas Brent Roose publicó un vídeo de por qué considera mejor un tema claro en los editores de código. Me llamó la atención su opinión y los artículos que compartió que decidí intentarlo. Ya al segundo día, había notado los cambios y no volví a usar el tema oscuro exceptuando en la terminal (empecé a usar computadoras en los tiempos de MS-DOS y para mí la terminal siempre será con fondo oscuro).

El reconocido meme entre los programadores sobre el miedo a usar un editor con tema claro.
El reconocido meme entre los programadores sobre el miedo a usar un editor claro.
Fuente: @programming_tips

¿Usar un tema claro es mejor para mis ojos?

Hace tiempo leí que los temas oscuros eran mejores porque las pantallas no iluminaban tanto ni cegaban la vista, ocasionando cansancio con el tiempo. Pero al parecer sólo es válido para monitores viejos de tipo CRT. Pero viendo la entrada de Brent Roose, en él comparte enlaces a varios artículos y estudios donde muestran que el ojo humano está acostumbrado a reconocer patrones oscuros sobre fondo claro. Por ejemplo, el ojo al ver algo oscuro va a tardar mas en procesarlo que en fondo blanco, pero en cambio, cuando hay colores fuertes sobre fondo oscuro, la información queda mejor grabada en el cerebro. Pero en el caso de programar, nos interesa es tener menor cansancio y ser productivos durante el día.

Para mayor información del tema, te recomiendo leer el artículo sobre el lado oscuro del modo oscuro y el estudio sobre el efecto de mejores visualizaciones en la comprensión de código fuente.

Si aún no te convences, fíjate en la siguiente imagen extraída del artículo anterior. Cómo es mas fácil de reconocer el rostro de la derecha porque la información que necesita nuestro está en color oscuro y con fondo claro. Si aplicas esta lógica para el código, veras como nuestro cerebro necesita menos tiempo para reconocer texto oscuro en fondo claro. Suma ese tiempo a lo largo del día, cada vez que haces desplazamiento del texto o cambias de ventana, al regresar al editor y leer el código, estarías ahorrando un tiempo.

Es mas fácil distinguir al Abraham Lincoln
El rostro de la derecha es mas fácil y rápido de reconocer que de la izquierda. Fuente: Tidibits

Al ver este ejemplo, me convencí de que es mejor tener la tipografía oscura sobre el fondo blanco. Inicialmente era probarlo por una semana pero ya al segundo día vi mejoras y me quedé usándolo.

Mi experiencia usando el tema claro luego de una semana

El cambio mas inmediato que noté fue que al cambiar entre el editor y el navegador. Como la mayoría de las páginas suelen ser fondo claro con letras oscuras. No hay cambio brusco de colores al cambiar de aplicaciones. Imagino que si usas todo en modo oscuro pasa lo mismo, pero la web es clara por defecto y no todas las aplicaciones tienen un modo oscuro.

Durante la semana, si noté menos cansancio lugar de mirar la pantalla luego de varias horas usando el tema claro. El hecho de bajarle el brillo al monitor al principio porque me encandilaba el fondo blanco, posiblemente ayudó a reducir el agotamiento visual. Porque ahora la pantalla no necesitaba tanto brillo para mostrar el contenido a diferencia de cuando el modo oscuro es usado. También indirectamente esto debería disminuir el consumo eléctrico del monitor al requerir menos brillo.

Respecto a los colores del código, no vi ningún cambio porque a pesar de ser diferentes, resaltan la misma información. Durante las primeras horas me costó el cambio pero luego de me adapté.

En mi opinión, si vale la pena cambiar a un tema claro y si siento que me descansa mas la vista al durar varias horas en él. La adaptación me llevó dos días y luego me pareció normal el nuevo esquema de colores.

¿Cuando no recomiendo usarlo?

En monitores antiguos de CRT siento que se cansa mas la vista usando un tema claro, porque hay mas brillo en la pantalla. Pero si tienes un monitor moderno no ocurre lo mismo.

Sin embargo, si tienes una pantalla OLED y necesitas ahorrar batería, usar el modo oscuro puede darte de 3% a 9% mas tiempo de energía. Podría no parecer una cifra significante, pero si estas en una emergencia laboral y no tienes suministro eléctrico. Ese tiempo adicional es valioso.

Otro punto donde no recomiendo, es al momento de explicar o hacer presentaciones. El hecho de usar un fondo oscuro con letras de colores, facilita que se guarde la información del contenido de las palabras. Ahí no importa la velocidad de procesamiento de la información sino que resalte y se almacene en las personas que ven el código.

Recomendaciones finales

Te recomiendo probar durante una semana usar un tema claro. Recuerda que si sientes que te estas cegando de tanta luz, entonces significa que debes bajar el brillo de la pantalla y mejorar la iluminación de la habitación/oficina. Luego en un par de horas es probable que te acostumbres y sientas la diferencia.

¡Pruébalo y mejora tu salud visual!

La entrada Usar el tema claro en el editor de código es mejor y te explicó por qué se publicó primero en El blog de Skatox.

Durante varios años he publicado como es mi escritorio ( también conocido como desktop setup en inglés) y pueden ver como ha ido cambiando poco a poco. He ido comprando y agregando nuevos accesorios hasta que estoy en un punto donde (por ahora) creo que es suficiente.

El escritorio / desktop setup de Skatox
Mi escritorio del 2022

La idea es tener todo lo necesario para trabajar en casa. Poder estar cómodo y productivo durante la jornada laboral. Aparte de la computadora, recomiendo tener audífonos que eliminen ruidos exteriores. Buen micrófono y cámara web para las reuniones, entre otras cosas. Si estás pensando en montar tu oficina en casa, te recomiendo leer mis consejos para tele-trabajo desde casa.

Parte del equipamiento lo hizo la compañía donde he trabajado en los últimos años. Luego he ido comprando por mi parte otros accesorios como teclado, trackpad, audífonos, bases, ratón, entre otros. Pero desde que ocurrió la pandemia del 2020 muchas conferencias pasaron a ser remotas y necesitaba cosas como una buena cámara y micrófono, para participar en ellas. Gracias a los organizadores de JSConf México que me regalaron la cámara web y micrófono, solventando esa necesidad.

Los componentes de desktop setup

Los principales componentes de mi escritorio son:

  • Mac mini de 16GB con el chip Apple M1, 512GB de disco duro.
  • Monitor LG UltraFine 32BN88U-B
  • Magic Keyboard y Magic Trackpack 2
  • Mouse Logitech Mx Master 2s
  • Silla gamer
  • Micrófono Shure MV5C

Todos estos productos los pueden encontrar en Amazon o en la página de cada fabricante. Para evitar tomar muchas fotos de cada producto y escribir un montón de párrafos sobre sus características. Decidí hacer un video para ver mas detalles de mi desk setup, espero que te gusté y lo puedes ver a continuación:

YouTube Video

Para finalizar, si les gustó ver como es mi desktop setup, no duden en dejar su opinión o comenten como es el suyo. Así tomamos ideas para mejorar nuestra configuración actual.

¡Feliz trabajo en casa!

La entrada Mi oficina remota (office & desktop setup) 2022 se publicó primero en El blog de Skatox.