This document provides information about an individual named Jarek Ratajski. It lists that he works for CSS Versicherung as a developer and wizard. It provides his email and Twitter handle. It then lists the various programming languages and technologies he has experience with. The rest of the document appears to be about architecture and challenges in scaling applications. It discusses using non-blocking architectures to process many events using few threads. It provides an overview of Lagom, a framework from Lightbend for building reactive microservices applications. It discusses entity components in Lagom like commands, events and state. It also covers reading from Cassandra and implementing read models.
The document discusses the limitations of traditional SQL databases for low-latency applications and describes an alternative database called Cryptic DB developed by Cryptic Studios. Traditional SQL databases have unpredictable latency, slow inserts and updates due to normalization, and impedance mismatch between objects and relations. Cryptic DB was designed for low latency, high throughput, and to minimize the impedance mismatch by relaxing some ACID properties and not supporting general queries. It uses a structured text format to define schemas and handles transactions through a transaction server.
An introduction to Figaro, the XML Database for the .NET Framework, and a solution overview of an ASP.NET MembershipProvider built with the XML database.
The document provides an overview of rule engines and the Drools rule engine. It discusses rule formats including Drools Rule Language (DRL), domain-specific languages (DSL), and decision tables. It also covers the ReteOO algorithm, using rules with Java objects, and developing rules using the Drools Eclipse IDE and Guvnor rule management system.
The document outlines Mark Proctor's journey working with Drools, jBPM and OptaPlanner over 20 years, including the evolution of the products from early Drools in 2000 to the current focus on cloud-native applications using Quarkus, GraalVM and Kubernetes. It also discusses recent efforts under the Submarine project to develop domain-specific services for decisions, processes, events and optimizations using a canonical executable model and polyglot capabilities. The engineering team for Drools and jBPM has quadrupled in size since 2011 to support these initiatives.
The document discusses setting up a Lambda function and AWS IoT rule to handle disconnection events from an IoT device using MQTT's Last Will and Testament (LWT) feature. When the device connection terminates unexpectedly, LWT will publish a disconnect message to a topic that triggers the Lambda function. The function logs the disconnect event. The code example modifies the device client to define an LWT message payload and topic so it can notify of disconnections.
KNOTX.io is an event-driven, non-blocking integration framework that uses Vert.x and RxJava. It allows for highly scalable and modular integration of modern platforms. KNOTX provides features like data ingestion from CMSs and services, forms handling, prototyping with mocks, and extensibility through pluggable modules. It handles integration challenges through a transparent, reusable, and easily replaceable modern microservices-based architecture. Performance is optimized through asynchronous non-blocking code, event-driven architecture, and reactive programming with RxJava.
The document discusses the limitations of traditional SQL databases for low-latency applications and describes an alternative database called Cryptic DB developed by Cryptic Studios. Traditional SQL databases have unpredictable latency, slow inserts and updates due to normalization, and impedance mismatch between objects and relations. Cryptic DB was designed for low latency, high throughput, and to minimize the impedance mismatch by relaxing some ACID properties and not supporting general queries. It uses a structured text format to define schemas and handles transactions through a transaction server.
An introduction to Figaro, the XML Database for the .NET Framework, and a solution overview of an ASP.NET MembershipProvider built with the XML database.
The document provides an overview of rule engines and the Drools rule engine. It discusses rule formats including Drools Rule Language (DRL), domain-specific languages (DSL), and decision tables. It also covers the ReteOO algorithm, using rules with Java objects, and developing rules using the Drools Eclipse IDE and Guvnor rule management system.
The document outlines Mark Proctor's journey working with Drools, jBPM and OptaPlanner over 20 years, including the evolution of the products from early Drools in 2000 to the current focus on cloud-native applications using Quarkus, GraalVM and Kubernetes. It also discusses recent efforts under the Submarine project to develop domain-specific services for decisions, processes, events and optimizations using a canonical executable model and polyglot capabilities. The engineering team for Drools and jBPM has quadrupled in size since 2011 to support these initiatives.
The document discusses setting up a Lambda function and AWS IoT rule to handle disconnection events from an IoT device using MQTT's Last Will and Testament (LWT) feature. When the device connection terminates unexpectedly, LWT will publish a disconnect message to a topic that triggers the Lambda function. The function logs the disconnect event. The code example modifies the device client to define an LWT message payload and topic so it can notify of disconnections.
KNOTX.io is an event-driven, non-blocking integration framework that uses Vert.x and RxJava. It allows for highly scalable and modular integration of modern platforms. KNOTX provides features like data ingestion from CMSs and services, forms handling, prototyping with mocks, and extensibility through pluggable modules. It handles integration challenges through a transparent, reusable, and easily replaceable modern microservices-based architecture. Performance is optimized through asynchronous non-blocking code, event-driven architecture, and reactive programming with RxJava.
This document compares various Scala frameworks for building web applications and interacting with databases. It discusses alternatives to the standard Play and Slick frameworks, including Finagle, Akka HTTP, Skinny Micro, Quill, doobie, and ScalikeJDBC. For web frameworks, all the alternatives look promising but Play is also still viable. For databases, there is no clear standard yet, but ScalikeJDBC appears suitable for most users.
The document discusses 10 ways to improve code quality based on a presentation by Martin Cronje. It provides examples of refactoring code to remove switch/if statements, use polymorphism instead of switch statements, extract methods to improve readability, add comments appropriately, use frameworks instead of building your own, and avoid premature optimization. It also emphasizes fundamentals over cool technologies and understanding quality and purpose.
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Red Hat Developers
JBoss EAP7 brings support for the most recent industry standards and technologies, including Java EE7, the latest edition of the premier enterprise development standard. This session will provide an overview of the major additions to Java EE7, and how your team can use these capabilities on the advanced EAP7 runtime to produce better applications with less code.
Integrating SAP the Java EE Way - JBoss One Day talk 2012hwilming
Cuckoo is an open source Resource Adapter for SAP that is compatible to the Java Connector Architecture (JCA) version 1.5.
It enables developers of Java EE applications to call functions in a SAP backend, making use of Java EE features like Container Managed Transactions and Security.
Hibersap helps developers of Java applications to call business logic in SAP backends. It defines a set of Java annotations to map SAP function modules to Java classes as well as a small, clean API to execute these function modules and handle transaction and security aspects.
Hibersap's programming model is quite similar to those of modern O/R mappers, significantly speeding up the development of SAP interfaces and making it much more fun to write the integration code.
Yet another presentation about Event Sourcing? Yes and no. Event Sourcing is a really great concept. Some could say it’s a Holy Grail of the software architecture. I might agree with that, while remembering that everything comes with a price. This session is a summary of my experience with ES gathered while working on 3 different commercial products. Instead of theoretical aspects, I will focus on possible challenges with ES implementation. What could explode (very often with delayed ignition)? How and where to store events effectively? What are possible schema evolution solutions? How to achieve the highest level of scalability and live with eventual consistency? And many other interesting topics that you might face when experimenting with ES.
This document provides an overview of the state of GeoServer and highlights some of its key capabilities and recent improvements. It discusses enhancements to rendering, projections, geometry transformations, styling, raster support, web services including WMS, WCS, WPS, and more. New features include direct raster rendering, application schema support, animation, time and elevation support, cascading, and monitoring/auditing. Future plans include WFS 2.0, database configuration, and scripting support.
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaSpark Summit
Spark had been elected, deservedly, as the main massive parallel processing framework, and HDFS is the one of the most popular Big Data storage technologies. Therefore its combination is one of the most usual Big Data’s use cases. But, what happens with the security? Can these two technologies coexist in a secure environment? Furthermore, with the proliferation of BI technologies adapted to Big Data environments, that demands that several users interacts with the same cluster concurrently, can we continue to ensure that our Big Data environments are still secure? In this lecture, Abel and Jorge will explain which adaptations of Spark´s core they had to perform in order to guarantee the security of multiple concurrent users using a single Spark cluster, which can use any of its cluster managers, without degrading the outstanding Spark’s performance.
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...GITS Indonesia
Salah satu front-end developer GITS Indonesia, Warsono, mengisi workshop di universitas, mengenai Vue.js.
Ikuti kami di kanal berikut, agar tidak ketinggalan acara seru:
Instagram: @gitsindonesia
LinkedIn: GITS Indonesia
Website: gits.id
Andrzej Ludwikowski - Event Sourcing - what could possibly go wrong? - Codemo...Codemotion
Yet another presentation about Event Sourcing? Yes and no. Event Sourcing is a really great concept. Some could say it’s a Holy Grail of the software architecture. True, but everything comes with a price. This session is a summary of my experience with ES gathered while working on 3 different commercial products. Instead of theoretical aspects, I will focus on possible challenges with ES implementation. What could explode? How and where to store events effectively? What are possible schema evolution solutions? How to achieve the highest level of scalability and live with eventual consistency?
How to make a high-quality Node.js app, Nikita GalkinSigma Software
This document discusses how to build high quality Node.js applications. It covers attributes of quality like understandability, modifiability, portability, reliability, efficiency, usability, and testability. For each attribute, it provides examples of what could go wrong and best practices to achieve that attribute, such as using dependency injection for modifiability, environment variables for portability, and graceful shutdown for reliability. It also discusses Node.js programming paradigms like callbacks, promises, and async/await and recommends best practices for testing Node.js applications.
Building a serverless company on AWS lambda and Serverless frameworkLuciano Mammino
Planet9energy.com is a new electricity company building a sophisticated analytics and energy trading platform for the UK market. Since the earliest draft of the platform, we took the unconventional decision to go serverless and build the product on top of AWS Lambda and the Serverless framework using Node.js. In this talk, I want to discuss why we took this radical decision, what are the pros and cons of this approach and what are the main issues we faced as a tech team in our design and development experience. We will discuss how normal things like testing and deployment need to be re-thought to work on a serverless fashion but also the benefits of (almost) infinite self-scalability and the peace of mind of not having to manage hundreds of servers. Finally, we will underline how Node.js seems to fit naturally in this scenario and how it makes developing serverless applications extremely convenient.
Technologies:
Backend
Frontend
Application architecture
Javascript
cloud computing
1) Hatohol is a server that collects and merges data from Zabbix and Nagios servers. It has a web-based client for visualizing this data.
2) The Hatohol server architecture pulls data from Zabbix and Nagios using APIs and stores it in a unified database. The server also has a REST API for the client.
3) Future plans for Hatohol include adding an action framework to allow it to take actions based on triggers, improving high availability, adding graphing capabilities, and a more sophisticated web client.
Introduction to Grunt.js on Taiwan JavaScript ConferenceBo-Yi Wu
This document provides an overview of popular front-end development tools, including Node Version Manager (nvm) for managing Node.js versions, Bower for package management, CoffeeScript for compiling JavaScript, Compass for compiling CSS, RequireJS for module management, and Livereload for live reloading during development. It recommends using Grunt as a task runner to integrate these tools, describing how to configure Grunt plugins for Bower, CoffeeScript, and Compass.
NET Systems Programming Learned the Hard Way.pptxpetabridge
This document discusses .NET systems programming and garbage collection. It covers garbage collection generations, modes, and considerations for minimizing allocations. It also discusses eliminating delegates to reduce allocations, using value types appropriately, avoiding empty collections, and optimizing for thread locality to reduce context switching overhead. Data structures and synchronization techniques are discussed, emphasizing the importance of choosing lock-free data structures when possible to improve performance.
This document summarizes the state of GeoServer and outlines key developments over the past two years. It discusses improvements to rendering, projections, styling, raster support, web services (WMS, WCS, WPS), monitoring/auditing, and new data stores. Upcoming work includes WFS 2.0, enhanced security, scripting integration, and version control via GeoGit. GeoServer continues to expand capabilities for open source geospatial data sharing and analysis.
The document discusses event sourcing and command query responsibility segregation (CQRS) patterns at different levels of implementation. It covers the benefits of event sourcing including having a complete log of state changes, improved debugging, performance, scalability, and microservices integration. It also discusses challenges with increasing complexity, eventual consistency, and different event store and serialization options.
Lightbend Lagom: Microservices Just Rightmircodotta
Microservices architecture are becoming a de-facto industry standard, but are you satisfied with the current state of the art? We are not, as we believe that building microservices today is more challenging than it should be. Lagom is here to take on this challenge. First, Lagom is opinionated and it will take some of the hard decisions for you, guiding you to produce microservices that adheres to the Reactive tenents. Second, Lagom was built from the ground up around you, the developer, to push your productivity to the next level. If you are familiar with the Play Framework's development environment, imagine that but tuned for building microservices; we are sure you are going to love it! Third, Lagom comes with batteries included for deploying in production: going from development to production could not be easier. In this session, you will get an introduction to the Lightbend Lagom framework. There will be code and live demos to show you in practice how it works and what you can do with it, making you fully equipped to build your next microservices with Lightbend Lagom!
Talk about add proxy user in Spark Task execution time given in Spark Summit East 2017 by Jorge López-Malla and Abel Ricon
full video:
https://www.youtube.com/watch?v=VaU1xC0Rixo&feature=youtu.be
This document appears to be a transcript from a presentation on software estimation. It discusses how estimation is different for software projects compared to construction projects due to factors like constantly changing tools and requirements in software. A key example given is the Berlin Brandenburg Airport project, whose costs ballooned from an original budget of €2.83 billion to over €9.4 billion due to delays and changes. The presentation argues that while estimation is important, it is difficult to be perfectly accurate for software due to its inherently changing nature.
This document contains the agenda and notes from a talk on functional programming and Kotlin. The talk promotes the benefits of functional programming such as determinism, total functions, purity, and composability. It also highlights some key features of Kotlin like data classes, default values, constructors, and copy methods that make the language more functional-like compared to Java. The talk uses examples to explain concepts like deterministic, total, and pure functions in FP. It also compares code samples in Java and Kotlin to demonstrate how Kotlin reduces boilerplate and improves readability.
This document compares various Scala frameworks for building web applications and interacting with databases. It discusses alternatives to the standard Play and Slick frameworks, including Finagle, Akka HTTP, Skinny Micro, Quill, doobie, and ScalikeJDBC. For web frameworks, all the alternatives look promising but Play is also still viable. For databases, there is no clear standard yet, but ScalikeJDBC appears suitable for most users.
The document discusses 10 ways to improve code quality based on a presentation by Martin Cronje. It provides examples of refactoring code to remove switch/if statements, use polymorphism instead of switch statements, extract methods to improve readability, add comments appropriately, use frameworks instead of building your own, and avoid premature optimization. It also emphasizes fundamentals over cool technologies and understanding quality and purpose.
Boost Development With Java EE7 On EAP7 (Demitris Andreadis)Red Hat Developers
JBoss EAP7 brings support for the most recent industry standards and technologies, including Java EE7, the latest edition of the premier enterprise development standard. This session will provide an overview of the major additions to Java EE7, and how your team can use these capabilities on the advanced EAP7 runtime to produce better applications with less code.
Integrating SAP the Java EE Way - JBoss One Day talk 2012hwilming
Cuckoo is an open source Resource Adapter for SAP that is compatible to the Java Connector Architecture (JCA) version 1.5.
It enables developers of Java EE applications to call functions in a SAP backend, making use of Java EE features like Container Managed Transactions and Security.
Hibersap helps developers of Java applications to call business logic in SAP backends. It defines a set of Java annotations to map SAP function modules to Java classes as well as a small, clean API to execute these function modules and handle transaction and security aspects.
Hibersap's programming model is quite similar to those of modern O/R mappers, significantly speeding up the development of SAP interfaces and making it much more fun to write the integration code.
Yet another presentation about Event Sourcing? Yes and no. Event Sourcing is a really great concept. Some could say it’s a Holy Grail of the software architecture. I might agree with that, while remembering that everything comes with a price. This session is a summary of my experience with ES gathered while working on 3 different commercial products. Instead of theoretical aspects, I will focus on possible challenges with ES implementation. What could explode (very often with delayed ignition)? How and where to store events effectively? What are possible schema evolution solutions? How to achieve the highest level of scalability and live with eventual consistency? And many other interesting topics that you might face when experimenting with ES.
This document provides an overview of the state of GeoServer and highlights some of its key capabilities and recent improvements. It discusses enhancements to rendering, projections, geometry transformations, styling, raster support, web services including WMS, WCS, WPS, and more. New features include direct raster rendering, application schema support, animation, time and elevation support, cascading, and monitoring/auditing. Future plans include WFS 2.0, database configuration, and scripting support.
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaSpark Summit
Spark had been elected, deservedly, as the main massive parallel processing framework, and HDFS is the one of the most popular Big Data storage technologies. Therefore its combination is one of the most usual Big Data’s use cases. But, what happens with the security? Can these two technologies coexist in a secure environment? Furthermore, with the proliferation of BI technologies adapted to Big Data environments, that demands that several users interacts with the same cluster concurrently, can we continue to ensure that our Big Data environments are still secure? In this lecture, Abel and Jorge will explain which adaptations of Spark´s core they had to perform in order to guarantee the security of multiple concurrent users using a single Spark cluster, which can use any of its cluster managers, without degrading the outstanding Spark’s performance.
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...GITS Indonesia
Salah satu front-end developer GITS Indonesia, Warsono, mengisi workshop di universitas, mengenai Vue.js.
Ikuti kami di kanal berikut, agar tidak ketinggalan acara seru:
Instagram: @gitsindonesia
LinkedIn: GITS Indonesia
Website: gits.id
Andrzej Ludwikowski - Event Sourcing - what could possibly go wrong? - Codemo...Codemotion
Yet another presentation about Event Sourcing? Yes and no. Event Sourcing is a really great concept. Some could say it’s a Holy Grail of the software architecture. True, but everything comes with a price. This session is a summary of my experience with ES gathered while working on 3 different commercial products. Instead of theoretical aspects, I will focus on possible challenges with ES implementation. What could explode? How and where to store events effectively? What are possible schema evolution solutions? How to achieve the highest level of scalability and live with eventual consistency?
How to make a high-quality Node.js app, Nikita GalkinSigma Software
This document discusses how to build high quality Node.js applications. It covers attributes of quality like understandability, modifiability, portability, reliability, efficiency, usability, and testability. For each attribute, it provides examples of what could go wrong and best practices to achieve that attribute, such as using dependency injection for modifiability, environment variables for portability, and graceful shutdown for reliability. It also discusses Node.js programming paradigms like callbacks, promises, and async/await and recommends best practices for testing Node.js applications.
Building a serverless company on AWS lambda and Serverless frameworkLuciano Mammino
Planet9energy.com is a new electricity company building a sophisticated analytics and energy trading platform for the UK market. Since the earliest draft of the platform, we took the unconventional decision to go serverless and build the product on top of AWS Lambda and the Serverless framework using Node.js. In this talk, I want to discuss why we took this radical decision, what are the pros and cons of this approach and what are the main issues we faced as a tech team in our design and development experience. We will discuss how normal things like testing and deployment need to be re-thought to work on a serverless fashion but also the benefits of (almost) infinite self-scalability and the peace of mind of not having to manage hundreds of servers. Finally, we will underline how Node.js seems to fit naturally in this scenario and how it makes developing serverless applications extremely convenient.
Technologies:
Backend
Frontend
Application architecture
Javascript
cloud computing
1) Hatohol is a server that collects and merges data from Zabbix and Nagios servers. It has a web-based client for visualizing this data.
2) The Hatohol server architecture pulls data from Zabbix and Nagios using APIs and stores it in a unified database. The server also has a REST API for the client.
3) Future plans for Hatohol include adding an action framework to allow it to take actions based on triggers, improving high availability, adding graphing capabilities, and a more sophisticated web client.
Introduction to Grunt.js on Taiwan JavaScript ConferenceBo-Yi Wu
This document provides an overview of popular front-end development tools, including Node Version Manager (nvm) for managing Node.js versions, Bower for package management, CoffeeScript for compiling JavaScript, Compass for compiling CSS, RequireJS for module management, and Livereload for live reloading during development. It recommends using Grunt as a task runner to integrate these tools, describing how to configure Grunt plugins for Bower, CoffeeScript, and Compass.
NET Systems Programming Learned the Hard Way.pptxpetabridge
This document discusses .NET systems programming and garbage collection. It covers garbage collection generations, modes, and considerations for minimizing allocations. It also discusses eliminating delegates to reduce allocations, using value types appropriately, avoiding empty collections, and optimizing for thread locality to reduce context switching overhead. Data structures and synchronization techniques are discussed, emphasizing the importance of choosing lock-free data structures when possible to improve performance.
This document summarizes the state of GeoServer and outlines key developments over the past two years. It discusses improvements to rendering, projections, styling, raster support, web services (WMS, WCS, WPS), monitoring/auditing, and new data stores. Upcoming work includes WFS 2.0, enhanced security, scripting integration, and version control via GeoGit. GeoServer continues to expand capabilities for open source geospatial data sharing and analysis.
The document discusses event sourcing and command query responsibility segregation (CQRS) patterns at different levels of implementation. It covers the benefits of event sourcing including having a complete log of state changes, improved debugging, performance, scalability, and microservices integration. It also discusses challenges with increasing complexity, eventual consistency, and different event store and serialization options.
Lightbend Lagom: Microservices Just Rightmircodotta
Microservices architecture are becoming a de-facto industry standard, but are you satisfied with the current state of the art? We are not, as we believe that building microservices today is more challenging than it should be. Lagom is here to take on this challenge. First, Lagom is opinionated and it will take some of the hard decisions for you, guiding you to produce microservices that adheres to the Reactive tenents. Second, Lagom was built from the ground up around you, the developer, to push your productivity to the next level. If you are familiar with the Play Framework's development environment, imagine that but tuned for building microservices; we are sure you are going to love it! Third, Lagom comes with batteries included for deploying in production: going from development to production could not be easier. In this session, you will get an introduction to the Lightbend Lagom framework. There will be code and live demos to show you in practice how it works and what you can do with it, making you fully equipped to build your next microservices with Lightbend Lagom!
Talk about add proxy user in Spark Task execution time given in Spark Summit East 2017 by Jorge López-Malla and Abel Ricon
full video:
https://www.youtube.com/watch?v=VaU1xC0Rixo&feature=youtu.be
This document appears to be a transcript from a presentation on software estimation. It discusses how estimation is different for software projects compared to construction projects due to factors like constantly changing tools and requirements in software. A key example given is the Berlin Brandenburg Airport project, whose costs ballooned from an original budget of €2.83 billion to over €9.4 billion due to delays and changes. The presentation argues that while estimation is important, it is difficult to be perfectly accurate for software due to its inherently changing nature.
This document contains the agenda and notes from a talk on functional programming and Kotlin. The talk promotes the benefits of functional programming such as determinism, total functions, purity, and composability. It also highlights some key features of Kotlin like data classes, default values, constructors, and copy methods that make the language more functional-like compared to Java. The talk uses examples to explain concepts like deterministic, total, and pure functions in FP. It also compares code samples in Java and Kotlin to demonstrate how Kotlin reduces boilerplate and improves readability.
This document discusses communicating with aliens using lambda calculus. It explains that lambda calculus is a minimal functional programming language that can represent logic, mathematics, computation, and theorems. Everything in lambda calculus is a function, and it provides a way to define and apply functions. Basic concepts like boolean logic and arithmetic can be modeled. The document suggests that if aliens understand logic and modus ponens, they would understand lambda calculus as it is a universal system discovered from fundamentals of logic. It then provides examples of lambda calculus functions and applications.
The document discusses features of the Kotlin programming language. It provides examples of how Kotlin simplifies object-oriented programming tasks like data classes and property access compared to Java. Data classes in Kotlin can auto-generate getters, setters, equals(), hashCode() and toString() methods. Kotlin also allows functional-style programming with properties like immutable state and avoiding null references.
The document discusses how monads can be used to prevent bugs and handle side effects like missing data in code. It provides examples of using Optional to represent missing values and chaining operations with flatMap to avoid nested if-checks. Monads allow sequencing computations in a declarative way while handling problems in the data or failures transparently.
The document discusses performance myths and optimizations in Scala code. It begins with an example of calculating Fibonacci numbers on a 68040 processor and how branch prediction strategies can impact performance. Benchmark results are shown comparing immutable and mutable implementations of a calculator, with the immutable version being much slower. Tools for measuring performance like JMH, Java Flight Recorder and Java Mission Control are also introduced. The document cautions that performance can depend heavily on context and benchmarks only show tools, not decisions that should be made based on numbers.
The document discusses Haskell for the JVM using Eta, which compiles Haskell to JVM bytecode. It provides examples of writing Haskell code and using Eta, including quicksort, foreign imports, and optimizations like TCO. Eta aims to provide an experience similar to GHC for Haskell developers on the JVM.
Another programming language - jeszcze jeden językJarek Ratajski
This document discusses the history of programming languages through snippets of code and descriptions of various languages from the 1940s to the 1970s. It begins with machine code and assembly languages and progresses through higher-level languages like FORTRAN, COBOL, LISP, ALGOL, BASIC, Pascal, FORTH, C and others. It highlights reasons for the creation of new languages like making programming easier, preventing errors, and introducing new concepts and paradigms. Interspersed are notes about the evolving hardware landscape from punch cards to early computers.
This document discusses Eta, a compiler that allows writing Haskell code and running it on the Java Virtual Machine (JVM). Eta works by compiling Haskell to the STG intermediate language like GHC, and then compiling STG to JVM bytecode. This allows Haskell code to interoperate with Java code via foreign function interfaces. Performance benchmarks show Eta achieves performance comparable to equivalent Java code for algorithms like quicksort. Eta supports many Haskell language extensions and libraries from Hackage. This enables Haskell code to run on the JVM while maintaining high-level functional programming abilities.
This document discusses best practices for handling null values in Java. It recommends: failing fast with NullPointerExceptions instead of silently returning null; never returning null values from methods; marking optional parameters and return values with Java's Optional class; using Optional's map and flatMap methods to avoid deep null checks; and using Guava transforms if on Java 6/7 prior to Java 8 streams. The document provides code examples demonstrating these techniques for optional user objects returned from databases and assigned to groups.
This document summarizes Eta, a compiler that allows writing Haskell code to run on the Java Virtual Machine. Eta works by compiling Haskell to the STG intermediate representation and then generating JVM bytecode from STG. This allows Haskell code using GHC language extensions to run on the JVM without modifications. Performance is improved through optimizations like TCO. Eta supports packages from the Haskell Hackage repository by patching native C calls to equivalent JVM calls. This allows most Haskell libraries to work on Eta.
The document discusses developing code and IDEs for virtual reality. It proposes using A-Frame to build simple VR scenes with JavaScript due to its ease of use in WebVR. While current VR technology has limitations for complex coding tasks, the document envisions simulating code visually by representing it as interacting particles governed by physics laws. This would allow viewing code structure and analysis in an immersive 3D environment. Fully interactive development remains difficult, but the author is interested in exploring new presentation methods for code as VR hardware continues advancing.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
This document provides information about Jarosław Ratajski, including that he is a developer who lives in Luzern and works at CSS Insurance. It also discusses an alien pizza delivery domain model called Galakpizza that was developed using two different approaches - one using plain Java objects ("Normal") and the other using a relational database and JPA ("Other"). The domain model includes concepts like Orders, Variants, Sizes and Planets. The services implemented allow placing orders and retrieving the orders from the best planet.
This document describes an alien development of a pizza ordering and delivery system in two parallel universes. In the normal universe, the system uses plain Java objects and data structures, while in the other universe it uses a relational database with JPA annotations. Both implementations provide the same core functionality of placing orders, retrieving the best planet for orders, and counting total orders. The document includes code examples showing how the domain model, services, and implementations differ between the two parallel universes.
QA or the Highway - Component Testing: Bridging the gap between frontend appl...zjhamm304
These are the slides for the presentation, "Component Testing: Bridging the gap between frontend applications" that was presented at QA or the Highway 2024 in Columbus, OH by Zachary Hamm.
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsScyllaDB
ScyllaDB monitoring provides a lot of useful information. But sometimes it’s not easy to find the root of the problem if something is wrong or even estimate the remaining capacity by the load on the cluster. This talk shares our team's practical tips on: 1) How to find the root of the problem by metrics if ScyllaDB is slow 2) How to interpret the load and plan capacity for the future 3) Compaction strategies and how to choose the right one 4) Important metrics which aren’t available in the default monitoring setup.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillLizaNolte
HERE IS YOUR WEBINAR CONTENT! 'Mastering Customer Journey Management with Dr. Graham Hill'. We hope you find the webinar recording both insightful and enjoyable.
In this webinar, we explored essential aspects of Customer Journey Management and personalization. Here’s a summary of the key insights and topics discussed:
Key Takeaways:
Understanding the Customer Journey: Dr. Hill emphasized the importance of mapping and understanding the complete customer journey to identify touchpoints and opportunities for improvement.
Personalization Strategies: We discussed how to leverage data and insights to create personalized experiences that resonate with customers.
Technology Integration: Insights were shared on how inQuba’s advanced technology can streamline customer interactions and drive operational efficiency.
In our second session, we shall learn all about the main features and fundamentals of UiPath Studio that enable us to use the building blocks for any automation project.
📕 Detailed agenda:
Variables and Datatypes
Workflow Layouts
Arguments
Control Flows and Loops
Conditional Statements
💻 Extra training through UiPath Academy:
Variables, Constants, and Arguments in Studio
Control Flow in Studio
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...DanBrown980551
This LF Energy webinar took place June 20, 2024. It featured:
-Alex Thornton, LF Energy
-Hallie Cramer, Google
-Daniel Roesler, UtilityAPI
-Henry Richardson, WattTime
In response to the urgency and scale required to effectively address climate change, open source solutions offer significant potential for driving innovation and progress. Currently, there is a growing demand for standardization and interoperability in energy data and modeling. Open source standards and specifications within the energy sector can also alleviate challenges associated with data fragmentation, transparency, and accessibility. At the same time, it is crucial to consider privacy and security concerns throughout the development of open source platforms.
This webinar will delve into the motivations behind establishing LF Energy’s Carbon Data Specification Consortium. It will provide an overview of the draft specifications and the ongoing progress made by the respective working groups.
Three primary specifications will be discussed:
-Discovery and client registration, emphasizing transparent processes and secure and private access
-Customer data, centering around customer tariffs, bills, energy usage, and full consumption disclosure
-Power systems data, focusing on grid data, inclusive of transmission and distribution networks, generation, intergrid power flows, and market settlement data
From Natural Language to Structured Solr Queries using LLMsSease
This talk draws on experimentation to enable AI applications with Solr. One important use case is to use AI for better accessibility and discoverability of the data: while User eXperience techniques, lexical search improvements, and data harmonization can take organizations to a good level of accessibility, a structural (or “cognitive” gap) remains between the data user needs and the data producer constraints.
That is where AI – and most importantly, Natural Language Processing and Large Language Model techniques – could make a difference. This natural language, conversational engine could facilitate access and usage of the data leveraging the semantics of any data source.
The objective of the presentation is to propose a technical approach and a way forward to achieve this goal.
The key concept is to enable users to express their search queries in natural language, which the LLM then enriches, interprets, and translates into structured queries based on the Solr index’s metadata.
This approach leverages the LLM’s ability to understand the nuances of natural language and the structure of documents within Apache Solr.
The LLM acts as an intermediary agent, offering a transparent experience to users automatically and potentially uncovering relevant documents that conventional search methods might overlook. The presentation will include the results of this experimental work, lessons learned, best practices, and the scope of future work that should improve the approach and make it production-ready.
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfleebarnesutopia
So… you want to become a Test Automation Engineer (or hire and develop one)? While there’s quite a bit of information available about important technical and tool skills to master, there’s not enough discussion around the path to becoming an effective Test Automation Engineer that knows how to add VALUE. In my experience this had led to a proliferation of engineers who are proficient with tools and building frameworks but have skill and knowledge gaps, especially in software testing, that reduce the value they deliver with test automation.
In this talk, Lee will share his lessons learned from over 30 years of working with, and mentoring, hundreds of Test Automation Engineers. Whether you’re looking to get started in test automation or just want to improve your trade, this talk will give you a solid foundation and roadmap for ensuring your test automation efforts continuously add value. This talk is equally valuable for both aspiring Test Automation Engineers and those managing them! All attendees will take away a set of key foundational knowledge and a high-level learning path for leveling up test automation skills and ensuring they add value to their organizations.
This talk will cover ScyllaDB Architecture from the cluster-level view and zoom in on data distribution and internal node architecture. In the process, we will learn the secret sauce used to get ScyllaDB's high availability and superior performance. We will also touch on the upcoming changes to ScyllaDB architecture, moving to strongly consistent metadata and tablets.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
4. Architecture of 90-ties
● Single core processors
● Small RAM ( 256 MB)
● 1000s of clients
● 10 Req / S
Motto: Conserve RAM
Result: heavy disk usage, concurrency by locks
11. Challenges
● Use multiple cores
● Do not lock
● Minimize context switching
Proposal: non blocking architecture, proces many events using only few threads
12. Non blocking architecture
Request 2
parse, call http
Request 1
parse http response
Call DB
Request 2
parse http response
Call DB
Request 2
Prosess DB result
Send response
Request 1
Prosess DB result
Send response
Http response for 1 Http response for 2 Db 2 Db 1
service
db
Http server
1
2
19. Entities - CQRS
● Commands
● Events
● State
● Behaviour
● Based on akka-actors / akka-persistence
request
command
events
state
response
20. Lagom – Commands
@Immutable
@JsonDeserialize
class RegisterUser implements UserCommand , CompressedJsonable,
PersistentEntity.ReplyType<RegUserStatus>{
public final String userId;
public final String password;
@JsonCreator
public RegisterUser(String userId, String password) {
this.userId = userId;
this.password = password;
}
}
21. Lagom – Events
@Immutable
@JsonDeserialize
final class RegisteredUser implements UserEvent {
public final String userId;
public final String password;
@JsonCreator
public RegisteredUser(String id, String password) {
this.userId = id;
this.password = password;
}
}
22. Lagom – State
@Immutable
public class UserData {
public final String id;
public final String hashedPassword;
public UserData(String id, String hashedPassword) {
this.id = id;
this.hashedPassword = hashedPassword;
}
}
@Immutable
public class UserState {
public final Option<UserData> user ;
public UserState(final Option<UserData> user) {
this.user = user;
}
public static UserState empty() {
return new UserState(Option.none());
}
}
27. Lagom – Read Side and SQL/NoSQL
● Cassandra is default Event Store from few options
● SQL DB also goes ... typically makes no sense
● There can be additional READ MODELS created for Entities (for READs SQL
makes sense)
events
state
Read side projection
Read side processor
request
response
33. Lagom programming - summary
● Java 8
● High order functions
● CompletableFuture FTW
● Immutability
● JavaSlang – perfect fit
● Fast feedback with sbt and maven(!)
● Nice tests... but slow
● Nice Documentation
● Still changing API
34. Lagom programming – very little magic
● No aspects with annotations
● Very simple DI framework Guice
● No beans – just classes
● Clean code with lagom is natural
35. Lagom alternatives
● Scala + Akka/ Akka persistence
● Ratpack + Airomem DROP DB
● Spring 5 Reactive
● JavaEE
● Spring
36. Lagom alternative - Ratpack
● Java 8 Non blocking http library
● Netty based
● Non blocking
● Not a framework
● Open source
● Do persistence on your own (like #DROPDB or async SQL or NoSQL)
● Fast tests
● More code to write
● No magic at all
● Ratpack + airomem : All you can get from single machine
37. Lagom alternative – Scala + Akka stack
● Lightbend
● Lagom is built on top of akka + play
● Scala first API
● Implementaions in Scala OK, in Java .... so so
● Lot of existing implementations, mature standard, help + support
● Professional support
● Open source
● Same as Lagom but Probably best for Scala teams
38. Lagom alternative – Spring 5 Reactive
● Comes soon
● No magic (like Spring Beans with DI) needed
● Similar to Ratpack !
● IMO Better looking API
● Some compatibility with Spring
● With better SpringData (non blocking, non magic) might be really killer platform!
39.
40. Lagom alternatives – JavaEE or Spring
● Too much magic
● Too much locking
● Hell of getters, setters and singletons( Spring)
● Tests with mocks will test mocks
● Cleand code... with those platforms ?
● Classical state based persistence makes it easy for people
● We've seen enough!
41. Do you want to know more?
Life Beyond the Illusion of Present by
Jonas Boner
Polyglot Data by
Greg Young
Monadic Java & G o F patterns
Mario Fusco