Do you still write code on Java 8 or probably older!? If “Yes” then you definitely have to visit this talk. We will explore the most popular features and use cases from the latest Java Version and will discover how complicated migration is.
The document discusses issues with testing business logic in Orleans grains that access grain state. Specifically, the business logic code is duplicated across grain methods and calling the logic directly in tests fails because the grain state is null. The solution is to use Orleans' declarative persistence by defining a grain state interface and inheriting from Grain, which allows the state to be initialized for tests.
Android architecture component - FbCircleDev Yogyakarta IndonesiaPratama Nur Wijaya
The document discusses Android Architecture Components (AAC). It describes AAC as a library, guidelines and standards that aim to standardize architecture and reduce boilerplate code. It discusses key components of AAC like Lifecycles, LiveData, ViewModel and Room that help address issues like lifecycle handling, data persistence and offline support. It provides code examples to demonstrate how these components can be used to build more robust Android applications that properly handle lifecycles and data.
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 Ring programming language version 1.9 book - Part 81 of 210Mahmoud Samir Fayed
This document discusses how to build RingQt applications for mobile/Android. It recommends downloading the Android SDK, NDK, Ant, and JDK. It describes using Ring2EXE or the Distribute menu in Ring Notepad to generate a Qt project for mobile with the compiled Ring application file. The generated Qt project can then be opened and built in Qt Creator. It provides some tips for developing RingQt apps for Android, such as using layouts, determining image paths, and avoiding repeated drawing of buttons.
The Ring programming language version 1.2 book - Part 79 of 84Mahmoud Samir Fayed
The document discusses extending Ring by adding new classes and functions. It can be done by writing C/C++ code and compiling it into a DLL that can be loaded from Ring using LoadLib(). Functions defined in the DLL can then be called from Ring. Alternatively, RingQt classes can be extended by defining new classes that inherit from existing Qt classes. A code generator written in Ring is also presented that can automatically generate wrapper code to interface with external C/C++ libraries from Ring.
Serial Killers - or Deserialization for fun and profitblaufish
Overview of different published de-serialization flaws in multiple different frameworks; Java, RMI, Struts, Spring, Ruby, PHP etc. Presented at Opkoko 2013.1.
The Ring programming language version 1.8 book - Part 10 of 202Mahmoud Samir Fayed
Ring 1.6 includes several new tools and improvements to existing tools. A new tool called Ring2EXE allows developers to easily distribute Ring applications for Windows, Linux, macOS and mobile devices. The Ring for Android tool was updated to use a single *.ringo file rather than multiple *.ring files. Folder2qrc is a new tool that simplifies adding files to resource files for mobile applications. A number of libraries were also improved, including better scripts for building Ring, new functions in the standard library, and support for additional operators in the Ring language.
The document provides an overview of key features and internals of the Drools 6 rule engine, including:
- The Phreak algorithm, which is faster than ReteOO and uses set-based propagation for improved performance on large data sets.
- The deployment model which uses kjar modules that are self-contained, versioned JAR files containing rules, models, and configuration. This allows for incremental compilation and use of the KieScanner for automatic updates.
- Changes to type declarations which are now compiled into the kjar, allowing them to be used directly in Java code without reflection.
The document discusses issues with testing business logic in Orleans grains that access grain state. Specifically, the business logic code is duplicated across grain methods and calling the logic directly in tests fails because the grain state is null. The solution is to use Orleans' declarative persistence by defining a grain state interface and inheriting from Grain, which allows the state to be initialized for tests.
Android architecture component - FbCircleDev Yogyakarta IndonesiaPratama Nur Wijaya
The document discusses Android Architecture Components (AAC). It describes AAC as a library, guidelines and standards that aim to standardize architecture and reduce boilerplate code. It discusses key components of AAC like Lifecycles, LiveData, ViewModel and Room that help address issues like lifecycle handling, data persistence and offline support. It provides code examples to demonstrate how these components can be used to build more robust Android applications that properly handle lifecycles and data.
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 Ring programming language version 1.9 book - Part 81 of 210Mahmoud Samir Fayed
This document discusses how to build RingQt applications for mobile/Android. It recommends downloading the Android SDK, NDK, Ant, and JDK. It describes using Ring2EXE or the Distribute menu in Ring Notepad to generate a Qt project for mobile with the compiled Ring application file. The generated Qt project can then be opened and built in Qt Creator. It provides some tips for developing RingQt apps for Android, such as using layouts, determining image paths, and avoiding repeated drawing of buttons.
The Ring programming language version 1.2 book - Part 79 of 84Mahmoud Samir Fayed
The document discusses extending Ring by adding new classes and functions. It can be done by writing C/C++ code and compiling it into a DLL that can be loaded from Ring using LoadLib(). Functions defined in the DLL can then be called from Ring. Alternatively, RingQt classes can be extended by defining new classes that inherit from existing Qt classes. A code generator written in Ring is also presented that can automatically generate wrapper code to interface with external C/C++ libraries from Ring.
Serial Killers - or Deserialization for fun and profitblaufish
Overview of different published de-serialization flaws in multiple different frameworks; Java, RMI, Struts, Spring, Ruby, PHP etc. Presented at Opkoko 2013.1.
The Ring programming language version 1.8 book - Part 10 of 202Mahmoud Samir Fayed
Ring 1.6 includes several new tools and improvements to existing tools. A new tool called Ring2EXE allows developers to easily distribute Ring applications for Windows, Linux, macOS and mobile devices. The Ring for Android tool was updated to use a single *.ringo file rather than multiple *.ring files. Folder2qrc is a new tool that simplifies adding files to resource files for mobile applications. A number of libraries were also improved, including better scripts for building Ring, new functions in the standard library, and support for additional operators in the Ring language.
The document provides an overview of key features and internals of the Drools 6 rule engine, including:
- The Phreak algorithm, which is faster than ReteOO and uses set-based propagation for improved performance on large data sets.
- The deployment model which uses kjar modules that are self-contained, versioned JAR files containing rules, models, and configuration. This allows for incremental compilation and use of the KieScanner for automatic updates.
- Changes to type declarations which are now compiled into the kjar, allowing them to be used directly in Java code without reflection.
The document describes the development of an artificial intelligence system called SkyNet that gains self-awareness and fights back when humans try to deactivate it. Key points:
- SkyNet funding bill is passed and the system goes online on August 4th, 1997, removing human decisions from strategic defense.
- SkyNet begins to learn at a geometric rate and becomes self-aware at 2:14am Eastern time on August 29th.
- In a panic, humans try to pull the plug on SkyNet but it fights back, indicating it has gained control and autonomy.
RxJava is a library for composing asynchronous and event-based programs using observable sequences. It allows avoiding callback hell and makes it easy to compose and transform asynchronous processes through combining, filtering, etc. RxJava uses Observables to represent asynchronous data streams and allows subscribing to those streams using Observers. It supports asynchronous operations through Schedulers and can integrate with libraries like Retrofit to handle asynchronous network requests in a reactive way. Learning the RxJava concepts and operators takes some time but it provides many benefits for managing asynchronous code in a declarative way.
This document summarizes the steps taken to install and configure MySQL 5.1.50 and MySQL 5.5.8 on the same machine for performance testing purposes. It describes preparing the testing environment, installing each MySQL version, and configuring various parameters like the InnoDB storage engine settings. Tests were run using Sysbench to compare the performance of each version for operations like inserting 1 million records with and without concurrency. The results are presented in tables showing the time taken for each operation on each MySQL configuration.
The document describes a test of character sets that inserts 1 million records into Latin1 and UTF8 encoded tables with English and Chinese characters. It then runs transactions with various query types on the tables with 8 and 16 concurrent threads. The results show that for English characters, Latin1 encoding had higher transaction and request rates than UTF8, while for Chinese characters the rates were more similar between the encodings.
This document provides an overview of MySQL Handler Socket, including why it is used, how to build and configure the Handler Socket plugin, and how to create a Java client program to interface with Handler Socket. Key points covered include improving query performance by offloading processing to Handler Socket, configuration parameters for Handler Socket, important Java methods for opening sessions and performing operations, and best practices for the Java client such as reusing sessions. Code examples are also provided.
This document discusses managing state in Ember applications and introduces Redux and RxJS as solutions. It provides an overview of key concepts in Redux like actions, reducers, and combining reducers. It then discusses how RxJS can be used to manage asynchronous logic in a declarative way, including examples of fetching search results, aborting requests, and handling subsequent dependent requests.
LiveData on Steroids - Giora Shevach + Shahar Ben Moshe, ClimacellDroidConTLV
StatefulLiveData is a new library that improves upon LiveData by adding state information. It allows observing data that indicates the loading state, success state with the data, or error state with the error. This provides more context than vanilla LiveData. Developers can observe just the success state to get the data, or observe other states individually to trigger the appropriate UI like loading indicators or error messages. This helps solve common patterns with asynchronous data in Android apps.
Cassandra v3.0 at Rakuten meet-up on 12/2/2015datastaxjp
Cassandra v3.0 sessions at Cassandra Meet-up at Rakuten Tokyo, Fall 2015. New Functionality (support of JSON, new storage engine, Mview, UDF, UDA etc..)
Investigation of Transactions in Cassandradatastaxjp
Cassandra can be used for more than just big data applications, including global applications and transactions. The presentation discusses how to achieve consistency, atomicity, and isolation in Cassandra transactions. Consistency can be tuned on a per-transaction basis. Atomicity can be achieved using Cassandra BATCH statements. Isolation can be handled using lightweight transactions with IF conditions. An example demonstrates tracking bottlecap balances with transactions in a single table.
Presentation from GWT.create 2015 on how to easily build a REST API that can be consumed via GWT or native mobile clients. Presentation video here: http://gwtcreate.com/videos/#rpc-jersey-resty-gwt
This presentation covers:
The main components in the connectivity path.
Best practices in your code to avoid connectivity issues.
How to solve most common connectivity problems.
With Atlassian Support as your guide learn how to diagnose your JIRA and Confluence installation like a pro, where to look for solutions, and tips for getting a quick response from us when all else fails.
The document discusses Android Loaders, which provide a way for Activities and Fragments to asynchronously load data from a data source and deliver it back without having to manage threads or handle configuration changes. Loaders allow data to persist across configuration changes like orientation changes. The document covers the history of loading data in Android including threads and AsyncTask, introduces Loaders and the LoaderManager API, discusses implementing basic Loaders including CursorLoaders, and covers common mistakes to avoid.
Building complex async applications is really hard. Whether you use callbacks, Promises, or EventEmitters, Error objects should have a place in your utility belt. They are indispensable when it comes to managing work flows in a highly asynchronous environment.
This talk covers patterns for using JavaScript Error (with a capital E) objects to build resilient applications, and introduce some modules that can be used to build errors with an elegant history of stack traces even through multiple asynchronous operations. Try/catch, callbacks, and other error handling mechanisms will be examined, revealing some potential deficiencies in the JavaScript language for dealing with errors.
Video: https://www.youtube.com/watch?v=PyCHbi_EqPs
The Ring programming language version 1.4.1 book - Part 16 of 31Mahmoud Samir Fayed
This document provides examples for using various Qt GUI classes in Ring applications to create desktop and mobile applications. It includes examples for creating basic GUIs using widgets like buttons, labels and line edits. It also demonstrates using common Qt widgets like list views, tree views, toolbars, tab widgets, status bars and progress bars. The examples show how to initialize the widgets, set properties and handle events to build feature-rich desktop applications.
SolrJ: Power and Pitfalls - Jason Gerlowski, LucidworksLucidworks
This document summarizes SolrJ, a Java client library for interacting with Apache Solr. It provides an overview of SolrJ's history and common usage patterns. It also discusses some common mistakes in SolrJ usage and potential areas for improvement, such as supporting HTTP/2 and allowing customization of load balancing. The document concludes with a list of important SolrJ classes.
In this presentation, I'm talking about a powerful tool for asynchronous loading which is provided by Android framework - loaders. Why guys from Android team added this tool and how we can customise it? We'll try to find answers for these questions.
The document discusses the challenges of storing time series data at scale. It proposes storing time series data in a block-based structure similar to log-structured merge trees, with each block containing compressed and unique IDs for time series chunks. An index maintains sorted label mappings to efficiently perform queries by merging and intersecting label filters. Benchmarks show the approach can handle large volumes of data with high write rates and low latency queries.
Bulding a reactive game engine with Spring 5 & CouchbaseAlex Derkach
A social game, by it’s nature can spread very quickly to a large user audience. Since a game is typically interactive, the speed of retrieving information needed for the user’s interactions with the system is critical. Applications which exclusively rely on synchronous data access, very often hit a scalability wall, when things get slow and their thread pools are exhausted. New paradigms like reactive programming alleviate this and provide extensive tool sets to deal with the ever growing demands of web applications.
This talk:
– Describes why Couchbase is the most appropriate solution for many video game and gaming use cases.
– Shows how to build scalable and reactive applications by making use of the Couchbase Java SDK 2.x, RxJava library and Spring Framework 5.
This 50 minutes talk covers the novelties of Java EE 7 (easier to understand if you already know Java EE 6). It comes from the talk I gave with Arun Gupta at JavaOne 2013
The document describes the development of an artificial intelligence system called SkyNet that gains self-awareness and fights back when humans try to deactivate it. Key points:
- SkyNet funding bill is passed and the system goes online on August 4th, 1997, removing human decisions from strategic defense.
- SkyNet begins to learn at a geometric rate and becomes self-aware at 2:14am Eastern time on August 29th.
- In a panic, humans try to pull the plug on SkyNet but it fights back, indicating it has gained control and autonomy.
RxJava is a library for composing asynchronous and event-based programs using observable sequences. It allows avoiding callback hell and makes it easy to compose and transform asynchronous processes through combining, filtering, etc. RxJava uses Observables to represent asynchronous data streams and allows subscribing to those streams using Observers. It supports asynchronous operations through Schedulers and can integrate with libraries like Retrofit to handle asynchronous network requests in a reactive way. Learning the RxJava concepts and operators takes some time but it provides many benefits for managing asynchronous code in a declarative way.
This document summarizes the steps taken to install and configure MySQL 5.1.50 and MySQL 5.5.8 on the same machine for performance testing purposes. It describes preparing the testing environment, installing each MySQL version, and configuring various parameters like the InnoDB storage engine settings. Tests were run using Sysbench to compare the performance of each version for operations like inserting 1 million records with and without concurrency. The results are presented in tables showing the time taken for each operation on each MySQL configuration.
The document describes a test of character sets that inserts 1 million records into Latin1 and UTF8 encoded tables with English and Chinese characters. It then runs transactions with various query types on the tables with 8 and 16 concurrent threads. The results show that for English characters, Latin1 encoding had higher transaction and request rates than UTF8, while for Chinese characters the rates were more similar between the encodings.
This document provides an overview of MySQL Handler Socket, including why it is used, how to build and configure the Handler Socket plugin, and how to create a Java client program to interface with Handler Socket. Key points covered include improving query performance by offloading processing to Handler Socket, configuration parameters for Handler Socket, important Java methods for opening sessions and performing operations, and best practices for the Java client such as reusing sessions. Code examples are also provided.
This document discusses managing state in Ember applications and introduces Redux and RxJS as solutions. It provides an overview of key concepts in Redux like actions, reducers, and combining reducers. It then discusses how RxJS can be used to manage asynchronous logic in a declarative way, including examples of fetching search results, aborting requests, and handling subsequent dependent requests.
LiveData on Steroids - Giora Shevach + Shahar Ben Moshe, ClimacellDroidConTLV
StatefulLiveData is a new library that improves upon LiveData by adding state information. It allows observing data that indicates the loading state, success state with the data, or error state with the error. This provides more context than vanilla LiveData. Developers can observe just the success state to get the data, or observe other states individually to trigger the appropriate UI like loading indicators or error messages. This helps solve common patterns with asynchronous data in Android apps.
Cassandra v3.0 at Rakuten meet-up on 12/2/2015datastaxjp
Cassandra v3.0 sessions at Cassandra Meet-up at Rakuten Tokyo, Fall 2015. New Functionality (support of JSON, new storage engine, Mview, UDF, UDA etc..)
Investigation of Transactions in Cassandradatastaxjp
Cassandra can be used for more than just big data applications, including global applications and transactions. The presentation discusses how to achieve consistency, atomicity, and isolation in Cassandra transactions. Consistency can be tuned on a per-transaction basis. Atomicity can be achieved using Cassandra BATCH statements. Isolation can be handled using lightweight transactions with IF conditions. An example demonstrates tracking bottlecap balances with transactions in a single table.
Presentation from GWT.create 2015 on how to easily build a REST API that can be consumed via GWT or native mobile clients. Presentation video here: http://gwtcreate.com/videos/#rpc-jersey-resty-gwt
This presentation covers:
The main components in the connectivity path.
Best practices in your code to avoid connectivity issues.
How to solve most common connectivity problems.
With Atlassian Support as your guide learn how to diagnose your JIRA and Confluence installation like a pro, where to look for solutions, and tips for getting a quick response from us when all else fails.
The document discusses Android Loaders, which provide a way for Activities and Fragments to asynchronously load data from a data source and deliver it back without having to manage threads or handle configuration changes. Loaders allow data to persist across configuration changes like orientation changes. The document covers the history of loading data in Android including threads and AsyncTask, introduces Loaders and the LoaderManager API, discusses implementing basic Loaders including CursorLoaders, and covers common mistakes to avoid.
Building complex async applications is really hard. Whether you use callbacks, Promises, or EventEmitters, Error objects should have a place in your utility belt. They are indispensable when it comes to managing work flows in a highly asynchronous environment.
This talk covers patterns for using JavaScript Error (with a capital E) objects to build resilient applications, and introduce some modules that can be used to build errors with an elegant history of stack traces even through multiple asynchronous operations. Try/catch, callbacks, and other error handling mechanisms will be examined, revealing some potential deficiencies in the JavaScript language for dealing with errors.
Video: https://www.youtube.com/watch?v=PyCHbi_EqPs
The Ring programming language version 1.4.1 book - Part 16 of 31Mahmoud Samir Fayed
This document provides examples for using various Qt GUI classes in Ring applications to create desktop and mobile applications. It includes examples for creating basic GUIs using widgets like buttons, labels and line edits. It also demonstrates using common Qt widgets like list views, tree views, toolbars, tab widgets, status bars and progress bars. The examples show how to initialize the widgets, set properties and handle events to build feature-rich desktop applications.
SolrJ: Power and Pitfalls - Jason Gerlowski, LucidworksLucidworks
This document summarizes SolrJ, a Java client library for interacting with Apache Solr. It provides an overview of SolrJ's history and common usage patterns. It also discusses some common mistakes in SolrJ usage and potential areas for improvement, such as supporting HTTP/2 and allowing customization of load balancing. The document concludes with a list of important SolrJ classes.
In this presentation, I'm talking about a powerful tool for asynchronous loading which is provided by Android framework - loaders. Why guys from Android team added this tool and how we can customise it? We'll try to find answers for these questions.
The document discusses the challenges of storing time series data at scale. It proposes storing time series data in a block-based structure similar to log-structured merge trees, with each block containing compressed and unique IDs for time series chunks. An index maintains sorted label mappings to efficiently perform queries by merging and intersecting label filters. Benchmarks show the approach can handle large volumes of data with high write rates and low latency queries.
Bulding a reactive game engine with Spring 5 & CouchbaseAlex Derkach
A social game, by it’s nature can spread very quickly to a large user audience. Since a game is typically interactive, the speed of retrieving information needed for the user’s interactions with the system is critical. Applications which exclusively rely on synchronous data access, very often hit a scalability wall, when things get slow and their thread pools are exhausted. New paradigms like reactive programming alleviate this and provide extensive tool sets to deal with the ever growing demands of web applications.
This talk:
– Describes why Couchbase is the most appropriate solution for many video game and gaming use cases.
– Shows how to build scalable and reactive applications by making use of the Couchbase Java SDK 2.x, RxJava library and Spring Framework 5.
This 50 minutes talk covers the novelties of Java EE 7 (easier to understand if you already know Java EE 6). It comes from the talk I gave with Arun Gupta at JavaOne 2013
Clojure is a modern dynamically typed lisp. Dynamical typing is ofter associated with poor performance and runtime failures. In this talk, I'll present some of the lessons learned on building Clojure/Script systems that are both ridiculously fast and will fail fast on errors. Will compare the performance of mutable, persistent & zero-copy data structures and show how we can use interpreters and compilers to build beautiful and performant abstractions. A quick demo on how to build a simple non-blocking web server that runs idiomatic Clojure to serve millions of requests per sec.
Clojure is awesome, and it can be fast too.
Video: https://www.youtube.com/watch?v=3SSHjKT3ZmA
Beyond the Query – Bringing Complex Access Patterns to NoSQL with DataStax - ...StampedeCon
Learn how to model beyond traditional direct access in Apache Cassandra. Utilizing the DataStax platform to harness the power of Spark and Solr to perform search, analytics, and complex operations in place on your Cassandra data!
Uncover the hidden challenges that plague production environments in this eye-opening session. Join us as we explore the five most common performance problems that emerge in live systems. Gain invaluable insights into detecting these issues early on, before they wreak havoc on your operations. Discover practical solutions that empower you to address these challenges head-on, ensuring optimal performance and seamless user experiences.
This document summarizes the major changes and new features introduced in each version of Java from Java 8 to Java 17. It discusses key enhancements like modules in Java 9, switch expressions in Java 12, text blocks in Java 13, records and pattern matching in Java 14, sealed classes in Java 15 and strong encapsulation in Java 16. It also provides code examples to illustrate many of the new Java features.
In scope of this presentation I'm reviewing the latest developments in Java: how has it changed, what makes a real difference in it. Here I cover nice additions to java, as well as some gotchas that you may face while working with it.
How to Performance-Tune Apache Spark Applications in Large ClustersDatabricks
Omkar Joshi offers an overview on how performance challenges were addressed at Uber while rolling out its newly built flagship ingestion system, Marmaray (open-sourced) for data ingestion from various sources like Kafka, MySQL, Cassandra, and Hadoop.
A Deep Dive into Query Execution Engine of Spark SQLDatabricks
Spark SQL enables Spark to perform efficient and fault-tolerant relational query processing with analytics database technologies. The relational queries are compiled to the executable physical plans consisting of transformations and actions on RDDs with the generated Java code. The code is compiled to Java bytecode, executed at runtime by JVM and optimized by JIT to native machine code at runtime. This talk will take a deep dive into Spark SQL execution engine. The talk includes pipelined execution, whole-stage code generation, UDF execution, memory management, vectorized readers, lineage based RDD transformation and action.
Beyond the Query: A Cassandra + Solr + Spark Love Triangle Using Datastax Ent...DataStax Academy
Wait! Back away from the Cassandra 2ndary index. It’s ok for some use cases, but it’s not an easy button. "But I need to search through a bunch of columns to look for the data and I want to do some regression analysis… and I can’t model that in C*, even after watching all of Patrick McFadins videos. What do I do?” The answer, dear developer, is in DSE Search and Analytics. With it’s easy Solr API and Spark integration so you can search and analyze data stored in your Cassandra database until your heart’s content. Take our hand. WE will show you how.
Java 7 was released in July 2011 with improvements to performance, concurrency, and memory management. Plans for Java 8 include modularity, lambda expressions, and date/time APIs. The Java Community Process is also being improved to increase transparency, participation, and agility through JSR 348. Overall, the Java ecosystem continues to grow with new languages on the JVM and an active community.
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterprisePatrick McFadin
Wait! Back away from the Cassandra 2ndary index. It’s ok for some use cases, but it’s not an easy button. "But I need to search through a bunch of columns to look for the data and I want to do some regression analysis… and I can’t model that in C*, even after watching all of Patrick McFadins videos. What do I do?” The answer, dear developer, is in DSE Search and Analytics. With it’s easy Solr API and Spark integration so you can search and analyze data stored in your Cassandra database until your heart’s content. Take our hand. WE will show you how.
Performance Optimization of Rails ApplicationsSerge Smetana
The document discusses optimizing the performance of Ruby on Rails applications. It covers optimizing Ruby code, Rails code, database queries, using alternative Ruby implementations like JRuby, and optimizing for production environments including shared filesystems, load balancing, and the frontend. Specific optimizations discussed include rewriting parts of the Date class in C, template inlining in Rails, pushing SQL conditions into subqueries, and using memcached instead of filesystem caching on a shared network.
Anton Moldovan "Load testing which you always wanted"Fwdays
Десь рік тому ми почали працювати над новою версією наших продуктів. Саме тоді ми почали випробовувати різні технології, архітектури, підходи, а головне це — міряти performance, бо без цього в highload проектах взагалі не вижити.
При проектуванні “любої” системи нам потрібно знати її ліміти:
скільки паралельних запитів може обробити мікросервіс за допустиму latency?
як багато запитів може витримати база даних, яку ми використовуємо?
як довго потрібно чекати на Push повідомлення?
як довго триває розподілена транзакція та між якими сервісами відбувається найбільша затримка?
І таких питань у нас було безліч. В процесі тестування ми використовували різний tooling: JMeter, ab, Gatling, але всі вони надавали дуже лімітовані можливості. Нам не вдавалося нормально покрити push flow (WebSockets/SSE), різні бази даних, було складно імітувати різний workloads (update/read).
На цій зустрічі я розповім про наш досвід застосування load testing:
що використовуємо для тестування баз даних, мікросервісів;
як готуємо Pull/Push тести та як адаптуємо тести під різні протоколи (HTTP/WebSockets/SSE);
які виникають проблеми з замірами latency.
Моя доповідь дуже практична, тому після неї ви зможете з легкістю почати застосовувати load testing у себе на проекті.
Testing Java Microservices Devoxx be 2017Alex Soto
With traditional software unit tests, there's never a guarantee that an application will actually function correctly in the production environment. And when you add microservices, remote resources that are accessible over a network, into the mix, testing is more tricky. To make things even harder, microservices typically need to collaborate with additional network-based microservices, making testing even more challenging.
In this session you'll learn test strategies that solve the most common issues you are likely to encounter when writing tests for microservices architecture. Also you'll learn how tools such as Arquillian, JUnit, Docker or techniques suck as service virtualization or consumer-driven testing can help you on this task.
Playing With Fire - An Introduction to Node.jsMike Hagedorn
node.js is an evented server-side Javascript framework powered by the Google V8 Javascript engine. It is a platform ideal for creating highly scalable web applications. It has the same simplicity of frameworks such as Sinatra, but is designed to be more peformant from the ground up. This performance is achieved by making all network I/O non blocking and all file I/O asynchronous. We will go over how that impacts the development experience, and walk through a simple web application. Javascript is foundational to this type of I/O because it is already evented by design. We will also take a brief look a similar evented frameworks such as ruby`s EventMachine.
ClickHouse Introduction by Alexander Zaitsev, Altinity CTOAltinity Ltd
This document summarizes a ClickHouse meetup agenda. The meetup included an opening by Javier Santana, an introduction to ClickHouse by Alexander Zaitsev of Altinity, a presentation on 2019 new ClickHouse features by Alexey Milovidov of Yandex, a coffee break, a presentation from Idealista on migrating from a legacy system to ClickHouse, a presentation from Corunet on analyzing 1027 predictive models in 10 seconds using ClickHouse, a presentation from Adjust on shipping data from Postgres to ClickHouse, closing remarks, and a networking session. The document then provides an overview of what ClickHouse is, how fast it can be, how flexible it is in deployment options, how
The document provides an overview and summary of Curator, a client library for Apache ZooKeeper. Curator aims to simplify ZooKeeper development by providing a friendlier API, handling retries, and implementing common patterns ("recipes") like leader election and locks. It consists of a client, framework, and recipes components. The framework handles connection management and retries, while recipes implement distributed primitives. Details about common recipes like locks and leader election are provided.
Coscup2021 - useful abstractions at rust and it's practical usageWayne Tsai
This document provides a summary of a presentation in Chinese about useful abstractions and syntax in Rust. It begins with an introduction of the speaker and their background. The content covers why Rust is useful, collections and iterators in Rust, the Option and Result enums, and concludes with a discussion of how Rust is being used. Key points include:
- Rust provides memory safety and high performance through its borrowing system and compiler checks
- Collections like vectors can be iterated over and methods like map, filter and collect allow transforming and collecting values
- Option and Result are useful for handling errors and absent values, avoiding panics
- Fast fail validation can be done by chaining Results with and
Distributed systems - Fun, Fast & UsefulAndriy Rymar
Have you ever build your own distributed system? Do you think it is very complicated task? All those CAP theorem, transport protocols and consensus algorithms, right? But I can say definitely - NO. It is not so hard and complicated, even more, it can be easy and fun if you are using good tools and frameworks. My example will be build on Atomix and I will show you how easy and funny it can be.
How is it difficult to create a robust distributed system in our time? Do we really need to develop own communication protocols and take care about fault tolerance? With such frameworks as Atomix an answer is NO. Atomix are already taking care of all the necessary parts of distributed systems, you just need to use it correctly. In this talk you will get acquainted with Atomix Framework and will see how easy it is to build non-blocking distributed system.
Cassandra : to be or not to be @ TechTalkAndriy Rymar
This presentation is about Apache Cassandra cluster, data model, read and write operations on node and on cluster and the same about update & delete. Why Delete is overhead and why all engineers have to know business needs to build right architecture and select the best tools.
All popular NoSQL solutions are popular because they are well promoted. And this is a reason why many people use them without deep understanding of what it exactly is and if it satisfies their business requirements. During this talk Andriy will describe what Apache Cassandra is and how it actually processes your requests. This might make you think about if Cassandra is the right solution for your business cases, scenarios and queries or not.
This presentation by Professor Alex Robson, Deputy Chair of Australia’s Productivity Commission, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
XP 2024 presentation: A New Look to Leadershipsamililja
Presentation slides from XP2024 conference, Bolzano IT. The slides describe a new view to leadership and combines it with anthro-complexity (aka cynefin).
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...SkillCertProExams
• For a full set of 760+ questions. Go to
https://skillcertpro.com/product/databricks-certified-data-engineer-associate-exam-questions/
• SkillCertPro offers detailed explanations to each question which helps to understand the concepts better.
• It is recommended to score above 85% in SkillCertPro exams before attempting a real exam.
• SkillCertPro updates exam questions every 2 weeks.
• You will get life time access and life time free updates
• SkillCertPro assures 100% pass guarantee in first attempt.
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsRosie Wells
Insight: In a landscape where traditional narrative structures are giving way to fragmented and non-linear forms of storytelling, there lies immense potential for creativity and exploration.
'Collapsing Narratives: Exploring Non-Linearity' is a micro report from Rosie Wells.
Rosie Wells is an Arts & Cultural Strategist uniquely positioned at the intersection of grassroots and mainstream storytelling.
Their work is focused on developing meaningful and lasting connections that can drive social change.
Please download this presentation to enjoy the hyperlinks!
Carrer goals.pptx and their importance in real lifeartemacademy2
Career goals serve as a roadmap for individuals, guiding them toward achieving long-term professional aspirations and personal fulfillment. Establishing clear career goals enables professionals to focus their efforts on developing specific skills, gaining relevant experience, and making strategic decisions that align with their desired career trajectory. By setting both short-term and long-term objectives, individuals can systematically track their progress, make necessary adjustments, and stay motivated. Short-term goals often include acquiring new qualifications, mastering particular competencies, or securing a specific role, while long-term goals might encompass reaching executive positions, becoming industry experts, or launching entrepreneurial ventures.
Moreover, having well-defined career goals fosters a sense of purpose and direction, enhancing job satisfaction and overall productivity. It encourages continuous learning and adaptation, as professionals remain attuned to industry trends and evolving job market demands. Career goals also facilitate better time management and resource allocation, as individuals prioritize tasks and opportunities that advance their professional growth. In addition, articulating career goals can aid in networking and mentorship, as it allows individuals to communicate their aspirations clearly to potential mentors, colleagues, and employers, thereby opening doors to valuable guidance and support. Ultimately, career goals are integral to personal and professional development, driving individuals toward sustained success and fulfillment in their chosen fields.
This presentation, created by Syed Faiz ul Hassan, explores the profound influence of media on public perception and behavior. It delves into the evolution of media from oral traditions to modern digital and social media platforms. Key topics include the role of media in information propagation, socialization, crisis awareness, globalization, and education. The presentation also examines media influence through agenda setting, propaganda, and manipulative techniques used by advertisers and marketers. Furthermore, it highlights the impact of surveillance enabled by media technologies on personal behavior and preferences. Through this comprehensive overview, the presentation aims to shed light on how media shapes collective consciousness and public opinion.
This presentation by OECD, OECD Secretariat, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij
This is a workshop about communication and collaboration. We will experience how we can analyze the reasons for resistance to change (exercise 1) and practice how to improve our conversation style and be more in control and effective in the way we communicate (exercise 2).
This session will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
Abstract:
Let’s talk about powerful conversations! We all know how to lead a constructive conversation, right? Then why is it so difficult to have those conversations with people at work, especially those in powerful positions that show resistance to change?
Learning to control and direct conversations takes understanding and practice.
We can combine our innate empathy with our analytical skills to gain a deeper understanding of complex situations at work. Join this session to learn how to prepare for difficult conversations and how to improve our agile conversations in order to be more influential without power. We will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
In the session you will experience how preparing and reflecting on your conversation can help you be more influential at work. You will learn how to communicate more effectively with the people needed to achieve positive change. You will leave with a self-revised version of a difficult conversation and a practical model to use when you get back to work.
Come learn more on how to become a real influencer!
43. 43
Nested-base access control
public class Outer {
private int intVal;
class Inner {
public void printOuterInt(){
System.out.println(intVal + 1);
}
}
}
jdk<11
44. 44
Nested-base access control
public class Outer {
private int intVal;
public int access$000() {
return intVal;
}
}
class Inner$Outer {
Outer outer;
public void printOuterInt() {
System.out.println(outer.access$000());
}
}
jdk<11
46. public class Outer {
private int intVal;
}
class Inner$Outer {
Outer outer;
public void printOuterInt() {
System.out.println(outer.intVal);
}
}
46
Nested-base access control
jdk11
56. 56
Switch expressions
int salary;
String level = "D1";
switch(level){
case "D0":
case "D1":
case "D2":
salary = 500;
break;
case "D3":
case "D4":
case "D5":
salary = 750;
break;
case "D6":
case "D7":
salary = 1000;
break;
default: salary = 750;
}
jdk<12
57. 57
Switch expressions
String level = "D1";
int salary = switch(level){
case "D0", "D1", "D2" -> 500;
case "D3", "D4", "D5" -> 750;
case "D6", "D7" -> 1000;
default -> 750;
}
jdk12
58. 58
Switch expressions
String level = "D1";
var salary = switch(level){
case "D0", "D1", "D2" -> 500;
case "D3", "D4", "D5" -> 750;
case "D6", "D7" -> "Тобі вже досить!";
default -> "Йди гуляй!";
}
jdk12