Este documento introduce el análisis de datos, incluyendo sus ramas clásicas como el procesamiento de datos y la inteligencia de negocios. Explica que la inteligencia de negocios convierte datos en información y conocimiento para mejorar procesos, tomar mejores decisiones operativas, estratégicas y tácticas, y hacer mejores predicciones. También cubre temas de administración de datos como almacenes de datos, procesamiento de datos, y análisis de datos transaccionales, multidimensionales y de minería de
The document discusses an approach for migrating government institutions to cloud native technologies. It involves conducting architecture reviews to identify issues and solutions, creating a roadmap with options, and executing projects using a PMI-inspired methodology. Key aspects include developing reactive systems using microservices and containers, implementing CI/CD pipelines, and ensuring performance and code quality are monitored throughout the migration. The goal is to modernize aging systems and support growing user bases in a cloud native way.
This document summarizes the major changes and new features introduced in each version of Java from Java 8 to Java 17. It discusses key enhancements like modules in Java 9, switch expressions in Java 12, text blocks in Java 13, records and pattern matching in Java 14, sealed classes in Java 15 and strong encapsulation in Java 16. It also provides code examples to illustrate many of the new Java features.
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenVíctor Leonel Orozco López
Este documento describe cómo una empresa de software llamada Nabenik creó un arquetipo de Maven para iniciar proyectos de microservicios en Java de manera consistente. El arquetipo incluye un conjunto aprobado de dependencias y configuración de runtime para simplificar el desarrollo de microservicios. El documento explica cómo Nabenik evolucionó desde usar un POM de referencia compartido hasta usar arquetipos de Maven para proporcionar una plantilla preconfigurada para nuevos proyectos de microservicios.
Este documento resume la historia, presente y futuro de Java a lo largo de sus 26 años. Comenzó en 1991 y desde entonces ha crecido para convertirse en uno de los lenguajes de programación más populares, con una comunidad robusta y un ecosistema que incluye frameworks para backend, ingeniería de datos, y más. Aunque popular hoy, Java continuará evolucionando hacia un mundo multi-idioma en la nube, con especificaciones abiertas y el uso de microservicios y tecnologías emergentes.
Este documento introduce el análisis de datos, incluyendo sus ramas clásicas como el procesamiento de datos y la inteligencia de negocios. Explica que la inteligencia de negocios convierte datos en información y conocimiento para mejorar procesos, tomar mejores decisiones operativas, estratégicas y tácticas, y hacer mejores predicciones. También cubre temas de administración de datos como almacenes de datos, procesamiento de datos, y análisis de datos transaccionales, multidimensionales y de minería de
The document discusses an approach for migrating government institutions to cloud native technologies. It involves conducting architecture reviews to identify issues and solutions, creating a roadmap with options, and executing projects using a PMI-inspired methodology. Key aspects include developing reactive systems using microservices and containers, implementing CI/CD pipelines, and ensuring performance and code quality are monitored throughout the migration. The goal is to modernize aging systems and support growing user bases in a cloud native way.
This document summarizes the major changes and new features introduced in each version of Java from Java 8 to Java 17. It discusses key enhancements like modules in Java 9, switch expressions in Java 12, text blocks in Java 13, records and pattern matching in Java 14, sealed classes in Java 15 and strong encapsulation in Java 16. It also provides code examples to illustrate many of the new Java features.
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenVíctor Leonel Orozco López
Este documento describe cómo una empresa de software llamada Nabenik creó un arquetipo de Maven para iniciar proyectos de microservicios en Java de manera consistente. El arquetipo incluye un conjunto aprobado de dependencias y configuración de runtime para simplificar el desarrollo de microservicios. El documento explica cómo Nabenik evolucionó desde usar un POM de referencia compartido hasta usar arquetipos de Maven para proporcionar una plantilla preconfigurada para nuevos proyectos de microservicios.
Este documento resume la historia, presente y futuro de Java a lo largo de sus 26 años. Comenzó en 1991 y desde entonces ha crecido para convertirse en uno de los lenguajes de programación más populares, con una comunidad robusta y un ecosistema que incluye frameworks para backend, ingeniería de datos, y más. Aunque popular hoy, Java continuará evolucionando hacia un mundo multi-idioma en la nube, con especificaciones abiertas y el uso de microservicios y tecnologías emergentes.
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...Víctor Leonel Orozco López
This document discusses how to bootstrap microservices using Maven archetypes. It describes how a software company called Nabenik evolved their approach from using custom POMs and sample projects to developing Maven archetypes. The key benefits of archetypes are that they provide a standardized starting project template with curated dependencies and allow easy creation of new microservices by generating projects from the archetype. The document concludes with an overview of how to create a microservices archetype by starting with a base project, converting it to an archetype, replacing strings, and testing the new archetype.
En esta charla se discuten los distintos abordajes para lograr tolerancia a fallas en sistemas distribuidos y microservicios, especialmente con microservice chassis y service mesh.
Posteriormente se comentan algunas opciones para su implementación utilizando MicroProfile Fault Tolerance y Linkerd
En esta charla conjunta con el Colegio de Ingenieros de Guatemala hablamos acerca de Kubernetes como plataforma de orquestación de contenedores, incluyendo:
- Motivaciones e historia de Kubernetes
- Arquitectura básica de funcionamiento
- Uso de objetos centrales -e.g. Container, Pod, Deployment, Service-
Para la charla se ejecutan diversas pruebas básicas con Minikube y Oracle Cloud con el objetivo de presentar Kubernetes a las personas que estan iniciando con la plataforma.
Este documento resume las características y ventajas de GraalVM, una máquina virtual poliglota de código abierto desarrollada por Oracle Labs. GraalVM permite compilar aplicaciones JVM de forma anticipada (AOT) para generar ejecutables nativos, lo que mejora el rendimiento al reducir el tiempo de inicio y el uso de memoria. También soporta lenguajes poliglotas y proporciona un JDK certificado. Las imágenes nativas de GraalVM son útiles para aplicaciones de escritorio, servidores sin estado y contenedores, aunque
En esta presentación se presenta una discusión acerca del nuevo glosario del ingeniero de software incluyendo:
- TDD
- DDD
- Cloud Native
- 12 factors
- DevOps
- CQRS
- Event Sourcing
Que significan todos esos términos y como pueden ayudarlos en su jornada cloud.
Palestra apresentada no TDC Porto Alegre 2020, na sala Oracle. Revisitamos os Dessign Patterns nos Microsserviços para conversar como é que o ecosistema tem evoluido.
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
Estos slides corresponden a la charla "Desde Java 8 on premise para Java 11 en la nube, hasta Java 14 en el infinito" en la cual exploramos cuales son las limitantes y caracteristicas técnicas que un proyecto debe considerar al momento de actualizar versiones de Java, especialmente desde Java 8 hasta Java 11.
La charla fue parte del Oracle #GroundBreakersTour 2020
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
Estos slides corresponden a la charla "Desde Java 8 on premise para Java 11 en la nube, hasta Java 14 en el infinito" en la cual exploramos cuales son las limitantes y caracteristicas técnicas que un proyecto debe considerar al momento de actualizar versiones de Java, especialmente desde Java 8 hasta Java 11.
La charla fue parte del Oracle #GroundBreakersTour 2020
Durante esta presentación se cubren aspectos típicos de la carrera de desarrollador de software, incluyendo como funciona la carrera típica de desarrollador de software, tipos de desarrollador por función, niveles -i.e junior, mid, senior, architect- asi como algunas consideraciones de lo que he visto en estos 10 años.
Este documento presenta una introducción a Kotlin para desarrolladores Java. Kotlin puede compilarse para la JVM, JavaScript, Android y nativamente, y es interoperable con Java. Kotlin agrega características como inferencia de tipos, funciones como ciudadanos de primera clase, verificación de nulos segura y extensiones, con el objetivo de mejorar la productividad y legibilidad del código en comparación con Java. El documento también incluye una demostración de cómo usar Kotlin con Jakarta EE y MicroProfile para construir aplicaciones web robustas.
Presentación utilizada durante el seminario de actualización del Colegio de Ingenieros de Guatemala 2020.
Durante la charla se discuten principios básicos de Docker, Kubernetes y su necesidad/utilidad en microservicios con Java
The document discusses changes in Java versions from Java 8 to Java 14. It covers major new features and improvements in each version including modules in Java 9, switch expressions in Java 12, and records in Java 14. It also discusses real world challenges with upgrading such as compatibility, multiple JVMs, library updates, and IDE support.
O documento discute as vantagens do MicroProfile para aplicações monolíticas. Apresenta casos comuns de uso do MicroProfile em aplicações legadas para externalizar configuração, documentar APIs, melhorar tolerância a falhas e coletar métricas sem muita complexidade. O documento também inclui uma demonstração de aplicação Hello World usando Payara no Oracle Cloud.
1. The document discusses using Kotlin with MicroProfile for building microservices, teaching Kotlin newer techniques from Java and MicroProfile.
2. It provides examples of configuring Kotlin projects using Maven to work with MicroProfile libraries and annotations for dependency injection and JAX-RS.
3. The examples demonstrate a demo project using Kotlin with Jakarta EE and MicroProfile for entities, repositories, and controllers, and deploying the application to Oracle Cloud.
This document discusses Eclipse MicroProfile, a set of microservices frameworks and specifications for Java microservices. It begins by introducing concepts like microservices and reactive applications. It then covers key MicroProfile specifications like Config, Fault Tolerance, Metrics, Health Check, and JWT. It provides examples of using these specifications. It also discusses Java EE 8 integration and popular MicroProfile implementations. Finally, it describes a demo application using Payara Micro to demonstrate Java EE and MicroProfile features.
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...Víctor Leonel Orozco López
This document discusses how to bootstrap microservices using Maven archetypes. It describes how a software company called Nabenik evolved their approach from using custom POMs and sample projects to developing Maven archetypes. The key benefits of archetypes are that they provide a standardized starting project template with curated dependencies and allow easy creation of new microservices by generating projects from the archetype. The document concludes with an overview of how to create a microservices archetype by starting with a base project, converting it to an archetype, replacing strings, and testing the new archetype.
En esta charla se discuten los distintos abordajes para lograr tolerancia a fallas en sistemas distribuidos y microservicios, especialmente con microservice chassis y service mesh.
Posteriormente se comentan algunas opciones para su implementación utilizando MicroProfile Fault Tolerance y Linkerd
En esta charla conjunta con el Colegio de Ingenieros de Guatemala hablamos acerca de Kubernetes como plataforma de orquestación de contenedores, incluyendo:
- Motivaciones e historia de Kubernetes
- Arquitectura básica de funcionamiento
- Uso de objetos centrales -e.g. Container, Pod, Deployment, Service-
Para la charla se ejecutan diversas pruebas básicas con Minikube y Oracle Cloud con el objetivo de presentar Kubernetes a las personas que estan iniciando con la plataforma.
Este documento resume las características y ventajas de GraalVM, una máquina virtual poliglota de código abierto desarrollada por Oracle Labs. GraalVM permite compilar aplicaciones JVM de forma anticipada (AOT) para generar ejecutables nativos, lo que mejora el rendimiento al reducir el tiempo de inicio y el uso de memoria. También soporta lenguajes poliglotas y proporciona un JDK certificado. Las imágenes nativas de GraalVM son útiles para aplicaciones de escritorio, servidores sin estado y contenedores, aunque
En esta presentación se presenta una discusión acerca del nuevo glosario del ingeniero de software incluyendo:
- TDD
- DDD
- Cloud Native
- 12 factors
- DevOps
- CQRS
- Event Sourcing
Que significan todos esos términos y como pueden ayudarlos en su jornada cloud.
Palestra apresentada no TDC Porto Alegre 2020, na sala Oracle. Revisitamos os Dessign Patterns nos Microsserviços para conversar como é que o ecosistema tem evoluido.
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
Estos slides corresponden a la charla "Desde Java 8 on premise para Java 11 en la nube, hasta Java 14 en el infinito" en la cual exploramos cuales son las limitantes y caracteristicas técnicas que un proyecto debe considerar al momento de actualizar versiones de Java, especialmente desde Java 8 hasta Java 11.
La charla fue parte del Oracle #GroundBreakersTour 2020
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
Estos slides corresponden a la charla "Desde Java 8 on premise para Java 11 en la nube, hasta Java 14 en el infinito" en la cual exploramos cuales son las limitantes y caracteristicas técnicas que un proyecto debe considerar al momento de actualizar versiones de Java, especialmente desde Java 8 hasta Java 11.
La charla fue parte del Oracle #GroundBreakersTour 2020
Durante esta presentación se cubren aspectos típicos de la carrera de desarrollador de software, incluyendo como funciona la carrera típica de desarrollador de software, tipos de desarrollador por función, niveles -i.e junior, mid, senior, architect- asi como algunas consideraciones de lo que he visto en estos 10 años.
Este documento presenta una introducción a Kotlin para desarrolladores Java. Kotlin puede compilarse para la JVM, JavaScript, Android y nativamente, y es interoperable con Java. Kotlin agrega características como inferencia de tipos, funciones como ciudadanos de primera clase, verificación de nulos segura y extensiones, con el objetivo de mejorar la productividad y legibilidad del código en comparación con Java. El documento también incluye una demostración de cómo usar Kotlin con Jakarta EE y MicroProfile para construir aplicaciones web robustas.
Presentación utilizada durante el seminario de actualización del Colegio de Ingenieros de Guatemala 2020.
Durante la charla se discuten principios básicos de Docker, Kubernetes y su necesidad/utilidad en microservicios con Java
The document discusses changes in Java versions from Java 8 to Java 14. It covers major new features and improvements in each version including modules in Java 9, switch expressions in Java 12, and records in Java 14. It also discusses real world challenges with upgrading such as compatibility, multiple JVMs, library updates, and IDE support.
O documento discute as vantagens do MicroProfile para aplicações monolíticas. Apresenta casos comuns de uso do MicroProfile em aplicações legadas para externalizar configuração, documentar APIs, melhorar tolerância a falhas e coletar métricas sem muita complexidade. O documento também inclui uma demonstração de aplicação Hello World usando Payara no Oracle Cloud.
1. The document discusses using Kotlin with MicroProfile for building microservices, teaching Kotlin newer techniques from Java and MicroProfile.
2. It provides examples of configuring Kotlin projects using Maven to work with MicroProfile libraries and annotations for dependency injection and JAX-RS.
3. The examples demonstrate a demo project using Kotlin with Jakarta EE and MicroProfile for entities, repositories, and controllers, and deploying the application to Oracle Cloud.
This document discusses Eclipse MicroProfile, a set of microservices frameworks and specifications for Java microservices. It begins by introducing concepts like microservices and reactive applications. It then covers key MicroProfile specifications like Config, Fault Tolerance, Metrics, Health Check, and JWT. It provides examples of using these specifications. It also discusses Java EE 8 integration and popular MicroProfile implementations. Finally, it describes a demo application using Payara Micro to demonstrate Java EE and MicroProfile features.
22. TypeScript
• Microsoft
• Transpila TS -> JS
• Idea general: JS + Tipos + ES.Next
• Todo código JS es código TS valido
• El código JS es difícil de escalar a menos que sean genios
11
27. TypeScript instalación
• Node.js
• Gestor de paquetes
• Editor o IDE (VSCode/IntelliJ IDEA)
npm i n s t a l l −g t y p e s c r i p t
npm view t y p e s c r i p t v e r s i o n
Luego
t s c −v
16
31. TypeScript
• Type annotations
• Type inference
• Compile time type checking
• Optional and default params
• Classes
• Interfaces
• Structural typing
• Arrow function expression
• Enums
• Generics
• Modules
• Tuple types
• Union types and type guards
20
42. Classes
1 c l a s s Car {
2 constructor ( color , doorQty ) {
3 t h i s . color = color ;
4 t h i s . doorQty = doorQty ;
5 }
6
7 run () {
8 console . log ( ' I am the '+ t h i s . color + ' car and I have ' + t h i s .
doorQty + ' doors ' )
9 }
10 }
11
12 var c1 = new Car (”Red” , 4) ;
13 c1 . run () ;
29
43. Classes TS
1 c l a s s Car {
2 color : s t r i n g ;
3 doorQty : number ;
4 constructor ( color : string , doorQty : number) {
5 t h i s . color = color ;
6 t h i s . doorQty = doorQty ;
7 }
8 run () {
9 console . log (` I am the ${ t h i s . color } car and I have ${ t h i s . doorQty}
doors `)
10 }
11 }
12
13 var c1 = new Car (”Red” , 4) ;
14 c1 . run () ;
30
44. Arrow function
1 function ScopeTest ( tuxAge ){
2 t h i s . tuxAge = tuxAge ;
3 t h i s . increaseAge = function () {
4 console . log (” incrementando edad ”) ;
5 t h i s . tuxAge++;
6 }
7 }
8
9 var sTest = new ScopeTest (10) ;
10 setTimeout ( sTest . increaseAge ,1000) ;
11 setTimeout ( function () { console . log ( sTest . tuxAge ) } ,2000) ;
31
45. Arrow function
1 function ScopeTest ( tuxAge ){
2 var s e l f = t h i s ;
3 t h i s . tuxAge = tuxAge ;
4 t h i s . increaseAge = function () {
5 console . log (” incrementando edad ”) ;
6 s e l f . tuxAge++;
7 }
8 }
9
10 var sTest = new ScopeTest (10) ;
11 setTimeout ( sTest . increaseAge ,1000) ;
12 setTimeout ( function () { console . log ( sTest . tuxAge ) } ,2000) ;
32
46. Arrow function
1 function ScopeTest ( tuxAge ){
2 t h i s . tuxAge = tuxAge ;
3 t h i s . increaseAge = () => { //Arrow function
4 console . log (” incrementando edad ”) ;
5 t h i s . tuxAge++;
6 }
7 }
8
9 var sTest = new ScopeTest (10) ;
10 setTimeout ( sTest . increaseAge ,1000) ;
11 setTimeout ( function () { console . log ( sTest . tuxAge ) } ,2000) ;
33
47. Rest parameters
1 function iTakeItAll ( f i r s t , second , . . . allOthers ) {
2 console . log ( allOthers ) ;
3 }
4 iTakeItAll ( ' foo ' , ' bar ' ) ;
5 iTakeItAll ( ' foo ' , ' bar ' , ' bas ' , 'qux ' ) ;
34
48. let
1 function scopeTest () {
2 var info = 123;
3 i f ( true ){
4 var info = 456;
5 }
6 console . log ( info ) ;
7 }
8 scopeTest () ;
35
50. Destructuring
1 var rect = { x : 0 , y : 10 , width : 15 , height : 20 };
2
3 var {x , y , width , height } = rect ;
4 console . log (x , y , width , height ) ;
5
6 var {w, x , . . . remaining} = {w: 1 , x : 2 , y : 3 , z : 4};
7 console . log (w, x , remaining ) ;
37
51. Spread operator
Como argumentos
1 function foo (x , y , z ) { }
2 var args = [0 , 1 , 2 ] ;
3 foo ( . . . args ) ;
Como arreglo (destructuring)
1 var l i s t = [1 , 2 ] ;
2 l i s t = [ . . . l i s t , 3 , 4 ] ;
3 console . log ( l i s t ) ;
38
54. Compilation context
1 {
2 ” include ” : [
3 ”./ f o l d e r ”
4 ] ,
5 ” exclude ” : [
6 ”./ f o l d e r /∗∗/∗. spec . ts ” ,
7 ”./ f o l d e r /someSubFolder”
8 ]
9 }
1 {
2 ” f i l e s ” : [
3 ”./some/ f i l e . ts ”
4 ]
5 }
40
55. Declaration spaces
Type declaration space
1 c l a s s Tuz {};
2 i n t e r f a c e Tux {};
3 type Penguin = {};
Pueden ser usados como tipos
1 var foo : Tuz ;
2 var bar : Tux ;
3 var bas : Penguin ;
41
56. Declaration spaces
Variable declaration space
1 c l a s s Tuz {};
2 var someTuz =Tuz ;
3 var someOtherVar = 123;
Pueden ser usados como tipos
1 var foo = 123;
2 var bar : foo ; // ERROR
42
57. Modulos
• AMD - RequireJS, solamente para browser
• CommonJS - Node.js
• SystemJS - superado por ES6 modules
• ES6 modules
Al utilizar módulos, se hace obligatorio el uso de un bundler para paginas web
43
58. Modulos TS
• Basado en ES6 modulos
• Global module
• File module
• globals.d.ts
44
59. File module
uno.ts
1 export var penguin = ”Tucs ”;
dos.ts
1 import { penguin } from ”./ penguin ”;
2 var bar = penguin ;
3 console . log ( bar )
45
60. Modules - Alias
Export
1 l e t someVar = 123;
2 export { someVar as aDifferentName };
Import
1 import { someVar as aDifferentName } from './ foo ' ;
46
61. Modules - Default
Export
1 export default someVar = 123;
2 export default function someFunction () { }
3 export default c l a s s SomeClass { }
Import
1 import someLocalNameForThisFile from ” . . / foo ”;
47
62. Modules - Resolución
• Por path
• Node
• ./node_modules/something/foo
• ../node_modules/something/foo
• Hasta llegar a /
48
64. Tipos - inline
1 var person : {
2 firstName : s t r i n g ;
3 secondName : s t r i n g ;
4 };
5 person = {
6 firstName : 'John ' ,
7 };
49
65. Tipos - any
1 var penguin : any ;
2
3 // Takes any and a l l types
4 penguin = 'Tuz ' ;
5 penguin = 123;
50
66. Tipos - Generics
1 function reverse<T>(items : T[ ] ) : T[ ] {
2 var toreturn = [ ] ;
3 for ( l e t i = items . length − 1; i >= 0; i −−) {
4 toreturn . push ( items [ i ] ) ;
5 }
6 return toreturn ;
7 }
51
67. Tipos - Union Type
1 function printText ( text : s t r i n g [ ] | s t r i n g ) {
2 var l i n e = ' ' ;
3 i f ( typeof command === ' string ' ) {
4 console . log ( text . trim () ) ;
5 } else {
6 console . log ( text . j o i n ( ' ') ) ;
7 }
8 }
52
68. Tipos - Intersection Type
1 function extend<T, U>( f i r s t : T, second : U) : T & U {
2 return { . . . f i r s t , . . . second };
3 }
4
5 const x = extend ({ a : ” h e l l o ” } , { b : 42 }) ;
53