SlideShare a Scribd company logo
1 of 34
Download to read offline
Project Management and Automation
Using Maven and Grunt to accelerate development
Matthew Hanlon •SEAConference •April 7,2014
TEXAS ADVANCED COMPUTING CENTER
Powering Discoveries that Change the World
Introduction
Web and Mobile
Applications
Building tools and applications to make
scientists more productive.
7 Developers (and hiring!)
10+ projects
Liferay
JavaScript
Spring
Restlets
JSR
PHP
Java
Drupal
Portlets
SQL
JSON
XML
jQuery
MySQL Nodejs
PostgreSQL
NoSQL
CakePHP
MongoDB
Python
CodeIgniter
CouchDB
DjangoREST
SOAP
Web services
[ made with: ]https://www.jasondavies.com/wordcloud/
Without process
Boring
What's the big deal?
Too many results in published scientific
papers are not reproducible
The data is unavailable
The environment no longer exists
The code is broken!
Reproducibility in Computer Science
That's only a 20%
success rate!
[ source: ]http://reproducibility.cs.arizona.edu/
Why doesn't the code build?
Missingdependencies
Mysterious configuration parameters
Compile errors
And of course,there is no documentation
How can we fix that?
Automate the boring stuff
Make the rest worth it
Tools for automation
and process
Apache Maven
Grunt.js
Bower
Sass/Compass
Doxygen
Maven
Managing project build, reporting, and documentation.
POM.xml
The Project Object Model
Project
information
Name,version,URL,developers,contributors,licensing,
organization
Build settings Build process,dependencies,non-code resource handling,
reporting
Environment
settings
Source control,repositories,distribution,issue
management
Plugins
Basics: Compiler,Resources,JavaDocs,Eclipse,IntelliJIDEA
Advanced: Exec,Site
Community: Doxygen,Liferay,Jetty
<?xmlversion="1.0"encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.mrhanlon</groupId>
<artifactId>sea2014-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>${cglib.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
$mvninstall
[INFO]Scanningforprojects...
[INFO]
[INFO]Usingthebuilderorg.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder
[INFO]
[INFO]------------------------------------------------------------------------
[INFO]Buildingmodule11.0-SNAPSHOT
[INFO]------------------------------------------------------------------------
[INFO]
[INFO]---maven-clean-plugin:2.5:clean(default-clean)@module1---
[INFO]Deleting/Users/mrhanlon/workspace/github/mrhanlon/sea2014-demo/module1/target
[INFO]
[INFO]---maven-resources-plugin:2.6:resources(default-resources)@module1---
[INFO]Using'UTF-8'encodingtocopyfilteredresources.
[INFO]skipnonexistingresourceDirectory/Users/mrhanlon/workspace/github/mrhanlon/sea2014-demo/module1/
[INFO]
[INFO]---maven-compiler-plugin:2.0.2:compile(default-compile)@module1---
[INFO]Compiling1sourcefileto/Users/mrhanlon/workspace/github/mrhanlon/sea2014-demo/module1/target/cl
[INFO]
[INFO]---maven-resources-plugin:2.6:testResources(default-testResources)@module1---
[INFO]Using'UTF-8'encodingtocopyfilteredresources.
[INFO]skipnonexistingresourceDirectory/Users/mrhanlon/workspace/github/mrhanlon/sea2014-demo/module1/
[INFO]
[INFO]---maven-compiler-plugin:2.0.2:testCompile(default-testCompile)@module1---
[INFO]Compiling1sourcefileto/Users/mrhanlon/workspace/github/mrhanlon/sea2014-demo/module1/target/te
[INFO]
[INFO]---maven-surefire-plugin:2.12.4:test(default-test)@module1---
[INFO]Surefirereportdirectory:/Users/mrhanlon/workspace/github/mrhanlon/sea2014-demo/module1/target/su
-------------------------------------------------------
TESTS
-------------------------------------------------------
Runningcom.github.mrhanlon.AppTest
Testsrun:1,Failures:0,Errors:0,Skipped:0,Timeelapsed:0.035sec
Results:
Testsrun:1,Failures:0,Errors:0,Skipped:0
Grunt
The JavaScript Task Runner
(It's not just for JavaScript!)
Gruntfile.js
Declarative JSON/JavaScript configuration file
Executes tasks in Node.js runtime
Loads of community plugins:
jslint/jshint
file tasks
watch
compass
library/framework support
'usestrict';
module.exports=function(grunt){
//Projectconfiguration.
grunt.initConfig({
//Metadata.
pkg:grunt.file.readJSON('tiny-pubsub.jquery.json'),
banner:'/*!<%=pkg.title||pkg.name%>-v<%=pkg.version%>-'+
'<%=grunt.template.today("yyyy-mm-dd")%>n'+
'<%=pkg.homepage?"*"+pkg.homepage+"n":""%>'+
'*Copyright(c)<%=grunt.template.today("yyyy")%><%=pkg.author.name%>;'+
'Licensed<%=_.pluck(pkg.licenses,"type").join(",")%>*/n',
//Taskconfiguration.
clean:{
src:['dist']
},
concat:{
options:{
banner:'<%=banner%>',
stripBanners:true
},
dist:{
src:['src/<%=pkg.name%>.js'],
dest:'dist/ba-<%=pkg.name%>.js'
},
},
uglify:{
options:{
banner:'<%=banner%>'
},
dist:{
src:'<%=concat.dist.dest%>',
dest:'dist/ba-<%=pkg.name%>.min.js'
},
},
qunit:{
files:['test/**/*.html']
},
jshint:{
$grunt
Running"jshint:gruntfile"(jshint)task
>>1filelintfree.
Running"jshint:src"(jshint)task
>>1filelintfree.
Running"jshint:test"(jshint)task
>>1filelintfree.
Running"qunit:files"(qunit)task
Testingtest/tiny-pubsub.html....OK
>>4assertionspassed(23ms)
Running"clean:files"(clean)task
Cleaning"dist"...OK
Running"concat:dist"(concat)task
File"dist/ba-tiny-pubsub.js"created.
Running"uglify:dist"(uglify)task
File"dist/ba-tiny-pubsub.min.js"created.
Uncompressedsize:389bytes.
Compressedsize:119bytesgzipped(185bytesminified).
Done,withouterrors.
$_
BowerFront-end package management
package agnostic
runs over git
Declarative JSON configuration
{
"name":"vislab-reservation-portlet",
"version":"1.0.0",
"dependencies":{
"modernizr":"~2.6.2",
"jqueryui-timepicker-addon":"1.4.3",
"mustache":"~0.8.1",
"datejs":"*",
"fullcalendar":"~1.6.4"
}
}
Sass/Compass
"Expressive" CSS
@mixinbox-sizing($bs){
$bs:unquote($bs);
@includeexperimental(box-sizing,$bs,
-moz,-webkit,not-o,not-ms,not-khtml,official
);
}
*{
@includebox-sizing(border-box);
}
.alert{
border:1pxsolidblack;
}
.alert-error{
@extend.alert;
color:red;
border-color:red;
}
Doxygen
Generating documentation for annotated sources
Tons of language support
Extensions for other languages
(like JavaScript!)
Demo
So what's next?
Get up and running in minutes
$>gitclone<repourl>my-dev-env
$>cdmy-dev-env
$>gitsubmoduleinit
$>gitsubmoduleupdate
$>mvninstall
$>mvnliferay:deploy
The Second Law of Thermodynamics
The entropy of an isolated system never decreases,
because isolated systems always evolve toward
thermodynamic equilibrium a state with maximum
entropy.
Fin.
@mattorantimatt
mrhanlon@tacc.utexas.edu
TEXAS ADVANCED COMPUTING CENTER
Powering Discoveries that Change the World

More Related Content

Similar to Project Management and Automation: Using Maven and Grunt to accelerate development

DevOps Hiring
DevOps HiringDevOps Hiring
DevOps Hiringkshep
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
H2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneH2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneJo-fai Chow
 
Make Web, Not War - Building Interoperable Web Apps with PHP, PHP Quebec
Make Web, Not War  - Building Interoperable Web Apps with PHP, PHP QuebecMake Web, Not War  - Building Interoperable Web Apps with PHP, PHP Quebec
Make Web, Not War - Building Interoperable Web Apps with PHP, PHP QuebecMake Web Not War
 
Jose_Casorla_resume
Jose_Casorla_resumeJose_Casorla_resume
Jose_Casorla_resumeJoseCasorla1
 
Ajax Abuse Todcon2008
Ajax Abuse Todcon2008Ajax Abuse Todcon2008
Ajax Abuse Todcon2008Jesse Rodgers
 
How CSBP Turbocharged Its Enterprise Job Scheduling Capability
How CSBP Turbocharged Its Enterprise Job Scheduling CapabilityHow CSBP Turbocharged Its Enterprise Job Scheduling Capability
How CSBP Turbocharged Its Enterprise Job Scheduling CapabilityInSync Conference
 
Modern Application Development v1-0
Modern Application Development  v1-0Modern Application Development  v1-0
Modern Application Development v1-0Greg Hoelzer
 
Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8Robert Carr
 
Introduction to Web Frameworks
Introduction to Web FrameworksIntroduction to Web Frameworks
Introduction to Web FrameworksSarika Jadhav
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformApigee | Google Cloud
 
Tapan Nayan Banker Background and details
Tapan Nayan Banker Background and detailsTapan Nayan Banker Background and details
Tapan Nayan Banker Background and detailsTAPAN BANKER
 
.Net training in Bhubaneswar
.Net training in Bhubaneswar.Net training in Bhubaneswar
.Net training in Bhubaneswardotnet111
 

Similar to Project Management and Automation: Using Maven and Grunt to accelerate development (20)

MANJARI RASTOGI_CV_ex
MANJARI RASTOGI_CV_exMANJARI RASTOGI_CV_ex
MANJARI RASTOGI_CV_ex
 
DevOps Hiring
DevOps HiringDevOps Hiring
DevOps Hiring
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
H2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to EveryoneH2O Deep Water - Making Deep Learning Accessible to Everyone
H2O Deep Water - Making Deep Learning Accessible to Everyone
 
Make Web, Not War - Building Interoperable Web Apps with PHP, PHP Quebec
Make Web, Not War  - Building Interoperable Web Apps with PHP, PHP QuebecMake Web, Not War  - Building Interoperable Web Apps with PHP, PHP Quebec
Make Web, Not War - Building Interoperable Web Apps with PHP, PHP Quebec
 
Jose_Casorla_resume
Jose_Casorla_resumeJose_Casorla_resume
Jose_Casorla_resume
 
Chaitrali_Resume
Chaitrali_ResumeChaitrali_Resume
Chaitrali_Resume
 
Resume 2016-12-23 f
Resume 2016-12-23 fResume 2016-12-23 f
Resume 2016-12-23 f
 
Ajax Abuse Todcon2008
Ajax Abuse Todcon2008Ajax Abuse Todcon2008
Ajax Abuse Todcon2008
 
How CSBP Turbocharged Its Enterprise Job Scheduling Capability
How CSBP Turbocharged Its Enterprise Job Scheduling CapabilityHow CSBP Turbocharged Its Enterprise Job Scheduling Capability
How CSBP Turbocharged Its Enterprise Job Scheduling Capability
 
Modern Application Development v1-0
Modern Application Development  v1-0Modern Application Development  v1-0
Modern Application Development v1-0
 
Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8Why I've Not bothered With Drupal 8
Why I've Not bothered With Drupal 8
 
Tools and technics
Tools and technicsTools and technics
Tools and technics
 
SAIGANESH CHINTALA_JAVA
SAIGANESH CHINTALA_JAVASAIGANESH CHINTALA_JAVA
SAIGANESH CHINTALA_JAVA
 
Introduction to Web Frameworks
Introduction to Web FrameworksIntroduction to Web Frameworks
Introduction to Web Frameworks
 
Designing and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps PlatformDesigning and Implementing a Multiuser Apps Platform
Designing and Implementing a Multiuser Apps Platform
 
Tapan Nayan Banker Background and details
Tapan Nayan Banker Background and detailsTapan Nayan Banker Background and details
Tapan Nayan Banker Background and details
 
NetBeans 6.5
NetBeans 6.5NetBeans 6.5
NetBeans 6.5
 
Dean4j@Njug5
Dean4j@Njug5Dean4j@Njug5
Dean4j@Njug5
 
.Net training in Bhubaneswar
.Net training in Bhubaneswar.Net training in Bhubaneswar
.Net training in Bhubaneswar
 

Recently uploaded

Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...rajkumar669520
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationHelp Desk Migration
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Gáspár Nagy
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...Alluxio, Inc.
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityamy56318795
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfkalichargn70th171
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfVictor Lopez
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesNeo4j
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionWave PLM
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfsteffenkarlsson2
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersEmilyJiang23
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdfkalichargn70th171
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfDeskTrack
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)Max Lee
 

Recently uploaded (20)

Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 

Project Management and Automation: Using Maven and Grunt to accelerate development