En un informe reciente de la empresa Sonatype se ha notificado la existencia de varios paquetes de Python, disponibles en PyPI, con código malicioso que convierte los equipos atacados en mineros de criptomonedas. En concreto el informe hace referencia a los siguientes paquetes:maratlibmaratlib1matplatlib-plusmllearnlibmplatliblearninglibLos cuales, según indica el … [Leer más...] acerca de Descubiertos paquetes con programas maliciosos para minar criptomonedas en PyPI
Librería Python para resolver el Bandido Multibrazo (Multi-Armed Bandit)
Durante los últimos meses he estado dedicando las entradas de los viernes a describir diferentes estrategias existentes para abordar los problemas tipo Bandido Multibrazo (Multi-Armed Bandit) e implementarlas en Python. Creando de este modo una colección de código que puede ser interesante para la realización de comparaciones entre algoritmos. Por eso, recientemente he … [Leer más...] acerca de Librería Python para resolver el Bandido Multibrazo (Multi-Armed Bandit)
Obtener los índices para ordenar un vector en JavaScript
La función sort() de Matlab además de devolver los datos ordenados también devuelve la posición de estos en el conjunto original en la nueva lista, algo que es muy útil cuando necesitamos ordenar los elementos de un vector en base a los valores de otro. Por ejemplo, si en un vector tenemos unos nombres y en otro unos valores asociados a los primeros es posible ordenar los … [Leer más...] acerca de Obtener los índices para ordenar un vector en JavaScript
Pandas: Encontrar la posición y valores de máximos y mínimos en un DataFrame
Los objetos DataFrame de Pandas disponen de los métodos max() e idxmax() con los que es posible obtener respectivamente el máximo de los valores y la posición de estos. Algo que se puede hacer tanto por filas como por columnas. De forma análoga a estos, también existen los métodos min() e idxmin() con los que es posible los valores mínimos y su posición. En esta entrada vamos a … [Leer más...] acerca de Pandas: Encontrar la posición y valores de máximos y mínimos en un DataFrame
Comparación de refuerzo (reinforcement comparison) para un problema Bandido Multibrazo (Multi-Armed Bandit)
Los métodos de comparación de refuerzo son similares a los métodos de seguimiento que vimos la semana pasada. En los que el bandido con el que se juega se selecciona en cada tirada aleatoriamente en base a unas probabilidades calculadas a partir de las recompensar empíricas.Comparación de refuerzoEn el método de comparación de refuerzo el agente asigna una recompensa … [Leer más...] acerca de Comparación de refuerzo (reinforcement comparison) para un problema Bandido Multibrazo (Multi-Armed Bandit)
Creación de un único archivo de tipos de una librería TypeScript
El año pasado publiqué una serie de entradas en las que explicaba un proceso para estructurar y crear una librería TypeScript. Explicando al final de esta un proceso para crear con Webpack un único archivo JavaScritp con toda la librería. Lo que nos permite usar el código creado en navegador y otros proyectos JavaScritp. El único problema de este archivo es que perdemos las … [Leer más...] acerca de Creación de un único archivo de tipos de una librería TypeScript
Guardar las contraseñas y claves en Python
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











