3 Power Tips + 1 Power Link I7
Resumen: Tips para bash, KDE Plasma y el uso del shell para cambiar entre ambientes de desarrollo. Además, en el Power Link, un artículo de Aaron P. MacSween, en el que discute el uso de AI scraping de sitios web usados de manera no consensuada para entrenar Modelos Extensos de Lenguaje (LLMs).
Power Tip #1: Agrupación de comandos en bash
El shell bash permite agrupar comandos, una funcionalidad tan sencilla como potente, por ejemplo:
{ dnf -y upgrade && systemctl restart httpd mariadb php-fpm ; } || echo "The final status is unsuccessful 🙁"
De esta manera si algunos de los dos comandos falla, mostrará un mensaje de error unificado.
Power Tip #2: Uso de cuadros de diálogos nativos de KDE Plasma en Firefox
Para hacerlo hay que abrir la url about:config y luego setear la preferencia widget.use-xdg-desktop-portal.file-picker en 1.
Esto se basa en el uso de XDG Portals que es un elemento de la arquitectura de entornos gráficos. Ellos proporcionan sandboxing, funcionalidad en entornos Wayland y lo que nos interesa en este caso: coherencia en la interfaz del usuario.
| Antes 🤐 | Después 😎️ |
|---|---|
Ah... usar la variable de entorno MOZ_USE_XDG_PORTAL no es la manera recomendada, más allá de lo que diga cierto chatbot...
Power Tip #3: [Flask + Linux]: Entornos Seguros usando solo la Shell
Problema Común
Ejecutar una app Flask con DEBUG=True en producción expone trazas de errores, rutas internas y detalles del stack que pueden ser explotados. Un sysadmin o devops con experiencia sabe que una práctica profesional es externalizar la configuración y usar el sistema operativo como interruptor de entorno.
Solución Basada en Linux + Flask
Usá la variable de entorno de Linux FLASK_ENV para alternar entre una configuración segura de Producción (config_prod.py) y una configuración orientada a Desarrollo (config_dev.py).
| Archivo | Ajuste Crítico | Enfoque Operacional |
|---|---|---|
config_dev.py |
DEBUG = True |
Enfoque en depuración y agilidad. |
config_prod.py |
DEBUG = FalseSECRET_KEY = os.environ.get('PROD_KEY')
|
Prioridad a la Seguridad y la Gestión de Secretos mediante la shell de Linux. |
Fragmento de app.py
import os from flask import Flask # Se importan las clases para un código robusto: from config_dev import DevelopmentConfig from config_prod import ProductionConfig app = Flask(__name__) if os.environ.get('FLASK_ENV') == 'production': # Entorno PROD: Carga DEBUG=False app.config.from_object(ProductionConfig) else: # Entorno DEV: Carga DEBUG=True por defecto app.config.from_object(DevelopmentConfig)
Control desde la Terminal
| Entorno Deseado | Comando Linux | Resultado |
|---|---|---|
| Producción | export FLASK_ENV=production; python app.py |
* Debug mode: off (Modo seguro activado por el shell de Linux). |
| Desarrollo | unset FLASK_ENV; python app.py |
* Debug mode: on (La variable se borra, volviendo al modo de depuración). |
✅ Conclusión:
Este patrón convierte tu shell de Linux en un switch seguro de entorno para tu app Flask.
Preguntas de repaso
-
Seguridad y DevOps (Power Tip #3): ¿Cuál es el riesgo principal de ejecutar una aplicación Flask con
DEBUG=Trueen producción, y cómo permite la variable de entorno de LinuxFLASK_ENVque el administrador (sysadmin o devops con experiencia) cambie de manera segura a la configuración de producción (config_prod.py) usando solo un comando en la shell? -
Eficiencia en Bash (Power Tip #1): En el ejemplo de agrupación de comandos, ¿cuál es el propósito de encerrar las sentencias de actualización (
dnf -y upgrade) y de reinicio de servicios (systemctl restart ...) entre llaves{}, y qué rol juega el operador lógico||en caso de que alguna de estas operaciones falle? -
Experiencia de Usuario (Power Tip #2): Si un usuario de KDE Plasma desea que Firefox utilice los cuadros de diálogo nativos del escritorio en lugar de los predeterminados del navegador, ¿qué URL debe abrir y a qué valor debe establecer la preferencia
widget.use-xdg-desktop-portal.file-picker?
Power Link
AI scrapers request commented scripts. ¿Hasta qué punto una actividad es considerada benigina cuando se entrenan LLMs? Y muchas cuestiones para pensar...
Comentarios
Comments powered by Disqus