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

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile EnvironmentVictorSzoltysek
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 

Recently uploaded (20)

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 

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