La Navaja Suiza

Python

Automatizando Tareas

Portable

Multiherramienta

Multifunción

Versátil

Conveniente

Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly & easy to learn;
is Open.

"Python donde podemos, C++ donde debemos." Greg Stein

Web

  • Django
  • Pyramid
  • Tornado
  • Laravel
  • Express.js
  • Spring Boot
  • APS.NET ...

Python

Alternativas

Frameworks

  • axios
  • apollo
  • rocket
  • ...

Libs

Frameworks

Libs

  • requests

  • asyncio

  • aiohttp

  • jinja

  • ...

Microframeworks

  • Flask
  • Bottle
  • keras
  • tensorflow
  • pytorch
  • scikit-learn

Inteligencia Artificial, Machine Learning y Deep Learning

IA: Es la capacidad de un computador para mostrar comportamiento inteligente.

ML: Son los métodos y tecnicas para llegar a esa capacidad.

DL: Técnicas de ML que utilizan redes neuronales

Procesamiento de Lenguaje Natural

Visión Artificial

Ciencias de Datos

  • nltk
  • textblob
  • opencv
  • tesseract
  • pillow
  • pandas
  • numpy
  • SciPy
  • matplotlib

Videojuegos

  • Pygame
  • Cocos
  • Kivy
  • Panda3D
  • Pyglet
  • Unity3D
  • Unreal Engine
  • Godot Engine

 

Python

Alternativas

Seguridad Informática

Inteligencia de Negocios

Infraestructura

CEO

Control de Calidad

Marketing

Reliability engineering

Big Data

Data Warehouse

Sistemas Embebidos

Automatización

  • Optimización de procesos
  • Reducción de esfuerzos y tiempos
  • Reducción de la incertidumbre de errores

Objetivos

Es el uso de sistemas o elementos computarizados, electromecánicos, electroneumáticos y electrohidráulicos para fines industriales. Wikipedia

La automatización consiste en usar la tecnología para realizar tareas casi sin necesidad de las personas.  Redhat

Workflow

Análisis

  • Identificación de procesos y flujos de trabajo manuales. (workflows)
  • Estimaciones y valoraciones de tiempo y esfuerzo.

Idea

Representación mental de una posible solución.

Viabilidad

Factibilidad

Probabilidad de llevarse a cabo

(éxito o fracaso)

NO

SI

Disponibilidad de los recursos

(tiempo, dinero, manos de obra, etc)

Planificación

Detección

  • Entradas (sensores, extracción de información)
  • Métricas y parámetros en general

Desacoplamiento

  • Categorización de los datos de entrada
  • División del problema

Desarrollo

  • Preprocesamiento de entradas / parámetros / métricas (limpieza ruido en los datos, reducción de incertidumbre)
  • Procedimiento para interpretar la información (procesamiento de los parámetros de entrada) y realizar acciones en función de ellas.

Reporte

Registro  / Logging

Registro de los movimientos y acciones que realice la solución en logs, bases de datos u otros.

Salud del sistema

Forma de saber si el servicio o la solución esta realizando su trabajo correctamente (activo, no activo, nivel de carga).

Visualización

Visualización de métricas relacionadas al funcionamiento del sistema.

grafana / prometeus / kibana

logstash

Scripts

Automatización  de Tareas Cotidianas

 “Automate the boring stuff with python” de Al Sweigart.

Organizador de Directorios

Escucha eventos (copiar y mover) en una ruta específica (en mi caso "downloads"), mueve los archivos que participen en dichos eventos a carpetas personalizables (docs, images, compress, sound, etc) sin dañar su integridad.

Workflow

Idea

Automatizar el proceso de organizar un directorio en tiempo real.

Viabilidad, Factibilidad y Planificación

¿tiempo y predisposición?: Si

¿librerias disponibles?: Si (watchdog)

¿posible de realizar?: Si

Workflow

Desarrollo

  • 2 semanas aprox.
  • Lógica recursiva para la inspección de directorios.
  • Escucha constante de los eventos en directorio.

Reporte

Solo registro de actividades

Automatic Meet Opener

Gracias a la API de Google Calendars es posible extraer los eventos ligados a una cuenta de Google, posteriormente son calendarizados por la lib scheduler; una vez el evento este cerca  automaticamente abre la videollamada en tu navegador por defecto.

Text

Text

Workflow

Idea

Automatizar el procesos de preparación (recordar, abrir navegador, ingresar a google calendars y finalmente abrir el enlace) para llegar puntual a una reunión en Google Meet.

Viabilidad, Factibilidad y Planificación

¿tiempo y predisposición?: Si
¿API?: Si (Google Calendar API)

¿librerias disponibles?: Si (scheduler, google libs en general)

¿posible de realizar?: Si

Workflow

Desarollo

  • 3 días aprox.
  • Tokens de autorización que google provée a través de google cloud platform.
  • Peticiones HTTP mediante las libs de google.
  • Calendarización gracias a la lib scheduler built-in de python.

Automatic Workout Routine

Gracias a la API de WGER es posible recuperar ejercicios aleatoriamente (nombre, descripción y una imagen en algunas ocaciones), una vez recuperado el ejercicio se realiza una búsqueda de videos en YouTube, se expone en una pagina con todos los datos del ejercicio y los videotutoriales.

Text

Text

Workflow

Idea

Automatizar el proceso de adquisión de información de rutinas y ejercicios físicos para entrenar desde casa.

Viabilidad, Factibilidad y Planificación

¿tiempo y predisposición?: Si
¿API?: Si (WGER)

¿librerias disponibles?: Si (requests)

¿posible de realizar?: Si

Workflow

Desarollo

  • 5 días aprox.
  • Análisis del funcionamiento de la API.
  • Mapeo manual de la API y abstracción en clases.
  • Obtención de aleatoria de ejercicios.
  • Búsqueda de videos en youtube.
  • Despliege de página estática en el servidor built-in de python.

Notificador de Intrusos - WiFi

Gracias a la lib scapy podemos aprovechar el protocolo ARP para descubrir los dispositivos conectados a una red, teniendo un preregistro de las MAC de nuestros dispositivos (whitelist) y bajo una sencilla comparación  es posible descubrir a un intruso en nuestra red, posteriormente el usuario es notificado al celular gracias a Twilio SMS.

Funny Virtual Camera

Text

Text

Workflow

Idea

Automatizar el proceso de introducción de contenido multimedia (video, imagenes, memes, etc) a una cámara y aplicar técnica chroma key para agregar un background al video stream.

Viabilidad, Factibilidad y Planificación

¿tiempo y predisposición?: Si

¿librerias disponibles?: Tal vez

¿posible de realizar?: Tal vez

Workflow

Desarrollo

  • Búsqueda incesante de una forma de simular una cámara.
    • https://github.com/letmaik/pyvirtualcam
    • https://obsproject.com/forum/resources/obs-virtualcam.949/
  • Búsqueda de una forma de retirar el fondo verde y agregar un fondo a elección, alternativas:
    • Filtros por rango de colores (casi instantáneo)
    • Segmentación (25 -40 segundos)
  • Lógica de lectura de camara, substracción de fondo, montaje de nuevo fondo y envio de la imagen resultante a la camara virtual.

Mauricio S. Matias Conde

  • Amante del movimiento Open Source Hardware y Open Source Software
  • Miembro de la comunidad "Hacklab Cochabamba"
  • Software Developer, Ethical Hacking Consultores
  • Estudiante de Ing. de Sistemas (UMSS)
  • Blogger en Medium
  • Maker

cr0wg4n

Made with Slides.com