Blogia

MAURICIO DURAN TORRES

Tips para SpringBoot

Cuando se trabaj con SpringBoot y tienes ya! una cierta experiencia de otros frameworks o herramientas técnológicas enfocadas a mejorar tus procesos, on boarding, best practices o lo que sea más rápido para preparar un setup básico, tengo unos tips:

  1. Trabajar con @Component

    Para abrodar este trabajo pénsemos en este caso de uso:

Poder Tener una clase UserSeeder, cuyo objetivo es que al momento de correr tu aplicación en Spring, éste por si sólo pueda "poblar" datos estáticos, este ejemplo. lo puedes usar por ejemplo en: Bancos, Ciudades, Comunas, Tipos de Moneda, Medios de Pago, Cuentas Contables, Tipos de Cuentas Bancarias, Rol del Colaborador, Nombre Compañias y Sucursales, entre otras clases que a simple vista inicialmente no deben de cambiar, sólo poblar en caso de requerir, se recomienda trabajar con @Configuration.

  • Ejemplo en UserSeeder:
    • Crear dentro de tu proyecto un Package "config", dentro de este, crear una clase llamada "UserSeeder que tiene que implementar "CommandLineRunner".
    • @Autowired para :
      • private userRepository userRepository;
    • @Override
      • Acá puedes crear tu objeto de User y cerar usuarios básicos.

        Ejemplo Código Fuente:
@Component
public class UserSeeder implements CommandLineRunner {

@Autowired
private UserReposity userReposity;

@Autowired
private PasswordEncoder passwordEncoder;

@Override
public void run(String... args) throws Exception {
//Verificar si ya existen usuarios para evitar duplicados
if(userReposity.count() == 0){
System.out.println("Poblando la base de datos con usuarios...");
// Crea y guarda un usuario
User user1 = new User();
user1.setUsername("admin");
user1.setEmail("admin@integraltech.cl");
user1.setName("User 1");
user1.setSurname("User");
user1.setPassword(passwordEncoder.encode("password123")); // Encripta la contraseña
userReposity.save(user1);

User user2 = new User();
user2.setUsername("demo");
user2.setEmail("demo@integraltech.cl");
user2.setName("User 2");
user2.setSurname("Demo");
user2.setPassword(passwordEncoder.encode("password123")); // Encripta la contraseña
userReposity.save(user2);

System.out.println("Datos de usuarios creados con éxito!");
} else {
System.out.println("La Base de Datos ya contiene usuarios. No se han creado nuevos. ");
}
}
}

Tu IDE como por Ejemplo Intellij IDEA reconocerá que exste un "CommandLineRunner" que ejemcutará "Run" para poder poblar los datos antes que tu aplicación esté 100% desplegada.

Translate Laravel 12 UI

Para este post hablaremos de laravel 12 con su componente laravel UI

  Link Oficial Release 12

 

Una vez instalado el componente normal de laravel ui, éste viene por defeecto en Ingles, pero qué pasa si queremos hacer custom a nuestros códigos?

 

Pasos:

  1. Instalar laravel ui: composer require laravel/ui
  2. Generar vistas y controladores de autenticación: php artisan ui:auth --views
  3. Si quieres usar Bootstrap: php artisan ui bootstrap --auth
  4. Instalar dependencias y compilar assets: npm install npm && run dev
  5. Traduce al español tus aplicaciones Laravel: composer require laravel-lang/common --dev
  6. Si quieres usar español en tus aplicaciones: php artisan lang:add es
  7. Editar config/app.php y agregar "es" ejemplo:  ’locale’ => env(’APP_LOCALE’, ’es’),
  8. En el punto 7 puede estar seteado con una variable de entorno "APP_LOCALE" que se ubica en .env, déjalo en es
  9. Correr local y probar :php artisan serve

 






Práctico de Java (netbeans)

Hola,

Acá otro apunte de la Universidad de Don Bosco respecto a Java con Netbeans.

 

Como truco hay que cambiar el número de la guía destacado en "negro"

 

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-tecnologico/programacion-orientada-a-objetos-(fet)/2020/i/guia-1.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-tecnologico/programacion-orientada-a-objetos-(fet)/2020/i/guia-2.pdf

Prácticas varias de SQL con SQLServer

Dentro de varios contenidos teóricos bien buenos en internet, puedo llegar a este link donde he visto en detalle todos los item importantes de abordar para quienes quieran recoerdar, iniciar su camino con consultas SQL con SQL Server. Sirve para otros motores de datos, pero la base principal en Ms SqlServer. Está relacionado con la Universidad Don Bosco a la cual recibe mis aplausos, desconosco el autor de quien dejó en internet de forma pública y eso ayuda mucho a varios programadores.

 

Saludos

 

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-1.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-2.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-3.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-4.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-5.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-6.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-7.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-8.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-9.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-10.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-11.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-12.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-13.pdf

https://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/base-de-datos-i/2019/i/guia-14.pdf

Configuración Application Properties - Spring Boot

Hola, uno de los elementos escenciales para abordar el desarrollo con el framework Spring (java) para Microservicios (popularmente en tiempos como hoy), podemos abordar la configuración estándard del application.properties para poder conectarnos con :

 

MYSQL

 

spring.application.name=nombre-de-tu-aplicacion-o-microservicio-etc

server.port=8081 (esto depende de cada organización y lineamientos entregados, pero para local, estaría ok)

spring.datasource.url=jdbc:mysql://localhost:3306/nombre-base-de-datos?serverTimezone=America/Santiago&allowPublicKeyRetrieval=false

spring.datasource.username=root (las credenciales de mysql o el usuario autorizado)

spring.datasource.password=root

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect

spring.jpa.generate-ddl=true (para creación de las tablas automáticas)

logging.level.org.hibernate.SQL=debug (para mostrar la consulta SQL por consola, al momento de depurar)

 

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true (para los tipos de datos, es importante)

 

 

POSTGRESQL

 

spring.application.name=nombre-de-tu-aplicacion-o-microservicio-etc

server.port=8081 (esto depende de cada organización y lineamientos entregados, pero para local, estaría ok)

spring.datasource.url=jdbc:postgresql://localhost:5432/nombre-base-de-datos

spring.datasource.username=postgres (las credenciales de mysql o el usuario autorizado)

spring.datasource.password=clave

spring.datasource.driver-class-name=org.postgresql.Driver

spring.jpa.database-platform=org.hibernate.dialect.PostgresSQL10Dialect

spring.jpa.generate-ddl=true (para creación de las tablas automáticas al iniciar proyecto)

logging.level.org.hibernate.SQL=debug (para mostrar la consulta SQL por consola, al momento de depurar)

 

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true (para los tipos de datos, es importante)

Configurar Ruby on Rails para Macbook Pro M1

Hola ,

 

Es normal que entre distintas configuraciones o apoyos de URL donde encontramos tips y best practices como se recomienda, la verdad cuesta llegar a un "day zero", para ello, quiero exponer cómo logré una buena experiencia con ROR + MacBook Pro con el Chip M1.

 

Mi Setup a la fecha de Nov 2022.

MacOs Ventura: 13.0.1 (22A400)

 

Problemas resueltos:

  1. Instalar via homebrew:

brew install gnupg gnupg2

  2. Instalar via URL de mit.edu GPG keys :

gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

3. Instalar rvm:

curl -sSL https://get.rvm.io | bash -s stable
4. Default Rails:
curl -sSL https://get.rvm.io | bash -s stable --rails

5. En caso que la consola diga un mensaje relacionado con  HOMEBREW_NO_INSTALL_CLEANUP; 
entonces. (apunte https://docs.brew.sh/FAQ)

export HOMEBREW_NO_INSTALL_CLEANUP=1

Unos Tips para M1

https://www.youtube.com/watch?v=AYyZ_n-fNpc

Apache Kafka - Conceptos Básicos

Introducción

Hola, dentro de todo el stack tecnológico que estamos visibilizando en un mercado cada vez más cloud, cada vez más transaccional, cada vez más escalable, siempre hay que focalizar en qué cosas  y herramientas de gestión, de toma de decisiones o de análisis debemos comenzar a abordar.

Hoy quiero comentar de Apache Kafka, la pregunta es, ¿En qué iniciativa puedo abordar?.

Ej:

Estas en una organización que tiene muchos sistemas satélites, es decir, otros sistemas de dinstinta índole, tecnología, dependencia, performance, etc. En un proyecto requieren que sistema "A", pueda comunicar "notificaciones" en tiempo real o programadas, por ejemplo "notificaciones de alta, baja, modificación" de un "cliente". Entonces el sistema "B" escucha esta información y lo procesa en sus tablas para generar coherencia entre todo el ecosistema digital de la empresa, entonces así, todos los sistemas restantes pueden escuchar qué está pasando y darse por enterado.

 

Kafka:

Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.

Conceptos Claves:

Mucha de la teoria está en la  misma página del proyecto:

Apache Kafka Docs

 

Conceptos Básicos:


EVENT:

Un evento registra el hecho de que "algo sucedió" en el mundo o en su empresa. También se denomina registro o mensaje en la documentación. Cuando se leen o escriben datos en Kafka, se hace en forma de eventos. Conceptualmente, un evento tiene una clave, un valor, una marca de tiempo y cabeceras de metadatos opcionales. Este es un ejemplo de evento:

  • Event key: "Alice"
  • Event value: "Made a payment of $200 to Bob"
  • Event timestamp: "Jun. 25, 2020 at 2:06 p.m."

PRODUCER:

Los productores son aquellas aplicaciones cliente que publican (escriben) eventos en Kafka, y los consumidores son aquellos que se suscriben (leen y procesan) estos eventos. En Kafka, los productores y los consumidores están totalmente desacoplados y son agnósticos entre sí, lo cual es un elemento de diseño clave para lograr la alta escalabilidad por la que es conocido Kafka. Por ejemplo, los productores nunca tienen que esperar a los consumidores. Kafka ofrece varias garantías, como la capacidad de procesar eventos exactamente una vez.

TOPICS:

Los eventos se organizan y almacenan de forma duradera en topicos. De forma muy simplificada, un topico es similar a una carpeta en un sistema de archivos, y los eventos son los archivos de esa carpeta. Un ejemplo de nombre de tema podría ser "pagos". Los topicos en Kafka son siempre multi-productores y multi-suscriptores: un topico puede tener cero, uno o muchos productores que escriben eventos en él, así como cero, uno o muchos consumidores que se suscriben a estos eventos. Los eventos de un topico pueden leerse tantas veces como sea necesario; a diferencia de los sistemas de mensajería tradicionales, los eventos no se eliminan tras su consumo. En su lugar, se define el tiempo que Kafka debe retener sus eventos a través de un ajuste de configuración por topico , después del cual los eventos antiguos serán descartados. El rendimiento de Kafka es efectivamente constante con respecto al tamaño de los datos, por lo que el almacenamiento de datos durante mucho tiempo está perfectamente bien.

 


Broker: 

Un servidor de Kafka esconocido como un Broker, un cluster de Kafka consiste en múltiples brokers.

Mensaje:

Un mensaje es una unidad de datos en Kafka, está compuesto por una llave (key) y un valor (value)

Topics / Partitions / Offsets:

Un topic es un stream (flujo) de mensajes, cada topic se compone de una o más particiones. Los mensajes son colocados en las particiones y son ordenaos de acuerdo a un número llamado offset.

Tener múltiples particiones permite tener más consumidores de mensajes funcionando de forma concurrente, esto de ve reflejado en el incremento del throughput (tasa de transferencia)

Creando Un Topic:

Los mensajes se procesan en tipics, para crear uno deberás ejecutar el siguiente comando:

$bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic devs4j-topic --partitions 5 --replication-factor 1

Crear un Producer:

Para iniciar un producer ejecutamos el siguiente comando:

$bin/kafka-console.producer.sh --topic dev4j-topic --bootstrap-server localhost:9092

Crear un Consumer

Para iniciar un consumer ejecutamos el siguiente comando:

$bin/kafka-console.consumer.sh --topic dev4j-topic --from-beginning --bootstrap-server localhost:9092 --property print key=true --property key separator="-"

URL de apoyo para proyectos y Programas

Hola amig@s,

 

Consultando en la Red llegúe a esta URL bastante power que tiene de todo para un TI. Faltan algunas cosas quizas algo más específicas pero bueno gracias a esta URL puedo continuar un buen proyecto en mente.

 

https://the-eye.eu/public/

 

Saludos

Mejores Plugins que debería tener un programador con Visual Studio Code

1. Auto Close Tag

2. Auto Rename Tag

3. Beautify

4. Bracket Pair Colorizer 2

5. GitLens 

6. JSON to TS

7. Path Intellisense

8. Material Icon Theme

 

 

 

Una lista insteresante  y atractiva para todo evento.

Espero aportar pronto dependieno el lenguaje  o framwork que estén trabajando para optimizar los tiempos de desarrollo.

 

#VivaSW

#Developer








Siempre activismo -Cod311

Mucho tiempo sólo siendo un "trabajador", pero sinceramente no hay nada más gratificante que ver el actuar cobarde de muchos quienes por un simple url, otros por la DW hacen frente a sus más bajos instintos a veces asesinos de "children".

#SiempreEstoyDetras   #Freechildren  #Anons #DW  #Libertad

"As most have noticed "Babysitter Place" has been closed. We are opening a new zone for those "Great CP Contributors." To get membership to this area you must actively contribute to the board. You will be invited by the Moderation Team or Admin Team. This is to reduce lurkers only here to get rare/new material and to get the community active once again. Admins and Moderators put their time into the community but it is the members that make a board what it is. "    

 

Please... block this site :

http://babyixntjlabwkpi.onion/

Curso Completo de Alfresco

Buen material para poder tener entrenamientos básicos e intermedios sobre Alfresco 

 

En resumen, cuando hablamos de Alfresco decimos que es:

"Alfresco es un sistema de administración de contenidos de código fuente libre, desarrollado en Java, basado en estándares abiertos y de escala empresarial para sistemas operativos tipo Windows, Unix Solaris y algunas versiones de Linux" Wikipedia

 

https://www.youtube.com/watch?v=HWGdCnX_xKg

Build mobile apps with simple HTML‚ CSS‚ and JS components.

Build mobile apps with simple HTML‚ CSS‚ and JS components.

 

Best url :

 

http://goratchet.com/

Herramienta Forense Android

Siempre con una maquina virtual y posibilidad de generar evidencias en MD5, favor usar

 

http://santoku-linux.com/about-santoku/

Nuevos Tips para Programar en RoR

Excelente URl de ayuda para programar y sacar ideas de buenas prácticas con el Frameworks Rails (nos podemos adaptar a la 5)

 

https://www.youtube.com/channel/UCXNeUcG4KpZaYUgYJvgN9tg

Error Role postgresql (MAC)

Si por algún motivo o circuntancia de tanto meter mano  a la consola de mac para el servicio de postgresql pudiesen perder el role de postgres.

 

Para ello en mac se asigna nuevamente de la siguiente forma:

 

/Applications/Postgres.app/Contents/Versions/9.3/bin/createu‌​ser -s postgres
Volver a testear con pgadmin a ver si el motor de BD opera sin novedad y listo.

Pagina con excelentes videos en la práctica de Rails

Buscando mucho material en  Internet, una de las URL que me gusta compartir es:

 

https://mackenziechild.me/12-in-12/1/

 

Proximanente compartiré los videos de descarga, pues si está en Internet, entonces lo descargo !

Ruby


Saludos

Paginador en RoR

1) Instalar la Gema: 

gem 'will_paginate', '~> 3.1.0'
2) Bundle Install
3) En el controller agregar al "index"
@posts = Post.paginate(:page => params[:page], :per_page => 30)
@post= nombre de tu controller
:per_page = Cantidad de elementos por páginas.
4) Verificar que en el controller de la vista general del "Controller" también esté agregado la instrucción en el index, por ejemplo "welcome#hitos"
Recordar: Al instalar GEM se pide reiniciar Server.

Configurar tu Mac con Ruby on Rails (Capitan)

Muy recomendable donde se le mire, siempre lo utilizo y lejos uno de los mejores de los cuales guiarse al momento de configurar el ambiente RoR en su máquina MAC.

https://gorails.com/setup/osx/10.11-el-capitan

Ayuda PGSQL Ambiente MAC OSx

Una vez instalado nuestro PSQL en Mac (terminal) con Homebew.

 

recordar esta url para iniciar instancia del usuario (role)

 

http://stackoverflow.com/questions/15301826/psql-fatal-role-postgres-does-not-exist 

Diferencia entre DDL y DML y otros Mysql

No está de más repasar algo de Mysql y sus diferencias cuando hablamos de DDL y lo que ello abarca.


Acá un link de ayuda para ello.

 

http://www.orafaq.com/faq/what_are_the_difference_between_ddl_dml_and_dcl_commands

 

Saludos