El documento habla sobre casos de éxito de empresas como Twitter, LinkedIn y Coursera al adoptar Scala. Explica que Twitter y LinkedIn usan Scala para crear servicios de alto tráfico que forman parte de sistemas distribuidos. También menciona que Coursera migró de PHP a Play, Scala y Slick para soportar su alto tráfico.
Subversion es un sistema de control de versiones diseñado específicamente para reemplazar al popular CVS. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser el nombre de la herramienta utilizada en la línea de comando. Esta presentación recoge buenas prácticascon Subversion. Además, se hace una pequeña introducción a las principales características y conceptos básicos de Subversion.
Segundo artículo de la serie El Archipiélago Eclipse.
Esta serie expone qué es Eclipse, cuál es su estructura, en qué se diferencia o se asemeja a otros productos ya existentes, cuáles son sus ventajas e inconvenientes, cuál podría ser su utilidad para los desarrolladores (centrándose en la comunidad Java), qué estrategias empresariales subyacen bajo el proyecto Eclipse y cuál podría ser su futuro.
Autor: Miguel Ángel Abián
Publicado originalmente en javaHispano.
Subversion es un sistema de control de versiones diseñado específicamente para reemplazar al popular CVS. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser el nombre de la herramienta utilizada en la línea de comando. Esta presentación recoge buenas prácticascon Subversion. Además, se hace una pequeña introducción a las principales características y conceptos básicos de Subversion.
Segundo artículo de la serie El Archipiélago Eclipse.
Esta serie expone qué es Eclipse, cuál es su estructura, en qué se diferencia o se asemeja a otros productos ya existentes, cuáles son sus ventajas e inconvenientes, cuál podría ser su utilidad para los desarrolladores (centrándose en la comunidad Java), qué estrategias empresariales subyacen bajo el proyecto Eclipse y cuál podría ser su futuro.
Autor: Miguel Ángel Abián
Publicado originalmente en javaHispano.
Un framework basado en las mejores prácticas de programación web, que no sólo se preocupa de los programadores sino también de ayudar a conseguir un producto que beneficie también al usuario final mejorando la usabilidad de las aplicaciones y además basado en software libre.
El desarrollo de aplicaciones en diversas plataformas y lenguajes en una empresa, es un caso de uso muy común que se presenta a lo largo del tiempo. Así mismo, la necesidad de poder integrar los datos de estas diversas aplicaciones, muchas veces incompatibles entre si, lleva a la necesidad de desarrollar aplicaciones que se encarguen del intercambio de estos datos para lograr un consolidado de información que aporte valor a la empresa.
Al momento de diseñar este tipo de aplicaciones, es común el observar patrones una y otra vez. Dichos patrones han sido recopilados y documentados por Gregor Hohpe y Bobby Woolf en su libro "Enterprise Integration Patterns", en el cual ofrecen una visión completa y muy bien explicada de estos patrones, así como de una nomenclatura que se ha vuelto estándar para representar estos patrones.
Apache Camel es la implementación de la gran mayoría de los patrones propuestos por Gregor y Bobby para la plataforma Java y de manera OpenSource bajo licencia Apache 2.0. Apache Camel es una alternativa a diversas herramientas comerciales para realizar aplicaciones empresariales de integración de aplicaciones.
En la conferencia se mostraran los patrones mas comunes, su notación, diseño e implementación usando Apache Camel, de igual manera se mostrara la infraestructura necesaria para ejecutar Apache Camel, los mecanismos de monitoreo de aplicaciones desarrolladas con Camel y como se puede integrar con productos de integración como Brokers de Mensajería (JMS), Enterprise Service Bus (ESB) y servidores de aplicaciones clásicos
Introducción a Laravel 5, un framework PHP para artesanos web.
Características generales, ventajas comparativas y algunos ejemplos de cómo éste framework te ayuda a desarrollar aplicaciones web de forma rápida y segura.
Estructura de Directorio de KumbiaPHP Framework versión 1.0 SpiritDeivinson Tejeda
Paper que muestra los cambios dados en la nueva estructura de directorios incorporada en la versión 1.0 Spirit de KumbiaPHP Framework http://www.kumbiaphp.com
Java es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web que no funcionarán a menos que tenga Java instalado y cada día se crean más.
Kumbia PHP Framework - Inicios, Presente y FuturoDeivinson Tejeda
En el desarrollo actual de software, las estructuras de soporte de proyectos denominadas framework, se han vuelto comunes gracias a su facilidad de modelado entre las relaciones generales de las entidades de dominio, en torno a esto y soportando el Modelo Vista Controlador (MVC), nace Kumbia, que pretende ser una solución a cualquier tipo de persona desde el principiante, pasando por el desarrollador que no tiene tiempo para aprender un nuevo framework hasta la empresa de desarrollo de software.
Kumbia es innovador y su principal enfoque es desarrollar herramientas que faciliten y hagan más productivos los proyectos y software orientado a la web. Escribir cada componente del framework pensando en que sea fácil de usar para cualquiera que lea su documentación ó simplemente tenga en sus manos un ejemplo de ello. A diferencia de otros frameworks para PHP, Kumbia se enfoca en la sencillez y el pragmatismo, de esta forma se logra resultados impresionantes en pocas líneas de código.
Esta presentación busca dar a conocer de la mano de sus creadores el framework PHP Kumbia, que representa actualmente uno de los proyectos de software libre de origen hispano más importante. Se presentaran los inicios, razón de existir, objetivos, a corto, mediano y largo plazo de la herramienta, así como el desarrollo de ejemplos de los componentes, generadores y alcances de la misma, permitiendo a los participantes formular sus inquietudes y dudas a través de un debate conducido por los desarrolladores del Framework.
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
Seminario sobre Spring Roo y monitorización con Spring Insight organizado por Paradigma Tecnologico y Javahispano, impartido en Madrid el 14 de octubre de 2010 por Federico Caro
Un framework basado en las mejores prácticas de programación web, que no sólo se preocupa de los programadores sino también de ayudar a conseguir un producto que beneficie también al usuario final mejorando la usabilidad de las aplicaciones y además basado en software libre.
El desarrollo de aplicaciones en diversas plataformas y lenguajes en una empresa, es un caso de uso muy común que se presenta a lo largo del tiempo. Así mismo, la necesidad de poder integrar los datos de estas diversas aplicaciones, muchas veces incompatibles entre si, lleva a la necesidad de desarrollar aplicaciones que se encarguen del intercambio de estos datos para lograr un consolidado de información que aporte valor a la empresa.
Al momento de diseñar este tipo de aplicaciones, es común el observar patrones una y otra vez. Dichos patrones han sido recopilados y documentados por Gregor Hohpe y Bobby Woolf en su libro "Enterprise Integration Patterns", en el cual ofrecen una visión completa y muy bien explicada de estos patrones, así como de una nomenclatura que se ha vuelto estándar para representar estos patrones.
Apache Camel es la implementación de la gran mayoría de los patrones propuestos por Gregor y Bobby para la plataforma Java y de manera OpenSource bajo licencia Apache 2.0. Apache Camel es una alternativa a diversas herramientas comerciales para realizar aplicaciones empresariales de integración de aplicaciones.
En la conferencia se mostraran los patrones mas comunes, su notación, diseño e implementación usando Apache Camel, de igual manera se mostrara la infraestructura necesaria para ejecutar Apache Camel, los mecanismos de monitoreo de aplicaciones desarrolladas con Camel y como se puede integrar con productos de integración como Brokers de Mensajería (JMS), Enterprise Service Bus (ESB) y servidores de aplicaciones clásicos
Introducción a Laravel 5, un framework PHP para artesanos web.
Características generales, ventajas comparativas y algunos ejemplos de cómo éste framework te ayuda a desarrollar aplicaciones web de forma rápida y segura.
Estructura de Directorio de KumbiaPHP Framework versión 1.0 SpiritDeivinson Tejeda
Paper que muestra los cambios dados en la nueva estructura de directorios incorporada en la versión 1.0 Spirit de KumbiaPHP Framework http://www.kumbiaphp.com
Java es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web que no funcionarán a menos que tenga Java instalado y cada día se crean más.
Kumbia PHP Framework - Inicios, Presente y FuturoDeivinson Tejeda
En el desarrollo actual de software, las estructuras de soporte de proyectos denominadas framework, se han vuelto comunes gracias a su facilidad de modelado entre las relaciones generales de las entidades de dominio, en torno a esto y soportando el Modelo Vista Controlador (MVC), nace Kumbia, que pretende ser una solución a cualquier tipo de persona desde el principiante, pasando por el desarrollador que no tiene tiempo para aprender un nuevo framework hasta la empresa de desarrollo de software.
Kumbia es innovador y su principal enfoque es desarrollar herramientas que faciliten y hagan más productivos los proyectos y software orientado a la web. Escribir cada componente del framework pensando en que sea fácil de usar para cualquiera que lea su documentación ó simplemente tenga en sus manos un ejemplo de ello. A diferencia de otros frameworks para PHP, Kumbia se enfoca en la sencillez y el pragmatismo, de esta forma se logra resultados impresionantes en pocas líneas de código.
Esta presentación busca dar a conocer de la mano de sus creadores el framework PHP Kumbia, que representa actualmente uno de los proyectos de software libre de origen hispano más importante. Se presentaran los inicios, razón de existir, objetivos, a corto, mediano y largo plazo de la herramienta, así como el desarrollo de ejemplos de los componentes, generadores y alcances de la misma, permitiendo a los participantes formular sus inquietudes y dudas a través de un debate conducido por los desarrolladores del Framework.
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
Seminario sobre Spring Roo y monitorización con Spring Insight organizado por Paradigma Tecnologico y Javahispano, impartido en Madrid el 14 de octubre de 2010 por Federico Caro
2. @mordonez_me
Marco Ordoñez
Apasionado de las nuevas tecnologías.
Usuario de las tecnologías de Scala desde hace ~3 años.
Fundador de la empresa Evolbit (www.evolbit.pe).
Promotor del uso de los principios reactivos en el desarrollo de Software.
4. Perú user group
Twitter
Scala, casos de éxito y porqué me debería interesar
http://www.typesafe.com/resources/case-studies-and-stories/new-tweets-per-second-record-and-how
Twitter quería asegurarse que el servicio esté disponible sin importar lo que suceda al rededor
del mundo pero tuvo un problema en el año 2010 con el stack de aquel entonces (Ruby) cuando
la copa mundial puso a twitter en el medio de una conversación global en tiempo real.
Hoy gran parte de los servicios de Twitter están hechos con Scala, principalmente para crear
servicios de alto tráfico que forman parte de sistemas distribuidos.
5. Perú user group
LinkedIn
Scala, casos de éxito y porqué me debería interesar
http://www.typesafe.com/resources/case-studies-and-stories/the-play-framework-at-linkedin
LinkedIn utiliza Scala en el core del grafo de su red social y otros componentes críticos .
Hoy gran parte de los servicios de LinkedIn están hechos con Scala, principalmente para crear
servicios de alto tráfico que forman parte de sistemas distribuidos.
Han realizado diversos proyectos open source basados en Scala, por ejemplo Norbert y Kafka.
6. Perú user group
Coursera
Scala, casos de éxito y porqué me debería interesar
http://www.typesafe.com/resources/case-studies-and-stories/making-online-education-accessible-with-typesafe
Coursera evolucionó de PHP hacia un nuevo stack de tecnologías para poder soportar el tráfico que
experimentaba (6.3 millones de estudiantes).
Se evaluaron Python y Typesafe reactive platform y la ganadora fue la plataforma de Typesafe. El
stack actual incluye Playframework, Scala y Slick.
7. Perú user group
Scala, casos de éxito y porqué me debería interesar
http://www.typesafe.com/resources/case-studies-and-stories/walmart-boosts-conversions-by-20-with-typesafe-reactive-platform
Wallmart Canadá quería mejorar el rendimiento de su tienda en linea para brindar un mejor servicio
a sus usuarios.
Antes de la migración, las tecnologías que usaban los forzaban a adquirir hardware muy costoso y
tenían limitaciones de concurrencia por el software legacy que tenían.
Luego de la migración lograron mitigar sus problemas de hardware usando Play, mejoraron el
rendimiento de desarrollo y lograron una mejor integración con otros sistemas legacy.
9. Perú user group
Scala, casos de éxito y porqué me debería interesar
Las casos de éxito relacionados con Scala evidencian la confianza y buenos resultados que otras
empresa han tenido al adoptar Scala y el stack de Typesafe.
Si bien el stack de Typesafe soporta tanto Scala como Java, en el caso de Scala hay algunos
beneficios que son importantes resaltar.
Soporte de dos paradigmas, orientado a
objetos y funcional.
Inferencia de tipos
Multi herencia a través de traits
Código más compacto
Funciones de orden superior
Interoperabilidad con Java
Conversiones implícitas
Pattern matching
Parámetros nombrados
Paralelismo en las colecciones
Eliminación de excepciones null con Option
Colecciones mutables e inmutables
Optimización de recursividad por cola
12. Perú user group
¿Orientado a objetos o funcional?
La verdad desde la perspectiva computacional funcional más pura es que se debe ser 100%
funcional, sin embargo Scala ofrece la convivencia de ambos paradigmas de una forma segura.
Siendo la programación orientada la más conocida por todos, veamos que es la programación
funcional y evaluemos las ventajas de practicarla.
13. Perú user group
¿Orientado a objetos o funcional?
¿Qué es la programación funcional?
La programación funcional está basada en una premisa básica, construir programas utilizando
funciones puras (que no tienen efectos colaterales).
La programación funciona vista desde un modo estricto no permite la modificación de variables, el
uso de iteraciones como estructuras de control (loops) ni otras estructuras de la programación
orientada a objetos (imperativa).
Vista de un plano mas general podemos decir que la programación funcional está enfocada
específicamente en las funciones, siendo estas valores que pueden ser producidos, consumidos y
compuestos g ∘ f: X → Z.
14. Perú user group
¿Orientado a objetos o funcional?
¿Qué beneficios tiene la programación funcional?
Uno de los beneficios actuales más populares debido a su naturaleza inmutable es el beneficio
obtenido con el paralelismo en computadoras multicore.
Desde hace un tiempo atrás los procesadores no se están volviendo mucho mas rápidos por core
sino que están compuestos de varios cores. Para sacar provecho a esto es necesario ejecutar
instrucciones en cada core (threads), sin embargo el gran problema de esto es el estado mutable
compartido de una variable en diferentes threads. La programación funcional soluciona ese gran
problema tratando con datos inmutables.
15. Perú user group
¿Orientado a objetos o funcional?
¿Qué beneficios tiene la programación funcional?
Los programas escritos con programación funcional son más compactos y más fáciles de entender.
Tiene menor riesgo de efectos colaterales, elimina las clásicas preguntas de ¿Como se cambió este
valor?
Polimorfismo paramétrico para que una función trate con diferentes tipos de datos.
Evaluación perezosa que evita la ejecución de código hasta el momento de uso.
Parámetros call by name que evitan la reducción de parámetros hasta el momento de su uso.
Y también puede todo lo que otros lenguajes orientados a objetos pueden hacer…
16. Perú user group
¿Orientado a objetos o funcional?
Conocer la programación funcional es un camino largo pero Scala
hace que sea mucho más fácil de caminar soportando ambos
paradigmas.
18. Perú user group
Introducción al framework Play
Play framework es un framework que fue inicialmente inspirado en su diseño por otro frameworks
MVC como Django o Ruby on Rails.
Su enfoque es brindar un framework que cumpla con los principios reactivos
(www.reactivemanifesto.com) y que sea simple de usar.
En la actualidad play cuenta con más de 150 plantillas que sirven de ejemplo.
Cuenta con soporte tanto para Scala como para Java.
Es 100% asíncrono (non blocking) y está construido con Akka.
Cuenta con compilador de assets y se integra con webjars para el manejo de dependencias
Frontend.
19. Perú user group
¿Orientado a objetos o funcional?
¿Por qué elegir play?
100% asíncrono
Puede hacer más que otros frameworks en el mismo hardware por su computación paralela.
Es completamente stateless (no tiene sesión http).
Se despliega como una aplicación standalone, puede ser RPM, Debian, tar.gz e incluso Docker.
Está integrado completamente con Akka.
Web sockets a través de actores.
Cuenta con inyección de dependencias por defecto.
20. Perú user group
Introducción al framework Play
¿Por qué elegir play?
Cuenta con evolutions para migraciones en la base de datos.
Se integra perfectamente con Slick como FRM (Functional relational mapping).
Está respaldado por la empresa Typesafe que brinda soporte enterprise a un precio cómodo.
Permite la configuración de pool de threads para usar en diferentes contextos.
Sistema de plantillas con evaluación en tiempo de compilación.
Gran cantidad de librerías y una comunidad muy grande.
Está basado en SBT.
21. Perú user group
Introducción al framework Play
Anatomia de un proyecto Play
app: Todos el código fuente relacionado al
proyecto
app/controllers: Todos los controladores de la
aplicación
conf: Archivos de configuración del proyecto
project: archivos de configuración, por ejemplo
versión de play, sbt, plugins.
public: Todos losa archivos estáticos
test: Archivos de tests
22. Perú user group
Introducción al framework Play
Los controladores
Los métodos pueden ser definidos como Action o
Action.async.
Las plantillas se llaman por su nombre de
paquete. Las plantillas son convertidas a código.
23. Perú user group
Introducción al framework Play
Las vistas
Todas las plantillas reciben parámetros
como una función.
24. Perú user group
Introducción al framework Play
Las rutas
El archivo de rutas define una ruta y el controlador al que direcciona por linea.
25. Perú user group
Introducción al framework Play
La configuración
El archivo de configuración utiliza el
formato HOCON (Human-Optimized
Config Object Notation)
26. Perú user group
Introducción al framework Play
La ejecución
El comando run inicia la ejecución.
Los comandos pueden utilizar el
símbolo ~ antes para habilitar
autoreload.
27. Perú user group
Introducción al framework Play
Activator
Activator es el comando por defecto que
reemplaza a sbt y que además trae una
interfaz gráfica para explorar los
ejemplos y compilarlos en la misma
web.
Para activarlo se debe usar activator ui
30. Perú user group
Introducción al stack de Typesafe
Lenguaje multiparadigma (orientado a objetos y funcional)
http://scala-lang.org
31. Perú user group
Introducción al stack de Typesafe
Framework basado en el modelo de actores para manejar la concurrencia.
http://akka.io
32. Perú user group
Introducción al stack de Typesafe
Framework web 100% asíncrono basado en los principios reactivos.
http://playframework.com
https://www.typesafe.com/blog/why-is-play-framework-so-fast
33. Perú user group
Introducción al stack de Typesafe
Procesamiento de datos de gran volumen.
http://spark.apache.org
34. Perú user group
Introducción al stack de Typesafe
Libreria para acceso a bases de datos basada en principios funcionales (FRM)
http://slick.typesafe.com