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.
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
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 introducción podremos conocer 40 novedades que trae la nueva versión de la plataforma a liberarse el próximo mes de Septiembre 2017.
Accede a la presentación con audio en: https://youtu.be/UeuxAkFKr6I
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
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 introducción podremos conocer 40 novedades que trae la nueva versión de la plataforma a liberarse el próximo mes de Septiembre 2017.
Accede a la presentación con audio en: https://youtu.be/UeuxAkFKr6I
La máquina virtual y la plataforma Java se está convirtiendo en el pilar de multiples lenguajes: Java, Scala, Groovy, Clojure, Ceylon, JRuby... pero muchos desarrolladores no conocen como funciona por dentro tanto el sistema de memoria como el recolector de basura. Este conocimiento es fundamental y puede marcar la diferencia entre dos programadores.
Esta charla consisitirá en una introducción a la gestión de memoria de la JVM (Hotspot), cómo trabaja el recolector de basura o algunas opciones para poder configurar las opciones por defecto.
Si alguna vez te has cruzado con un OutOfMemoryError y no entendistes la línea que copiastes de StackOverflow: esta es tu charla.
Slides del taller presentado por mi persona y Marcos Montaño en el Regional Scrum Gathering Bolivia 2014. Contiene una corta introducción sobre lo que es refactorización y una pequeña demostración del proceso.
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018 Codemotion
GraalVM es una nueva tecnología creada por Oracle para la JVM que permite convertirse además en una máquina virtual "universal", permitiendo ejecutar código de JS, Python, Ruby, C, C++ o R. Jerónimo nos hará una introducción a GraalVM: - como reemplazo del JIT de Java - para generar ejecutables ultrarápidos de Java sin necesitar la JRE - para ejecutar otros lenguajes contándonos sus bondades y sus actuales limitaciones.
Find out more presentations at https://madrid2018.codemotionworld.com/speakers/
UYOUG OTN Tour 2011 - RAC sin sorpresasNelson Calero
Presentación dada durante el OTN Tour 2011 en Montevideo.
Resumen:
Introducción a la versión clusterizada de la base de datos Oracle. Se presentan conceptos y consideraciones para su adpoción.
En esta presentación cubrimos el modelo de memoria del JDK 5/6/7, a partir de JDK 8 hay un cambio en el modelo de memoria, así que no toda la presentación seria valida, aunque algunos conceptos se mantienen.
Los ejemplos se pueden encontrar en https://github.com/ldebello/javacuriosities/tree/master/MemoryManagement
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
Slides de la charla en el MadridJUG sobre TypeScript y su parecido con Java. Se presentan los parecidos entre estos dos lenguajes y sus diferencias más notables.
La máquina virtual y la plataforma Java se está convirtiendo en el pilar de multiples lenguajes: Java, Scala, Groovy, Clojure, Ceylon, JRuby... pero muchos desarrolladores no conocen como funciona por dentro tanto el sistema de memoria como el recolector de basura. Este conocimiento es fundamental y puede marcar la diferencia entre dos programadores.
Esta charla consisitirá en una introducción a la gestión de memoria de la JVM (Hotspot), cómo trabaja el recolector de basura o algunas opciones para poder configurar las opciones por defecto.
Si alguna vez te has cruzado con un OutOfMemoryError y no entendistes la línea que copiastes de StackOverflow: esta es tu charla.
Slides del taller presentado por mi persona y Marcos Montaño en el Regional Scrum Gathering Bolivia 2014. Contiene una corta introducción sobre lo que es refactorización y una pequeña demostración del proceso.
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018 Codemotion
GraalVM es una nueva tecnología creada por Oracle para la JVM que permite convertirse además en una máquina virtual "universal", permitiendo ejecutar código de JS, Python, Ruby, C, C++ o R. Jerónimo nos hará una introducción a GraalVM: - como reemplazo del JIT de Java - para generar ejecutables ultrarápidos de Java sin necesitar la JRE - para ejecutar otros lenguajes contándonos sus bondades y sus actuales limitaciones.
Find out more presentations at https://madrid2018.codemotionworld.com/speakers/
UYOUG OTN Tour 2011 - RAC sin sorpresasNelson Calero
Presentación dada durante el OTN Tour 2011 en Montevideo.
Resumen:
Introducción a la versión clusterizada de la base de datos Oracle. Se presentan conceptos y consideraciones para su adpoción.
En esta presentación cubrimos el modelo de memoria del JDK 5/6/7, a partir de JDK 8 hay un cambio en el modelo de memoria, así que no toda la presentación seria valida, aunque algunos conceptos se mantienen.
Los ejemplos se pueden encontrar en https://github.com/ldebello/javacuriosities/tree/master/MemoryManagement
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserMicael Gallego
Slides de la charla en el MadridJUG sobre TypeScript y su parecido con Java. Se presentan los parecidos entre estos dos lenguajes y sus diferencias más notables.
Este es el curso de javascript desde cero a experto que vas a terminar, te prometo que no te vas a aburrir durante el aprendizaje de este curso de javascript, vas a aprender javascript fácil.
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.
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.
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.
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
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
4. ¿Java?
• Lenguaje (Java 11)
• OpenJDK (Java Virtual Machine)
• Bibliotecas/API (Java Classpath)
El conjunto de los 3 es la plataforma Java(TM) pero pueden usarse de forma
independiente
3
13. Kotlin como lenguaje
• Típado estático con inferencia de
tipos
• OOP y funcional
• Funciones son ciudadanos de
primer nivel
• Interoperable con Java
• Compilador genera Bytecode nivel
Java 6 (Android)
12
15. Kotlin - Inferencia de tipos (constantes y variables)
Similar a lo visto en TypeScript o Swift, promueve la inmutabilidad
1 // Mutable
2 var answer = 42
3
4 // Inmutable
5 val phrase = "JVM Rocks!"
6
7 // Declaración explicita
8 val pi : Double = "3.14159"
9
10 // Inferencia por retorno
11 val auto = crearAuto()
13
16. Kotlin - Funciones
Pueden ser top level, nested y a su vez pueden ser bloques o expresiones
1 //Bloque
2 fun sumar(x: Int, y: Int): Int{
3 return x + y
4 }
5
6 //One-line - Expresion y default parameter
7 fun sumar2(x: Int, y: Int = 99) = x + y
8
9 //Infix - AKA operador
10 infix fun Int.sumar3(y: Int) = this + y
11 ...
12 //Uso
13 2 sumar3 4
14
17. Kotlin - Clases
Todas las clases heredan de Any
1 //Clase
2 class Automovil: Vehiculo{
3 ...
4 constructor(conductor:Persona): super(conductor){
5 ...
6 }
7 }
8
9 //Clase concisa
10 class Automovil(conductor:Persona): Vehiculo(conductor){
11 ...
12 }
15
18. Kotlin - Propiedades y clases
Combinación del campo y métodos de acceso
1 //Clase
2 class Automovil: Vehiculo{
3 var marca: String
4 var modelo: Int = 2020
5 var motor: String = ""
6 set(value) {
7 field = value + "CC"
8 }
9 get() = field + " extra info"
10 }
16
19. Kotlin - Clases
Kotlin permite escribir clases y data carriers de forma concisa
1 //Forma corta
2 class Automovil(val marca: String, val color: String="Rojo")
3 ...
4 //Data class (metodos universales como equals, hash code,
toString)
5 data class Automovil(val marca: String,
6 val color: String="Rojo")
17
20. Kotlin - Object AKA Singleton
Creación de instancias únicas
1 object Automovil: Vehiculo {
2 override fun correr(){
3 ...
4 }
5 }
6
7 //Invocamos comportamiento
8 Automovil.correr()
9
10
11 //Y lo usamos como objeto
12 fun iniciarVehiculo(Automovil)
18
22. Kotlin - Extension functions
Posibilidad de extender funcionalidad en clases existentes
1 fun String.ultimoCar(): Char = this.get(this.lenght - 1)
2
3 val frase: Char = "Yo amo la JVM".ultimoCar()
20
23. Kotlin - Verificación de nulos
En Kotlin la verificación de nulos y declaración de variables .abiertas.es explicita
1 val talvez: String? = ...
2
3 talvez.length //Error de compilacion
4 talvez?.length
5
6 fun forzarNull(s: String?) {
7 println(s!!.length)
8 }
21
24. Kotlin - Smart Cast y Pattern Matching
El casting se da automático en ciertos bloques y expresiones
1 val auto1: Vehiculo = ...
2
3 if (auto1 is Automovil){
4 auto1.cosasDeAutos()
5 }
6
7 when (auto1) {
8 is Automovil -> auto1.cosasDeAutos()
9 is Motocicleta -> auto1.cosasDemotos()
10 else -> throw Exception("El vehiculo de los ojos tristes")
11 }
22
26. Kotlin - Convenciones
• Convenciones de nombrado Java
• Típos en Uppercase
• Metodos y propiedades en lower
camelCase
• Punto y coma son opcionales
• Convención reversa en nombrado de
paquetes
• Multiples clases por archivo
• Los paquetes en código no deben
coincidir con nombres de directorios
24
53. Kotlin
Ventajas
• Código conciso si se aprenden los
nuevos bloques y expresiones
• Java inter-op
• Una oportunidad de Backend para
desarrolladores Android
• Un nuevo abordaje ”Full-stack”
Desventajas
• IntelliJ IDEA Ultimate
• Curva de aprendizaje más
pronunciada
• Compiler (time)
• Thread-managed vs Co-routines
• Amber, Loom, Valhalla, Panama
(Java 18?)
49