SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Downloaden Sie, um offline zu lesen
An Empirical Study of
Build System
Migrations in Practice
Case Studies on KDE and the Linux Kernel
1
R. Suvorov, B.Adams, M. Nagappan, A. E. Hassan,Y. Zou
Analogy: Car Assembly
2
+4x +
assembly
+
Build System Transforms Source Code
& Resources into Executables
3
+
bdSys
+
bdSys is at the Heart of
the Development Process!
4
bdSys
+
Developers
QA Personnel Testers
bdSys Technology is “different”
5
bdSys Technology is “different”
5
Our record so far is a project weinherited with an Ant scriptweighing in at 10,000 lines ofXML. Needless to say, this projectrequired an entire team devotedto keeping the build working - acomplete waste of resources.[Jez Humble & David Farley]
KDE 4 is leaving the aging "autotool"
build chain behind. Some developers,
not only in KDE, like to nickname
the autotools as "auto-hell"
because of its difficult to
comprehend architecture.
[Alexander Neundorf]
I've been examining the existingkernel configuration system, andconcluded that the best favor wecould do everybody involved withit is to take it out behind the barnand shoot it through thehead. [Eric Raymond]
... yet a bdSys Must
Keep on Evolving
6
MLOC
..., in fact a bdSys Changes
Relatively More than Source Code
71
(c) McIntosh et al.:
“An Empirical Study of
Build Maintenance Effort”
..., in fact a bdSys Changes
Relatively More than Source Code
71
ArgoUML Hibernate Eclipse GCC Git Linux Mozilla PLPlot PostgreSQL
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
# changes / source file
# changes / build file
(c) McIntosh et al.:
“An Empirical Study of
Build Maintenance Effort”
..., in fact a bdSys Changes
Relatively More than Source Code
71
ArgoUML Hibernate Eclipse GCC Git Linux Mozilla PLPlot PostgreSQL
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
# changes / source file
# changes / build file
(c) McIntosh et al.:
“An Empirical Study of
Build Maintenance Effort”
..., in fact a bdSys Changes
Relatively More than Source Code
71
ArgoUML Hibernate Eclipse GCC Git Linux Mozilla PLPlot PostgreSQL
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
# changes / source file
# changes / build file
(c) McIntosh et al.:
“An Empirical Study of
Build Maintenance Effort”
In Other Words ...
8
In Other Words ...
8
Software Projects need HELP
Maintaining their Build Systems
The “easy” way out: Build
System Migrations
9
The “easy” way out: Build
System Migrations
9
10
11
12
12
Build system migrations
are not that easy! But why?
Major Contributions
13
Common
Migration
Methodology
Major
Migration
Challenges
Major Challenge:
Requirements
Gathering
Study Setup
• Linux & KDE:
• Two established projects: 21 & 16 years old
• Large: 25 & 4.3 MLOC
• 1 failed & 1 successful migration each
• Data sources:
• git repos: 300 K & 100 K commits
• 4 mailing lists, over 1.5 million messages
14
Quantitative Study of
Developer Commits
• git repositories
• Native git tools + bash scripts
• Statistics on source & bdSys code:
• Evolution
• Churn
• Distinguish between
“normal” periods & migrations
15
Qualitative Analysis of
Developer Communication
• Personal emails to migration participants
• Mailing lists
• Mass-downloaded and analyzed
• Statistics on number of messages:
• By groups (roles)
• By period of time
• Distinguish between
“normal” periods & migrations
16
Major Contributions
17
Common
Migration
Methodology
Major
Migration
Challenges
Major Challenge:
Requirements
Gathering
18
Common
Migration
Methodology
The Spiral Model of
bdSys Migration
19
1. Planning
2. Risk Analysis
3. Development
4. Evaluation
Why? Migration is
Incremental!
• Linux kernel
• 33K+ source code files
• 2,300+ subdirectories
• 5 major subsystems
• KDE
• 11K+ source code files
• 22 packages
20
21
Common
Migration
Methodology
21
Common
Migration
Methodology
spiral model!
21
Common
Migration
Methodology
spiral model!
migration
happens
incrementally
22
Common
Migration
Methodology
Major
Migration
Challenges
spiral model!
migration
happens
incrementally
Communication Among
Key Participants
23
Communication Among
Key Participants
23
bdSys Manager
major decisions
Communication Among
Key Participants
23
bdSys Manager
major decisions
bdSys Champion
leading bdSys dev’t
Communication Among
Key Participants
23
bdSys Manager
major decisions
bdSys Champion
leading bdSys dev’t
bdSys Expert
bdSys contributor
Communication Among
Key Participants
23
bdSys Manager
major decisions
bdSys Champion
leading bdSys dev’t
bdSys Expert
bdSys contributor
Core Developer
source contributor
Major Challenges
• Communication issues
• Build experts form a sub-community often reluctant to
communicate effectively
• Performance vs. complexity
• Improving performance often means introducing hacks
• Effective evaluation
• When is migration "successfully finished"? How to measure?
• Requirements gathering (see remainder)
24
25
Common
Migration
Methodology
Major
Migration
Challenges
spiral model!
migration
happens
incrementally
25
Common
Migration
Methodology
Major
Migration
Challenges
requirements
spiral model!
migration
happens
incrementally
25
Common
Migration
Methodology
Major
Migration
Challenges
requirements
communication
spiral model!
migration
happens
incrementally
25
Common
Migration
Methodology
Major
Migration
Challenges
requirements
communication
performance
spiral model!
migration
happens
incrementally
25
Common
Migration
Methodology
Major
Migration
Challenges
requirements
communication
performance
evaluation
spiral model!
migration
happens
incrementally
26
Common
Migration
Methodology
Major
Migration
Challenges
Major Challenge:
Requirements
Gathering
requirements
communication
performance
evaluation
spiral model!
migration
happens
incrementally
Example bdSys Requirements
• Platform independence
• Two new major platforms: Mac OS X & Windows
• High-level configuration
• Single-pass methodology
• Away with multiple-steps build!
• Simple and platform-independent syntax
27
Requirements Gathering
Process
1. Stakeholder identification - who?
• Who needs to be involved?
2. Elicitation
• What requirements are there?
3. Analysis
• Get all requirement data. Resolve conflicts, refine and organize.
4. Specification & Maintenance
• Document & order resulting requirements.
28
How SCons failed
• Stakeholder identification
• Only 150 of 800 developers attended aKademy
• Elicitation
• Too little, too late: “trawled” for requirements
• Analysis
• Not enough attention paid to this phase!
• Specification & Maintenance
• Not done at all!
29
30
“the main SCons tree has intolerable problems,
and there are so many layers [...] that it barely
resembles what a normal SCons build system looks
like. Don't get me wrong; I use SCons at work and I
really like it, but if it isn't capable of handling KDE then
why are we trying to make it do so? Is it really
worth keeping a KDE specific build system (which is
what we are moving towards)?
[...] Perhaps it’s time to cut our losses and run.”
[Jaison Lee]
As a Result:
Rise and Fall of SCons
31
%max(LOC)
How succeeded
• Stakeholder identification
• Learned from SCons. Involved experts early.
• Elicitation
• Reuse some of SCons’ data.
Active participation by experts!
• Analysis
• Identified conflicting requirements early.
• Specification & Maintenance
• An initiative by the build champion.
32
33
Common
Migration
Methodology
Major
Migration
Challenges
Major Challenge:
Requirements
Gathering
spiral model!
requirements
communication
performance
evaluation
migration
happens
incrementally
33
Common
Migration
Methodology
Major
Migration
Challenges
Major Challenge:
Requirements
Gathering
spiral model!
requirements
communication
performance
evaluation
migration
happens
incrementally
involve all
stakeholders
33
Common
Migration
Methodology
Major
Migration
Challenges
Major Challenge:
Requirements
Gathering
spiral model!
requirements
communication
performance
evaluation
migration
happens
incrementally
involve all
stakeholders
identify &
resolve conflicts
33
Common
Migration
Methodology
Major
Migration
Challenges
Major Challenge:
Requirements
Gathering
spiral model!
requirements
communication
performance
evaluation
migration
happens
incrementally
involve all
stakeholders
identify &
resolve conflicts
efficient elicitation
34
34
Common
Migration
Methodology
spiral model!
migration
happens
incrementally
34
Major
Migration
Challenges
requirements
communication
performance
evaluation
Common
Migration
Methodology
spiral model!
migration
happens
incrementally
34
Major
Migration
Challenges
requirements
communication
performance
evaluation
Common
Migration
Methodology
spiral model!
migration
happens
incrementally
Major Challenge:
Requirements
Gathering
involve all
stakeholders
identify &
resolve conflicts
efficient elicitation

Weitere ähnliche Inhalte

Ähnlich wie Build system migrations are not easy: Lessons from empirical studies of KDE and Linux kernel

Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyComsysto Reply GmbH
 
Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyComsysto Reply GmbH
 
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsRising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsIBM UrbanCode Products
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsLalit Kale
 
Webinar: “ditch Oracle NOW”: Best Practices for Migrating to MongoDB
 Webinar: “ditch Oracle NOW”: Best Practices for Migrating to MongoDB Webinar: “ditch Oracle NOW”: Best Practices for Migrating to MongoDB
Webinar: “ditch Oracle NOW”: Best Practices for Migrating to MongoDBMongoDB
 
GECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon2017_ Lean_architecturemanagement_Andrei KavaleuGECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon2017_ Lean_architecturemanagement_Andrei KavaleuGECon_Org Team
 
Breaking the monolith to microservice with Docker and Kubernetes (k8s)
Breaking the monolith to microservice with Docker and Kubernetes (k8s)Breaking the monolith to microservice with Docker and Kubernetes (k8s)
Breaking the monolith to microservice with Docker and Kubernetes (k8s)Tamir Dresher
 
SCM Patterns for Agile Architectures
SCM Patterns for Agile ArchitecturesSCM Patterns for Agile Architectures
SCM Patterns for Agile ArchitecturesBrad Appleton
 
Dev trends 18_q1
Dev trends 18_q1Dev trends 18_q1
Dev trends 18_q1Pini Cohen
 
#NoVSM: Understanding and Mapping Your Knowledge Discovery Process
#NoVSM: Understanding and Mapping Your Knowledge Discovery Process#NoVSM: Understanding and Mapping Your Knowledge Discovery Process
#NoVSM: Understanding and Mapping Your Knowledge Discovery Processazheglov
 
DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?Marc Hornbeek
 
Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security John Willis
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDBFoundationDB
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice ContainerJamie (Taka) Wang
 
From XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsFrom XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsIBM UrbanCode Products
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMongoDB
 
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in productionNETFest
 
VMworld 2013: How UC San Francisco Delivered ‘Science as a Service’ with Priv...
VMworld 2013: How UC San Francisco Delivered ‘Science as a Service’ with Priv...VMworld 2013: How UC San Francisco Delivered ‘Science as a Service’ with Priv...
VMworld 2013: How UC San Francisco Delivered ‘Science as a Service’ with Priv...VMworld
 
MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...
MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...
MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...MongoDB
 

Ähnlich wie Build system migrations are not easy: Lessons from empirical studies of KDE and Linux kernel (20)

Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
 
Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
 
Rising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOpsRising Above the Noise: Continuous Integration, Delivery and DevOps
Rising Above the Noise: Continuous Integration, Delivery and DevOps
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentals
 
Webinar: “ditch Oracle NOW”: Best Practices for Migrating to MongoDB
 Webinar: “ditch Oracle NOW”: Best Practices for Migrating to MongoDB Webinar: “ditch Oracle NOW”: Best Practices for Migrating to MongoDB
Webinar: “ditch Oracle NOW”: Best Practices for Migrating to MongoDB
 
GECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon2017_ Lean_architecturemanagement_Andrei KavaleuGECon2017_ Lean_architecturemanagement_Andrei Kavaleu
GECon2017_ Lean_architecturemanagement_Andrei Kavaleu
 
Breaking the monolith to microservice with Docker and Kubernetes (k8s)
Breaking the monolith to microservice with Docker and Kubernetes (k8s)Breaking the monolith to microservice with Docker and Kubernetes (k8s)
Breaking the monolith to microservice with Docker and Kubernetes (k8s)
 
SCM Patterns for Agile Architectures
SCM Patterns for Agile ArchitecturesSCM Patterns for Agile Architectures
SCM Patterns for Agile Architectures
 
Dev trends 18_q1
Dev trends 18_q1Dev trends 18_q1
Dev trends 18_q1
 
#NoVSM: Understanding and Mapping Your Knowledge Discovery Process
#NoVSM: Understanding and Mapping Your Knowledge Discovery Process#NoVSM: Understanding and Mapping Your Knowledge Discovery Process
#NoVSM: Understanding and Mapping Your Knowledge Discovery Process
 
DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security Evolve 2017 - Vegas - Devops, Docker and Security
Evolve 2017 - Vegas - Devops, Docker and Security
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
 
From XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOpsFrom XP and Continuous Integration to DevOps
From XP and Continuous Integration to DevOps
 
Migrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDBMigrating from RDBMS to MongoDB
Migrating from RDBMS to MongoDB
 
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
.NET Fest 2019. Леонид Молотиевский. DotNet Core in production
 
VMworld 2013: How UC San Francisco Delivered ‘Science as a Service’ with Priv...
VMworld 2013: How UC San Francisco Delivered ‘Science as a Service’ with Priv...VMworld 2013: How UC San Francisco Delivered ‘Science as a Service’ with Priv...
VMworld 2013: How UC San Francisco Delivered ‘Science as a Service’ with Priv...
 
MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...
MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...
MongoDB World 2019: Using the MongoDB Enterprise Kubernetes Operator to Scale...
 

Kürzlich hochgeladen

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Kürzlich hochgeladen (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Build system migrations are not easy: Lessons from empirical studies of KDE and Linux kernel