A short and fast journey through some of the profiling options available in the Ruby 2.x world, including a look at flamegraphs and new ways of tracking memory usage in the MRI.
A short and fast journey through some of the profiling options available in the Ruby 2.x world, including a look at flamegraphs and new ways of tracking memory usage in the MRI.
Five cool ways the JVM can run Apache Spark fasterTim Ellison
The IBM JVM runs Apache Spark fast! This talk explains some of the findings and optimizations from our experience of running Spark workloads.
The talk was originally presented at the SparkEU Summit 2015 in Amsterdam.
These slides are a series of "best practices" for running on the Cray XT line of supercomputers. This talk was presented at the HPCMP meeting at SDSC on 11/5/2009
Amazon EC2 deepdive and a sprinkel of AWS Compute | AWS Floor28Amazon Web Services
Amazon EC2 provides a broad selection of instance types to accommodate a diverse mix of workloads. In this session we provide an overview of the Amazon EC2 instance platform key platform features and the concept of instance generations. We dive into the current generation design choices of the different instance families including the General Purpose Compute Optimized Storage Optimized Memory Optimized and GPU instance families. We also detail best practices and share performance tips for getting the most out of your Amazon EC2 instances.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Five cool ways the JVM can run Apache Spark fasterTim Ellison
The IBM JVM runs Apache Spark fast! This talk explains some of the findings and optimizations from our experience of running Spark workloads.
The talk was originally presented at the SparkEU Summit 2015 in Amsterdam.
These slides are a series of "best practices" for running on the Cray XT line of supercomputers. This talk was presented at the HPCMP meeting at SDSC on 11/5/2009
Amazon EC2 deepdive and a sprinkel of AWS Compute | AWS Floor28Amazon Web Services
Amazon EC2 provides a broad selection of instance types to accommodate a diverse mix of workloads. In this session we provide an overview of the Amazon EC2 instance platform key platform features and the concept of instance generations. We dive into the current generation design choices of the different instance families including the General Purpose Compute Optimized Storage Optimized Memory Optimized and GPU instance families. We also detail best practices and share performance tips for getting the most out of your Amazon EC2 instances.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
2. What we develop
Frontend products
-Collaborative platforms, ‘forum-like’, white-labeled, for
big accounts
(a kind of GetSatisfaction / UserVoice, but.. Better ;) )
Backend product
-SocialAPIs client
-(a kind of TweetDeck, but for multiple channels, and
designed for teams/multiple users per account)
Copyright Dimelo SA www.dimelo.com
3. Stats on Dynamic requests
- on HTML/XHTML dynamic requests (we don’t count CSS, JS, images, etc)
20 req/s
Web
Peaks of 40 req/s
10 req/s APIs
Peaks of 25 req/s
Copyright Dimelo SA www.dimelo.com
4. Problem
Medium response time ~ 400 ms
WTF??
Copyright Dimelo SA www.dimelo.com
6. Finding the problem(s)
- DB queries (unoptimized queries, n+1)
- External services (EG external RSS feeds)
- Lots of partials, low or inexistent cache
- Slow session storage
- Memory issues
- Unoptimized GC
- Memory leaks
Copyright Dimelo SA www.dimelo.com
7. Memory / GC issues
- How do I know it’s a memory/GC issue?
- Server logs
- Profilers (memprof)
- Monitorization services (newrelic)
Copyright Dimelo SA www.dimelo.com
8. Ruby Garbage Collector
- Conservative
- Stop-the-world
- Mark-and-sweep process
Copyright Dimelo SA www.dimelo.com
9. Ruby default GC settings
RUBY_HEAP_MIN_SLOTS=10000
-Initial number of heap slots. It also represents the
minimum number of slots, at all times
-a new rails app boots up with almost 500k objects
on the heap(mostly nodes)
RUBY_HEAP_SLOTS_INCREMENT=10000
-The number of new slots to allocate when all initial
slots are used
RUBY_HEAP_SLOTS_GROWTH_FACTOR=1.8
-Next time Ruby needs new heap slots it will use a
multiplicator
-New stab is almost double sized
Copyright Dimelo SA www.dimelo.com
10. Ruby default GC settings (2)
RUBY_GC_MALLOC_LIMIT=8000000
-force GC after 8 MB malloc/realloc
-High traffic Rails servers can easily allocate more
than 8 MB per request
RUBY_HEAP_FREE_MIN=4096
-The number of free slots that should be present
after GC finishes running. If there are fewer slots
than those defined it will allocate new ones
Copyright Dimelo SA www.dimelo.com
11. Find your numbers
- Start with enough memory to hold Rails (Ruby’s
default is practically nothing)
- Increase it linearly if you need more (Ruby’s
default is exponential increase)
- Only garbage-collect every XX million malloc
calls (Ruby’s default is way too small)
- Benchmark, benchmark, benchmark..
Copyright Dimelo SA www.dimelo.com
14. Conclusions
- use REE on prod (or Ruby 1.9)
- measure, measure, measure (don’t forget to
GC.enable_stats)
- optimise what matters
- And yes, 5 lines of code can make a difference ;)
Copyright Dimelo SA www.dimelo.com
15. Thank you!
• Questions?
Copyright Dimelo SA www.dimelo.com