<commit_before><!doctype html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>Paris JHipster Meetup #3</title>
		<meta name="description" content="Paris JHipster Meetup #3">
		<meta name="author" content="<NAME>">
		<meta name="apple-mobile-web-app-capable" content="yes" />
		<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
		<link rel="stylesheet" href="css/reveal.css">
		<link rel="stylesheet" href="css/theme/white.css" id="theme">
		<!-- Code syntax highlighting -->
		<link rel="stylesheet" href="lib/css/zenburn.css">
		<!-- <link rel="stylesheet" href="styles/rainbow.css"> -->
		<!-- Printing and PDF exports -->
		<script>
			var link = document.createElement( 'link' );
			link.rel = 'stylesheet';
			link.type = 'text/css';
			link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
			document.getElementsByTagName( 'head' )[0].appendChild( link );
		</script>
		<!--[if lt IE 9]>
		<script src="lib/js/html5shiv.js"></script>
		<![endif]-->
	</head>
	<body>
		<div class="reveal">
			<!-- Any section element inside of this container is displayed as a slide -->
			<div class="slides">
				<!------------------------------------------------------------->
				<!-- page d'attente -->
				<section>
					<h1>Paris JHipster Meetup #3</h1>
					<img data-src="./images/logo-jhipster-drink-coffee.png" alt="">
				</section>

				<!------------------------------------------------------------->
				<!-- présentation -->
				<section>
					<br/><br/>
					<h2><NAME></h2>
					<p>Java EE Consultant</p>
					<p>Docker enthusiast</p>
					<br/>
					<p>
						<small>Contact:</small>
						<br/>
						<a href="https://www.linkedin.com/in/pascalgrimaud" target="_blank" title="linkedin">
							<img height="48px" data-src="./images/linkedin.png" alt="">
						</a>
						<a href="http://www.viadeo.com/fr/profile/pascal.grimaud" target="_blank" title="viadeo">
							<img height="48px" data-src="./images/viadeo.jpg" alt="">
						</a>
						<a href="https://twitter.com/pascalgrimaud" target="_blank" title="twitter">
							<img height="48px" data-src="./images/twitter.jpg" alt="">
						</a>
						<a href="https://github.com/pascalgrimaud/" target="_blank" title="github">
							<img height="48px" data-src="./images/github.png" alt="">
						</a>
					</p>
				</section>

				<!------------------------------------------------------------->
				<!-- titre du meetup -->
				<section>
					<h1>JHipster & Docker</h1>
					<img height="180px" data-src="./images/logo-jhipster2x.png" alt=""><img data-src="./images/docker-birthday.png" alt="">
				</section>

				<!------------------------------------------------------------->
				<!-- Sommaire -->
				<section>
					<h2>How Docker is used ?</h2>
					<img data-src="./images/docker.png" alt="Docker Hub">
					<ul>
						<li>JHipster installation with Docker</li>
						<li>Services generator</li>
						<li>JHipster Organization at Docker Hub</li>
						<li>Microservices</li>
					</ul>
				</section>

				<!------------------------------------------------------------->
				<section>
					<section>
						<h2>Docker Engine</h2>
						<img width="50%" data-src="./images/Engine.png" alt="Docker Engine">
					</section>
					<section>
						<h4>Installations</h2>
						<ul>
							<li>Local installation</li>
							<li>Vagrant box: <a href="https://github.com/jhipster/jhipster-devbox" target="_blank">devbox</a></li>
							<li>Docker installation</li>
						</ul>
					</section>
					<section>
						<h4>Docker installation<br/>Based on ubuntu:trusty</h4>
						<img width="15%" data-src="./images/ubuntu.png" alt="ubuntu">
						<ul>
							<li>Image:
								<a href="https://hub.docker.com/r/jhipster/jhipster/" target="_blank">jhipster/jhipster</a>
							</li>
							<li>
								<a href="https://github.com/jhipster/generator-jhipster/blob/master/Dockerfile" target="_blank">Dockerfile</a>
							</li>
							<ul>
								<small>
									<li>git</li>
									<li>java 8</li>
									<li>node 4 + npm</li>
									<li>yeoman, bower, gulp</li>
									<li>wget, curl, vim, etc.</li>
								</small>
							</ul>
						</ul>
					</section>
					<section>
						<h4>How to install ?</h4>
						<pre><code>docker pull jhipster/jhipster</code></pre>
					</section>
					<section data-markdown>
						<script type="text/template">
							## Use cases

							Use JHipster v2.27.2
							```
							docker run --rm -it -v $(pwd):/home/jhipster/app \
							  -v ~/.m2:/home/jhipster/.m2 jhipster/jhipster:v2.27.2 yo jhipster
							```

							Use JHipster v3.0.0
							```
							docker run --rm -it -v $(pwd):/home/jhipster/app \
							  -v ~/.m2:/home/jhipster/.m2 jhipster/jhipster:v3.0.0 yo jhipster
							```

							Use JHipster master
							```
							docker run --rm -it -v $(pwd):/home/jhipster/app \
							  -v ~/.m2:/home/jhipster/.m2 jhipster/jhipster:master yo jhipster
							```
						</script>
					</section>
					<section data-markdown>
						<script type="text/template">
							## Demo (1/3)

							Create folder
							```
							mkdir jhipster && cd jhipster
							```

							Start a JHipster container
							```
							docker run --name jhipster \
							  -v $(pwd):/home/jhipster/app -v ~/.m2:/home/jhipster/.m2 \
							  -d -t jhipster/jhipster
							```

							Go into container
							```
							docker exec -it jhipster bash
							```
						</script>
					</section>
					<section>
						<h2>Demo (1/3)</h2>
						TODO...
					</section>
					<section>
						<h2>Demo (1/3)</h2>
						Create a JHipster project with Cassandra as database
						<pre><code>yo jhipster</code></pre>
						<pre><code>{
  "generator-jhipster": {
    "jhipsterVersion": "3.0.0",
    "baseName": "jhipster",
    "packageName": "com.mycompany.myapp",
    "packageFolder": "com/mycompany/myapp",
    "serverPort": "8080",
    "authenticationType": "session",
    "hibernateCache": "no",
    "clusteredHttpSession": "no",
    "websocket": "no",
    "databaseType": "cassandra",
    "devDatabaseType": "cassandra",
    "prodDatabaseType": "cassandra",
    "searchEngine": "no",
    "buildTool": "maven",
    "enableSocialSignIn": false,
    "rememberMeKey": "<KEY>",
    "useSass": false,
    "applicationType": "monolith",
    "testFrameworks": [
      "gatling"
    ],
    "enableTranslation": true,
    "nativeLanguage": "en",
    "languages": [
      "en"
    ]
  }
}</code></pre>
					</section>

				</section>

				<!------------------------------------------------------------->
				<section>
					<section>
						<h2>Docker Compose</h2>
						<img width="50%" data-src="./images/Compose.png" alt="Docker Compose">
					</section>
					<section>
						<h4>After generating a JHipster project</h4>
						<ul>
							<li>In folder src/main/docker</li>
							<ul>
								<li>elasticsearch.yml</li>
								<li>cassandra-opscenter.yml</li>
								<li>cassandra.yml</li>
								<li>mongodb-cluster.yml</li>
								<li>mongodb.yml</li>
								<li>mysql.yml</li>
								<li>postgresql.yml</li>
								<li>sonar.yml</li>
							</ul>
						</ul>
					</section>
					<section data-markdown>
						<script type="text/template">
						mysql.yml
						```
						version: '2'
						services:
						    jhipster-mysql:
						        container_name: jhipster-mysql
						        image: mysql:5.7.11
						        # volumes:
						        #     - ~/volumes/jhipster/jhipster/mysql/:/var/lib/mysql/
						        environment:
						            - MYSQL_USER=root
						            - MYSQL_ALLOW_EMPTY_PASSWORD=yes
						            - MYSQL_DATABASE=jhipster
						        ports:
						            - 3306:3306
						        command: mysqld --lower_case_table_names=1
						```

						To start MySQL database:
						```
						docker-compose -f src/main/docker/mysql.yml up -d
						```
						</script>
					</section>
					<section data-markdown>
						<script type="text/template">
						## Demo (2/3)

						sonar.yml
						```
						version: '2'
						services:
						    jhipster-sonar:
						        container_name: jhipster-sonar
						        image: sonarqube:5.3
						        ports:
						            - 9000:9000
						            - 9092:9092
						```

						To start Sonar:
						```
						docker-compose -f src/main/docker/sonar.yml up
						```

						To launch a Sonar analyze:
						```
						mvn sonar:sonar
						```
						</script>
					</section>
					<section>
						<h4>Thanks to <a href="https://travis-ci.org/" target="_blank">Travis CI</a></h4>
						<img width="10%" height="10%" data-src="./images/travis-ci.png" alt="Travis CI">
						<br/>
						<p>
							<a href="https://travis-ci.org/jhipster/generator-jhipster" target="_blank">
								<small>https://travis-ci.org/jhipster/generator-jhipster</small>
							</a>
							<img data-src="./images/jhipster-travis.png" alt="JHipster Travis">
						</p>
					</section>
				</section>

				<!------------------------------------------------------------->
				<section>
					<section>
						<h2>Docker Hub</h2>
						<img width="50%" data-src="./images/docker_hub_banner_image_0.png" alt="Docker Hub">
					</section>
					<section>
						<h2>JHipster Organization</h2>
						<a href="https://hub.docker.com/r/jhipster/" target="_blank">https://hub.docker.com/r/jhipster/</a>
						<img data-src="./images/jhipster-organization.png" alt="Docker Hub">
					</section>
					<section>
						<h4>Coming soon...</h4>
						<table>
		                    <tbody>
			                    <tr>
			                        <td align="center"><img width="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>sample app</small></td>
									<td align="center"><img width="100px" height="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>gradle</small></td>
									<td align="center"><img width="100px" height="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>mongodb</small></td>
									<td align="center"><img width="100px" height="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>cassandra</small></td>
									<td align="center"><img width="100px" height="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>elasticsearch</small></td>
								</tr>
							</tbody>
						</table>
					</section>
					<section>
						<h4>Coming soon...</h4>
						<p>
							<img width="30%" data-src="./images/logo-title-final-swarm-2d-219x300.png" alt="Docker Hub">
							<img width="50%" data-src="./images/cluster.jpg-large" alt="jhipster cluster">
						</p>
					</section>
				</section>

				<!------------------------------------------------------------->
				<section>
					<section>
						<h2>Demo (3/3)</h2>
						<img data-src="./images/cassandra.png" alt="Cassandra">
					</section>
					<section>
						<h4>Goal</h4>
						TODO...
					</section>
					<section>
						Create a simple entity: meetup
						<pre><code data-trim>{
    "relationships": [],
    "fields": [
        {
            "fieldName": "meetup",
            "fieldType": "String"
        },
        {
            "fieldName": "description",
            "fieldType": "String"
        }<commit_msg>Change TODO<commit_after><!doctype html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>Paris JHipster Meetup #3</title>
		<meta name="description" content="Paris JHipster Meetup #3">
		<meta name="author" content="<NAME>">
		<meta name="apple-mobile-web-app-capable" content="yes" />
		<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
		<link rel="stylesheet" href="css/reveal.css">
		<link rel="stylesheet" href="css/theme/white.css" id="theme">
		<!-- Code syntax highlighting -->
		<link rel="stylesheet" href="lib/css/zenburn.css">
		<!-- <link rel="stylesheet" href="styles/rainbow.css"> -->
		<!-- Printing and PDF exports -->
		<script>
			var link = document.createElement( 'link' );
			link.rel = 'stylesheet';
			link.type = 'text/css';
			link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
			document.getElementsByTagName( 'head' )[0].appendChild( link );
		</script>
		<!--[if lt IE 9]>
		<script src="lib/js/html5shiv.js"></script>
		<![endif]-->
	</head>
	<body>
		<div class="reveal">
			<!-- Any section element inside of this container is displayed as a slide -->
			<div class="slides">
				<!------------------------------------------------------------->
				<!-- page d'attente -->
				<section>
					<h1>Paris JHipster Meetup #3</h1>
					<img data-src="./images/logo-jhipster-drink-coffee.png" alt="">
				</section>

				<!------------------------------------------------------------->
				<!-- présentation -->
				<section>
					<br/><br/>
					<h2><NAME></h2>
					<p>Java EE Consultant</p>
					<p>Docker enthusiast</p>
					<br/>
					<p>
						<small>Contact:</small>
						<br/>
						<a href="https://www.linkedin.com/in/pascalgrimaud" target="_blank" title="linkedin">
							<img height="48px" data-src="./images/linkedin.png" alt="">
						</a>
						<a href="http://www.viadeo.com/fr/profile/pascal.grimaud" target="_blank" title="viadeo">
							<img height="48px" data-src="./images/viadeo.jpg" alt="">
						</a>
						<a href="https://twitter.com/pascalgrimaud" target="_blank" title="twitter">
							<img height="48px" data-src="./images/twitter.jpg" alt="">
						</a>
						<a href="https://github.com/pascalgrimaud/" target="_blank" title="github">
							<img height="48px" data-src="./images/github.png" alt="">
						</a>
					</p>
				</section>

				<!------------------------------------------------------------->
				<!-- titre du meetup -->
				<section>
					<h1>JHipster & Docker</h1>
					<img height="180px" data-src="./images/logo-jhipster2x.png" alt=""><img data-src="./images/docker-birthday.png" alt="">
				</section>

				<!------------------------------------------------------------->
				<!-- Sommaire -->
				<section>
					<h2>How Docker is used ?</h2>
					<img data-src="./images/docker.png" alt="Docker Hub">
					<ul>
						<li>JHipster installation with Docker</li>
						<li>Services generator</li>
						<li>JHipster Organization at Docker Hub</li>
						<li>Microservices</li>
					</ul>
				</section>

				<!------------------------------------------------------------->
				<section>
					<section>
						<h2>Docker Engine</h2>
						<img width="50%" data-src="./images/Engine.png" alt="Docker Engine">
					</section>
					<section>
						<h4>Installations</h2>
						<ul>
							<li>Local installation</li>
							<li>Vagrant box: <a href="https://github.com/jhipster/jhipster-devbox" target="_blank">devbox</a></li>
							<li>Docker installation</li>
						</ul>
					</section>
					<section>
						<h4>Docker installation<br/>Based on ubuntu:trusty</h4>
						<img width="15%" data-src="./images/ubuntu.png" alt="ubuntu">
						<ul>
							<li>Image:
								<a href="https://hub.docker.com/r/jhipster/jhipster/" target="_blank">jhipster/jhipster</a>
							</li>
							<li>
								<a href="https://github.com/jhipster/generator-jhipster/blob/master/Dockerfile" target="_blank">Dockerfile</a>
							</li>
							<ul>
								<small>
									<li>git</li>
									<li>java 8</li>
									<li>node 4 + npm</li>
									<li>yeoman, bower, gulp</li>
									<li>wget, curl, vim, etc.</li>
								</small>
							</ul>
						</ul>
					</section>
					<section>
						<h4>How to install ?</h4>
						<pre><code>docker pull jhipster/jhipster</code></pre>
					</section>
					<section data-markdown>
						<script type="text/template">
							## Use cases

							Use JHipster v2.27.2
							```
							docker run --rm -it -v $(pwd):/home/jhipster/app \
							  -v ~/.m2:/home/jhipster/.m2 jhipster/jhipster:v2.27.2 yo jhipster
							```

							Use JHipster v3.0.0
							```
							docker run --rm -it -v $(pwd):/home/jhipster/app \
							  -v ~/.m2:/home/jhipster/.m2 jhipster/jhipster:v3.0.0 yo jhipster
							```

							Use JHipster master
							```
							docker run --rm -it -v $(pwd):/home/jhipster/app \
							  -v ~/.m2:/home/jhipster/.m2 jhipster/jhipster:master yo jhipster
							```
						</script>
					</section>
					<section data-markdown>
						<script type="text/template">
							## Demo (1/3)

							Create folder
							```
							mkdir jhipster && cd jhipster
							```

							Start a JHipster container
							```
							docker run --name jhipster \
							  -v $(pwd):/home/jhipster/app -v ~/.m2:/home/jhipster/.m2 \
							  -d -t jhipster/jhipster
							```

							Go into container
							```
							docker exec -it jhipster bash
							```
						</script>
					</section>
					<section>
						<h2>Demo (1/3)</h2>
						[TODO]
					</section>
					<section>
						<h2>Demo (1/3)</h2>
						Create a JHipster project with Cassandra as database
						<pre><code>yo jhipster</code></pre>
						<pre><code>{
  "generator-jhipster": {
    "jhipsterVersion": "3.0.0",
    "baseName": "jhipster",
    "packageName": "com.mycompany.myapp",
    "packageFolder": "com/mycompany/myapp",
    "serverPort": "8080",
    "authenticationType": "session",
    "hibernateCache": "no",
    "clusteredHttpSession": "no",
    "websocket": "no",
    "databaseType": "cassandra",
    "devDatabaseType": "cassandra",
    "prodDatabaseType": "cassandra",
    "searchEngine": "no",
    "buildTool": "maven",
    "enableSocialSignIn": false,
    "rememberMeKey": "<KEY>",
    "useSass": false,
    "applicationType": "monolith",
    "testFrameworks": [
      "gatling"
    ],
    "enableTranslation": true,
    "nativeLanguage": "en",
    "languages": [
      "en"
    ]
  }
}</code></pre>
					</section>

				</section>

				<!------------------------------------------------------------->
				<section>
					<section>
						<h2>Docker Compose</h2>
						<img width="50%" data-src="./images/Compose.png" alt="Docker Compose">
					</section>
					<section>
						<h4>After generating a JHipster project</h4>
						<ul>
							<li>In folder src/main/docker</li>
							<ul>
								<li>elasticsearch.yml</li>
								<li>cassandra-opscenter.yml</li>
								<li>cassandra.yml</li>
								<li>mongodb-cluster.yml</li>
								<li>mongodb.yml</li>
								<li>mysql.yml</li>
								<li>postgresql.yml</li>
								<li>sonar.yml</li>
							</ul>
						</ul>
					</section>
					<section data-markdown>
						<script type="text/template">
						mysql.yml
						```
						version: '2'
						services:
						    jhipster-mysql:
						        container_name: jhipster-mysql
						        image: mysql:5.7.11
						        # volumes:
						        #     - ~/volumes/jhipster/jhipster/mysql/:/var/lib/mysql/
						        environment:
						            - MYSQL_USER=root
						            - MYSQL_ALLOW_EMPTY_PASSWORD=yes
						            - MYSQL_DATABASE=jhipster
						        ports:
						            - 3306:3306
						        command: mysqld --lower_case_table_names=1
						```

						To start MySQL database:
						```
						docker-compose -f src/main/docker/mysql.yml up -d
						```
						</script>
					</section>
					<section data-markdown>
						<script type="text/template">
						## Demo (2/3)

						sonar.yml
						```
						version: '2'
						services:
						    jhipster-sonar:
						        container_name: jhipster-sonar
						        image: sonarqube:5.3
						        ports:
						            - 9000:9000
						            - 9092:9092
						```

						To start Sonar:
						```
						docker-compose -f src/main/docker/sonar.yml up
						```

						To launch a Sonar analyze:
						```
						mvn sonar:sonar
						```
						</script>
					</section>
					<section>
						<h4>Thanks to <a href="https://travis-ci.org/" target="_blank">Travis CI</a></h4>
						<img width="10%" height="10%" data-src="./images/travis-ci.png" alt="Travis CI">
						<br/>
						<p>
							<a href="https://travis-ci.org/jhipster/generator-jhipster" target="_blank">
								<small>https://travis-ci.org/jhipster/generator-jhipster</small>
							</a>
							<img data-src="./images/jhipster-travis.png" alt="JHipster Travis">
						</p>
					</section>
				</section>

				<!------------------------------------------------------------->
				<section>
					<section>
						<h2>Docker Hub</h2>
						<img width="50%" data-src="./images/docker_hub_banner_image_0.png" alt="Docker Hub">
					</section>
					<section>
						<h2>JHipster Organization</h2>
						<a href="https://hub.docker.com/r/jhipster/" target="_blank">https://hub.docker.com/r/jhipster/</a>
						<img data-src="./images/jhipster-organization.png" alt="Docker Hub">
					</section>
					<section>
						<h4>Coming soon...</h4>
						<table>
		                    <tbody>
			                    <tr>
			                        <td align="center"><img width="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>sample app</small></td>
									<td align="center"><img width="100px" height="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>gradle</small></td>
									<td align="center"><img width="100px" height="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>mongodb</small></td>
									<td align="center"><img width="100px" height="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>cassandra</small></td>
									<td align="center"><img width="100px" height="100px" data-src="./images/docker-hub.png" alt="?"><br/><small>elasticsearch</small></td>
								</tr>
							</tbody>
						</table>
					</section>
					<section>
						<h4>Coming soon...</h4>
						<p>
							<img width="30%" data-src="./images/logo-title-final-swarm-2d-219x300.png" alt="Docker Hub">
							<img width="50%" data-src="./images/cluster.jpg-large" alt="jhipster cluster">
						</p>
					</section>
				</section>

				<!------------------------------------------------------------->
				<section>
					<section>
						<h2>Demo (3/3)</h2>
						<img data-src="./images/cassandra.png" alt="Cassandra">
					</section>
					<section>
						<h4>Goal</h4>
						[TODO]
					</section>
					<section>
						Create a simple entity: meetup
						<pre><code data-trim>{
    "relationships": [],
    "fields": [
        {
            "fieldName": "meetup",
            "fieldType": "String"
        },
        {
            "fieldName": "description",
            "fieldType": "String"
        }
{'fraction_non_alphanumeric': 0.22214361513972408, 'fraction_numerical': 0.016448532012734347, 'mean_word_length': 1.8709063214013708, 'pattern_counts': {'":': 58, '<': 627, '<?xml version=': 0, '>': 627, 'https://': 22, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '788841', 'n_tokens_mistral': 10768, 'n_tokens_neox': 7608, 'n_words': 1321}