Hola! Soy Armando

Bienvenido a mi asdasd web donde compartiré sobre software en general, Violin, Kotlin y la Indie Web

Afinación

(Última actualización: )

Traducción pendiente

tl;dr: Instruments such as the violin have a different tuning than other instruments such as guitars and pianos...




Sugerencia Hexagonal

Traducción pendiente




Kotlin-htmx

Hoy te contaré por qué pienso que Kotlin y htmx se mezclan muy bien. Puedes leer el artículo (u obviarlo) con el código (también hay un ejemplo de generación estática en la rama "static" allí). También puedes probar la demo.

Kotlin as you may know is a modern JVM and (more recently) multiplatform language. It has a great type system and interesting advanced features while still being a pragmatic tool meant for engineers.




Más Kotlin, menos JS

En los últimos años, JavaScript se ha expandido de manera increíble. Aplicaciones complejas, frameworks y lenguajes que compilan a JavaScript han sido desarrollados para crear interfaces y experiencias ricas y complejas. Yo empecé a usar React en el trabajo en 2017 en una aplicación que realmente requería el uso de dicha librería. A mí me gustó trabajar con React y lo utilizaba siempre que podía. Es así pues que terminé escribiendo mi web personal en React, en retrospectiva una pésima idea pues mi web no mostraba nada sin JavaScript, afectando el SEO y reduciendo la velocidad de carga.

Hoy, finalmente, reescribí este website agregando unos grandes cambios que he estado planeando por un tiempo:

  • La web es generada de manera estática usando Kotlin
  • La página web ya no requiere JavaScript para ser renderizada.
  • Los artículos son escritos en Markdown
  • Soporte para múltiples idiomas para plantillas y artículos
  • Las plantillas (templates) son definidas en Kotlin usando Kotlinx HTML DSL. (Similar a JSX pero fuertemente tipado)
  • Hay un dev server que recarga las páginas cuando el código cambia (inspirado en react-hot-loader)

Estos proyectos e ideas (en inglés) han influenciado el diseño de mi website:

  • La pequeña web: Aral explica los problemas de la web centralizada que domina hoy. Él trabaja con Laura Kalbag para reducir la dificultad de crear sitios web independientes.
  • Protolo Gemini: Gemini es un protocolo más ligero y seguro que HTTP. No existe el concepto de scripts en los clientes (Correcto, no hay JS). Aun así puedes hacer login usando llaves asimétricas y existen aplicaciones similares a reddit o twitter, etc.
  • htmx AJAX, CSS Transitions y WebSockets en atributos HTML. Permite usar HTML como el motor del estado de una aplicación web, reduciendo significativamente la necesidad de usar JSON o escribir JavaScript
  • website < 14kb endtime.dev's article on the significant performance improvement that smaller web pages gain.

Ahí lo tienes, creo que estos cambios me permitirán experimentar y crear con mayor facilidad. Ya veremos...




Skype Chatbot

(Última actualización: )

"Daniel en mi piso" era un bot de Skype que hice para mis compañeros de trabajo cuando trabajaba en Belatrix. Daniel venía cada día a vender deliciosos sanguches hechos en casa. Él esperaba afuera de las oficinas por unos pocos minutos antes de dirigirse a otro piso. Nosotros teníamos que salir a la hora adecuada para encontrarlo antes que se vaya.

El propósito del bot era anunciar cuando Daniel llegaba. Para esto, la persona interesada a recibir notificaciones respondía al bot con el piso en el q trabaja en Belatrix. Luego de eso la persona puede compartir que Daniel llego a cierto piso, y recibirá notificaciones para ese piso.

Este simple programa confiaba en los reportes de los participantes para funcionar, pero fue un divertido experimento. El bot funcionó por un tiempo, pero ahora está desactivado.

Skype Bot GitHub Repo

Link al Skype Bot (desactivado)




Overmind tutorial

(Última actualización: )

Un tutorial acerca de la librería de JavaScript para manejar estados en la interfaz de usuario Overmind JS.

En el video uso React, pero también puede ser usada en Angular, Vue y Svelte.

YouTube tutorial