Mostrando entradas con la etiqueta Python. Mostrar todas las entradas
Mostrando entradas con la etiqueta Python. Mostrar todas las entradas

sábado, 25 de julio de 2026

Sabes que es FENICs?

 Fuente: https://fenicsproject.org/

La plataforma informática FEniCS

FEniCS es una popular plataforma informática de código abierto para resolver problemas parciales ecuaciones diferenciales (PDE) con el método de elementos finitos (FEM). FEniCS permite a los usuarios hacerlo rápidamente traducir modelos científicos en código eficiente de elementos finitos. Con el Interfaces de Python y C++ de alto nivel para FEniCS, es fácil de obtener iniciado, pero FEniCS también ofrece capacidades potentes para más programadores experimentados. FEniCS funciona en una multitud de plataformas desde computadoras portátiles hasta computadoras de alto rendimiento.


lunes, 18 de mayo de 2026

Google Colab & GitHub

 Google Colab y GitHub se integran a la perfección, permitiéndote abrir, editar y guardar cuadernos (notebooks) directamente desde tus repositorios. Es la combinación ideal para desarrollar proyectos de programación y ciencia de datos, combinando el poder computacional de Google con el control de versiones de GitHub. [1, 2, 3, 4]

Para aprovechar esta conexión, sigue estos pasos:
1. Abrir cuadernos desde GitHub
No necesitas descargar el archivo a tu computadora: [1]
  • Ve a Google Colab.
  • Selecciona la pestaña GitHub en la ventana emergente.
  • Conecta tu cuenta y pega la URL de tu repositorio, o busca tu nombre de usuario para encontrar el archivo. [1, 2, 3]
2. Guardar tu trabajo en GitHub
Una vez que hayas realizado cambios y ejecutado tu código, puedes actualizar tu repositorio: [1]
  • Ve al menú superior y haz clic en Archivo > Guardar una copia en GitHub.
  • Si es tu primera vez, Colab te pedirá acceso a tu cuenta de GitHub. [1, 2]
3. Trabajar mediante comandos (Clonación)
Si necesitas acceder a todos los archivos de un repositorio a la vez (como conjuntos de datos o scripts adicionales), puedes clonarlo:
  • Abre un cuaderno en Colab y monta tu Google Drive.
  • Utiliza el comando mágico para clonar el proyecto en tu nube:
    !git clone https://github.com
    [1]
Consejo PRO: Puedes anteponer el prefijo https://google.com a la URL de cualquier archivo .ipynb en GitHub para abrirlo instantáneamente en el entorno de Colab. [1, 2]

viernes, 24 de abril de 2026

Gerencia de proyectos. Utilización de Python para análisis costo-beneficio

Fuente: Gemini

¡Absolutamente! Python es una de las herramientas más potentes para la gestión de proyectos (Project Management) y el Análisis de Costo-Beneficio (ACB) debido a su capacidad para manejar grandes volúmenes de datos, automatizar cálculos complejos y generar visualizaciones claras para la toma de decisiones.

Aquí te presento cómo se aplica en cada área con ejemplos resueltos.


1. Análisis de Costo-Beneficio (ACB)

El ACB busca determinar si una inversión es rentable comparando el Valor Presente Neto (VAN o NPV) y la Tasa Interna de Retorno (TIR o IRR).

Ejemplo Resuelto: Evaluación de un Proyecto de Software

Supongamos que una empresa quiere invertir 100,000 USD en un nuevo sistema. Se espera que ahorre 30,000 USD anuales durante 5 años. La tasa de descuento es del 10%.

Python 1.
>>import numpy_financial as npf

>># Datos del proyecto
>>inversion_inicial = -100000
>>flujos_efectivo = [30000, 30000, 30000, 30000, 30000]
>>tasa_descuento = 0.10

>># Unir la inversión con los flujos
>>caja = [inversion_inicial] + flujos_efectivo

>># Cálculos
>>van = npf.npv(tasa_descuento, caja)
>>tir = npf.irr(caja)

>>print(f"Valor Presente Neto (VAN): ${van:,.2f}")
>>print(f"Tasa Interna de Retorno (TIR): {tir:.2%}")

>>if van > 0:
>>    print("Resultado: El proyecto es financieramente viable.")
>>else:
>>    print("Resultado: El proyecto no es viable.")

En google colab:

>>!pip install numpy-financial

>>>
Collecting numpy-financial
  Downloading numpy_financial-1.0.0-py3-none-any.whl.metadata (2.2 kB)
Requirement already satisfied: numpy>=1.15 in /usr/local/lib/python3.12/dist-packages (from numpy-financial) (2.0.2)
Downloading numpy_financial-1.0.0-py3-none-any.whl (14 kB)
Installing collected packages: numpy-financial
Successfully installed numpy-financial-1.0.0
>> Python 1.

>>>
Valor Presente Neto (VAN): $13,723.60
Tasa Interna de Retorno (TIR): 15.24%
Resultado: El proyecto es financieramente viable.

2. Gestión de Proyectos: Método de la Ruta Crítica (CPM)

Python permite calcular fechas tempranas, tardías y la ruta crítica de un proyecto (las tareas que, si se retrasan, retrasan todo el proyecto).

Ejemplo Resuelto: Programación de Tareas

Utilizando la librería criticalpath, podemos definir dependencias:

Python 2.
>>from criticalpath import Node

>># Crear el proyecto
>>p = Node('Proyecto Construcción')

>># Añadir tareas (Nombre, duración)
>>a = p.add(Node('A: Cimientos', duration=5))
>>b = p.add(Node('B: Paredes', duration=10))
>>c = p.add(Node('C: Techo', duration=7))
>>d = p.add(Node('D: Instalación Eléctrica', duration=4))

>># Definir dependencias (B depende de A, C depende de B, etc.)
>>p.link(a, b).link(b, c)
>>p.link(b, d) # La electricidad puede empezar tras las paredes

>># Calcular ruta crítica
>>ruta_critica = p.get_critical_path()
>>duracion_total = p.get_duration()

>>print(f"Ruta Crítica: {[str(n) for n in ruta_critica]}")
>>print(f"Duración total del proyecto: {duracion_total} días")



>>!pip install criticalpath
>>>
Collecting criticalpath
  Downloading criticalpath-0.1.5.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: criticalpath
  Building wheel for criticalpath (setup.py) ... done
  Created wheel for criticalpath: filename=criticalpath-0.1.5-py3-none-any.whl size=12028 sha256=e2e0fb8fd5509a1a61a276a5a281c5273b5b6d402634246079e1e69134070b0f
  Stored in directory: /root/.cache/pip/wheels/d8/45/b4/18e42948498dfccab8c61f199bc0473d6045b18e1b170e69ef
Successfully built criticalpath
Installing collected packages: criticalpath
Successfully installed criticalpath-0.1.5

>>Python 2.
>>>
Ruta Crítica: ['A: Cimientos', 'B: Paredes', 'C: Techo']
Duración total del proyecto: 22 días


3. Visualización con Diagramas de Gantt

Aunque existen softwares como MS Project, con Python puedes generar diagramas dinámicos usando Plotly o Matplotlib.

Ejemplo de Visualización:

Python
import plotly.express as px
import pandas as pd

df = pd.DataFrame([
    dict(Task="Diseño", Start='2026-05-01', Finish='2026-05-15', Resource='Equipo A'),
    dict(Task="Desarrollo", Start='2026-05-16', Finish='2026-06-20', Resource='Equipo B'),
    dict(Task="Testing", Start='2026-06-21', Finish='2026-07-05', Resource='Equipo A')
])

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Resource")
fig.update_yaxes(autorange="reversed")
fig.show()


>>>

May 32026May 17May 31Jun 14Jun 28DesarrolloTestingDiseño
ResourceEquipo AEquipo BTask

Beneficios de usar Python frente a Excel:

  1. Repetibilidad: Puedes ejecutar el mismo análisis con nuevos datos en segundos.

  2. Simulación de Monte Carlo: Puedes modelar la incertidumbre del proyecto generando miles de escenarios aleatorios para ver la probabilidad de éxito.

  3. Integración: Puedes conectar tus scripts directamente a bases de datos de la empresa o APIs de finanzas.

viernes, 27 de marzo de 2026

Ruta para ser un ingeniero de confiabilidad de software de la mano con Python

Fuente: Gemini.

¡Excelente elección! Convertirse en un Site Reliability Engineer (SRE) o Ingeniero de Confiabilidad es como ser el "mecánico de fórmula 1" del software: tu trabajo no es solo que el carro ande, sino que no explote a 300 km/h.

En 2026, Python sigue siendo el lenguaje rey para esto porque es el pegamento que une la infraestructura con el código. Aquí tienes tu hoja de ruta (roadmap) para pasar de programador a guardián de la disponibilidad.


🛠️ Fase 1: Python para Sistemas (No solo Web)

Un SRE no hace aplicaciones para usuarios finales, hace herramientas para otros ingenieros. Olvida un poco Django y enfócate en:

  • Manipulación del OS: Domina las librerías os, sys, pathlib y subprocess. Debes ser capaz de mover archivos, revisar permisos y ejecutar comandos del sistema desde Python.

  • Networking: Aprende requests para interactuar con APIs y socket para entender qué pasa a bajo nivel en la red.

  • Manejo de errores: Un SRE escribe código paranoico. Tu código debe tener try-except hasta para respirar. Si tu script de automatización falla y no deja un log, el problema eres tú.


📊 Fase 2: La Matemática de la Confiabilidad

Aquí es donde entra la ciencia. Un SRE vive por los SLI (Indicadores), SLO (Objetivos) y SLA (Acuerdos).

La métrica reina es la Disponibilidad (Availability), que se calcula así:

$$\text{Availability} = \frac{\text{Uptime}}{\text{Uptime} + \text{Downtime}} \times 100$$

Tu misión: Aprende a usar la librería Pandas para analizar logs de servidores y calcular cuánto tiempo estuvo caído el servicio realmente. Un ingeniero de confiabilidad toma decisiones basadas en datos, no en "corazonadas".


🏗️ Fase 3: Infraestructura como Código (IaC) con Python

Ya nadie entra a una consola a crear servidores a mano.

  • Pulumi: A diferencia de Terraform (que usa HCL), Pulumi te permite definir infraestructura usando Python puro. Es la herramienta ideal para un SRE que ama programar.

  • Boto3: Es la librería oficial de AWS para Python. Debes saber crear un bucket de S3 o reiniciar una instancia EC2 usando solo código.


🔍 Fase 4: Observabilidad (El arte de ver lo invisible)

Si no lo puedes medir, no lo puedes mejorar.

  • Prometheus + Python: Aprende a usar prometheus-client para exponer métricas personalizadas de tus aplicaciones (ej. cuánto tarda una consulta a la base de datos).

  • Log Parsing: Crea scripts que lean millones de líneas de logs y detecten patrones de error antes de que el cliente se dé cuenta.


🚀 Tu Primer Proyecto de Portafolio

Para demostrar que eres un SRE, construye un "Self-Healing System" (Sistema de Autocuración) básico:

  1. Script A: Un programa en Python que monitorea un servicio (ej. un servidor web).

  2. Script B: Si el Script A detecta que el servicio falló (error 500), debe intentar reiniciarlo automáticamente, limpiar el caché y enviar una alerta a un canal de Slack.

  3. Reporte: Al final del día, genera un PDF con las estadísticas de fallos usando la librería ReportLab.


📚 Recursos Recomendados

  • Libro: Site Reliability Engineering de Google (está gratis online, es la "Biblia").

  • Cursos: Busca certificaciones de Linux Foundation o el CKA (Certified Kubernetes Administrator), pero siempre aplicando los laboratorios con scripts de Python.

¿Te gustaría que te escribiera un ejemplo de un script básico en Python para monitorear la salud de una URL y que te avise si el tiempo de respuesta supera los 500ms? Es el primer paso para tu sistema de monitoreo.