Introduction to the Scala programming language @ the Java Klassentreffen 2013 in Vienna and Linz organized by http://www.javaklassentreffen.at
Introducing the background, design goals, and some examples (from a Java perspective)
http://java.at/web/guest/jkt13
Why is Haskell so hard! (And how to deal with it?)Saurabh Nanda
Slides of my talk at Functional Conf 2019 where I draw upon my personal journey of learning Haskell and try to explain WHY learning Haskell is so hard. And even while it is hard, it is worth learning Haskell!
The document provides an overview of Scala and discusses its advantages compared to other programming languages. Some key points:
- Scala is a multi-paradigm language that supports both object-oriented and functional programming. It runs on the JVM and can access Java libraries.
- Functional programming in Scala enables easier concurrency and scalability compared to imperative programming. Static typing also adds type safety.
- Scala provides flexibility to write code in different styles depending on one's skill level, without restricting creativity. Its REPL environment makes it easy to learn interactively.
- While Scala compilation times can be long, its hybrid approach enables gradual learning from both object-oriented and functional perspectives
This presentation is based on Joakim\’s experiences from moving from Java to Scala http://www.scala-lang.org/node/960#Joak We will explore how to move from Java to Scala and why. We\’ll look at things that you will run into sooner rather than later such as Scala\’s collection APIs, Options and higher order functions and special syntax. You will leave this presentation with good foundation to use Scala in practice; perhaps even in your current Java project and ideally with an appetite to learn more.
Scala is a functional and object-oriented programming language that runs on the Java Virtual Machine (JVM). Martin Odersky created Scala in 2003 with the goal of making a better Java. Scala combines object-oriented and functional programming which allows for features like closures, immutable data structures, pattern matching and more. It is intended to be more concise and powerful than Java.
Presentacion foro de análisis: a 4 años del mal gobierno del #PANMiguel Centeno Silva
El documento critica fuertemente al gobierno del PAN en Sonora por altos niveles de corrupción. Señala que hubo un aumento significativo en el número de observaciones a la cuenta pública, especialmente relacionadas con irregularidades en obra pública. También indica que Sonora cayó en rankings de transparencia presupuestal y competitividad durante el gobierno del PAN. Finalmente, afirma que hubo un fuerte crecimiento de la deuda pública y los adeudos a proveedores durante este periodo.
Care2 Mobile Presentation - NetSquared DC January 28, 2014Roshani Kothari
Care2 is the largest online action community for progressives with nearly 24 million members. As mobile usage increases, with over 40% of email now opened on mobile devices, Care2 redesigned their website and templates to be fully responsive and optimized for mobile. The redesign was successful, driving a 25% increase in mobile traffic and 40% increase in petition opt-ins.
Este documento presenta un curso de Criminología Vial dirigido a miembros de las fuerzas y cuerpos de seguridad y otros profesionales. El curso consta de 8 módulos y 80 horas con el objetivo de proporcionar formación específica en criminología vial y aplicar estos conocimientos para reducir siniestros viales. El curso cubre temas como la victimología vial, prevención de delitos viales, educación vial y riesgos laborales en la seguridad vial.
Why is Haskell so hard! (And how to deal with it?)Saurabh Nanda
Slides of my talk at Functional Conf 2019 where I draw upon my personal journey of learning Haskell and try to explain WHY learning Haskell is so hard. And even while it is hard, it is worth learning Haskell!
The document provides an overview of Scala and discusses its advantages compared to other programming languages. Some key points:
- Scala is a multi-paradigm language that supports both object-oriented and functional programming. It runs on the JVM and can access Java libraries.
- Functional programming in Scala enables easier concurrency and scalability compared to imperative programming. Static typing also adds type safety.
- Scala provides flexibility to write code in different styles depending on one's skill level, without restricting creativity. Its REPL environment makes it easy to learn interactively.
- While Scala compilation times can be long, its hybrid approach enables gradual learning from both object-oriented and functional perspectives
This presentation is based on Joakim\’s experiences from moving from Java to Scala http://www.scala-lang.org/node/960#Joak We will explore how to move from Java to Scala and why. We\’ll look at things that you will run into sooner rather than later such as Scala\’s collection APIs, Options and higher order functions and special syntax. You will leave this presentation with good foundation to use Scala in practice; perhaps even in your current Java project and ideally with an appetite to learn more.
Scala is a functional and object-oriented programming language that runs on the Java Virtual Machine (JVM). Martin Odersky created Scala in 2003 with the goal of making a better Java. Scala combines object-oriented and functional programming which allows for features like closures, immutable data structures, pattern matching and more. It is intended to be more concise and powerful than Java.
Presentacion foro de análisis: a 4 años del mal gobierno del #PANMiguel Centeno Silva
El documento critica fuertemente al gobierno del PAN en Sonora por altos niveles de corrupción. Señala que hubo un aumento significativo en el número de observaciones a la cuenta pública, especialmente relacionadas con irregularidades en obra pública. También indica que Sonora cayó en rankings de transparencia presupuestal y competitividad durante el gobierno del PAN. Finalmente, afirma que hubo un fuerte crecimiento de la deuda pública y los adeudos a proveedores durante este periodo.
Care2 Mobile Presentation - NetSquared DC January 28, 2014Roshani Kothari
Care2 is the largest online action community for progressives with nearly 24 million members. As mobile usage increases, with over 40% of email now opened on mobile devices, Care2 redesigned their website and templates to be fully responsive and optimized for mobile. The redesign was successful, driving a 25% increase in mobile traffic and 40% increase in petition opt-ins.
Este documento presenta un curso de Criminología Vial dirigido a miembros de las fuerzas y cuerpos de seguridad y otros profesionales. El curso consta de 8 módulos y 80 horas con el objetivo de proporcionar formación específica en criminología vial y aplicar estos conocimientos para reducir siniestros viales. El curso cubre temas como la victimología vial, prevención de delitos viales, educación vial y riesgos laborales en la seguridad vial.
Catálogo de servicios para la administración públicaPROQUAME
ProQuaMe es una empresa creada en 2004 que ofrece servicios de apoyo de gestión a empresas y administraciones públicas de Baleares para mejorar su productividad. ProQuaMe tiene más de 10 años de experiencia trabajando con administraciones públicas locales en las Islas Baleares, ofreciendo servicios financieros, jurídicos, organizativos y de planificación. La empresa está compuesta por dos consultores con experiencia en gestión financiera y organizativa en el sector público y privado.
Luis Roberto Rueda, El postergado debate sobre la tenencia de drogas para uso...Juez Luis Rueda
Luis Roberto Rueda, abogado, magíster en drogadependencia y profesor de la Universidad Católica de Córdoba (UCCor) afirma que no alcanza con exponer las razones que se pueden invocar a favor o en contra de la penalización para uso personal.
LA County HIV Public Health Fellowship Program Application FormEric Olander
To apply for the Los Angeles County HIV Public Health Services Fellowship Program, interested candidates must submit a letter of interest – including career goals and how the fellowship would help him/her achieve those goals – their curriculum vitae, and a list of references, to:
County of Los Angeles Department of Health Services
Los Angeles County HIV Public Health Fellowship Program
5850 South Main Street, Room 2214
Los Angeles, California, 90003
Este documento resume la investigación de Jean Tirole sobre las organizaciones. Tirole ha tenido un gran impacto en varios campos a través de su investigación, docencia y administración. Su trabajo y el de Ronald Coase establecieron que la asignación de recursos dentro de las organizaciones se realiza a través de la autoridad jerárquica, no del mercado. Posteriormente, Tirole y Aghion analizaron cómo y cuándo se debe delegar la autoridad formal a los agentes para mejorar los incentivos y participación, aunque esto implique cierta pérdida de control
Lily vive en el pueblo de Porthleven en Cornualles, una región turística del suroeste de Inglaterra conocida por su costa preciosa aunque siempre llueve.
La tendencia del mundo actual a emplear nuevos mecanismos para hacer negocios, a contar con información actualizada permanentemente que permita la toma de decisiones, ha facilitado el desarrollo de nuevas tecnologías y sistemas de información, que a su vez son vulnerables a las amenazas informáticas crecientes y por ende a nuevos riesgos.
Este documento presenta la información básica sobre el curso de inglés nivel A2 en la Escuela Oficial de Idiomas de Vélez-Málaga para el año escolar 2012-2013. Incluye detalles sobre el horario, los libros de texto recomendados, las fechas de viernes lectivos, las tutorías disponibles y los criterios de evaluación.
Ein Überblick über Mehrwert, Nutzen und Kernkompetenzen der ECM/DMS-Suite d.3 von d.velop.
An overview about added value, benefit and core capabilities of the ECM/DMS-Suite d.3 from d.velop.
The document provides an overview of the British conquest of North America, focusing on the war between Britain and France over control of the territory of Acadia and the deportation of the Acadian people from 1755-1763. It discusses the Mi'kmaq people who originally inhabited Acadia, the French settlement there, and the British gaining control through the Treaty of Utrecht. The document also addresses the Seven Years' War and the British victory over French forces at the Battle of the Plains of Abraham in 1759, which marked a turning point in British control of North America.
El documento presenta los principales conceptos de la doctrina social de la Iglesia Católica. Explica que la doctrina social ilumina la conducta cristiana y beneficia a todas las personas de buena voluntad. Se compone de principios, criterios y directrices para orientar la actividad social. También aborda temas como la dignidad de la persona, la sociedad, los derechos humanos y la libertad religiosa desde la perspectiva de la fe y la tradición cristiana.
Este documento trata sobre la discapacidad auditiva. Aborda la clasificación de la discapacidad auditiva según el momento de la pérdida, el grado y la localización de la lesión. También describe las causas de la discapacidad auditiva y los enfoques de evaluación e intervención psicopedagógica. El documento fue preparado por la Mtra. Nilvia Beatríz Vázquez para su curso de Problemas de Aprendizaje y Educación Especial en la Facultad de Psicología de la Universidad Ver
Presentacion de derecho romano 15082015solodiossalva
El documento resume los conceptos clave de persona física en el derecho romano. Reconoció dos clases de personas: físicas (individuos) y jurídicas (colectivas). Para ser persona física se requería ser libre, ciudadano romano y jefe de familia. La persona comienza al nacer vivo y con forma humana. El concebido carecía de derechos hasta nacer. La persona termina con la muerte o pérdida del estado civil.
Este documento proporciona información sobre la anatomía del manguito rotador y técnicas quirúrgicas para su reparación. Describe la anatomía ósea del húmero y los cuatro tendones del manguito rotador. Explica roturas comunes y opciones de reparación como la técnica de SutureBridge. Resalta ventajas claves de SutureBridge como mayor estabilidad y contacto tendón-hueso en comparación con reparaciones de una sola fila.
SEO Attribution for Dummies - Webmarketing123 webinar slidesDemandWave
This document discusses attribution modeling and its importance for measuring marketing ROI. It begins with an overview of attribution, explaining the different attribution models and challenges with measuring individual channel performance. The presentation then discusses how SEO attribution specifically can help marketers understand which keywords and sources are introducing prospects and converting them. It provides examples of Google Analytics attribution solutions but notes their limitations. The document presents a company's proprietary attribution solution called KeyTouch Attribution and describes how it can track multi-channel interactions over time. Finally, it shares two case studies where companies used this type of attribution to gain valuable marketing insights.
This is a short introduction to the Scala programming language and its ecosystem, giving some background about how the language came to be and a quick taste of what it looks like. It also shortly introduces a few tools and technologies related to it
I used these slides for a Scala workshop that I gave. They are based on these: http://www.scala-lang.org/node/4454. Thanks to Alf Kristian Støyle and Fredrik Vraalsen for sharing!
Catálogo de servicios para la administración públicaPROQUAME
ProQuaMe es una empresa creada en 2004 que ofrece servicios de apoyo de gestión a empresas y administraciones públicas de Baleares para mejorar su productividad. ProQuaMe tiene más de 10 años de experiencia trabajando con administraciones públicas locales en las Islas Baleares, ofreciendo servicios financieros, jurídicos, organizativos y de planificación. La empresa está compuesta por dos consultores con experiencia en gestión financiera y organizativa en el sector público y privado.
Luis Roberto Rueda, El postergado debate sobre la tenencia de drogas para uso...Juez Luis Rueda
Luis Roberto Rueda, abogado, magíster en drogadependencia y profesor de la Universidad Católica de Córdoba (UCCor) afirma que no alcanza con exponer las razones que se pueden invocar a favor o en contra de la penalización para uso personal.
LA County HIV Public Health Fellowship Program Application FormEric Olander
To apply for the Los Angeles County HIV Public Health Services Fellowship Program, interested candidates must submit a letter of interest – including career goals and how the fellowship would help him/her achieve those goals – their curriculum vitae, and a list of references, to:
County of Los Angeles Department of Health Services
Los Angeles County HIV Public Health Fellowship Program
5850 South Main Street, Room 2214
Los Angeles, California, 90003
Este documento resume la investigación de Jean Tirole sobre las organizaciones. Tirole ha tenido un gran impacto en varios campos a través de su investigación, docencia y administración. Su trabajo y el de Ronald Coase establecieron que la asignación de recursos dentro de las organizaciones se realiza a través de la autoridad jerárquica, no del mercado. Posteriormente, Tirole y Aghion analizaron cómo y cuándo se debe delegar la autoridad formal a los agentes para mejorar los incentivos y participación, aunque esto implique cierta pérdida de control
Lily vive en el pueblo de Porthleven en Cornualles, una región turística del suroeste de Inglaterra conocida por su costa preciosa aunque siempre llueve.
La tendencia del mundo actual a emplear nuevos mecanismos para hacer negocios, a contar con información actualizada permanentemente que permita la toma de decisiones, ha facilitado el desarrollo de nuevas tecnologías y sistemas de información, que a su vez son vulnerables a las amenazas informáticas crecientes y por ende a nuevos riesgos.
Este documento presenta la información básica sobre el curso de inglés nivel A2 en la Escuela Oficial de Idiomas de Vélez-Málaga para el año escolar 2012-2013. Incluye detalles sobre el horario, los libros de texto recomendados, las fechas de viernes lectivos, las tutorías disponibles y los criterios de evaluación.
Ein Überblick über Mehrwert, Nutzen und Kernkompetenzen der ECM/DMS-Suite d.3 von d.velop.
An overview about added value, benefit and core capabilities of the ECM/DMS-Suite d.3 from d.velop.
The document provides an overview of the British conquest of North America, focusing on the war between Britain and France over control of the territory of Acadia and the deportation of the Acadian people from 1755-1763. It discusses the Mi'kmaq people who originally inhabited Acadia, the French settlement there, and the British gaining control through the Treaty of Utrecht. The document also addresses the Seven Years' War and the British victory over French forces at the Battle of the Plains of Abraham in 1759, which marked a turning point in British control of North America.
El documento presenta los principales conceptos de la doctrina social de la Iglesia Católica. Explica que la doctrina social ilumina la conducta cristiana y beneficia a todas las personas de buena voluntad. Se compone de principios, criterios y directrices para orientar la actividad social. También aborda temas como la dignidad de la persona, la sociedad, los derechos humanos y la libertad religiosa desde la perspectiva de la fe y la tradición cristiana.
Este documento trata sobre la discapacidad auditiva. Aborda la clasificación de la discapacidad auditiva según el momento de la pérdida, el grado y la localización de la lesión. También describe las causas de la discapacidad auditiva y los enfoques de evaluación e intervención psicopedagógica. El documento fue preparado por la Mtra. Nilvia Beatríz Vázquez para su curso de Problemas de Aprendizaje y Educación Especial en la Facultad de Psicología de la Universidad Ver
Presentacion de derecho romano 15082015solodiossalva
El documento resume los conceptos clave de persona física en el derecho romano. Reconoció dos clases de personas: físicas (individuos) y jurídicas (colectivas). Para ser persona física se requería ser libre, ciudadano romano y jefe de familia. La persona comienza al nacer vivo y con forma humana. El concebido carecía de derechos hasta nacer. La persona termina con la muerte o pérdida del estado civil.
Este documento proporciona información sobre la anatomía del manguito rotador y técnicas quirúrgicas para su reparación. Describe la anatomía ósea del húmero y los cuatro tendones del manguito rotador. Explica roturas comunes y opciones de reparación como la técnica de SutureBridge. Resalta ventajas claves de SutureBridge como mayor estabilidad y contacto tendón-hueso en comparación con reparaciones de una sola fila.
SEO Attribution for Dummies - Webmarketing123 webinar slidesDemandWave
This document discusses attribution modeling and its importance for measuring marketing ROI. It begins with an overview of attribution, explaining the different attribution models and challenges with measuring individual channel performance. The presentation then discusses how SEO attribution specifically can help marketers understand which keywords and sources are introducing prospects and converting them. It provides examples of Google Analytics attribution solutions but notes their limitations. The document presents a company's proprietary attribution solution called KeyTouch Attribution and describes how it can track multi-channel interactions over time. Finally, it shares two case studies where companies used this type of attribution to gain valuable marketing insights.
This is a short introduction to the Scala programming language and its ecosystem, giving some background about how the language came to be and a quick taste of what it looks like. It also shortly introduces a few tools and technologies related to it
I used these slides for a Scala workshop that I gave. They are based on these: http://www.scala-lang.org/node/4454. Thanks to Alf Kristian Støyle and Fredrik Vraalsen for sharing!
Scala is a multi-paradigm programming language that runs on the Java Virtual Machine. It is both object-oriented and functional, with support for immutable data and concise syntax. Scala has gained popularity due to its advantages like type safety, concurrency support, and interoperability with Java. However, some of Scala's advanced features can be difficult to read and use for beginners, and tooling support is not as robust as Java. Overall, Scala represents a promising approach that prioritizes simplicity over ease of use.
The document summarizes Scala as a replacement for Java, highlighting its capabilities as both an object-oriented and functional language that compiles to Java bytecode. It provides code examples demonstrating Scala's concise syntax for common tasks like defining classes, filtering collections, string reversal, and exception handling. The document also outlines an agenda for a Scala workshop covering its basic syntax, REPL/IDE setup, functions, pattern matching, OO features, and functional programming concepts.
Scala is a multi-paradigm programming language that runs on the Java Virtual Machine. It is designed to express common programming patterns in a concise, elegant, and type-safe way. Some key features of Scala include its support for functional programming, immutable data structures, pattern matching, traits for reuse and composition, and statically typed objects with type inference. Scala has a large and growing ecosystem of frameworks and tools and has been adopted by many companies for applications such as web development, big data, and streaming data processing.
Scala for Java Developers (Silicon Valley Code Camp 13)Ramnivas Laddad
My presentation at Silicon Valley Code Camp 13 (http://www.siliconvalley-codecamp.com/Session/2013/scala-for-java-developers). The target audience is Java developers who wants to get started with Scala.
Scala is a powerful language for the JVM that is compatible with JDK 1.5+. It is a functional language maintained by Typesafe along with the community. Scala compiles to JVM bytecode like Java but has features like objects, traits, pattern matching and functional programming. James Gosling, the creator of Java, said that if he were to pick a language other than Java today, it would be Scala.
The document provides an introduction and overview of the Scala programming language presented by Prasanna Kumar at a JUG-C group meetup. It covers topics such as what Scala is, why use Scala, basics of Scala programming constructs, development environments, frameworks, and learning resources.
Scala is a general purpose programming language that aims to be concise and elegant while avoiding issues with scaling to multiple processors. It provides both object oriented and functional programming features and integrates well with Java. Scala addresses scaling challenges through its support for actors which use asynchronous message passing instead of shared memory for concurrency.
The document discusses Scala and how it compares to Java 8 features. It covers Scala's support for lambda expressions, parallel collections, default interface implementations, and its earlier delivery date compared to Java 8. Code samples in both Java 8 and Scala are shown to demonstrate these features. The document encourages learning Scala and provides a code sample and link to more examples.
An Introduction to Scala for Java DevelopersMiles Sabin
The document provides an introduction to Scala for Java developers. It outlines key features of Scala including cleaning up Java syntax, going beyond Java with features like case classes, traits, and pattern matching, and its functional focus including support for higher-order functions, the Option type, and for comprehensions. The document also briefly discusses the Scala IDE for Eclipse.
BCS SPA 2010 - An Introduction to Scala for Java DevelopersMiles Sabin
This document provides an introduction to Scala for Java developers. It outlines how Scala cleans up Java syntax by making semi-colons optional, using == for equals and eq for reference equality, and allowing periods to be omitted. It also describes how Scala goes beyond Java by supporting features like case classes, pattern matching, named and default arguments, and mixin composition with traits. The document provides examples of using these features and explains how Scala seamlessly interoperates with Java.
The document provides an overview of the Scala programming language. It discusses what Scala is, its definition, and opinions on Scala from notable figures like the creator of Java. It also covers Scala's scalability, data types, functional aspects, object-oriented aspects, and comparison to Java. Key points are that Scala is a multi-paradigm language that integrates functional and object-oriented programming, runs on the JVM, and is more concise and expressive than Java.
This document contains information about a Scala workshop, including quotes from various people praising Scala and its capabilities. Examples are provided that demonstrate how to write the same code in Java and Scala, showing Scala's more concise syntax. The schedule for the workshop is listed and will cover basic Scala syntax, functions, pattern matching, object-oriented programming, and functional programming.
The document summarizes a Scala workshop. It discusses how Scala is seen as the heir to Java and a potential replacement for Java. It highlights some key advantages of Scala like being object oriented and functional, statically typed while compatible with Java bytecode. The workshop schedule outlines covering basic syntax, functions, pattern matching, object oriented programming and functional programming concepts.
The Scala programming language has been gaining momentum recently as an alternative (and some might say successor) to Java on the JVM. This talk will start with an introduction to basic Scala syntax and concepts, then delve into some of Scala's more interesting and unique features. At the end we'll show a brief example of how Scala is used by the Lift web framework to simplify dynamic web apps.
The document provides an overview of the Scala programming language. It begins with an agenda that outlines topics like differences between Java and Scala, Scala data types, variables, classes, functions, closures, exception handling and collections. It then discusses specific aspects of Scala like verbosity reduction compared to Java, functional programming influences, object-oriented features, interoperability with Java and compilation to Java bytecode. Examples are provided to illustrate Scala concepts like functions, classes, recursion, higher-order functions and exception handling. The document aims to explain Scala and reasons for differences from Java.
Scala is a programming language that mixes object oriented and functional programming in a powerful and flexible way. While it can not be considered as a mainstream language, it has seen a growing adoption trend.An important ingredient for this diffusion is its complete interoperability with Java and the fact that it runs on a solid platform such as the JVM.
It is currently the 4th most loved programming language and the 2nd top paying technology of 2016 (StackOverflow Developers Survey).
These slides have been used for a 4h seminar at the University of Cagliari the 17th of December 2016
This document provides an overview of the Scala programming language. Scala was designed to be scalable by unifying object-oriented and functional programming. It runs on the Java Virtual Machine and interoperates with Java libraries. Scala code is more concise than Java due to features like type inference, immutable data structures, and support for functional programming patterns. Popular frameworks developed using Scala include Apache Spark, Kafka, and Akka. Scala sees widespread use in domains like big data, web development, and scientific computing.
Is there anybody out there? Reactive Systems HamburgManuel Bernhardt
Foundations of cluster construction, more particularly the memberhsip service abstraction for building reliable distributed applications. This talk introduces failure detectors, dissemination strategies and consensus protocols
Is there anybody out there? Scala Days Berlin 2018Manuel Bernhardt
Foundations of cluster construction, more particularly the memberhsip service abstraction for building reliable distributed applications. This talk introduces failure detectors, dissemination strategies and consensus protocols
The document discusses key issues in building distributed systems clusters, including discovery, fault detection, and load balancing. It covers failure detection approaches like phi accrual failure detection and SWIM. It discusses dissemination using gossip protocols and the impossibility of achieving consensus with suspected failed nodes. Finally, it discusses time synchronization, consensus protocols like Paxos, and conflict-free replicated data types for consensus.
Modern applications are faced with the expectation of being always up. As a result, an increasing amount of businesses are transitioning to modern architectures such as the one of reactive microservice-based systems. As compelling as this sounds, this also means to embrace distribution so as to ensure fault-tolerance and scalability - which also means embracing the uncertainty and nondeterminism that comes with building networked applications: changes in link quality, network partitions and outages of individual nodes are scenarios that need to be addressed first-hand when designing such systems.
In this talk you will learn about the fundamental mechanisms that clustered systems need in order to operate in this uncertain world, such as failure detection, gossip-based cluster state propagation, split brain resolution and convergent replicated data types (CRDTs). We will look at these mechanisms in the context of Akka Cluster.
By the end of this talk you should have a solid understanding of the trade-offs that need to be made when building clustered applications. You will also get the sense that a networked application is not just one application, but the cooperation between individual processes that need to probe for each other’s availability and decide what to do when one or more of them are maybe unavailable all while not being able to talk with one another.
Scala Days Copenhagen - 8 Akka anti-patterns you'd better be aware ofManuel Bernhardt
The document discusses several anti-patterns when building distributed systems with Akka actors including: using global mutable state accessible by multiple actors; flat actor hierarchies without proper boundaries; having too many isolated actor systems instead of using custom dispatchers for bulkheading; logging in a way that negatively impacts performance; and not understanding hardware configurations can lead to suboptimal systems. The presentation provides alternatives such as immutable messaging, building hierarchies, using custom dispatchers, Akka's logging facilities, and hardware-aware configurations.
This document discusses 8 anti-patterns to avoid when using Akka. It summarizes each anti-pattern, how it can occur, why it is problematic, and recommends alternatives. The anti-patterns covered include: global mutable state, flat actor hierarchies, too many actor systems, logging incorrectly, being out of touch with hardware, blocking, re-inventing Akka tools, and using Java serialization. For each issue, the presenter provides guidance on better practices to follow instead.
Beyond the buzzword: a reactive web-appliction in practiceManuel Bernhardt
This talk & live-coding session gives an insight into the why, what and how of reactive applications, and web-applications in particular. The first part is theoretical, whilst the second part is a live-coding session introducing the Play Framework, Akka and the Scala programming language all whilst demonstrating reactive patterns such as Futures, Actors, Pipes and Circuit Breakers.
Beyond the Buzzword - a reactive application in practiceManuel Bernhardt
The document discusses reactive web application architecture and deployment. It presents an evolution of web application architecture including microservices. It then describes building a small reactive web application in Scala using Actors and Futures. For deployment, it recommends using a managed service like Lightbend ConductR for automated scaling and fault tolerance. Load testing tools like Gatling are also discussed.
3 things you must know to think reactive - Geecon Kraków 2015Manuel Bernhardt
Over the past few years, web-applications have started to play an increasingly important role in our lives. We expect them to be always available and the data to be always fresh. This shift into the realm of real-time data processing is now transitioning to physical devices, and Gartner predicts that the Internet of Things will grow to an installed base of 26 billion units by 2020.
As reactive architectures gain in popularity, more and more developers find themselves faced with the challenge of "thinking reactive". To leave behind the well-known concepts of mutable, object-oriented, imperative and synchronous programming in favour of immutable, functional, declarative and asynchronous programming requires quite a mind shift and it isn't obvious to take the plunge.
In this talk we will explore three concepts from the world of functional programming that are at the core of building reactive applications: immutability, higher-order functions and manipulating immutable collections. We will first see how the "traditional" mutable, object-oriented approach of doing things can be problematic when it comes to multi-core programming, and then how to apply them to asynchronous systems.
Over the past few years, web-applications have started to play an increasingly important role in our lives. We expect them to be always available and the data to be always fresh. This shift into the realm of real-time data processing is now transitioning to physical devices, and Gartner predicts that the Internet of Things will grow to an installed base of 26 billion units by 2020.
Reactive web-applications are an answer to the new requirements of high-availability and resource efficiency brought by this rapid evolution. On the JVM, a set of new languages and tools has emerged that enable the development of entirely asynchronous request and data handling pipelines. At the same time, container-less application frameworks are gaining increasing popularity over traditional deployment mechanisms.
This talk is going to give you an introduction into one of the most trending reactive web-application stack on the JVM, involving the Scala programming language, the concurrency toolkit Akka and the web-application framework Play. It will show you how functional programming techniques enable asynchronous programming, and how those technologies help to build robust and resilient web-applications.
My experience writing "Reactive Web-Applications with Play". This is my subjective view on writing a book with Manning. I'm not finished yet so there will likely be a second version of this presentation when the book is out.
Note if you weren't at the talk: the "know nothing" part refers to discovering the depth of a topic while writing, which I find to be one of the nicest things about writing (because I really like the subject matter)
Voxxed Days Vienna - The Why and How of Reactive Web-Applications on the JVMManuel Bernhardt
The document discusses the need for reactive and functional programming approaches to build scalable applications that can take advantage of many-core processors and distributed systems. It introduces key concepts like immutability, functions, and declarative programming. Specific frameworks like Scala, Play and Akka are presented as tools that support this reactive, functional style for building web applications that can horizontally scale across multiple cores and nodes. The talk promotes adopting these approaches to build systems that can better handle concurrency, distribution and failure.
Back to the futures, actors and pipes: using Akka for large-scale data migrationManuel Bernhardt
- The document discusses data migration from an old platform to a new Scala/Play implementation using Akka actors, futures, and pipes.
- Futures are used to handle asynchronous operations, actors are used to organize complex asynchronous flows and deal with failures, and pipes are used to deal with asynchronous computation results inside actors.
- Several lessons are discussed, including designing the system around the data structure, knowing the limits of the source system to avoid overloading it, and being aware of rate limits for cloud APIs.
Project Phoenix - From PHP to the Play Framework in 3 monthsManuel Bernhardt
This is an experience report about Project Phoenix, aiming at porting a platform to the Play Framework with Scala in the short time period of 3 months. The presentation was given at Devoxx UK 2014
This document summarizes a presentation on Scala pitfalls. It discusses issues like overly complex one-liner code, null values, excessive use of Options, implicit conversions, and modularity problems with the cake pattern. It provides alternatives to consider like Subcut and MacWire. The presentation emphasizes keeping code clean and readable, using Options and implicits carefully, allowing for compiler and IDE limitations, and being mindful of compilation performance for large Scala projects.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
This presentation provides valuable insights into effective cost-saving techniques on AWS. Learn how to optimize your AWS resources by rightsizing, increasing elasticity, picking the right storage class, and choosing the best pricing model. Additionally, discover essential governance mechanisms to ensure continuous cost efficiency. Whether you are new to AWS or an experienced user, this presentation provides clear and practical tips to help you reduce your cloud costs and get the most out of your budget.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Tatiana Kojar
Skybuffer AI, built on the robust SAP Business Technology Platform (SAP BTP), is the latest and most advanced version of our AI development, reaffirming our commitment to delivering top-tier AI solutions. Skybuffer AI harnesses all the innovative capabilities of the SAP BTP in the AI domain, from Conversational AI to cutting-edge Generative AI and Retrieval-Augmented Generation (RAG). It also helps SAP customers safeguard their investments into SAP Conversational AI and ensure a seamless, one-click transition to SAP Business AI.
With Skybuffer AI, various AI models can be integrated into a single communication channel such as Microsoft Teams. This integration empowers business users with insights drawn from SAP backend systems, enterprise documents, and the expansive knowledge of Generative AI. And the best part of it is that it is all managed through our intuitive no-code Action Server interface, requiring no extensive coding knowledge and making the advanced AI accessible to more users.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
A Comprehensive Guide to DeFi Development Services in 2024Intelisync
DeFi represents a paradigm shift in the financial industry. Instead of relying on traditional, centralized institutions like banks, DeFi leverages blockchain technology to create a decentralized network of financial services. This means that financial transactions can occur directly between parties, without intermediaries, using smart contracts on platforms like Ethereum.
In 2024, we are witnessing an explosion of new DeFi projects and protocols, each pushing the boundaries of what’s possible in finance.
In summary, DeFi in 2024 is not just a trend; it’s a revolution that democratizes finance, enhances security and transparency, and fosters continuous innovation. As we proceed through this presentation, we'll explore the various components and services of DeFi in detail, shedding light on how they are transforming the financial landscape.
At Intelisync, we specialize in providing comprehensive DeFi development services tailored to meet the unique needs of our clients. From smart contract development to dApp creation and security audits, we ensure that your DeFi project is built with innovation, security, and scalability in mind. Trust Intelisync to guide you through the intricate landscape of decentralized finance and unlock the full potential of blockchain technology.
Ready to take your DeFi project to the next level? Partner with Intelisync for expert DeFi development services today!
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
9. @elmanu Java Klassentreffen 2013 - javatraining.at
SCALA DESIGN GOALS
• Full interoperability with Java
• Cut down boilerplate
10. @elmanu Java Klassentreffen 2013 - javatraining.at
SCALA DESIGN GOALS
• Full interoperability with Java
• Cut down boilerplate
• Pure object orientation & functional programming
11. @elmanu Java Klassentreffen 2013 - javatraining.at
SCALA DESIGN GOALS
• Full interoperability with Java
• Cut down boilerplate
• Pure object orientation & functional programming
• Move away from null
12. @elmanu Java Klassentreffen 2013 - javatraining.at
SCALA DESIGN GOALS
• Full interoperability with Java
• Cut down boilerplate
• Pure object orientation & functional programming
• Move away from null
• Multi-core programming
13. @elmanu Java Klassentreffen 2013 - javatraining.at
AGENDA
• History
• Why Scala?
• Scala in the wild
• The Code / Scala in practice
• Tools & more
14. @elmanu Java Klassentreffen 2013 - javatraining.at
WHAT PEOPLE SAY
If I were to pick a language today
other than Java, it would be Scala.
James Gosling
Father of Java
15. @elmanu Java Klassentreffen 2013 - javatraining.at
WHAT PEOPLE SAY
I can honestly say if someone had
shown me the Programming Scala
book by Martin Odersky, Lex Spoon
& Bill Venners back in 2003 I’d
probably have never created Groovy.
James Strachan
Creator of Groovy
20. @elmanu Java Klassentreffen 2013 - javatraining.at
SCALA INVIENNA
• ScalaVienna User Group
• http://scala-vienna.org/
Next meeting: 26th
September 6 PM - Sektor 5
21. @elmanu Java Klassentreffen 2013 - javatraining.at
AGENDA
• History
• Why Scala?
• Scala in the wild
• The Code / Scala in
practice
• Tools & more
22. @elmanu Java Klassentreffen 2013 - javatraining.at
AVOIDINGTHE BILLION-
DOLLAR MISTAKE
But I couldn't resist the
temptation to put in a null
reference, simply because it
was so easy to implement
Tony Hoare
Creator of ALGOL
23. @elmanu Java Klassentreffen 2013 - javatraining.at
AVOIDINGTHE BILLION-
DOLLAR MISTAKE
val maybeUser: Option[User] = User.findOneByName("bob")
// returns Some[User]
maybeUser == None // false
maybeUser.foreach { user =>
println(user.fullName)
// prints "Bob Marley" if there is a user!
}
val name = maybeUser.map(_.name).getOrElse("Unknown user")
25. @elmanu Java Klassentreffen 2013 - javatraining.at
CONCISENESS
class User(
var name: String,
var surname: String,
var email: String)
val bob = new User("Bob", "Marley", "bob@marley.org")
// bob: User = User@5c3f1224
bob.name // res0: String = Bob
bob.name = "Bobby" // bob.name: String = Bobby
26. @elmanu Java Klassentreffen 2013 - javatraining.at
CONCISENESS
public class ImmutableUser {
! private final String name;
! private final String surname;
! private final String email;
! public ImmutableUser(String name, String surname, String email) {
! ! this.name = name;
! ! this.surname = surname;
! ! this.email = email;
! }
! public String getName() {
! ! return this.name;
! }
! public String getSurname() {
! ! return this.surname;
! }
! public String getEmail() {
! ! return this.surname;
! }
! @Override public int hashCode() {
! ! // yada yada yada
! }
! @Override public boolean equals(Object that) {
! ! // yada yada yada
! }
}
27. @elmanu Java Klassentreffen 2013 - javatraining.at
CONCISENESS
case class ImmutableUser(
name: String,
surname: String,
email: String)
val bob = ImmutableUser("Bob", "Marley", "bob@marley.org")
// hashcode and equals for free!
val namedBob = ImmutableUser(name = "Bob", surname = "Marley",
email = "email")
val bobby = bob.copy(name = "Bobby")
// returns a User with name Bobby
bob.toString // res0: String = ImmutableUser(Bob,Marley,email)
28. @elmanu Java Klassentreffen 2013 - javatraining.at
USEFULTYPE INFERENCE
val foo = "Bar" // foo: String = Bar
val answer = 42 // answer: Int = 42
val price = 9.99 // price: Double = 9.99
val nums = List(1, 2, 3) // nums: List[Int] = List(1, 2, 3)
val map = Map("abc" -> List(1, 2, 3))
// map: scala.collection.immutable.Map[String,List[Int]] =
Map(abc -> List(1, 2, 3))
29. @elmanu Java Klassentreffen 2013 - javatraining.at
EXPLICITTYPING
val foo: String = "Bar" // foo: String = Bar
val answer: Int = 42 // answer: Int = 42
val price: Double = 9.99 // price: Double = 9.99
val nums: List[Int] = List(1, 2, 3) // nums: List[Int] =
List(1, 2, 3)
val map: Map[String, List[Int]] = Map("abc" -> List(1, 2, 3))
// map: scala.collection.immutable.Map[String,List[Int]] =
Map(abc -> List(1, 2, 3))
37. @elmanu Java Klassentreffen 2013 - javatraining.at
• Minimal language, powerful library
• Language features for extensibility
EXTENSIBLE LANGUAGE
38. @elmanu Java Klassentreffen 2013 - javatraining.at
DOMAIN SPECIFIC
LANGUAGES
import collection.mutable.Stack
import org.scalatest._
class ExampleSpec extends FlatSpec with Matchers {
"A Stack" should "pop values in last-in-first-out order" in {
val stack = new Stack[Int]
stack.push(1)
stack.push(2)
stack.pop() should be (2)
stack.pop() should be (1)
}
it should "throw NoSuchElementException if an empty stack is popped" in {
val emptyStack = new Stack[Int]
a [NoSuchElementException] should be thrownBy {
emptyStack.pop()
}
}
}
40. @elmanu Java Klassentreffen 2013 - javatraining.at
MACROS
PLAY JSON DE/SERIALIZATION
case class Creature(name: String, isDead: Boolean, weight: Float)
implicit val creatureReads: Reads[Creature] = (
(__ "name").read[String] and
(__ "isDead").read[Boolean] and
(__ "weight").read[Float]
)(Creature)
implicit val creatureWrites: Writes[Creature] = (
(__ "name").write[String] and
(__ "isDead").write[Boolean] and
(__ "weight").write[Float]
)(unlift(Creature.unapply))
41. @elmanu Java Klassentreffen 2013 - javatraining.at
MACROS
PLAY JSON DE/SERIALIZATION
import play.api.json._
implicit val creatureFormat = Json.format[Creature] // format is a macro
42. @elmanu Java Klassentreffen 2013 - javatraining.at
AGENDA
• History
• Why Scala?
• Scala in the wild
• The Code / Scala in practice
• Tools & more
45. @elmanu Java Klassentreffen 2013 - javatraining.at
FRAMEWORKS:AKKA
• Actor concurrency model based on Erlang
• “Human” design: actors talk to eachother and form hierarchies
• Much, much, much simpler to work and reason with than
threads