SlideShare a Scribd company logo
1 • 8-November-23
2 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
3 • 8-November-23
Picnic
4 • 8-November-23
Code quality
5 • 8-November-23
Excellent code quality
Good architecture
Review process
Bugs and uniformity
Automation
6 • 8-November-23
Parkinson's law of triviality
7 • 8-November-23
Code reviews and discussions
8 • 8-November-23
Tools
Google/google-java-format
Reformats Java source code to comply
with Google Java Style.
checkstyle/checkstyle
Helps programmers write Java code
that adheres to a coding standard.
spotbugs/spotbugs
A tool for static analysis to look
for bugs in Java code.
SonarSource/sonarqube
Continuous Inspection.
9 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
10 • 8-November-23
Open-source static analysis
Compiler plugin
Powerful
500+ Error Prone checks
Complex
Error Prone
Google/error-prone
Catch common Java mistakes
as compile-time errors
11 • 8-November-23
Refaster
Define refactorings with templates.
becomes
12 • 8-November-23
Demo
Let’s demonstrate!
https://github.com/rickie/error-prone-demo
13 • 8-November-23
Maven profile 1
https://errorprone.info/docs/flags
14 • 8-November-23
Maven profile 2
15 • 8-November-23
Demo
Let’s demonstrate!
https://github.com/rickie/error-prone-demo
16 • 8-November-23
Bug patterns
https://errorprone.info/bugpatterns
17 • 8-November-23
Error Prone as superpower
18 • 8-November-23
Error Prone as superpower
Input:
Output:
19 • 8-November-23
Workshop planning
1. Setting up the project
2. Refaster rules
3. Error Prone checks
20 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
21 • 8-November-23
At Picnic we take it one step further!
22 • 8-November-23
Picnic open-sourced: Error Prone Support!
800+ Refaster rules
40+ Error Prone bug checks
https://error-prone.picnic.tech
23 • 8-November-23
Error Prone BugPattern
24 • 8-November-23
Error Prone BugPattern
25 • 8-November-23
Picnic’s Error Prone Support
Run Refaster rules from classpath
Test support for Refaster rules
Improved reporting of Refaster rules
Documentation website
https://error-prone.picnic.tech
26 • 8-November-23
Error Prone Support website
https://error-prone.picnic.tech
27 • 8-November-23
Let’s start with the setup!
PicnicSupermarket
error-prone-support
Error Prone extensions:
extra bug checkers and a large battery of
Refaster rules.
branch: workshop
28 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
29 • 8-November-23
Deep dive Refaster
- Background information
- Goals
- How does Refaster work?
- Advanced features
30 • 8-November-23
Refaster
- 2015 - Louis Wasserman (source)
- Two tools
- Closed source
31 • 8-November-23
Refaster rules availability
32 • 8-November-23
Deep dive Refaster
Goals of Refaster (source):
- Scalability
- Expressiveness
- Usability
When to use Refaster? (docs)
- Method A to method B.
- Migrate a fluent sequence of method invocations to some other
pattern.
- Migrate a sequence of consecutive statements to an alternative.
33 • 8-November-23
Running Refaster
34 • 8-November-23
Running Refaster - The Picnic Way
Link to an example configuration in Error Prone Support
35 • 8-November-23
Running Refaster - The Picnic Way
Refaster runner - `pom.xml` in Error Prone Support
36 • 8-November-23
Refaster @ Picnic
37 • 8-November-23
Refaster @ Picnic
38 • 8-November-23
Advanced Refaster features
39 • 8-November-23
Multiple
`@BeforeTemplate`s
40 • 8-November-23
Refaster#anyOf
41 • 8-November-23
@AlsoNegation
42 • 8-November-23
Import policies
IMPORT_TOP_LEVEL
IMPORT_CLASS_DIRECTLY
STATIC_IMPORT_ALWAYS
43 • 8-November-23
Block Template
44 • 8-November-23
@Placeholder
45 • 8-November-23
Argument types
46 • 8-November-23
Workshop part 2 - Refaster
30 minutes
Workshop README
Live demo!
Tip: use the slides
Once you are done: commit + push
47 • 8-November-23
Let’s inspect the changes!
48 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
49 • 8-November-23
Deep dive Error Prone
- Background
- How to write a BugPattern?
- Automatically fixing code
- How to test a BugPattern?
50 • 8-November-23
Error Prone background
- 2012 - Edward Aftandilian
- Code review and unit testing
- Subclass JavaCompiler
- CompilationUnit level
Source: Error Prone paper
OpenRewrite docs
51 • 8-November-23
Rules for an Error Prone check
1. The bug should be easy to understand.
2. The fix should be easy to make.
3. No false positives.
4. The bug should represent a correctness issue.
5. The bug should occur with a small but noticeable frequency.
https://errorprone.info/docs/criteria
52 • 8-November-23
How does Error Prone work?
Java code Abstract Syntax Tree Tree Node
53 • 8-November-23
Abstract Syntax Tree
54 • 8-November-23
Abstract Syntax Tree
55 • 8-November-23
Creating a BugChecker
56 • 8-November-23
Automatically fixing code!
Flagging vs. Fixing
57 • 8-November-23
Automatically fixing code!
58 • 8-November-23
Testing our BugChecker
59 • 8-November-23
Testing our
BugChecker
60 • 8-November-23
Refaster vs. Error Prone
Easy: work with
concrete syntax
Complex: AST
manipulation code
Limited
expressiveness
Full AST available
Refactoring only Also flags
without suggestions
61 • 8-November-23
Workshop part 3 - Error Prone
45 minutes
Live demo
5 assignments
Workshop README
62 • 8-November-23
Picnic and its code quality
1
Introduction of Error Prone and Refaster
2
Workshop 1 - Initial setup
3
Workshop 2 - Refaster
4
Agenda
Workshop 3 - Error Prone
5
Using Error Prone in practice!
6
63 • 8-November-23
Error Prone @ Picnic
Common configuration
./patch.sh
Continuous Integration
64 • 8-November-23
Applying Error Prone Support @ Picnic
Introducing:
- all Refaster rules
- all Error Prone checks
Approach
Perspective
https://error-prone.picnic.tech
65 • 8-November-23
Applying Error Prone Support @ Picnic
60+ PRs spread over 40+ Java repositories
33.665 insertions (+) 31.281 deletions (-)
66 • 8-November-23
Applying Error Prone Support @ Picnic
67 • 8-November-23
Applying Error Prone Support @ Picnic
68 • 8-November-23
Current state of Error Prone Support
People contributing ideas (from reviews)
40+ contributors
Stickers
Contributions?
Adoption
69 • 8-November-23
In summary
Two perspectives:
- Happy developers!
- Platform team or configuration
maintainers.
Automatically fix
One bug at a time
join.picnic.app
blog.picnic.nl
71 • 8-November-23
Unsure about next steps?
Feel free to reach out!
- https://error-prone.picnic.tech
- https://github.com/rickie/error-prone-demo - Demo code
Stephan Schroevers - stephan.schroevers@teampicnic.com
GitHub: https://github.com/Stephan202
Rick Ossendrijver - rick.ossendrijver@teampicnic.com
GitHub: https://github.com/rickie
Twitter: rick_ossies
We’re open to PRs ;)

More Related Content

Similar to EPS Workshop JFall - 1.0

Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?
Pooja Rani
 
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptxMuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
BrianFraser29
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux
Neotys
 
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Puppet
 
Testing your puppet code
Testing your puppet codeTesting your puppet code
Testing your puppet code
Julien Pivotto
 
Bug zillatestopiajenkins
Bug zillatestopiajenkinsBug zillatestopiajenkins
Bug zillatestopiajenkins
Samira Kumar Nanda
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
Rogue Wave Software
 
Android asynchronous programming
Android asynchronous programmingAndroid asynchronous programming
Android asynchronous programming
Nhan Cao
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
gaoliang641
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
Elias Nogueira
 
Building Awesome APIs with Lumen
Building Awesome APIs with LumenBuilding Awesome APIs with Lumen
Building Awesome APIs with Lumen
Kit Brennan
 
Ui Testing with Ghost Inspector
Ui Testing with Ghost InspectorUi Testing with Ghost Inspector
Ui Testing with Ghost Inspector
Harvard Web Working Group
 
Automated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and JenkinsAutomated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and Jenkins
walkerchang
 
SonarQube
SonarQubeSonarQube
SonarQube
Gnanaseelan Jeb
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
Mihai-Cristian Fratila
 
20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial
garrett honeycutt
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
Miro Cupak
 
Triantafyllia Voulibasi
Triantafyllia VoulibasiTriantafyllia Voulibasi
Triantafyllia Voulibasi
ISSEL
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
SmartBear
 
Reproducibility with Revolution R Open
Reproducibility with Revolution R OpenReproducibility with Revolution R Open
Reproducibility with Revolution R Open
Revolution Analytics
 

Similar to EPS Workshop JFall - 1.0 (20)

Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?Can We Automatically Generate Class Comments in Pharo?
Can We Automatically Generate Class Comments in Pharo?
 
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptxMuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
MuleSoft_Meetup_Brisbane_2022-06-01_SonarQube_CataloguingAPIs.pptx
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux
 
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
 
Testing your puppet code
Testing your puppet codeTesting your puppet code
Testing your puppet code
 
Bug zillatestopiajenkins
Bug zillatestopiajenkinsBug zillatestopiajenkins
Bug zillatestopiajenkins
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
Android asynchronous programming
Android asynchronous programmingAndroid asynchronous programming
Android asynchronous programming
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 
Building Awesome APIs with Lumen
Building Awesome APIs with LumenBuilding Awesome APIs with Lumen
Building Awesome APIs with Lumen
 
Ui Testing with Ghost Inspector
Ui Testing with Ghost InspectorUi Testing with Ghost Inspector
Ui Testing with Ghost Inspector
 
Automated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and JenkinsAutomated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and Jenkins
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial20140406 loa days-tdd-with_puppet_tutorial
20140406 loa days-tdd-with_puppet_tutorial
 
Master class in modern Java
Master class in modern JavaMaster class in modern Java
Master class in modern Java
 
Triantafyllia Voulibasi
Triantafyllia VoulibasiTriantafyllia Voulibasi
Triantafyllia Voulibasi
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
 
Reproducibility with Revolution R Open
Reproducibility with Revolution R OpenReproducibility with Revolution R Open
Reproducibility with Revolution R Open
 

Recently uploaded

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 

Recently uploaded (20)

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 

EPS Workshop JFall - 1.0