Desactivar la verificación de versión para extensiones de GNOME

Las extensiones de GNOME Shell son una forma fantástica de personalizar y ampliar la funcionalidad de tu entorno de escritorio GNOME. Sin embargo, GNOME aplica una verificación de versión, lo que significa que si una extensión no está marcada explícitamente como compatible con tu versión actual de GNOME Shell, no se cargará. Esto puede ser frustrante si sabes que una extensión funciona bien, o si estás desarrollando una extensión y quieres probarla fácilmente. ...

marzo 24, 2025 · 3 min · Elvin Guti

Fastfetch: Información del Sistema, a Tu Manera

¿Cansado de las salidas de información del sistema simples? Fastfetch es una herramienta de línea de comandos (similar a Neofetch) que muestra detalles esenciales del sistema en un formato altamente personalizable y visualmente atractivo. Obtén información sobre tu sistema operativo, kernel, CPU, GPU, RAM, uso del disco y mucho más, todo presentado con arte ASCII colorido y diseños configurables. Características Clave: Rendimiento rápido. Salida altamente personalizable (colores, logotipos, información mostrada). Amplia gama de sistemas operativos compatibles. Fácil de instalar. Instalación: ...

marzo 21, 2025 · 1 min · Elvin Guti

Script para ejecutar pruebas en Jest y obtener el coverage de un archivo específico

Necesitaba automatizar el proceso de ejecutar pruebas en Jest y obtener el coverage de un archivo específico. Creé este script para ayudarme con eso. #!/bin/bash # Color definitions BLUE='\033[0;34m' GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' CYAN='\033[0;36m' NC='\033[0m' # No Color BOLD='\033[1m' # Function to display usage show_usage() { echo -e "${YELLOW}Usage:${NC} $0 [--find-by-name] <relative-file-path> [additional test options]" echo -e "${YELLOW}Examples:${NC}" echo -e " $0 src/components/Button.tsx --watch" echo -e " $0 src/components/Button.tsx --find-by-name --watch" exit 1 } # Initialize variables FIND_BY_NAME=false RELATIVE_FILE_PATH="" # Parse arguments while [[ $# -gt 0 ]]; do case $1 in --find-by-name) FIND_BY_NAME=true shift ;; *) if [ -z "$RELATIVE_FILE_PATH" ]; then RELATIVE_FILE_PATH="$1" else break # Stop parsing and keep remaining args for test options fi shift ;; esac done # Check if a file name is provided if [ -z "$RELATIVE_FILE_PATH" ]; then show_usage fi # Check if the file exists if [ ! -f "$RELATIVE_FILE_PATH" ]; then echo -e "${RED}Error: ${NC}File '${YELLOW}${RELATIVE_FILE_PATH}${NC}' not found. 😕" exit 1 fi FILE_PATH=$(echo "$RELATIVE_FILE_PATH" | cut -d'/' -f3-) # Get just the file name without extension for --find-by-name mode FILE_NAME=$(basename "$RELATIVE_FILE_PATH") FILE_NAME_NO_EXT="${FILE_NAME%.*}" # Construct the corresponding test file path TEST_FILE_NAME="${FILE_PATH%.*}.test" if [ "$FIND_BY_NAME" = true ]; then # Search by file name TEST_PATH=$(find "tests" -type f \( -name "${FILE_NAME_NO_EXT}.test.tsx" -o -name "${FILE_NAME_NO_EXT}.test.ts" \)) else # Original search by path TEST_PATH=$(find "tests" -type f \( -path "*/${TEST_FILE_NAME}.tsx" -o -path "*/${TEST_FILE_NAME}.ts" \)) fi # Check if the test file exists if [ -z "$TEST_PATH" ]; then echo -e "${RED}Error: ${NC}Test file for '${YELLOW}${RELATIVE_FILE_PATH}${NC}' not found in 'tests' directory. 😕" echo -e "Test file name: ${YELLOW}${FILE_NAME_NO_EXT}.test.tsx${NC}" echo -e "${YELLOW}Hint:${NC} If you're looking for a file by name, try using the --find-by-name flag." exit 1 fi # Print test information with styling echo -e "\n${BLUE}╔════════════════════════════════════════════════════════════╗${NC}" echo -e "${GREEN}▶ Running Coverage Test${NC}" echo -e "${CYAN}📁 Source file:${NC} ${RELATIVE_FILE_PATH}" echo -e "${CYAN}🧪 Test file:${NC} ${TEST_PATH}" echo -e "${CYAN}⚙️ Options:${NC} $@" echo -e "${BLUE}╚════════════════════════════════════════════════════════════╝${NC}\n" yarn test "$TEST_PATH" --coverage --collectCoverageFrom="$RELATIVE_FILE_PATH" "$@" Uso Los casos de prueba están en la carpeta tests. El script buscará el archivo de prueba por ruta de manera predeterminada. Si deseas buscar por nombre, puedes usar la bandera --find-by-name. ...

marzo 3, 2025 · 2 min · Elvin Guti

Crear descripciones de pull requests usando Aider y OpenRouter

Para reducir el tiempo que dedico a escribir instrucciones de pull requests, he estado usando Aider con OpenRouter para generarlas. ¿Cómo funciona? Aider es una herramienta que utiliza IA para ayudarte a escribir código. Es un chatbot que puede ayudarte a escribir código, corregir errores e incluso escribir pruebas. OpenRouter es una herramienta que te permite enrutar peticiones a diferentes APIs. En este caso, la usaremos para enrutar la petición a Aider. ...

marzo 3, 2025 · 4 min · Elvin Guti

Tailscale con NordVPN al mismo tiempo en GNU/Linux

NordVPN por defecto no permite que los usuarios se conecten a Tailscale. Esto es debido a que NordVPN bloquea el trafico de tailscale. Para solucionar esto, solo debes ejecutar los siguientes comandos: nordvpn whitelist add subnet 100.64.0.0/10 nordvpn whitelist add subnet fd7a:115c:a1e0::/48 nordvpn whitelist add port 41641 Luego, reiniciar la conexión de NordVPN: nordvpn d nordvpn c US Finalmente, si no estas conectado a Tailscale, entonces conectate a Tailscale: tailscale up --accept-routes --shields-up

octubre 3, 2024 · 1 min · Elvin Guti