Gitlab runners en windows para integración y entrega continua

Desde hace algo más de un par de años, llevo usando Runners de Gitlab para desplegar y realizar test de algunos proyectos que Desarrollo. Todo comenzó como una prueba con proyectos simples, como Music DL y socializer. La idea de los runners es utilizarlos para completar el Ciclo de CI/CD (esto es, integración y entrega continua). En términos generales, esto hace posible que cada que se cumpla una condición específica dentro del repositorio de código fuente (por ejemplo, crear una etiqueta para cada nueva versión, enviar un commit en un repositorio), un Runner se encargue de ejecutar una serie de comandos o scripts para ejecutar las unidades de prueba del proyecto, o incluso pueda compilar, empaquetar y distribuir directamente versiones listas para los usuarios. Esto es lo que hemos venido usando en TWBlue para las actualizaciones Snapshot desde hace un par de años, lo que al final fue un factor importante al decidir acortar el ciclo de desarrollo de las versiones de la aplicación. Personalmente, además, me gusta que un runner ejecute todas las tareas, ya que eso nos ayuda a nosotros a mantener nuestros equipos personales o de trabajo fuera de la distribución de TWBlue. Como se trata de proyectos Python, en ocasiones los módulos que nos ayudan a generar versiones distribuibles (como por ejemplo, cx_freeze) incluyen paquetes incorrectamente que no se usan en la aplicación. Esto no siempre puede controlarse apropiadamente y en ocasiones, una versión de TWBlue generada en el pasado incluía más o menos módulos extras e innecesarios según en el equipo de quién se habían construido las versiones distribuibles. Con un runner creando cada versión de nuestro software, nos aseguramos de tener una máquina que solo lleve instaladas las herramientas necesarias para lo que se va a construir, y también proporcionamos a todo quien quiera revisarlo, una lista de pasos reproducibles que necesitan ser ejecutados para crear una copia idéntica de nuestras versiones. Finalmente, el hecho que todo esto ocurra de manera completamente automática nos hace tener qué preocuparnos menos en prepararlo todo y ejecutar cada paso manualmente en nuestras máquinas: Un desarrollador solo tiene qué enviar un commit o crear la etiqueta adecuada, y el runner probará, construirá y subirá los ejecutables a nuestro sitio ftp en cuestión de minutos.

Leer más…

Cambios en proyectos para el 2022

Hola a todos

El día de hoy simplemente quisiera dar un anuncio para la gente que se encuentre siguiendo alguno de los proyectos en los que estoy involucrado. A lo largo de este año, que está ya por terminar, han surgido muchas cosas. Han existido nuevas oportunidades, así como otros proyectos a los que no les he podido dedicar todo el tiempo que me gustaría. Sin mencionar nuevas ocupaciones, responsabilidades y tareas que he ido asumiendo en mi puesto de trabajo actual. El resumen general de este año es que ha sido uno donde todo ha sido muy extraño. Cuando inició el año, no tenía idea que terminaría por adentrarme en el Desarrollo de Skills para Alexa, o que ese desarrollo acabaría por aparecer en algún sitio más allá de mi cuenta de Twitter. Pero al final todo ha seguido su curso, y es por eso que a partir del próximo año, todos los proyectos de software que yo desarrollaba hasta el momento, pasarán a formar parte de un nuevo proyecto. Este proyecto, del que ya he hablado en alguna otra ocasión en Twitter, es mi propia compañía de software, llamada MCV Software.

Leer más…

skills de Alexa como servicios web - parte 1: Creando la Skill en el portal de Amazon

El día de hoy inicio con algo que tenía pendiente intentar por varios meses ya. Escribiré un poco sobre cosas que voy descubriendo a la hora de desarrollar. Nuevas librerías, métodos y patrones de diseño, y en general cosas que vaya encontrando por el camino. He notado que hay mucha gente escribiendo sobre esto en inglés, pero no sé qué tanta gente escribe en español. Así que, en parte para contribuir un poco con la documentación sobre varios temas en español, y para no olvidar lo que voy aprendiendo, aquí estaré escribiendo sobre algunos temas que me resulten interesantes.

Leer más…

MusicDL 2020.07.31 ha sido liberado

Hola a todos.

Durante los últimos meses, he querido iniciar con la revisión y actualización de muchos de mis proyectos de software (incluso algunos que he abandonado hace ya unos años) con la idea de actualizar el código fuente, las características y aprender un par de cosas nuevas por el camino. Es probable que algunos de ustedes recuerden MusicDL, la aplicación que he escrito para descargar ficheros de audio de sitios populares como Youtube. Como seguramente recordarán en este artículo de mi blog, cuando publiqué por primera vez MusicDL, escribí que lo había hecho porque quería aprender y poner en práctica algo de conocimientos sobre web scraping en Python (el Web Scraping, básicamente, es la manera de obtener información desde una web utilizando para ello ciertas librerías y métodos para procesar los datos).

Leer más…

Undead Assault está de regreso!

¡Hola a todos! Durante el último par de semanas, probablemente algunos de ustedes han escuchado los rumores, o leído en algún sitio, sobre el regreso de Undead Assault.

Para aquellos que no lo saben, Undead Assault es un audiojuego que consiste en sobrevivir a grupos infinitos de zombis, con la posibilidad de jugar solo o en equipos de hasta 3 jugadores además de ti.

Leer más…

comparativos en ruso: Igual qué / lo mismo qué

En esta ocasión escribiré sobre cosas que he aprendido sobre los grados comparativos en Ruso. Realmente el grado comparativo es relativamente complejo (una parte, al menos), pero en estas líneas dejaré algo de lo más simple que he comenzado a practicar para realizar comparaciones o expresar cuando algo es igual que otra cosa.

Leer más…

Servidor NAS casero: Primeros pasos

Como he comentado en una publicación anterior, hace poco me he comprado una Odroid XU-4 con la idea de hacerla un servidor NAS casero para poder almacenar toda clase de archivos, que normalmente me gustaría tener disponible en todos los dispositivos de casa. En esta serie de artículos me gustaría detallar un poco el proceso de configuración del software (y en ocasiones de algunas particularidades que vienen con la propia placa), a fin de documentar de algún modo el proceso para más adelante. Tengo pensado comprarme, si las cosas van bien, el módulo eMMC, y sé que deberé repetir todo el proceso para configurar el sistema (los sectores de arranque de la partición primaria son diferentes para el Módulo eMMC y la tarjeta Micro SD, así que esto me obligaría a reconfigurarlo todo en lugar de copiar la partición primaria). También, si alguien que me lea está pensando en montarse un dispositivo con características similares, tal vez esto pueda resultar de utilidad.

Leer más…

Servidor NAS casero: Refrescando la Odroid XU-4

Continuando con la serie de artículos dedicados a la Odroid XU-4 y a mi aventura de intentar convertirla en un servidor NAS sin pasar por instalarme sistemas con todo ya integrado, ahora quería compartir una particularidad (o truco) que puede ayudar a que los componentes de la placa funcionen algo mejor.

Leer más…

Un nuevo integrante en la familia. Bienvenido, Odroid XU-4!

Hola!

Durante los últimos años, le he dado vida a un par de Raspberry Pi que tenía haciendo polvo en mi habitación, para convertir la primera en un servidor NAS casero (NAS son las siglas de Network Attached Device, y es un dispositivo que tiene como principal objetivo mantener un disco duro accesible a toda una red local) y la segunda en un HTPC (siglas para Home Teater PC, que es otro dispositivo que se utiliza para disfrutar contenido multimedia en una TV, similar a Roku, Chromecast, amazon Fire TV y otros). La idea era muy simple: El servidor NAS mantiene un disco duro accesible a todos los dispositivos conectados a la red de casa, y la HTPC podía ver todo el contenido que estaba en el NAS.

Leer más…

casos en ruso

Esta es una serie de apuntes sobre los casos en ruso que ahora mismo conozco. A medida que esta información aumenta, que espero que lo haga, iré actualizando el artículo. Esto está aquí no porque quiera mostrarlo a nadie en particular, sino porque es más fácil conservar estas notas en algún lugar más ordenado que mis directorios. Colocaré solo las terminaciones y cómo llegar a ellas, en caso de que sea necesaria alguna explicación.

Leer más…