Cada día es más habitual tener que guardar contraseñas o secretos en nuestros desarrollos. Desde las claves de autenticación imprescindibles para consultar diferentes APIs, hasta las credenciales con las que acceder a la base de datos en la cual se guardarán los resultados de las diferentes operaciones realizadas. Secretos que no es buena idea almacenar en el código. Al … [Leer más...] acerca de Guardar las contraseñas y claves en Python
Algoritmos de seguimiento (pursuit) para un problema Bandido Multibrazo (Multi-Armed Bandit)
Durante las últimas semanas he estado revisando algunas de las versiones de algoritmos UCB (Upper Confidence Bound) más utilizados a la hora de abordar problemas tipo Multi-Armed Bandit. Analizando durante este tiempo una importante cantidad de estos: UCB1, UCB2, UCB1-Tuned, UCB1-Normal, KL-UCB, UCB-V y CP-UCB. En esta ocasión vamos otro tipo de algoritmos como son los de … [Leer más...] acerca de Algoritmos de seguimiento (pursuit) para un problema Bandido Multibrazo (Multi-Armed Bandit)
Truco: Aumentar la memoria máxima en Node
Al ejecutar un proceso de Node que sea intensivo en memoria nos podemos encontrar que este finalice de una forma abrupta con un mensaje similar a FATAL ERROR: invalid table size Allocation failed - JavaScript heap out of memory. Lo que nos indica que este se ha quedado sin memoria. Generalmente esto no es debido a que el ordenador se quede sin memoria, sino a que se ha … [Leer más...] acerca de Truco: Aumentar la memoria máxima en Node
Probar números aleatorios en Python mediante mocks
Las pruebas automáticas son una parte clave de cualquier librería de código, ya que es la herramienta con la cual validar el correcto funcionamiento de esta después de incluir actualizaciones. Evitando de este modo que una actualización afecte al funcionamiento de los aplicativos donde se use. En el caso de que el código bajo pueda utilice un generador de números aleatorios es … [Leer más...] acerca de Probar números aleatorios en Python mediante mocks
CP-UCB para un problema Bandido Multibrazo (Multi-Armed Bandit)
La familia de algoritmos UCB es una de las que mejores resultados producen a la hora de enfrentarse a problemas tipo bandido multibrazo. En la que en bandido se selecciona teniendo en cuenta el intervalo de confianza de la recompensa empírica. Así no se selecciona el bandido cuya recompensa observada sea la mayor, sino aquel en el que estadísticamente se puede esperar el máximo … [Leer más...] acerca de CP-UCB para un problema Bandido Multibrazo (Multi-Armed Bandit)
Uso de GPU en JavaScript para mejorar el rendimiento
Actualmente la mayoría de los ordenadores cuentan tanto con CPUs como GPUs. Hasta hace poco las GPUs, a pesar de ser unos procesadores cada vez más potentes, solamente se utilizaban en juegos y otras aplicaciones que requerían realizar pesados cálculos gráficos. Actualmente la aparición de librerías como CUDA permite el uso de estos procesadores en aplicaciones de propósito … [Leer más...] acerca de Uso de GPU en JavaScript para mejorar el rendimiento
NumPy: Comprobar todos los valores de una matriz de NumPy
Una de las grandes ventajas de las matrices de NumPy es la posibilidad de realizar operaciones lógicas sobre ellas, como puede ser el caso de igualdades o comparaciones. El resultado de estas operaciones es una nueva matriz de valores lógicos donde se muestra el resultado de aplicar la operación sobre cada uno de los elementos. Algo con lo que es posible paralelizar análisis de … [Leer más...] acerca de NumPy: Comprobar todos los valores de una matriz de NumPy
UCB-V para un problema Bandido Multibrazo (Multi-Armed Bandit)
El algoritmo UCB-V es una variante de la familia UCB que utiliza la varianza para seleccionar el bandido en problemas tipo Bandido Multibrazo (Multi-Armed Bandit). Un algoritmo genérico que puede ser utilizado en cualquier tipo de bandido.UCB-VEn el algoritmo UCB-V se tiene que seleccionar en cada tirada aquel bandido que maximice la siguiente expresión.Donde es … [Leer más...] acerca de UCB-V para un problema Bandido Multibrazo (Multi-Armed Bandit)
Localizar la palabra más larga en una cadena de texto en JavaScript
En esta ocasión vamos a ver cómo se puede resolver un problema que a primera vista parece sencillo: localizar la palabra más larga en una cadena de texto. Para conseguir este objetivo va a ser necesario separar las palabras, ignorando los signos de puntuación, y medir la longitud de estas. Para lo que vamos a utilizar expresiones regulares en JavaScript.Paso 1: eliminar los … [Leer más...] acerca de Localizar la palabra más larga en una cadena de texto en JavaScript
Identificar y eliminar columnas duplicadas en Pandas
En los DataFrames de Pandas existe el método duplicated() con el que se pueden eliminar los registros duplicados de un DataFrame. Pero no es así para el caso de las columnas duplicadas. De modo que, en el caso querer comprobar la existencia de columnas duplicadas en un DataFrame es necesario programar el proceso de forma manual. Lo mismo en el caso de querer eliminar esta … [Leer más...] acerca de Identificar y eliminar columnas duplicadas en Pandas
MOSS para un problema Bandido Multibrazo (Multi-Armed Bandit)
MOSS (Minimax Optimal Strategy in the Stochastic case, Estrategia Óptima de Minimax en el caso estocástico) es una variante de UCB1 que se presenta como una aproximación generalizada, de modo que puede ser utilizado con cualquier tipo de bandido.MOSSEn la estrategia MOSS modifica la expresión que calcula en intervalo de confianza. Para ello se sustituye el término en el … [Leer más...] acerca de MOSS para un problema Bandido Multibrazo (Multi-Armed Bandit)
Truco JavaScript: repetir un vector en JavaScript
En Python existe una forma extremadamente sencilla de replicar el contenido de una lista una cantidad de veces, simplemente multiplicando la lista por un escalar. Por ejemplo, si escribimos [1, 2] * 3 se obtienen [1, 2, 1, 2, 1, 2]. Pero repetir un vector en JavaScript es algo más complicado que se puede conseguir con un par de trucos.Uso de Array(), fill() y … [Leer más...] acerca de Truco JavaScript: repetir un vector en JavaScript










