Java: cómo usar las enumeraciones y los EnumMap

2023-01-28 - Categorías: Java
Duke Java

Las enumeraciones enum, y los mapas de enumeraciones EnumMap, son un par de utilidades de las librerías de Java, que nos pueden ayudar a mantener fácilmente lotes de información estructurada. Además, las enumeraciones y los mapas de enumeraciones son objetos muy eficientes. Son eficientes tanto en coste temporal como espacial, ya que están especialmente optimizados para tamaños de conjuntos de datos predefinidos.

Este es un howto o codekata para comenzar rápido a usar las enumeraciones, y los EnumMap.

Continuar leyendo..

Lynis: auditoria de seguridad para sistemas basados en UNIX

2023-01-22 - Categorías: GNU/Linux / Seguridad

Una de las herramientas más usadas para auditorías de seguridad en sistemas derivados de UNIX es Lynis. Con Lynis podrás auditar un sistema obteniendo una serie de acciones detalladas para mejorar la seguridad desde dentro.

Es un proyecto OpenSource, que se puede descargar gratuitamente desde Github o desde repositorios de distribuciones GNU/Linux. También dispone de una versión Entreprise. Aquí su web oficial:
https://cisofy.com/lynis/

Continuar leyendo..

El ABC con Angular

2023-01-21 - Categorías: Angular / JavaScript
Angular

Esto es un howto o codekata para empezar un proyecto nuevo en minutos con Angular: qué necesitamos configurar en local, cómo usar el Angular CLI, principales comandos y comenzamos a generar una primera estructura de aplicación frontend totalmente desacomplada del backend.

Vamos al grano..

Continuar leyendo..

Cómo mejorar la calidad del software con PHPSTAN

2022-11-20 - Categorías: General / PHP
Check quality with PHPSTAN

Siguiendo con posts anteriores sobre herramientas para medir y mejorar la calidad del software como PHP-CS-FIXER, PHPDEPEND, PHPLOC o PHPCPD, llegamos a otra gran herramienta que es PHPSTAN. Con esta herramienta podemos encontrar errores en la programación en PHP sin llegar a haber programado y ejecutado los tests de integración.

Es decir, esta herramienta llamada PHPSTAN:
https://phpstan.org/
..analiza el código fuente de forma estática, reportando en varios niveles de exigencia, errores en la programación con los que podemos ir mejorando todo, incluso sin tener tests programados.

Continuar leyendo..



Java Spring Boot & Angular: cómo automatizar la compilación de un proyecto para desplegar en un servidor

2022-07-25 - Categorías: Angular / General / Java / Java Spring Boot
Spring Boot Angular Maven

Dejo aquí este codekata o howto de copia y pega para montar la estructura de un proyecto general con Maven, usando Spring Boot en el backend y Angular en el frontend. La idea de este post es automatizar el despliegue en producción de este tipo de proyectos, cómo comenzar a montar el despliegue continuo.

En líneas generales, consite en compilar el micro-servicio Spring Boot embebiendo todo el frontend en Angular dentro del mismo empaquetado .jar. Con unas configuraciones en los ficheros POM de Maven, y en el JSON de configuración Angular, podemos automatizarlo.

Vamos al grano..

Continuar leyendo..


Java: sincronización con señales entre procesos concurrentes

2022-07-16 - Categorías: Java

¡Hola de nuevo! Esto es un codekata, apunte o resumen en Java, sobre la sincronización entre procesos concurrentes que corren en paralelo en varios hilos de ejecución usando señales. Esta sincronización es un mecanismo habitual, para sincronizar procesos en tiempo real, optimizando el uso de recursos para que todo vaya lo más rápido posible.

El escenario de este post, es que tenemos 3 procesos concurrentes, que corren en paralelo. Tenemos un primer proceso que se va a encargar de lanzar otros dos, poniéndose a la espera sin consumir recursos en esta espera. El segundo proceso va a ser un productor de elementos cada cierto tiempo. Y el tercer proceso un consumidor de estos elementos.

Continuar leyendo..

Controlando el acceso exclusivo a memoria compartida en Java

2022-06-19 - Categorías: General / Java

Este post es continuación de este otro sobre paralelizar procesos para acelerarlos usando memoria compartida. Quedó en el aire la sincronización de los procesos. Esto se puede hacer de varias formas, pero si simplemente queremos evitar que dos procesos escriban a la vez en la misma zona de memoria compartida, lo podemos implementar con la palabra reservada synchronized.

Si dos procesos no deben escribir a la vez en la memoria compartida y lo hacen, se perderá información, habrá malfuncionamiento del sistema completo.

Vamos al grano que es más fácil leer el código que explicarlo..

Continuar leyendo..

Acelerando, paralelizando, concurrencia, memoria compartida entre tareas en Java

2022-06-19 - Categorías: General / Java

Hoy traigo otro codekata, un howto o resumen sobre Java, y el manejo de tareas. Se trata de un tema recurrente, para acelerar tareas paralelizándolas y coordinándolas entre sí. Este post se centra en cómo usar una memoria compartida, entre 30 tareas en paralelo, que van escribiendo información en dicha memoria compartida.

En Java se facilita mucho todo esto, tiene funcionalidades que ayudan como por ejemplo: la clase Thread, los parámetros por referencia, la palabra reservada synchronized, o el manejo de hilos en núcleos diferentes del procesador de forma transparente para el programador gracias al JRE.

Resumiendo, esto es un esqueleto para tratar de multiplicar x30 la velocidad de un programa, usando tareas concurrentes, y compartiendo los resultados en memoria.

A grano..

Continuar leyendo..

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.