Apéndices

Biblioteca de algoritmos

Evidentemente, nuestra elección es parcial, pero creemos que aquí encontrará mucho material para reflexionar.

Para cada uno de estos algoritmos, encontrará una referencia a un paquete Python que permite ponerlo en práctica y un enlace a la documentación del paquete. Estos paquetes incluyen muchos otros algoritmos muy útiles, por lo que le invitamos a recorrerlos con asiduidad para «reforzar» su caja de herramientas.

1. Algoritmos de moda estos últimos años

En primer lugar, he aquí una lista de los algoritmos mainstream actuales, disponibles a veces en paquetes de Python muy conocidos y potentes, que suelen utilizar las personas que trabajan en aprendizaje automático, IA o criptografía.

Algoritmo

Paquete

Documentación del paquete

Aplicación

K-Means Clustering

scikit-learn

https://scikit-learn.org/stable/

Agrupación de datos en clústeres en función de sus características

CART (Classification And Regression Trees)

scikit-learn

https://scikit-learn.org/stable/

Clasificación y toma de decisiones basadas en árboles de decisión

Backpropagation

tensorflow

https://www.tensorflow.org/api_docs

Retropropagación para el aprendizaje profundo

Redes Neuronales Convolucionales CNN (Convolutional neural network)

tensorflow

https://www.tensorflow.org/api_docs

Visión por ordenador, reconocimiento de imágenes y detección de objetos

Redes Neuronales Recurrentes RNN (Recurrent Neural Network)

tensorflow

https://www.tensorflow.org/api_docs

Modelización de secuencias, lenguaje natural y traducción automática

Redes Neuronales de Memoria a Corto Plazo LSTM (Long Short Term Memory)

tensorflow

https://www.tensorflow.org/api_docs

Modelización de secuencias, lenguaje natural y traducción automática

Simplex

scipy

https://docs.scipy.org/doc/scipy/reference/

Resolución de problemas de optimización lineal

Particle Swarm Optimization

psywarm

https://pyswarms.readthedocs.io/en/latest/

Optimización mediante enjambre de partículas

EM Expectation-Maximization

mixem

https://mixem.readthedocs.io/en/latest/

Estimación de parámetros de modelos estadísticos utilizando EM

AES (Advanced Encryption Standard)

pycryptodoma

https://pycryptodome.readthedocs.io/en/latest/

Cifrado y descifrado de datos...

Tipos MIME

Los siguientes tipos de medios son más fáciles de interpretar por las herramientas web, que se supone que saben cómo manejarlos porque están estandarizados, ¡lo cual no exime de declararlos en su servidor!

1. Aplicaciones

Los siguientes tipos corresponden a aplicaciones, o contextos de aplicación de referencia, que contienen información heterogénea, pero directamente interpretable por las aplicaciones o contextos en cuestión.

a. Aplicaciones genéricas

Tipo

Descripción

application/EDI-X12

Estándar de datos ANSI ASC X12 EDI. Intercambio electrónico de datos, para estandarizar las transacciones comerciales entre empresas.

application/EDIFACT

Estándar de datos EDI EDIFACT. Norma internacional para el intercambio de datos empresariales estructurados electrónicamente.

application/javascript

Estándar para datos JavaScript.

application/octet-stream

Flujo de datos arbitrario, a menudo utilizado como formato predeterminado para archivos ejecutables o archivos de tipo desconocido (¡Peligro!).

application/ogg

Contenedor para un flujo de datos multimedia Ogg, audio y vídeo en streaming.

application/pdf

Estándar para documentos en formato PDF (Portable Document Format).

application/xhtml+xml

Estándar para documentos en formato XHTML.

application/x-shockwave-flash

Archivo Adobe Flash.

application/json

Estándar para datos en formato JSON (JavaScript Object Notation).

application/ld+json

Estándar para la serialización de datos basada en JSON para datos enlazados.

application/xml

Estándar para datos en formato XML (eXtensible Markup Language).

application/zip

Archivo comprimido ZIP.

b. Aplicaciones ofimáticas

Tipo

Descripción

application/vnd.oasis. opendocument.text

Formato de texto guardado en un OpenDocument.

application/vnd.oasis. opendocument.spreadsheet

Formato de hoja de cálculo guardado en un OpenDocument.

application/vnd.oasis. opendocument.presentation

Formato de presentación guardado en un OpenDocument.

application/vnd.oasis. opendocument.graphics

Formato gráfico guardado en un OpenDocument.

application/vnd.ms-excel

Formato de archivo para Microsoft Excel en formato .xls.

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Formato de archivo para Microsoft Excel en formato .xlsx. (Office Open XML Workbook)

application/ vnd.ms-powerpoint

Formato...

Códigos para generar algunas de las ilustraciones del libro

Hemos seleccionado los códigos de algunas de las ilustraciones del libro que nos ha parecido más útil reproducir.

1. NameNodes, código en sintaxis PlantUML

Los datos utilizados para generar este gráfico están estructurados en YAML (véase En el corazón de la máquina, sección HDFS más de cerca, ilustración: Arquitectura HDFS - Replicación de bloques en los DataNodes de un NameNode).

@startyaml  
 
Descripción del contenido de un NameNode en términos de  
archivos gestionados en HDFS  
 
'TIPS de sintaxis utilizados: saltos de línea (slash n)  
y negrita en sintaxis criolla (**)  
 
title NameNode  
  
\nDataNode_1\n:  
  HDFS :  
    - Bloque_i  
    - \nBloque_**j**\n  
    - Bloque_...  
  
\nDataNode_2\n:  
  HDFS :  
    - Bloque_i  
    - Bloque_k  
    - Bloque_...  
  
\nDataNode_3\n:  
  HDFS :  
    - \nBloque_**j**\n  
    - Bloque_k  
    - Bloque_...  
  
  
@endyaml 

2. Tabla de topologías, código en sintaxis PlantUML

Este código se estructura en forma de una nota PlantUML que contiene una tabla PlantUML (véase el capítulo En el corazón de la máquina, sección Introducción a las redes locales, ilustración: ¿Cómo se distribuyen las máquinas en una red?).

@startuml  
 
note as mi_nota  
 
**Topologías de referencia**  
 
__  
<#white>|=   \n                |= Descripción |  
<#white>|   **en estrella** (star)     |  periféricos conectados 
a un concentrador o a un conmutador central           |  
<#white>|   **en...