7 | {{end}}
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | *Issue #, if available:*
2 |
3 | *Description of changes:*
4 |
5 |
6 | By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
7 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/children-1/children-1-1/children-1-1-1/children-1-1-1-1/_index.en.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "page 1-1-1-1"
3 | description = "This is a demo child page"
4 | +++
5 |
6 | This is a demo child page
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/layouts/partials/menu-footer.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Shortcodes
4 | pre: "3. "
5 | weight: 15
6 | ---
7 |
8 | Hugo uses Markdown for its simple content format. However, there are a lot of things that Markdown doesn’t support well. You could use pure HTML to expand possibilities.
9 |
10 | But this happens to be a bad idea. Everyone uses Markdown because it's pure and simple to read even non-rendered. You should avoid HTML to keep it as simple as possible.
11 |
12 | To avoid this limitations, Hugo created [shortcodes](https://gohugo.io/extras/shortcodes/). A shortcode is a simple snippet inside a page.
13 |
14 | **Hugo-theme-learn** provides multiple shortcodes on top of existing ones.
15 |
16 | {{%children style="h2" description="true" %}}
17 |
--------------------------------------------------------------------------------
/content/30_social-media-analytics/70_shutdown.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Shutting Down"
3 | chapter = false
4 | weight = 70
5 | +++
6 |
7 | After you have created these resources, you can remove them by following these steps.
8 |
9 | 1. Stop the Twitter stream reader (if you still have it running).
10 |
11 | * (While SSH'd into the server) CTRL-C or kill it if it’s in the background.
12 |
13 | 2. Delete the S3 bucket that the CloudFormation template created.
14 | 3. Delete the Athena tables database (`socialanalyticsblog`).
15 |
16 | * Drop table socialanalyticsblog.tweets.
17 | * Drop table socialanalyticsblog.tweet_entities.
18 | * Drop table socialanayticsblog.tweet_sentiments.
19 | * Drop database socialanalyticsblog.
20 |
21 | 4. Delete the CloudFormation stack (ensure that the S3 bucket is empty prior to deleting the stack).
22 |
--------------------------------------------------------------------------------
/content/50_personalize/210_conclusion.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Conclusion"
3 | chapter = false
4 | weight = 210
5 | +++
6 |
7 | Upon completion of this lab you will have performed the following:
8 |
9 | - Launched a Jupyter notebook from with the Amazon SageMaker service
10 | - Imported external files into the notebook environment
11 | - Seen how to enable Preview services within a notebook (assuming your account has been whitelisted for Preview access)
12 | - Used the `pandas` libraries to do some pre-processing of the source data
13 | - Built and deployed an ML model based upon the HRNN algorithm
14 | - Tested your model via just a few lines of code
15 | - Deployed your model into a live application
16 |
17 | You should now be able to embed this model from within your own application code, using any language that is supported by the AWS SDK. Happy recommending!
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Button
3 | description : "Nice buttons on your page."
4 | ---
5 |
6 | A button is a just a clickable button with optional icon.
7 |
8 | ```
9 | {{%/* button href="https://getgrav.org/" */%}}Get Grav{{%/* /button */%}}
10 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" */%}}Get Grav with icon{{%/* /button */%}}
11 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" */%}}Get Grav with icon right{{%/* /button */%}}
12 | ```
13 |
14 | {{% button href="https://getgrav.org/" %}}Get Grav{{% /button %}}
15 | {{% button href="https://getgrav.org/" icon="fas fa-download" %}}Get Grav with icon{{% /button %}}
16 | {{% button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" %}}Get Grav with icon right{{% /button %}}
17 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/theme.toml:
--------------------------------------------------------------------------------
1 | # theme.toml template for a Hugo theme
2 | # See https://github.com/spf13/hugoThemes#themetoml for an example
3 |
4 | name = "Learn"
5 | license = "MIT"
6 | licenselink = "https://github.com/matcornic/hugo-theme-learn/blob/master/LICENSE.md"
7 | description = "Documentation theme for Hugo, based on Grav Learn theme"
8 | homepage = "https://github.com/matcornic/hugo-theme-learn/"
9 | repo = "https://github.com/matcornic/hugo-theme-learn"
10 | tags = ["documentation", "grav", "learn", "doc", "search"]
11 | features = ["documentation", "menu", "nested sections", "search", "mermaid"]
12 | min_version = 0.25
13 |
14 | [author]
15 | name = "Mathieu Cornic"
16 | homepage = "https://matcornic.github.io/"
17 |
18 | [original]
19 | name = "Grav Learn"
20 | homepage = "https://learn.getgrav.org/"
21 | repo = "https://github.com/getgrav/grav-learn"
22 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/layouts/shortcodes/ghcontributors.html:
--------------------------------------------------------------------------------
1 |
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aws-ai-services-workshop",
3 | "version": "1.0.0",
4 | "homepage": "https://github.com/aws-samples/ai-services-workshop#readme",
5 | "bugs": {
6 | "url": "https://github.com/aws-samples/ai-services-workshop/issues"
7 | },
8 | "license": "ISC",
9 | "main": "index.js",
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/aws-samples/ai-services-workshop.git"
13 | },
14 | "scripts": {
15 | "test": "hugo server -w -v -DF --disableFastRender --enableGitInfo --bind=0.0.0.0",
16 | "start": "hugo server -w -v --enableGitInfo --bind=0.0.0.0",
17 | "build": "hugo -v",
18 | "deploy": "aws s3 sync public/ s3://ai-services-workshop-evangelists/ --delete"
19 | },
20 | "dependencies": {
21 | "bl": "^4.0.3",
22 | "discharge": "^0.7.1",
23 | "hugo-cli": "^0.7.0",
24 | "hugo-lunr": "0.0.4",
25 | "qs": "^6.5.2",
26 | "upgrade": "^1.1.0"
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Shortcodes
4 | pre: "3. "
5 | weight: 15
6 | ---
7 |
8 | Hugo utilise Markdown pour son format simple. Cependant, il y a beaucoup de chose que Markdown ne supporte pas bien. On pourrait utiliser du HTML pur pour améliorer les capacité du Markdown.
9 |
10 | Mais c'est probablement une mauvaise idée. Tout le monde utilise le Markdown parce que c'est pur et simple à lire même lorsqu'il est affiché en texte brut. Vous devez éviter le HTML autant que possible pour garder le contenu simple.
11 |
12 | Cependant, pour éviter les limitations, Hugo a créé les [shortcodes](https://gohugo.io/extras/shortcodes/). Un shortcode est un bout de code (*snippet*) dans une page.
13 |
14 | **Hugo-theme-learn** fournit de multiple shortcodes en plus de ceux existant.
15 |
16 | {{%children style="h2" description="true" %}}
17 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/tags.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-11-29T08:41:44+01:00
3 | title: Tags
4 | weight: 40
5 | tags: ["documentation", "tutorial"]
6 | ---
7 |
8 | *Learn theme* support one default taxonomy of gohugo: the *tag* feature.
9 |
10 | ## Configuration
11 |
12 | Just add tags to any page:
13 |
14 | ```markdown
15 | ---
16 | date: 2018-11-29T08:41:44+01:00
17 | title: Theme tutorial
18 | weight: 15
19 | tags: ["tutorial", "theme"]
20 | ---
21 | ```
22 |
23 | ## Behavior
24 |
25 |
26 | The tags are displayed at the top of the page, in their insertion order.
27 |
28 | Each tag is a link to a *Taxonomy* page displaying all the articles with the given tag.
29 |
30 | ## List all the tags
31 |
32 | In the `config.toml` file you can add a shortcut to display all the tags
33 |
34 | ```toml
35 | [[menu.shortcuts]]
36 | name = " Tags"
37 | url = "/tags"
38 | weight = 30
39 | ```
--------------------------------------------------------------------------------
/layouts/partials/custom-header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{ $assetBusting := not .Site.Params.disableAssetsBusting }}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/button.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Button (Bouton)
3 | description : "De beaux boutons sur votre page."
4 | ---
5 |
6 | Le shortcode *button* est simplement un bouton cliquable avec une icône optionnelle.
7 |
8 | ```
9 | {{%/* button href="https://getgrav.org/" */%}}Téléchargez Grav{{%/* /button */%}}
10 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" */%}}Téléchargez Grav avec icône{{%/* /button */%}}
11 | {{%/* button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" */%}}Téléchargez Grav avec icône à droite{{%/* /button */%}}
12 | ```
13 |
14 | {{% button href="https://getgrav.org/" %}}Téléchargez Grav{{% /button %}}
15 | {{% button href="https://getgrav.org/" icon="fas fa-download" %}}Téléchargez Grav avec icône{{% /button %}}
16 | {{% button href="https://getgrav.org/" icon="fas fa-download" icon-position="right" %}}Téléchargez Grav avec icône à droite{{% /button %}}
17 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of
4 | this software and associated documentation files (the "Software"), to deal in
5 | the Software without restriction, including without limitation the rights to
6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7 | the Software, and to permit persons to whom the Software is furnished to do so.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
10 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
11 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
12 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
13 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
14 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
15 |
--------------------------------------------------------------------------------
/content/50_personalize/60_personalranking.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Personal Ranking"
3 | chapter = false
4 | weight = 60
5 | +++
6 |
7 | ## Create Personal Ranking Solution
8 |
9 | 1. Let's do exactly the same thing again, but this time we'll create a ranking solution. From the **Solutions and Recipes** screen that you are on, click **Create solution**, give it a name like *rankings-solution*, ensure it's a **Manual** recipe selection but this time select the **aws-personalized-ranking** recipe. Click **Next** and **Finished** as before
10 |
11 | 
12 |
13 | 2. You now have three solutions being built off of the same dataset, and all three will slot into the application later. Please now go back to the notebook and continue to build your recommendation campaign and do some quick testing - if the notebook solution still hasn't completed then you may continue with the first part of the next section, **Finalise Django Framework Configuration**
--------------------------------------------------------------------------------
/layouts/shortcodes/ghcontributors.html:
--------------------------------------------------------------------------------
1 |
22 |
--------------------------------------------------------------------------------
/content/30_social-media-analytics/20_architecture.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Architecture"
3 | chapter = false
4 | weight = 20
5 | +++
6 |
7 |
8 | After we deploy the CloudFormation template we will have the following architecture:
9 |
10 | * Amazon EC2 instance that listens to the Twitter streaming API and submits results to the Amazon Kinesis Data Firehose API
11 | * The Kinesis Data Firehose API will stream the JSON records to Amazon S3 buckets
12 | * The uploads of JSON records into the "/raw" location of the S3 bucket will trigger an AWS Lambda Function that takes the record and sends it to Amazon Translate and Amazon Comprehend.
13 | * That same Lambda function will take the modified and enriched records and put them in another Kinesis Firehose that sends those records to an S3 bucket.
14 | * We will query the JSON records with Amazon Athena
15 | * We will visualize the output and results of this pipeline with Amazon Quicksight.
16 |
17 | 
18 |
19 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/layouts/partials/search.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{ $assetBusting := not .Site.Params.disableAssetsBusting }}
7 |
8 |
9 |
16 |
17 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/tags.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2018-11-29T08:41:44+01:00
3 | title: Tags
4 | weight: 40
5 | tags: ["documentation", "tutorial"]
6 | ---
7 |
8 |
9 | Le *thème Learn* supporte une des taxonomy par défaut de GoHugo : les tags.
10 |
11 | ## Configuration
12 |
13 | Il suffit d'ajouter un tableau de tags sur la page :
14 |
15 | ```markdown
16 | ---
17 | date: 2018-11-29T08:41:44+01:00
18 | title: Tutoriel pour le thème
19 | weight: 15
20 | tags: ["tutoriel", "theme"]
21 | ---
22 | ```
23 |
24 | ## Comportement
25 |
26 | Les tags sont affichés en haut de la page, dans l'ordre dans lequel ils ont été saisis.
27 |
28 | Chaque tag est un lien vers une page *Taxonomy*, qui affiche tous les article avec ce tag.
29 |
30 |
31 | ## Liste des tags
32 |
33 | Il est possible de rajouter un raccourci dans le fichier `config.toml` afin d'afficher une page listant tous les tags
34 |
35 | ```toml
36 | [[menu.shortcuts]]
37 | name = " Tags"
38 | url = "/tags"
39 | weight = 30
40 | ```
--------------------------------------------------------------------------------
/layouts/partials/menu-footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/content/credits.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Credits
3 | disableToc: true
4 | ---
5 |
6 | ### Social Media Dashboard
7 | Thanks to Ben Snively and Viral Desai
8 |
9 | ### AI Powered Speech Analytics for Amazon Connect
10 | Thanks to Yasser El-Haggan
11 |
12 | ### Personalize Workshop
13 | Thank you to [Andrew Kane](https://www.linkedin.com/in/andrewjkane/) for his original work on the workshop and for assisting as a workshop TA onsite.
14 |
15 | ## Tooling
16 |
17 | * [Hugo Theme Learn](https://github.com/matcornic/hugo-theme-learn) - Theme for this workshop
18 | * [Hugo](https://gohugo.io/) - Static site generator for this workshop
19 |
20 | ## Contributors
21 |
22 | {{% ghcontributors "https://api.github.com/repos/aws-samples/ai-services-workshop/contributors?per_page=100" %}}
23 |
24 | Thanks to them for making Open Source Software a better place!
25 |
26 | A special thanks to [@gabehollombe](https://github.com/gabehollombe), [@brentley](https://github.com/brentley/), and [@nathanpeck](https://github.com/nathanpeck) for their work on this theme.
27 |
28 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Notice
3 | description : "Disclaimers to help you structure your page"
4 | ---
5 |
6 | The notice shortcode shows 4 types of disclaimers to help you structure your page.
7 |
8 | ### Note
9 |
10 | ```
11 | {{%/* notice note */%}}
12 | A notice disclaimer
13 | {{%/* /notice */%}}
14 | ```
15 |
16 | renders as
17 |
18 | {{% notice note %}}
19 | A notice disclaimer
20 | {{% /notice %}}
21 |
22 | ### Info
23 |
24 | ```
25 | {{%/* notice info */%}}
26 | An information disclaimer
27 | {{%/* /notice */%}}
28 | ```
29 |
30 | renders as
31 |
32 | {{% notice info %}}
33 | An information disclaimer
34 | {{% /notice %}}
35 |
36 | ### Tip
37 |
38 | ```
39 | {{%/* notice tip */%}}
40 | A tip disclaimer
41 | {{%/* /notice */%}}
42 | ```
43 |
44 | renders as
45 |
46 | {{% notice tip %}}
47 | A tip disclaimer
48 | {{% /notice %}}
49 |
50 | ### Warning
51 |
52 | ```
53 | {{%/* notice warning */%}}
54 | An warning disclaimer
55 | {{%/* /notice */%}}
56 | ```
57 |
58 | renders as
59 |
60 | {{% notice warning %}}
61 | A warning disclaimer
62 | {{% /notice %}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/static/css/auto-complete.css:
--------------------------------------------------------------------------------
1 | .autocomplete-suggestions {
2 | text-align: left;
3 | cursor: default;
4 | border: 1px solid #ccc;
5 | border-top: 0;
6 | background: #fff;
7 | box-shadow: -1px 1px 3px rgba(0,0,0,.1);
8 |
9 | /* core styles should not be changed */
10 | position: absolute;
11 | display: none;
12 | z-index: 9999;
13 | max-height: 254px;
14 | overflow: hidden;
15 | overflow-y: auto;
16 | box-sizing: border-box;
17 |
18 | }
19 | .autocomplete-suggestion {
20 | position: relative;
21 | cursor: pointer;
22 | padding: 7px;
23 | line-height: 23px;
24 | white-space: nowrap;
25 | overflow: hidden;
26 | text-overflow: ellipsis;
27 | color: #333;
28 | }
29 |
30 | .autocomplete-suggestion b {
31 | font-weight: normal;
32 | color: #1f8dd6;
33 | }
34 |
35 | .autocomplete-suggestion.selected {
36 | background: #333;
37 | color: #fff;
38 | }
39 |
40 | .autocomplete-suggestion:hover {
41 | background: #444;
42 | color: #fff;
43 | }
44 |
45 | .autocomplete-suggestion > .context {
46 | font-size: 12px;
47 | }
48 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 MATHIEU CORNIC
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/content/50_personalize/50_itemtoitemrecs.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Item-to-Item Recommendations"
3 | chapter = false
4 | weight = 50
5 | +++
6 |
7 | ## Create Item-to-Item Similarities Solution
8 |
9 | 1. Using the same methods as before, go to the Services drop-down in the console and navigate to the **Amazon Personalize** service in another tab. You will see the dataset group that you created earlier from the notebook.
10 |
11 | 
12 |
13 | 2. Click on the name of the your dataset group, then on the left-hand side, which will show you the solution that you're currently creating via your notebook. Then, select **Solutions and recipes**, then click on the **Create solution** button.
14 |
15 | 
16 |
17 | 3. Enter a suitable name for this solution, such as *similar-items-solutions*, select **Manual** recipe selection, then choose the **aws-sims** recipe and click **Next** - we don't need to change anything in the advanced configuration section
18 |
19 | 
20 |
21 | 4. In the following screen just hit the **Finish** button and a new solution version will start to be created.
--------------------------------------------------------------------------------
/content/40_connect-transcribe/30_cloudformation.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Provision remaining resources with CloudFormation"
3 | chapter = false
4 | weight = 30
5 | +++
6 |
7 | With our Amazon Connect instance configured we're ready to launch the remaining resources.
8 |
9 |
10 |
11 | Click the launch stack button above and fill out the parameters with the values we saved from the previous step.
12 |
13 | 
14 |
15 | We'll click through the next few screens and provision our S3 Bucket, KVS Streams, Lambda Functions, and other resources for this workshop. It will take about 20 minutes to provision all of these resources so this is a good time to stretch and check some emails.
16 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/notice.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Notice
3 | description : "Message pour vous aider à structurer votre contenu"
4 | ---
5 |
6 | Le shortcode *Notice* permet d'afficher 4 types de message pour vous aider à structurer votre contenu.
7 |
8 | ### Note
9 |
10 | ```
11 | {{%/* notice note */%}}
12 | Une notice de type *note*
13 | {{%/* /notice */%}}
14 | ```
15 |
16 | s'affiche comme
17 |
18 | {{% notice note %}}
19 | Une notice de type *note*
20 | {{% /notice %}}
21 |
22 | ### Info
23 |
24 | ```
25 | {{%/* notice info */%}}
26 | Une notice de type *info*
27 | {{%/* /notice */%}}
28 | ```
29 |
30 | s'affiche comme
31 |
32 | {{% notice info %}}
33 | Une notice de type *info*
34 | {{% /notice %}}
35 |
36 | ### Tip
37 |
38 | ```
39 | {{%/* notice tip */%}}
40 | Une notice de type *tip*
41 | {{%/* /notice */%}}
42 | ```
43 |
44 | s'affiche comme
45 |
46 | {{% notice tip %}}
47 | Une notice de type *tip*
48 | {{% /notice %}}
49 |
50 | ### Warning
51 |
52 | ```
53 | {{%/* notice warning */%}}
54 | Une notice de type *warning*
55 | {{%/* /notice */%}}
56 | ```
57 |
58 | s'affiche comme
59 |
60 | {{% notice warning %}}
61 | Une notice de type *warning*
62 | {{% /notice %}}
--------------------------------------------------------------------------------
/content/10_prereqs/1_account.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Create an AWS account"
3 | chapter = false
4 | weight = 1
5 | +++
6 |
7 | {{% notice warning %}}
8 | Your account must have the ability to create new IAM roles and scope other IAM permissions.
9 | {{% /notice %}}
10 |
11 | {{% notice tip %}}
12 | If you already have an AWS account, and have IAM Administrator access, you can skip this page.
13 | {{% /notice %}}
14 |
15 | 1. **If you don't already have an AWS account with Administrator access**: [create
16 | one now](https://aws.amazon.com/getting-started/)
17 |
18 | 1. Once you have an AWS account, ensure you are following the remaining workshop steps
19 | as an **IAM user** with administrator access to the AWS account:
20 | [Create a new IAM user to use for the workshop](https://console.aws.amazon.com/iam/home?region=us-east-1#/users$new)
21 |
22 | 1. Enter the user details:
23 | 
24 |
25 | 1. Attach the `AdministratorAccess` IAM Policy:
26 | 
27 |
28 | 1. Click to create the new user:
29 | 
30 |
31 | 1. Take note of the login URL and save:
32 | 
33 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/layouts/shortcodes/attachments.html:
--------------------------------------------------------------------------------
1 |
2 |
6 | {{if eq .Page.File.BaseFileName "index"}}
7 | {{$.Scratch.Add "filesName" "files"}}
8 | {{else}}
9 | {{$.Scratch.Add "filesName" (printf "%s.files" .Page.File.BaseFileName)}}
10 | {{end}}
11 |
33 | {{.Inner}}
34 |
35 |
36 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Grav
4 | Copyright (c) 2016 MATHIEU CORNIC
5 | Copyright (c) 2017 Valere JEANTET
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy of
8 | this software and associated documentation files (the "Software"), to deal in
9 | the Software without restriction, including without limitation the rights to
10 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11 | the Software, and to permit persons to whom the Software is furnished to do so,
12 | subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all
15 | copies or substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
19 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
20 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
21 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/layouts/partials/menu-footer.html:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/static/css/tags.css:
--------------------------------------------------------------------------------
1 | /* Tags */
2 |
3 | #head-tags{
4 | margin-left:1em;
5 | margin-top:1em;
6 | }
7 |
8 | #body .tags a.tag-link {
9 | display: inline-block;
10 | line-height: 2em;
11 | font-size: 0.8em;
12 | position: relative;
13 | margin: 0 16px 8px 0;
14 | padding: 0 10px 0 12px;
15 | background: #8451a1;
16 |
17 | -webkit-border-bottom-right-radius: 3px;
18 | border-bottom-right-radius: 3px;
19 | -webkit-border-top-right-radius: 3px;
20 | border-top-right-radius: 3px;
21 |
22 | -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2);
23 | box-shadow: 0 1px 2px rgba(0,0,0,0.2);
24 | color: #fff;
25 | }
26 |
27 | #body .tags a.tag-link:before {
28 | content: "";
29 | position: absolute;
30 | top:0;
31 | left: -1em;
32 | width: 0;
33 | height: 0;
34 | border-color: transparent #8451a1 transparent transparent;
35 | border-style: solid;
36 | border-width: 1em 1em 1em 0;
37 | }
38 |
39 | #body .tags a.tag-link:after {
40 | content: "";
41 | position: absolute;
42 | top: 10px;
43 | left: 1px;
44 | width: 5px;
45 | height: 5px;
46 | -webkit-border-radius: 50%;
47 | border-radius: 100%;
48 | background: #fff;
49 | }
50 |
--------------------------------------------------------------------------------
/config.toml:
--------------------------------------------------------------------------------
1 | baseURL = "https://ai-services.go-aws.com/"
2 | languageCode = "en-us"
3 | defaultContentLanguage = "en"
4 | title = "AWS AI Services Workshop"
5 | theme = "hugo-theme-learn"
6 | uglyurls = "true"
7 | googleAnalytics = "UA-138538322-1"
8 | sectionPagesMenu = "main"
9 | pygmentsCodeFences = true
10 |
11 | [params]
12 | themeVariant = "mine"
13 | showVisitedLinks = false
14 | author = "Randall Hunt"
15 | description = "AWS AI Services Workshop"
16 | disableSearch = false
17 | disableAssetsBusting = false
18 | disableLanguageSwitchingButton = true
19 | disableShortcutsTitle = true
20 |
21 | [[menu.shortcuts]]
22 | name = " Github repo"
23 | identifier = "ds"
24 | url = "https://github.com/aws-samples/ai-services-workshop"
25 | weight = 10
26 |
27 | [[menu.shortcuts]]
28 | name = " @jrhunt"
29 | identifier = "jrhunt"
30 | url = "https://twitter.com/jrhunt"
31 | weight = 1
32 |
33 | [[menu.shortcuts]]
34 | name = " @TheNickWalsh"
35 | identifier = "thenickwalsh"
36 | url = "https://twitter.com/thenickwalsh"
37 | weight = 2
38 |
39 | [[menu.shortcuts]]
40 | name = " Credits"
41 | url = "/credits.html"
42 | weight = 30
43 |
44 | [outputs]
45 | home = [ "HTML", "AMP", "RSS", "JSON"]
46 | page = [ "HTML", "AMP"]
47 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Archetypes
3 | weight: 10
4 | ---
5 |
6 | Using the command: `hugo new [relative new content path]`, you can start a content file with the date and title automatically set. While this is a welcome feature, active writers need more : [archetypes](https://gohugo.io/content/archetypes/).
7 |
8 | It is pre-configured skeleton pages with default front matter. Please refer to the documentation for types of page to understand the differences.
9 |
10 | ## Chapter {#archetypes-chapter}
11 |
12 | To create a Chapter page, run the following commands
13 |
14 | ```
15 | hugo new --kind chapter /_index.md
16 | ```
17 |
18 | It will create a page with predefined Front-Matter:
19 |
20 | ```markdown
21 | +++
22 | title = "{{ replace .Name "-" " " | title }}"
23 | date = {{ .Date }}
24 | weight = 5
25 | chapter = true
26 | pre = "X. "
27 | +++
28 |
29 | ### Chapter X
30 |
31 | # Some Chapter title
32 |
33 | Lorem Ipsum.
34 | ```
35 |
36 | ## Default
37 |
38 | To create a default page, run either one of the following commands
39 |
40 | ```
41 | # Either
42 | hugo new //_index.md
43 | # Or
44 | hugo new /.md
45 | ```
46 |
47 | It will create a page with predefined Front-Matter:
48 |
49 | ```markdown
50 | +++
51 | title = "{{ replace .Name "-" " " | title }}"
52 | date = {{ .Date }}
53 | weight = 5
54 | +++
55 |
56 | Lorem Ipsum.
57 | ```
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/icons.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Icons and logos
3 | weight: 27
4 | ---
5 |
6 | The Learn theme for Hugo loads the [**Font Awesome**](https://fontawesome.com) library, allowing you to easily display any icon or logo available in the Font Awesome free collection.
7 |
8 | ## Finding an icon
9 |
10 | Browse through the available icons in the [Font Awesome Gallery](https://fontawesome.com/icons?d=gallery&m=free). Notice that the **free** filter is enabled, as only the free icons are available by default.
11 |
12 | Once on the Font Awesome page for a specific icon, for example the page for the [heart](https://fontawesome.com/icons/heart?style=solid), copy the HTML reference and paste into the markdown content.
13 |
14 | The HTML to include the heart icon is:
15 |
16 | ```
17 |
18 | ```
19 |
20 | ## Including in markdown
21 |
22 | Paste the `` HTML into markup and Font Awesome will load the relevant icon.
23 |
24 | ```
25 | Built with from Grav and Hugo
26 | ```
27 |
28 | Which appears as
29 |
30 | Built with from Grav and Hugo
31 |
32 | ## Customising icons
33 |
34 | Font Awesome provides many ways to modify the icon
35 |
36 | * Change colour (by default the icon will inherit the parent colour)
37 | * Increase or decrease size
38 | * Rotate
39 | * Combine with other icons
40 |
41 | Check the full documentation on [web fonts with CSS](https://fontawesome.com/how-to-use/web-fonts-with-css) for more.
42 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/layouts/index.html:
--------------------------------------------------------------------------------
1 | {{ partial "header.html" . }}
2 |
3 | navigation
4 |
5 |
6 | {{if .Site.Home.Content }}
7 | {{.Site.Home.Content}}
8 | {{else}}
9 | {{if eq .Site.Language.Lang "fr"}}
10 |
Personaliser la page d'accueil
11 |
12 | Le site fonctionne. Ne pas oublier de personaliser cette page avec votre propre contenu. 3 manières de faire :
13 |
14 |
15 |
1. Créer un fichier _index.md dans le dossier content et le remplir de Markdown
16 |
2. Créer un fichier index.html dans le dossier static et le remplir de code HTML
17 |
3. Configurer le serveur http pour rediriger automatiquement la homepage vers la page de votre choix dans le site
18 |
19 | {{else}}
20 |
Customize your own home page
21 |
22 | The site is working. Don't forget to customize this homepage with your own. You typically have 3 choices :
23 |
24 |
25 |
1. Create an _index.md document in content folder and fill it with Markdown content
26 |
2. Create an index.html file in the static folder and fill the file with HTML content
27 |
3. Configure your server to automatically redirect home page to one your documentation page
28 |
29 | {{end}}
30 | {{ end }}
31 | {{ partial "footer.html" . }}
32 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/archetypes.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Archétypes
3 | weight: 10
4 | ---
5 |
6 | En utilisant la commande: `hugo new [chemin vers nouveau contenu]`, vous pouvez créer un nouveau fichier avec la date et le title automatiquement initialisé. Même si c'est une fonctionnalité intéressante, elle reste limitée pour les auteurs actifs qui ont besoin de mieux : les [archetypes](https://gohugo.io/content/archetypes/).
7 |
8 | Les archétypes sont des squelettes de pages préconfigurées avec un Front Matter par défaut. Merci de vous référer à la documentation pour connaitre les différents types de page.
9 |
10 | ## Chapitre {#archetypes-chapter}
11 |
12 | Pour créer un chapitre, lancez les commandes suivantes
13 |
14 | ```
15 | hugo new --kind chapter /_index.md
16 | ```
17 |
18 | Cela crééra une page avec le Front Matter suivant:
19 |
20 | ```markdown
21 | +++
22 | title = "{{ replace .Name "-" " " | title }}"
23 | date = {{ .Date }}
24 | weight = 5
25 | chapter = true
26 | pre = "X. "
27 | +++
28 |
29 | ### Chapter X
30 |
31 | # Some Chapter title
32 |
33 | Lorem Ipsum.
34 | ```
35 |
36 | ## Défaut
37 |
38 | Pour créer une page classique, lancer l'une des deux commandes suivantes
39 |
40 | ```
41 | # Soit
42 | hugo new //_index.md
43 | # Ou
44 | hugo new /.md
45 | ```
46 |
47 | Cela crééra une page avec le Front Matter suivant:
48 |
49 | ```markdown
50 | +++
51 | title = "{{ replace .Name "-" " " | title }}"
52 | date = {{ .Date }}
53 | weight = 5
54 | +++
55 |
56 | Lorem Ipsum.
57 | ```
--------------------------------------------------------------------------------
/content/30_social-media-analytics/80_conclusion.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Conclusion"
3 | chapter = false
4 | weight = 80
5 | +++
6 |
7 | The entire processing, analytics, and machine learning pipeline starting with Amazon Kinesis, analyzing the data using Amazon Translate to translate tweets between languages, using Amazon Comprehend to perform sentiment analysis and QuickSight to create the dashboards was built without spinning up any servers.
8 |
9 | We added advanced machine learning (ML) services to our flow, through some simple calls within AWS Lambda, and we built a multi-lingual analytics dashboard with Amazon QuickSight. We have also saved all the data to Amazon S3 so, if we want, we can do other analytics on the data using Amazon EMR, Amazon SageMaker, Amazon Elasticsearch Service, or other AWS services.
10 |
11 | Instead of running the Amazon EC2 instance that reads the Twitter firehose, you could leverage AWS Fargate to deploy that code as a container. AWS Fargate is a technology for Amazon Elastic Container Service (ECS) and Amazon Elastic Container Service for Kubernetes (EKS) that allows you to run containers without having to manage servers or clusters. With AWS Fargate, you no longer have to provision, configure, and scale clusters of virtual machines to run containers. This removes the need to choose server types, decide when to scale your clusters, or optimize cluster packing. AWS Fargate removes the need for you to interact with or think about servers or clusters. Using AWS Fargate you can focus on designing and building your applications instead of managing the infrastructure that runs them.
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/credits.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Crédits
3 | disableToc: true
4 | ---
5 |
6 | ## Contributeurs
7 |
8 | Merci à eux de rendre le monde Open Source meilleur !
9 |
10 | {{% ghcontributors "https://api.github.com/repos/matcornic/hugo-theme-learn/contributors?per_page=100" %}}
11 |
12 | Et un grand merci à [@vjeantet](https://github.com/vjeantet) pour son travail sur [docdock](https://github.com/vjeantet/hugo-theme-docdock), un fork de _hugo-theme-learn_. La v2.0.0 du thème est en grande partie inspirée de son travail.
13 |
14 | ## Packages et librairies
15 | * [mermaid](https://knsv.github.io/mermaid) - géneration de diagrames et graphiques à partir de texte similaire à Markdown
16 | * [font awesome](http://fontawesome.io/) - Le framework de polices iconiques
17 | * [jQuery](https://jquery.com) - La plus connue des librairies Javascript
18 | * [lunr](https://lunrjs.com) - Lunr fournit des fonctions de recherche sans service externe
19 | * [horsey](https://bevacqua.github.io/horsey/) - Autocomplétion de composants (utiliser pour les suggestions de recherche)
20 | * [clipboard.js](https://zenorocha.github.io/clipboard.js) - Copier le texte dans le presse-papier
21 | * [highlight.js](https://highlightjs.org) - Mise en valeur de syntaxes
22 | * [modernizr](https://modernizr.com) - Une boite à outil Javascript qui permet aux développeurs d'utiliser les dernières fonctionnalités de CSS et HTML5, même sur de vieux navigateurs.
23 |
24 | ## Outils
25 |
26 | * [Netlify](https://www.netlify.com) - Déploiement continue et hébergement de cette documentation
27 | * [Hugo](https://gohugo.io/)
28 |
29 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/credits.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Credits
3 | disableToc: true
4 | ---
5 |
6 | ## Contributors
7 |
8 | Thanks to them for making Open Source Software a better place !
9 |
10 | {{% ghcontributors "https://api.github.com/repos/matcornic/hugo-theme-learn/contributors?per_page=100" %}}
11 |
12 | And a special thanks to [@vjeantet](https://github.com/vjeantet) for his work on [docdock](https://github.com/vjeantet/hugo-theme-docdock), a fork of hugo-theme-learn. v2.0.0 of this theme is inspired by his work.
13 |
14 | ## Packages and libraries
15 | * [mermaid](https://knsv.github.io/mermaid) - generation of diagram and flowchart from text in a similar manner as markdown
16 | * [font awesome](http://fontawesome.io/) - the iconic font and CSS framework
17 | * [jQuery](https://jquery.com) - The Write Less, Do More, JavaScript Library
18 | * [lunr](https://lunrjs.com) - Lunr enables you to provide a great search experience without the need for external, server-side, search services...
19 | * [horsey](https://bevacqua.github.io/horsey/) - Progressive and customizable autocomplete component
20 | * [clipboard.js](https://zenorocha.github.io/clipboard.js) - copy text to clipboard
21 | * [highlight.js](https://highlightjs.org) - Javascript syntax highlighter
22 | * [modernizr](https://modernizr.com) - A JavaScript toolkit that allows web developers to use new CSS3 and HTML5 features while maintaining a fine level of control over browsers that don't support
23 |
24 | ## Tooling
25 |
26 | * [Netlify](https://www.netlify.com) - Continuous deployement and hosting of this documentation
27 | * [Hugo](https://gohugo.io/)
28 |
29 |
--------------------------------------------------------------------------------
/content/50_personalize/1_overview.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Overview"
3 | chapter = false
4 | weight = 1
5 | +++
6 |
7 | ## Overview
8 |
9 | [Amazon Personalize](https://aws.amazon.com/personalize/) is a machine learning service that makes it easy for developers to create individualized recommendations for customers using their applications.
10 |
11 | Machine learning is being increasingly used to improve customer engagement by powering personalized product and content recommendations, tailored search results, and targeted marketing promotions. However, developing the machine learning capabilities necessary to produce these sophisticated recommendation systems has been beyond the reach of most organizations today due to the complexity of developing machine learning functionality. Amazon Personalize allows developers with no prior machine learning experience to easily build sophisticated personalization capabilities into their applications, using machine learning technology perfected from years of use on Amazon.com.
12 |
13 | This lab will walk you through the following:
14 |
15 | - Deploy and configure a *Video Recommendation* application
16 | - Setting up a Jupyter Notebook environment to interact with Amazon Personalize
17 | - Downloading and preparing training data, based on the Movie Lens dataset
18 | - Importing prepared data into Amazon Personalize
19 | - Building an ML model based upon the Hierarchical Recurrent Neural Network (HRNN) algorithm
20 | - Testing your model by deploying an Amazon Personalize campaign
21 | - Adding your campaign to the Video Recommendation application
22 |
23 | A live demo of what we'll be building today is available here: https://www.personalisevideorecs.info/recommend/
--------------------------------------------------------------------------------
/content/40_connect-transcribe/10_overview.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Overview"
3 | chapter = false
4 | weight = 10
5 | +++
6 |
7 | ## Video Introduction
8 |
9 |
10 |
11 | ## Overview
12 |
13 | The AI Powered Speech Analytics for Amazon Connect solution provides customer insights in real-time, and helps agents and supervisors better understand and respond to customer needs so they can resolve customer issues and improve the overall customer experience. The solution uses pre-trained AWS Artificial Intelligence (AI) services that enable customers to transcribe, translate, and analyze each customer interaction, and presents this information to assist contact center agents during their conversations.
14 |
15 | The solution combines:
16 |
17 | * **Amazon Transcribe** to perform real-time speech recognition and create a high-quality text transcription of each call into text
18 | * **Amazon Comprehend** to analyze the interaction, detect the sentiment of the caller, and identify key words and phrases in the conversation
19 | * **Amazon Translate** to translate the conversation into an agent’s preferred language.
20 |
21 | You can use the transcribed information with your knowledge management and customer relationship management (CRM) systems to suggest responses or recommended solutions to better respond to the caller's needs.
22 |
23 | Additionally, the solution stores the original audio files and conversation transcripts for later review or analysis.
24 |
25 | ## Architecture
26 |
27 | 
28 |
--------------------------------------------------------------------------------
/static/css/jquery-ui.structure.min.css:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.12.1 - 2019-02-04
2 | * http://jqueryui.com
3 | * Copyright jQuery Foundation and other contributors; Licensed MIT */
4 |
5 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}
--------------------------------------------------------------------------------
/content/40_connect-transcribe/50_agent-interface.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Using the Agent Interface"
3 | chapter = false
4 | weight = 50
5 | +++
6 |
7 | ## Finding The Agent Interface
8 |
9 | The agent interface is one of the outputs of the CloudFormation script we used to create our resources. We can find it easily in the **Outputs** tab of the stack in the CloudFormation console. Navigate there and copy the URL.
10 |
11 | 
12 |
13 | ## Adding Agent Interface As A Trusted Origin
14 |
15 | Now we'll go back to the AWS Console for Connect and edit our instance again. We want to go to the **Application Integration** options where we'll add the CloudFront URL as a trusted origin.
16 |
17 | 
18 |
19 | ## Launching the Agent Interface
20 |
21 | {{% notice note %}}
22 | Try running this in incognito mode if you have any issues.
23 | {{% /notice %}}
24 |
25 | From there we simply navigate to the CloudFront URL and login to Connect. That will start the agent interface and once we set ourselves to available we can begin receiving calls.
26 |
27 | When we call our number, if everything is working, we should get output that is streaming from the call in real time. If it has been a long time since you ran the CloudFormation script and you face issues with the calls or transcription try waiting 30 seconds for the transcription to start. Subsequent calls will start transcription instantly.
28 | 
29 |
30 | You can learn more about this solution by reading the [guide](https://s3.amazonaws.com/solutions-reference/AI-powered-speech-analytics-for-amazon-connect/latest/AI+Powered+Speech+Analytics+for+Amazon+Connect.pdf).
31 |
--------------------------------------------------------------------------------
/content/50_personalize/70_appconfig/100_additionalcampaigns.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Additional Campaigns"
3 | chapter = false
4 | weight = 100
5 | +++
6 |
7 | If you look at the embedded documentation you'll see that it talks about 3 other models, however there isn't enough time to build all of them during this Lab. They involve the use of additional data files - a user demographic file, and an item metadata file, both of which are supplied with the Movie Lens data set in your SageMaker Notebook.
8 |
9 | Because they required additional datasets, you need to create each of these within their own Personalize Dataset Group, and you also need to re-import the original interactions file **DEMO-movie-lens-100k.csv** that you uploaded into S3 during the notebook - this is because Personalize trains solutions on all data files within the Dataset Group.
10 |
11 | The three models that you should build are as follows:
12 |
13 | - Using a USERS file, create a model that takes into account user's demographic details such as age, gender and occupation
14 | - Using an ITEMS metadata file, create a model that also takes into account the movie year and the top-4 genres associated with that movie as 4 separate metadata fields
15 | - Using an ITEMS metadata file, create a model that also takes into account the movie year and then compounds the top-4 genres into a single metadata field
16 |
17 | Observations are that demographics are absolutely not a good indicator for movies recommendations, nor for things like book recommendations - this isn't an issue with Amazon Personalize, rather it is a know issue with using age and gender to predict likes and dislikes of media.
18 |
19 | Also, the single, compound genre certainly seems more accurate for the first 5 or 10 responses, but for the set of 25 response as a whole the multiple genre model probably gets a better list of movies than the compound one.
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/static/css/featherlight.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Featherlight - ultra slim jQuery lightbox
3 | * Version 1.7.13 - http://noelboss.github.io/featherlight/
4 | *
5 | * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
6 | * MIT Licensed.
7 | **/
8 | html.with-featherlight{overflow:hidden}.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight link.featherlight-inner,.featherlight script.featherlight-inner,.featherlight style.featherlight-inner{display:none}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font-family:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000;border:0;padding:0}.featherlight .featherlight-close-icon::-moz-focus-inner{border:0;padding:0}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0;-webkit-overflow-scrolling:touch}.featherlight iframe{border:0}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:0;margin-right:0;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}@media print{html.with-featherlight>*>:not(.featherlight){display:none}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/static/css/hybrid.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid)
4 |
5 | */
6 |
7 | /*background color*/
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #1d1f21;
13 | }
14 |
15 | /*selection color*/
16 | .hljs::selection,
17 | .hljs span::selection {
18 | background: #373b41;
19 | }
20 |
21 | .hljs::-moz-selection,
22 | .hljs span::-moz-selection {
23 | background: #373b41;
24 | }
25 |
26 | /*foreground color*/
27 | .hljs {
28 | color: #c5c8c6;
29 | }
30 |
31 | /*color: fg_yellow*/
32 | .hljs-title,
33 | .hljs-name {
34 | color: #f0c674;
35 | }
36 |
37 | /*color: fg_comment*/
38 | .hljs-comment,
39 | .hljs-meta,
40 | .hljs-meta .hljs-keyword {
41 | color: #707880;
42 | }
43 |
44 | /*color: fg_red*/
45 | .hljs-number,
46 | .hljs-symbol,
47 | .hljs-literal,
48 | .hljs-deletion,
49 | .hljs-link {
50 | color: #cc6666
51 | }
52 |
53 | /*color: fg_green*/
54 | .hljs-string,
55 | .hljs-doctag,
56 | .hljs-addition,
57 | .hljs-regexp,
58 | .hljs-selector-attr,
59 | .hljs-selector-pseudo {
60 | color: #b5bd68;
61 | }
62 |
63 | /*color: fg_purple*/
64 | .hljs-attribute,
65 | .hljs-code,
66 | .hljs-selector-id {
67 | color: #b294bb;
68 | }
69 |
70 | /*color: fg_blue*/
71 | .hljs-keyword,
72 | .hljs-selector-tag,
73 | .hljs-bullet,
74 | .hljs-tag {
75 | color: #81a2be;
76 | }
77 |
78 | /*color: fg_aqua*/
79 | .hljs-subst,
80 | .hljs-variable,
81 | .hljs-template-tag,
82 | .hljs-template-variable {
83 | color: #8abeb7;
84 | }
85 |
86 | /*color: fg_orange*/
87 | .hljs-type,
88 | .hljs-built_in,
89 | .hljs-builtin-name,
90 | .hljs-quote,
91 | .hljs-section,
92 | .hljs-selector-class {
93 | color: #de935f;
94 | }
95 |
96 | .hljs-emphasis {
97 | font-style: italic;
98 | }
99 |
100 | .hljs-strong {
101 | font-weight: bold;
102 | }
103 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/static/css/atom-one-dark-reasonable.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage
4 |
5 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
6 |
7 | */
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | line-height: 1.3em;
13 | color: #abb2bf;
14 | background: #282c34;
15 | border-radius: 5px;
16 | }
17 | .hljs-keyword, .hljs-operator {
18 | color: #F92672;
19 | }
20 | .hljs-pattern-match {
21 | color: #F92672;
22 | }
23 | .hljs-pattern-match .hljs-constructor {
24 | color: #61aeee;
25 | }
26 | .hljs-function {
27 | color: #61aeee;
28 | }
29 | .hljs-function .hljs-params {
30 | color: #A6E22E;
31 | }
32 | .hljs-function .hljs-params .hljs-typing {
33 | color: #FD971F;
34 | }
35 | .hljs-module-access .hljs-module {
36 | color: #7e57c2;
37 | }
38 | .hljs-constructor {
39 | color: #e2b93d;
40 | }
41 | .hljs-constructor .hljs-string {
42 | color: #9CCC65;
43 | }
44 | .hljs-comment, .hljs-quote {
45 | color: #b18eb1;
46 | font-style: italic;
47 | }
48 | .hljs-doctag, .hljs-formula {
49 | color: #c678dd;
50 | }
51 | .hljs-section, .hljs-name, .hljs-selector-tag, .hljs-deletion, .hljs-subst {
52 | color: #e06c75;
53 | }
54 | .hljs-literal {
55 | color: #56b6c2;
56 | }
57 | .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attribute, .hljs-meta-string {
58 | color: #98c379;
59 | }
60 | .hljs-built_in, .hljs-class .hljs-title {
61 | color: #e6c07b;
62 | }
63 | .hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-selector-class, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number {
64 | color: #d19a66;
65 | }
66 | .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta, .hljs-selector-id, .hljs-title {
67 | color: #61aeee;
68 | }
69 | .hljs-emphasis {
70 | font-style: italic;
71 | }
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 | .hljs-link {
76 | text-decoration: underline;
77 | }
78 |
--------------------------------------------------------------------------------
/content/50_personalize/200_shutdown.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Shutting Down"
3 | chapter = false
4 | weight = 200
5 | +++
6 |
7 | ### Using Event Engine?
8 |
9 | Thankfully, as part of how Event Engine accounts work, there will be no need to tear down resources, as the accounts will all be destroyed after the workshop. However, if you'd like an idea of what tearing down these resources looks like, follow the below instructions.
10 |
11 | ### Shutting Down the SageMaker Notebook Instance
12 |
13 | 1. Open the Amazon SageMaker console and click on **Notebook instances**
14 | 2. Find the notebook instance listed as _[Name]-lab-notebook_, select its radio button and then click the **Actions** dropdown.
15 |
16 | 
17 |
18 | 3. Click **Stop** to stop the Notebook Instance. This does not delete the underlying data and resources. After a few minutes the instance status will change to _Stopped_, and you can now click on the **Actions** dropdown again, but this time select **Delete**.
19 |
20 | Note that by selecting the name of the Notebook instance on this dialog you are taken to a more detailed information page regarding that instance, which also has **Stop** and **Delete** buttons present – notebooks can also be deleted using this method.
21 |
22 | ### Shutting Down the CloudFormation Stack
23 |
24 | The CloudFormation stack we deployed in [this step]({{}}) contains multiple resources that we'll to terminate:
25 |
26 | * EC2 Instance
27 | * Application Load Balancer
28 | * Networking: Internet Gateway, VPC, Subnets, NAT Gateways, Route Table
29 |
30 | To delete this:
31 |
32 | 1. On the **Stacks** page in the CloudFormation console, select the stack that you want to delete. The stack must be currently running.
33 |
34 | 2. In the stack details pane, choose **Delete**.
35 |
36 | 3. Select **Delete stack** when prompted.
37 |
38 | Note: After stack deletion has begun, you cannot abort it. The stack proceeds to the `DELETE_IN_PROGRESS` state.
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : Children
3 | description : List the child pages of a page
4 | ---
5 |
6 | Use the children shortcode to list the child pages of a page and the further descendants (children's children). By default, the shortcode displays links to the child pages.
7 |
8 | ## Usage
9 |
10 | | Parameter | Default | Description |
11 | |:--|:--|:--|
12 | | page | _current_ | Specify the page name (section name) to display children for |
13 | | style | "li" | Choose the style used to display descendants. It could be any HTML tag name |
14 | | showhidden | "false" | When true, child pages hidden from the menu will be displayed |
15 | | description | "false" | Allows you to include a short text under each page in the list. when no description exists for the page, children shortcode takes the first 70 words of your content. [read more info about summaries on gohugo.io](https://gohugo.io/content/summaries/) |
16 | | depth | 1 | Enter a number to specify the depth of descendants to display. For example, if the value is 2, the shortcode will display 2 levels of child pages. **Tips:** set 999 to get all descendants|
17 | | sort | none | Sort Children By
Weight - to sort on menu order
Name - to sort alphabetically on menu label
Identifier - to sort alphabetically on identifier set in frontmatter
URL - URL
|
18 |
19 | ## Demo
20 |
21 | {{%/* children */%}}
22 |
23 | {{% children %}}
24 |
25 | {{%/* children description="true" */%}}
26 |
27 | {{%children description="true" %}}
28 |
29 | {{%/* children depth="3" showhidden="true" */%}}
30 |
31 | {{% children depth="3" showhidden="true" %}}
32 |
33 | {{%/* children style="h2" depth="3" description="true" */%}}
34 |
35 | {{% children style="h2" depth="3" description="true" %}}
36 |
37 | {{%/* children style="div" depth="999" */%}}
38 |
39 | {{% children style="div" depth="999" %}}
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/children/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : Children (Pages filles)
3 | description : Liste les pages filles de la page
4 | ---
5 |
6 | Utilisez le shortcode *children* pour lister les pages filles de la page et tous ses déscendants (pages filles de pages filles). Par défaut, le shortcode affiche des liens vers les pages filles.
7 |
8 | ## Utilisation
9 |
10 | | Paramètre | Défaut | Description |
11 | |:--|:--|:--|
12 | | page | _current_ | Spécifie le nom de la page (nom de la section) à afficher |
13 | | style | "li" | Choisi le style à utiliser pour afficher les descendants. Cela peut être n'importe quel balise HTML |
14 | | showhidden | "false" | Quand *true*, pages filles cachées dans le menu seront affichées quand même |
15 | | description | "false" | Permet d'inclure le texte de la description de la page sous chaque entré de la liste. quand aucune description existe pour la page, le shortcode prend les 70 premiers mots du contenu. [plus d'infos sur gohugo.io](https://gohugo.io/content/summaries/) |
16 | | depth | 1 | Nombre de descendants à afficher. Par exemple, si la valeur est 2, le shortcode va afficher 2 niveaux de pages filels. **Astuce:** Utilisez 999 pour avoir tous les descendants|
17 | | sort | | Tri les pages filles par
Weight - Poids
Name - Nom
Identifier - Trier alphabétiquement par identifiant configuré dans le front matter
URL - URL
|
18 |
19 | ## Démo
20 |
21 | {{%/* children */%}}
22 |
23 | {{% children %}}
24 |
25 | {{%/* children description="true" */%}}
26 |
27 | {{%children description="true" %}}
28 |
29 | {{%/* children depth="3" showhidden="true" */%}}
30 |
31 | {{% children depth="3" showhidden="true" %}}
32 |
33 | {{%/* children style="h2" depth="3" description="true" */%}}
34 |
35 | {{% children style="h2" depth="3" description="true" %}}
36 |
37 | {{%/* children style="div" depth="999" */%}}
38 |
39 | {{% children style="div" depth="999" %}}
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/content/10_prereqs/20_installs.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Installs and Configs"
3 | chapter = false
4 | weight = 20
5 | +++
6 |
7 | Before we begin coding, there are a few things we need to install, update, and configure in the Cloud9 environment.
8 |
9 | ### Installing and updating
10 |
11 | In the Cloud9 terminal, **run the following commands** to install and update some software we'll be using for this workshop:
12 |
13 | ```bash
14 | # Update the AWS CLI
15 | pip install --user --upgrade awscli
16 | ```
17 |
18 | {{% notice note %}}
19 | These commands will take a few minutes to finish.
20 | {{% /notice %}}
21 |
22 | ### Configuring a default region
23 |
24 | A best practice is to deploy your infrastructure close to your customers, let's configure a default AWS region for this workshop : `Northern Virginia (*us-east-1*)` for North America or `Ireland (*eu-west-1*)` for Europe.
25 |
26 | **Create an AWS config file**, run:
27 |
28 | {{% tabs %}}
29 | {{% tab "us-east-1" "North America" %}}
30 | ```bash
31 | cat < ~/.aws/config
32 | [default]
33 | region=us-east-1
34 | END
35 | ```
36 | {{% /tab %}}
37 |
38 | {{% tab "eu-west-1" "Europe" %}}
39 | ```bash
40 | cat < ~/.aws/config
41 | [default]
42 | region=eu-west-1
43 | END
44 | ```
45 | {{% /tab %}}
46 | {{% /tabs %}}
47 |
48 | ### Create an EC2 KeyPair
49 |
50 | Creating an SSH KeyPair will allow us to connect to other EC2 instances from our cloud9 machine.
51 |
52 | Let's run this command in our terminal:
53 |
54 | ```bash
55 | aws ec2 create-key-pair --key-name workshop --query 'KeyMaterial' --output text > workshop.pem
56 | ```
57 |
58 | That will create a new private key on our machine, in `workshop.pem`, and a public key for EC2 to manage. For security reasons we'll change the permissions on the `workshop.pem` file so that only we can read it.
59 |
60 | ```bash
61 | chmod 400 workshop.pem
62 | ```
63 |
64 | Now we can start an `ssh-agent` running the background that can manage our keys and connections for us.
65 |
66 | ```bash
67 | eval `ssh-agent -s`
68 | ssh-add workshop.pem
69 | ```
70 |
71 | If it asks for a passphrase you can include one or leave it blank and just press enter.
72 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : Expand
3 | description : "Affiche une section de texte qui se plie et se déplie"
4 | ---
5 |
6 | Le shortcode *Expand* affiche une section de texte qui se plie et se déplie.
7 | Ci-dessous un exemple.
8 |
9 | {{%expand%}}
10 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
11 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
12 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
13 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
14 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
15 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
16 | {{%/expand%}}
17 |
18 |
19 | ## Utilisation
20 |
21 |
22 | Ce shortcode prends exactement un paramètre optionel pour définir le texte à côté de l'icone. (valeur par défaut est "Déroulez-moi...")
23 |
24 | {{%/*expand "Est-ce que ce thème envoie du pâté ?" */%}}Oui !.{{%/* /expand*/%}}
25 |
26 | {{%expand "Est-ce que ce thème envoie du pâté ?" %}}Oui !{{% /expand%}}
27 |
28 | # Demo
29 |
30 | {{%/*expand*/%}}
31 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
32 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
33 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
34 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
35 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
36 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
37 | {{%/* /expand*/%}}
38 |
39 |
40 | {{%expand%}}Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
41 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
42 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
43 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
44 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
45 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{% /expand%}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/expand.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title : Expand
3 | description : "Displays an expandable/collapsible section of text on your page"
4 | ---
5 |
6 | The Expand shortcode displays an expandable/collapsible section of text on your page.
7 | Here is an example
8 |
9 | {{%expand%}}
10 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
11 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
12 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
13 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
14 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
15 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
16 | {{%/expand%}}
17 |
18 |
19 | ## Usage
20 |
21 |
22 | this shortcode takes exactly one optional parameter to define the text that appears next to the expand/collapse icon. (default is "Expand me...")
23 |
24 | {{%/*expand "Is this learn theme rocks ?" */%}}Yes !.{{%/* /expand*/%}}
25 |
26 | {{%expand "Is this learn theme rocks ?" %}}Yes !{{% /expand%}}
27 |
28 | # Demo
29 |
30 | {{%/*expand*/%}}
31 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
32 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
33 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
34 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
35 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
36 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
37 | {{%/* /expand*/%}}
38 |
39 |
40 | {{%expand%}}Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
41 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
42 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
43 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
44 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
45 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{% /expand%}}
--------------------------------------------------------------------------------
/content/10_prereqs/10_workspace.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Create a Cloud9 Workspace"
3 | chapter = false
4 | weight = 10
5 | +++
6 |
7 | AWS Cloud9 is a cloud-based integrated development environment (IDE) that lets you write, run, and debug your code with just a browser. It includes a code editor, debugger, and terminal. Cloud9 comes prepackaged with essential tools for popular programming languages, including JavaScript, Python, PHP, and more, so you don't need to install files or configure your development machine to start new projects.
8 |
9 | {{% notice warning %}}
10 | The Cloud9 workspace should be built by an IAM user with Administrator privileges,
11 | not the root account user. Please ensure you are logged in as an IAM user, not the root
12 | account user.
13 | {{% /notice %}}
14 |
15 | {{% notice warning %}}
16 | Charges begin accruing immediately so consider creating a Billing Alarm by following the instructions [here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).
17 | {{% /notice %}}
18 |
19 | {{% notice info %}}
20 | Ad blockers, JavaScript disablers, and tracking blockers should be disabled for
21 | the cloud9 domain, otherwise connecting to the workspace might be impacted.
22 | {{% /notice %}}
23 |
24 | ### Create a new environment
25 |
26 | 1. Go to the [Cloud9 web console](https://us-east-1.console.aws.amazon.com/cloud9/home?region=us-east-1)
27 | 1. Select **Create environment**
28 | 1. Name it **workshop**, and go to the **Next step**
29 | 1. Select **Create a new instance for environment (EC2)** and pick **t2.medium**
30 | 2. Leave all of the environment settings as they are, and go to the **Next step**
31 | 3. Click **Create environment**
32 |
33 | ### Clean up the layout
34 |
35 | When the environment comes up, customize the layout by closing the **welcome tab**
36 | and **lower work area**, and opening a new **terminal** tab in the main work area:
37 | 
38 |
39 | Your workspace should now look like this:
40 | 
41 |
42 | If you like this theme, you can choose it yourself by selecting **View / Themes / Solarized / Solarized Dark**
43 | in the Cloud9 workspace menu.
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/config.toml:
--------------------------------------------------------------------------------
1 | baseURL = "/"
2 | languageCode = "en-US"
3 | defaultContentLanguage = "en"
4 |
5 | title = "Hugo Learn Documentation"
6 | theme = "hugo-theme-learn"
7 | themesdir = "../.."
8 | metaDataFormat = "yaml"
9 | defaultContentLanguageInSubdir= true
10 |
11 | [params]
12 | editURL = "https://github.com/matcornic/hugo-theme-learn/edit/master/exampleSite/content/"
13 | description = "Documentation for Hugo Learn Theme"
14 | author = "Mathieu Cornic"
15 | showVisitedLinks = true
16 | disableBreadcrumb = false
17 | disableNextPrev = false
18 |
19 | [outputs]
20 | home = [ "HTML", "RSS", "JSON"]
21 |
22 | [Languages]
23 | [Languages.en]
24 | title = "Documentation for Hugo Learn Theme"
25 | weight = 1
26 | languageName = "English"
27 |
28 | [[Languages.en.menu.shortcuts]]
29 | name = " Github repo"
30 | identifier = "ds"
31 | url = "https://github.com/matcornic/hugo-theme-learn"
32 | weight = 10
33 |
34 | [[Languages.en.menu.shortcuts]]
35 | name = " Showcases"
36 | url = "showcase"
37 | weight = 11
38 |
39 | [[Languages.en.menu.shortcuts]]
40 | name = " Hugo Documentation"
41 | identifier = "hugodoc"
42 | url = "https://gohugo.io/"
43 | weight = 20
44 |
45 | [[Languages.en.menu.shortcuts]]
46 | name = " Credits"
47 | url = "/credits"
48 | weight = 30
49 |
50 | [Languages.fr]
51 | title = "Documentation du thème Hugo Learn"
52 | weight = 2
53 | languageName = "Français"
54 |
55 | [[Languages.fr.menu.shortcuts]]
56 | name = " Repo Github"
57 | identifier = "ds"
58 | url = "https://github.com/matcornic/hugo-theme-learn"
59 | weight = 10
60 |
61 | [[Languages.fr.menu.shortcuts]]
62 | name = " Vitrine"
63 | url = "/showcase"
64 | weight = 11
65 |
66 | [[Languages.fr.menu.shortcuts]]
67 | name = " Documentation Hugo"
68 | identifier = "hugodoc"
69 | url = "https://gohugo.io/"
70 | weight = 20
71 |
72 | [[Languages.fr.menu.shortcuts]]
73 | name = " Crédits"
74 | url = "/credits"
75 | weight = 30
76 |
--------------------------------------------------------------------------------
/content/50_personalize/30_jupyterlaunch.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Launch Jupyter Notebook"
3 | chapter = false
4 | weight = 30
5 | +++
6 |
7 | ## Launching a Jupyter Notebook using Amazon SageMaker
8 |
9 | 1. Click on **Amazon SageMaker** from the list of all services by entering *Sagemaker* into the **Find services** box. This will bring you to the Amazon SageMaker console homepage. In another browser tab navigate to the **IAM** console homepage, as we'll need that shortly.
10 |
11 | 
12 |
13 | 2. To create a new Jupyter notebook instance, go to **Notebook instances** in the Amazon SageMaker console, and click the **Create notebook instance** button at the top of the browser window.
14 |
15 | 
16 |
17 | Type _[Name]-lab-notebook_ into the **Notebook instance name** text box, and then _ml.m5.2xlarge_ into **the Notebook instance type**. Note, for this lab the majority of the work is performed by the Amazon Personalize service, so there is not need to launch a large, compute-optimized C5 or GPU-based instance type.
18 |
19 | 3. Head over to the IAM console page that you opened earlier, and in the **Search IAM** box on the top-left enter **TeamRole** and select the role in the search results list.
20 |
21 | 
22 |
23 | 4. Hit the clipboard icon to the right of the **Role ARN** line at the top of the form to copy the full ARN into your computer's clipboard. Head back to the **SageMaker** window where you have part-created a notebook. In the _IAM role_ field in **Permissions and encryption** section choose _Enter a custom IAM role ARN_ and paste the _TeamRole_ ARN into the box below. Note that your ARN will have a different account number from that shown.
24 |
25 | 
26 |
27 | 5. Scroll down and click on **Create Notebook Instance**. Wait until the notebook instance status is **InService**. This will take a few minutes once the creation process has started. Then click on **Open Jupyter** - whilst you're waiting you can perform step #1 of the next section to copy some files from GitHub.
28 |
29 | 
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Attachments
3 | description : "The Attachments shortcode displays a list of files attached to a page."
4 | ---
5 |
6 | The Attachments shortcode displays a list of files attached to a page.
7 |
8 | {{% attachments /%}}
9 |
10 | ## Usage
11 |
12 | The shortcurt lists files found in a **specific folder**.
13 | Currently, it support two implementations for pages
14 |
15 | 1. If your page is a markdown file, attachements must be place in a **folder** named like your page and ending with **.files**.
16 |
17 | > * content
18 | > * _index.md
19 | > * page.files
20 | > * attachment.pdf
21 | > * page.md
22 |
23 | 2. If your page is a **folder**, attachements must be place in a nested **'files'** folder.
24 |
25 | > * content
26 | > * _index.md
27 | > * page
28 | > * index.md
29 | > * files
30 | > * attachment.pdf
31 |
32 | Be aware that if you use a multilingual website, you will need to have as many folders as languages.
33 |
34 | That's all !
35 |
36 | ### Parameters
37 |
38 | | Parameter | Default | Description |
39 | |:--|:--|:--|
40 | | title | "Attachments" | List's title |
41 | | style | "" | Choose between "orange", "grey", "blue" and "green" for nice style |
42 | | pattern | ".*" | A regular expressions, used to filter the attachments by file name.
The **pattern** parameter value must be [regular expressions](https://en.wikipedia.org/wiki/Regular_expression).
43 |
44 | For example:
45 |
46 | * To match a file suffix of 'jpg', use **.*jpg** (not *.jpg).
47 | * To match file names ending in 'jpg' or 'png', use **.*(jpg|png)**
48 |
49 | ### Examples
50 |
51 | #### List of attachments ending in pdf or mp4
52 |
53 |
54 | {{%/*attachments title="Related files" pattern=".*(pdf|mp4)"/*/%}}
55 |
56 | renders as
57 |
58 | {{%attachments title="Related files" pattern=".*(pdf|mp4)"/%}}
59 |
60 | #### Colored styled box
61 |
62 | {{%/*attachments style="orange" /*/%}}
63 |
64 | renders as
65 |
66 | {{% attachments style="orange" /%}}
67 |
68 |
69 | {{%/*attachments style="grey" /*/%}}
70 |
71 | renders as
72 |
73 | {{% attachments style="grey" /%}}
74 |
75 | {{%/*attachments style="blue" /*/%}}
76 |
77 | renders as
78 |
79 | {{% attachments style="blue" /%}}
80 |
81 | {{%/*attachments style="green" /*/%}}
82 |
83 | renders as
84 |
85 | {{% attachments style="green" /%}}
--------------------------------------------------------------------------------
/content/30_social-media-analytics/10_getting_started.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Getting Started"
3 | chapter = false
4 | weight = 10
5 | +++
6 |
7 | ### Build a social media dashboard using machine learning and BI services
8 |
9 | In this workshop we'll make use of:
10 |
11 | * [Amazon Translate](https://aws.amazon.com/translate/)
12 | * [Amazon Comprehend](https://aws.amazon.com/comprehend/)
13 | * [Amazon Kinesis Data Firehose](https://aws.amazon.com/kinesis/data-firehose/)
14 | * [Amazon Athena](https://aws.amazon.com/athena/)
15 | * [Amazon Quicksight](https://aws.amazon.com/quicksight/)
16 | * [Amazon S3](https://aws.amazon.com/s3/)
17 |
18 | We'll use these tools to build a natural-language-processing (NLP)-powered social media dashboard for tweets.
19 |
20 | Social media interactions between organizations and customers deepend brand awareness and these conversations are a low-cost way to acquire leads, improve traffic, develop relationships, measure brand sentiment, and improve customer service.
21 |
22 | A major shoutout to Ben Snively and Viral Desai for their original work on this. You can read their [blog post](https://aws.amazon.com/blogs/machine-learning/build-a-social-media-dashboard-using-machine-learning-and-bi-services/) for more.
23 |
24 | ### What It Looks Like
25 |
26 | This is what our final dashboard will look like:
27 |
28 | 
29 |
30 | ### CloudFormation
31 |
32 | We'll provision and deploy this workshop with a tool called [AWS CloudFormation](https://aws.amazon.com/cloudformation/) which allows us to define our infrastructure as code. In this case, YAML.
33 |
34 | We can proceed with provisioning the workshop resources by using the "Launch Stack" button below.
35 |
36 |
37 | ### Launching The Stack
38 |
39 | We launch this by providing our EC2 instance keypair name and our Twitter tokens provisioned in the prerequisites.
40 |
41 | From there we can pass in a few other variables like the languages we will support and translate as well as the terms we want to search for on Twitter.
42 |
43 | 
44 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Learn Theme for Hugo"
3 | ---
4 |
5 | # Hugo learn theme
6 |
7 | [Hugo-theme-learn](http://github.com/matcornic/hugo-theme-learn) is a theme for [Hugo](https://gohugo.io/), a fast and modern static website engine written in Go. Where Hugo is often used for blogs, this multilingual-ready theme is **fully designed for documentation**.
8 |
9 | This theme is a partial porting of the [Learn theme](http://learn.getgrav.org/) of [Grav](https://getgrav.org/), a modern flat-file CMS written in PHP.
10 |
11 | {{% notice tip %}}Learn theme works with a _page tree structure_ to organize content : All contents are pages, which belong to other pages. [read more about this]({{%relref "cont/pages/_index.md"%}})
12 | {{% /notice %}}
13 |
14 | ## Main features
15 |
16 | * [Automatic Search]({{%relref "basics/configuration/_index.md#activate-search" %}})
17 | * [Multilingual mode]({{%relref "cont/i18n/_index.md" %}})
18 | * **Unlimited menu levels**
19 | * **Automatic next/prev buttons to navigate through menu entries**
20 | * [Image resizing, shadow...]({{%relref "cont/markdown.en.md#images" %}})
21 | * [Attachments files]({{%relref "shortcodes/attachments.en.md" %}})
22 | * [List child pages]({{%relref "shortcodes/children/_index.md" %}})
23 | * [Mermaid diagram]({{%relref "shortcodes/mermaid.en.md" %}}) (flowchart, sequence, gantt)
24 | * [Customizable look and feel and themes variants]({{%relref "basics/style-customization/_index.md"%}})
25 | * [Buttons]({{%relref "shortcodes/button.en.md" %}}), [Tip/Note/Info/Warning boxes]({{%relref "shortcodes/notice.en.md" %}}), [Expand]({{%relref "shortcodes/expand.en.md" %}})
26 |
27 | 
28 |
29 | ## Contribute to this documentation
30 | Feel free to update this content, just click the **Edit this page** link displayed on top right of each page, and pullrequest it
31 |
32 | {{% notice info %}}
33 | Your modification will be deployed automatically when merged.
34 | {{% /notice %}}
35 |
36 | ## Documentation website
37 | This current documentation has been statically generated with Hugo with a simple command : `hugo -t hugo-theme-learn` -- source code is [available here at GitHub](https://github.com/matcornic/hugo-theme-learn)
38 |
39 | {{% notice note %}}
40 | Automatically published and hosted thanks to [Netlify](https://www.netlify.com/). Read more about [Automated HUGO deployments with Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)
41 | {{% /notice %}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/layouts/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ partial "meta.html" . }} {{ partial "favicon.html" . }} {{ .Scratch.Add "title" "" }}{{ if eq .Site.Data.titles .Title }}{{ .Scratch.Set "title" (index .Site.Data.titles .Title).title }}{{ else }}{{ .Scratch.Set "title" .Title}}{{end}}
6 | {{ .Scratch.Get "title" }}
7 |
8 | {{ $assetBusting := not .Site.Params.disableAssetsBusting }}
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | {{with .Site.Params.themeVariant}}
18 |
19 | {{end}}
20 |
35 | {{ partial "custom-header.html" . }}
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/README.md:
--------------------------------------------------------------------------------
1 | # Hugo Learn Theme
2 |
3 | This repository contains a theme for [Hugo](https://gohugo.io/), based on great [Grav Learn Theme](https://learn.getgrav.org/).
4 |
5 | Visit the [theme documentation](https://learn.netlify.com/en/) to see what is going on. It is actually built with this theme.
6 |
7 | [](https://app.wercker.com/project/byKey/233466a2be73fcea400e7dc02ef6adf9)
8 | [](https://app.fossa.io/projects/git%2Bgithub.com%2Fmatcornic%2Fhugo-theme-learn?ref=badge_shield)
9 |
10 | ## Main features
11 |
12 | - Automatic Search
13 | - Multilingual mode
14 | - Unlimited menu levels
15 | - Automatic next/prev buttons to navigate through menu entries
16 | - Image resizing, shadow…
17 | - Attachments files
18 | - List child pages
19 | - Mermaid diagram (flowchart, sequence, gantt)
20 | - Customizable look and feel and themes variants
21 | - Buttons, Tip/Note/Info/Warning boxes, Expand
22 |
23 | ## Installation
24 |
25 | Navigate to your themes folder in your Hugo site and use the following commands:
26 |
27 | ```
28 | $ cd themes
29 | $ git clone https://github.com/matcornic/hugo-theme-learn.git
30 | ```
31 |
32 | Check that your Hugo version is minimum `0.25` with `hugo version`.
33 |
34 | 
35 |
36 | ## Usage
37 |
38 | - [Visit the documentation](https://learn.netlify.com/en/)
39 |
40 | ## Download old versions (prior to 2.0.0)
41 |
42 | If you need old version for compatibility purpose, either download [theme source code from releases](https://github.com/matcornic/hugo-theme-learn/releases) or use the right git tag. For example, with `1.1.0`
43 |
44 | - Direct download way: https://github.com/matcornic/hugo-theme-learn/archive/1.1.0.zip
45 | - Git way:
46 |
47 | ```shell
48 | cd themes/hugo-theme-learn
49 | git checkout tags/1.1.0
50 | ```
51 |
52 | For both solutions, the documentation is available at https://github.com/matcornic/hugo-theme-learn/releases/download/1.1.0/hugo-learn-doc-1.1.0.zip
53 |
54 | ## Credits
55 |
56 | Many thanks to [@vjeantet](https://github.com/vjeantet/) for the fork [docdock](https://github.com/vjeantet/hugo-theme-docdock). The v2 of this theme is mainly based on his work !
57 |
58 |
59 | ## License
60 | [](https://app.fossa.io/projects/git%2Bgithub.com%2Fmatcornic%2Fhugo-theme-learn?ref=badge_large)
61 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/shortcodes/attachments.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Attachments (Pièces jointes)
3 | description : "The Attachments shortcode displays a list of files attached to a page."
4 | ---
5 |
6 | Le shortcode *Attachments* affiche une liste de pièces jointes d'une page.
7 |
8 | {{% attachments /%}}
9 |
10 | ## Utilisation
11 |
12 | Le shortcode affiche la liste de fichiers trouvés dans un **dossier spécifique**
13 | A l'heure actuelle, il supporte deux implémentations
14 |
15 | 1. Si votre page est un fichier Markdown, les pièces jointes doivent être placée dans un **dossier** nommé comme le nom de la page et suffixé par **.files**.
16 |
17 | > * content
18 | > * _index.md
19 | > * page.files
20 | > * attachment.pdf
21 | > * page.md
22 |
23 | 2. Si votre page est un **dossier**, les pièces jointes doivent être placées dans un dossier fils **'files'**.
24 |
25 | > * content
26 | > * _index.md
27 | > * page
28 | > * index.md
29 | > * files
30 | > * attachment.pdf
31 |
32 | Attention, si votre site est multi-langue, vous devrez avec autant de dossier qu'il y a de langues.
33 |
34 | C'est tout !
35 |
36 | ### Paramètres
37 |
38 | | Paramètre | Défaut | Description |
39 | |:--|:--|:--|
40 | | title | "Pièces jointes" | Titre de la liste |
41 | | style | "" | Choisir entre "orange", "grey", "blue" et "green" pour un style plus sympa |
42 | | pattern | ".*" | Une expression régulière, utilisée pour filtrer les pièces jointes par leur nom de fichier.
Le paramètre **pattern** doit être une [expression régulière](https://en.wikipedia.org/wiki/Regular_expression).
43 |
44 | Par exemple:
45 |
46 | * Pour trouver les fichiers avec le suffixe 'jpg', utilisez **.*jpg** (pas *.jpg).
47 | * Pour trouver les fichiers avec les suffixe 'jpg' ou 'png', utilisez **.*(jpg|png)**
48 |
49 | ### Exemples
50 |
51 | #### Lister les pièces jointes de type pdf ou mp4
52 |
53 |
54 | {{%/*attachments title="Fichiers associés" pattern=".*(pdf|mp4)"/*/%}}
55 |
56 | s'affiche comme
57 |
58 | {{%attachments title="Fichiers associés" pattern=".*(pdf|mp4)"/%}}
59 |
60 | #### Modifier le style
61 |
62 | {{%/*attachments style="orange" /*/%}}
63 |
64 | s'affiche comme
65 |
66 | {{% attachments style="orange" /%}}
67 |
68 |
69 | {{%/*attachments style="grey" /*/%}}
70 |
71 | s'affiche comme
72 |
73 | {{% attachments style="grey" /%}}
74 |
75 | {{%/*attachments style="blue" /*/%}}
76 |
77 | s'affiche comme
78 |
79 | {{% attachments style="blue" /%}}
80 |
81 | {{%/*attachments style="green" /*/%}}
82 |
83 | s'affiche comme
84 |
85 | {{% attachments style="green" /%}}
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Learn Theme for Hugo"
3 | ---
4 |
5 | # Thème Hugo learn
6 |
7 | [Hugo-theme-learn](http://github.com/matcornic/hugo-theme-learn) est un thème pour [Hugo](https://gohugo.io/), un générateur de site statique, rapide et modern, écrit en Go. Tandis que Hugo est souvent utilisé pour des blogs, ce thème multi-langue est **entièrement conçu pour la documentation**.
8 |
9 | Ce thème est un portage partiel du [thème Learn](http://learn.getgrav.org/) de [Grav](https://getgrav.org/), un CMS modern écrit en PHP.
10 |
11 | {{% notice tip %}}Le thème Learn fonctionne grâce à la structure de page aborescentes pour organiser le contenu: tous les contenus sont des pages qui appartiennent à d'autres pages. [Plus d'infos]({{%relref "cont/pages/_index.md"%}})
12 | {{% /notice %}}
13 |
14 | ## Fonctionnalités principales
15 |
16 | * [Recherche automatique]({{%relref "basics/configuration/_index.md#activer-recherche" %}})
17 | * [Mode multi-langue]({{%relref "cont/i18n/_index.md" %}})
18 | * **Nombre de niveau infini dans le menu**
19 | * **Boutons suivant/précédent automatiquement générés pour naviguer entre les items du menu**
20 | * [Taille d'image, ombres...]({{%relref "cont/markdown.fr.md#images" %}})
21 | * [Fichiers joints]({{%relref "shortcodes/attachments.fr.md" %}})
22 | * [Lister les pages filles]({{%relref "shortcodes/children/_index.md" %}})
23 | * [Diagrammes Mermaid]({{%relref "shortcodes/mermaid.fr.md" %}}) (flowchart, sequence, gantt)
24 | * [Style configurable and variantes de couleurs]({{%relref "basics/style-customization/_index.md"%}})
25 | * [Boutons]({{%relref "shortcodes/button.fr.md" %}}), [Messages Astuce/Note/Info/Attention]({{%relref "shortcodes/notice.fr.md" %}}), [Expand]({{%relref "shortcodes/expand.fr.md" %}})
26 |
27 | 
28 |
29 | ## Contribuer à cette documentation
30 |
31 | N'hésitez pas à mettre à jour ce contenu en cliquant sur le lien **Modifier cette page** en haut de chaque page, et créer la Pull Request associée.
32 |
33 | {{% notice info %}}
34 | Votre modification sera déployée automatiquement quand elle sera mergée.
35 | {{% /notice %}}
36 |
37 | ## Site de documentation
38 |
39 | Cette documentation statique a été générée avec Hugo avec une simple commande : `hugo -t hugo-theme-learn` -- le code source est [disponible sur Github](https://github.com/matcornic/hugo-theme-learn)
40 |
41 | {{% notice note %}}
42 | Le site est auomatiquement publié et hébergé par [Netlify](https://www.netlify.com/). Plus d'infos sur le [déploiement de site Hugo avec Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)(En anglais)
43 | {{% /notice %}}
44 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Configuration
4 | weight: 20
5 | ---
6 |
7 | ## Global site parameters
8 |
9 | On top of [Hugo global configuration](https://gohugo.io/overview/configuration/), **Hugo-theme-learn** lets you define the following parameters in your `config.toml` (here, values are default).
10 |
11 | Note that some of these parameters are explained in details in other sections of this documentation.
12 |
13 | ```toml
14 | [params]
15 | # Prefix URL to edit current page. Will display an "Edit this page" button on top right hand corner of every page.
16 | # Useful to give opportunity to people to create merge request for your doc.
17 | # See the config.toml file from this documentation site to have an example.
18 | editURL = ""
19 | # Author of the site, will be used in meta information
20 | author = ""
21 | # Description of the site, will be used in meta information
22 | description = ""
23 | # Shows a checkmark for visited pages on the menu
24 | showVisitedLinks = false
25 | # Disable search function. It will hide search bar
26 | disableSearch = false
27 | # Javascript and CSS cache are automatically busted when new version of site is generated.
28 | # Set this to true to disable this behavior (some proxies don't handle well this optimization)
29 | disableAssetsBusting = false
30 | # Set this to true to disable copy-to-clipboard button for inline code.
31 | disableInlineCopyToClipBoard = false
32 | # A title for shortcuts in menu is set by default. Set this to true to disable it.
33 | disableShortcutsTitle = false
34 | # When using mulitlingual website, disable the switch language button.
35 | disableLanguageSwitchingButton = false
36 | # Hide breadcrumbs in the header and only show the current page title
37 | disableBreadcrumb = true
38 | # Hide Next and Previous page buttons normally displayed full height beside content
39 | disableNextPrev = true
40 | # Order sections in menu by "weight" or "title". Default to "weight"
41 | ordersectionsby = "weight"
42 | # Change default color scheme with a variant one. Can be "red", "blue", "green".
43 | themeVariant = ""
44 | ```
45 |
46 | ## Activate search
47 |
48 | If not already present, add the follow lines in the same `config.toml` file.
49 |
50 | ```toml
51 | [outputs]
52 | home = [ "HTML", "RSS", "JSON"]
53 | ```
54 |
55 | Learn theme uses the last improvement available in hugo version 20+ to generate a json index file ready to be consumed by lunr.js javascript search engine.
56 |
57 | > Hugo generate lunrjs index.json at the root of public folder.
58 | > When you build the site with `hugo server`, hugo generates it internally and of course it doesn’t show up in the filesystem
59 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/basics/configuration/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Configuration
4 | weight: 20
5 | ---
6 |
7 | ## Paramètres globaux du site
8 |
9 | En plus de la [configuration globale d'Hugo](https://gohugo.io/overview/configuration/), **Hugo-theme-learn** vous permet de définir les paramètres suivant dans votre fichier `config.toml` (ci-dessous sont affichées les valeurs par défaut).
10 |
11 | Notez que certains de ces paramètres sont expliqués en détails dans d'autres sections de cette documentation.
12 |
13 | ```toml
14 | [params]
15 | # L'URL préfixe pour éditer la page courante. Ce paramètre affichera un bouton "Modifier cette page" on haut de de chacune des pages.
16 | # Pratique pour donner les possibilité à vos utilisateurs de créer une merge request pour votre doc.
17 | # Allez voir le fichier config.toml de cette documentation pour avoir un exemple.
18 | editURL = ""
19 | # Autheur du site, est utilisé dans les informations meta
20 | author = ""
21 | # Description du site, est utilisé dans les informations meta
22 | description = ""
23 | # Affiche une icône lorsque la page a été visitée
24 | showVisitedLinks = false
25 | # Désactive la fonction de recherche. Une valeur à true cache la barre de recherche.
26 | disableSearch = false
27 | # Par défaut, le cache Javascript et CSS est automatiquement vidé lorsqu'une nouvelle version du site est générée.
28 | # Utilisez ce paramètre lorsque vous voulez désactiver ce comportement (c'est parfois incompatible avec certains proxys)
29 | disableAssetsBusting = false
30 | # Utilisez ce paramètre pour désactiver le bouton copy-to-clipboard pour le code formatté sur une ligne.
31 | disableInlineCopyToClipBoard = false
32 | # Un titre est défini par défaut lorsque vous utilisez un raccourci dans le menu. Utilisez ce paramètre pour le cacher.
33 | disableShortcutsTitle = false
34 | # Quand vous utilisez un site multi-langue, utilisez ce paramètre pour désactiver le bouton de changement de langue.
35 | disableLanguageSwitchingButton = false
36 | # Ordonne les sections dans menu par poids ("weight") ou titre ("title"). Défaut à "weight"
37 | ordersectionsby = "weight"
38 | # Utilisez ce paramètre pour modifier le schéma de couleur du site. Les valeurs par défaut sont "red", "blue", "green".
39 | themeVariant = ""
40 | ```
41 |
42 | ## Activer la recherche {#activer-recherche}
43 |
44 | Si ce n'est pas déjà présent, ajoutez les lignes suivantes dans le fichier `config.toml`.
45 |
46 | ```toml
47 | [outputs]
48 | home = [ "HTML", "RSS", "JSON"]
49 | ```
50 |
51 | Le thème *Learn* utilise les dernières amélioraions d'Hugo pour générer un fichier d'index JSON, prêt à être consommé par le moteur de recherche lunr.js.
52 |
53 | > Hugo génère lunrjs index.json à la racine du dossier `public`.
54 | > Quand vous générez le site avec `hugo server`, Hugo génère le fichier en mémoire, il n'est donc pas disponible sur le disque.
--------------------------------------------------------------------------------
/layouts/partials/logo.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.en.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Multilingual and i18n
4 | weight: 30
5 | ---
6 |
7 | **Learn theme** is fully compatible with Hugo multilingual mode.
8 |
9 | It provides:
10 |
11 | - Translation strings for default values (English and French). Feel free to contribute !
12 | - Automatic menu generation from multilingual content
13 | - In-browser language switching
14 |
15 | 
16 |
17 | ## Basic configuration
18 |
19 | After learning [how Hugo handle multilingual websites](https://gohugo.io/content-management/multilingual), define your languages in your `config.toml` file.
20 |
21 | For example with current French and English website.
22 |
23 | ```toml
24 | # English is the default language
25 | defaultContentLanguage = "en"
26 | # Force to have /en/my-page and /fr/my-page routes, even for default language.
27 | defaultContentLanguageInSubdir= true
28 |
29 | [Languages]
30 | [Languages.en]
31 | title = "Documentation for Hugo Learn Theme"
32 | weight = 1
33 | languageName = "English"
34 |
35 | [Languages.fr]
36 | title = "Documentation du thème Hugo Learn"
37 | weight = 2
38 | languageName = "Français"
39 | ```
40 |
41 | Then, for each new page, append the *id* of the language to the file.
42 |
43 | - Single file `my-page.md` is split in two files:
44 | - in English: `my-page.en.md`
45 | - in French: `my-page.fr.md`
46 | - Single file `_index.md` is split in two files:
47 | - in English: `_index.en.md`
48 | - in French: `_index.fr.md`
49 |
50 | {{% notice info %}}
51 | Be aware that only translated pages are displayed in menu. It's not replaced with default language content.
52 | {{% /notice %}}
53 |
54 | {{% notice tip %}}
55 | Use [slug](https://gohugo.io/content-management/multilingual/#translate-your-content) Front Matter parameter to translate urls too.
56 | {{% /notice %}}
57 |
58 | ## Overwrite translation strings
59 |
60 | Translations strings are used for common default values used in the theme (*Edit this page* button, *Search placeholder* and so on). Translations are available in french and english but you may use another language or want to override default values.
61 |
62 | To override these values, create a new file in your local i18n folder `i18n/.toml` and inspire yourself from the theme `themes/hugo-theme-learn/i18n/en.toml`
63 |
64 | By the way, as these translations could be used by other people, please take the time to propose a translation by [making a PR](https://github.com/matcornic/hugo-theme-learn/pulls) to the theme !
65 |
66 | ## Disable language switching
67 |
68 | Switching the language in the browser is a great feature, but for some reasons you may want to disable it.
69 |
70 | Just set `disableLanguageSwitchingButton=true` in your `config.toml`
71 |
72 | ```toml
73 | [params]
74 | # When using mulitlingual website, disable the switch language button.
75 | disableLanguageSwitchingButton = true
76 | ```
77 |
78 | 
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/static/js/hugo-learn.js:
--------------------------------------------------------------------------------
1 | // Get Parameters from some url
2 | var getUrlParameter = function getUrlParameter(sPageURL) {
3 | var url = sPageURL.split('?');
4 | var obj = {};
5 | if (url.length == 2) {
6 | var sURLVariables = url[1].split('&'),
7 | sParameterName,
8 | i;
9 | for (i = 0; i < sURLVariables.length; i++) {
10 | sParameterName = sURLVariables[i].split('=');
11 | obj[sParameterName[0]] = sParameterName[1];
12 | }
13 | return obj;
14 | } else {
15 | return undefined;
16 | }
17 | };
18 |
19 | // Execute actions on images generated from Markdown pages
20 | var images = $("div#body-inner img").not(".inline");
21 | // Wrap image inside a featherlight (to get a full size view in a popup)
22 | images.wrap(function(){
23 | var image =$(this);
24 | if (!image.parent("a").length) {
25 | return "";
26 | }
27 | });
28 |
29 | // Change styles, depending on parameters set to the image
30 | images.each(function(index){
31 | var image = $(this)
32 | var o = getUrlParameter(image[0].src);
33 | if (typeof o !== "undefined") {
34 | var h = o["height"];
35 | var w = o["width"];
36 | var c = o["classes"];
37 | image.css("width", function() {
38 | if (typeof w !== "undefined") {
39 | return w;
40 | } else {
41 | return "auto";
42 | }
43 | });
44 | image.css("height", function() {
45 | if (typeof h !== "undefined") {
46 | return h;
47 | } else {
48 | return "auto";
49 | }
50 | });
51 | if (typeof c !== "undefined") {
52 | var classes = c.split(',');
53 | for (i = 0; i < classes.length; i++) {
54 | image.addClass(classes[i]);
55 | }
56 | }
57 | }
58 | });
59 |
60 | // Stick the top to the top of the screen when scrolling
61 | $(document).ready(function(){
62 | $("#top-bar").sticky({topSpacing:0, zIndex: 1000});
63 | });
64 |
65 |
66 | jQuery(document).ready(function() {
67 | // Add link button for every
68 | var text, clip = new ClipboardJS('.anchor');
69 | $("h1~h2,h1~h3,h1~h4,h1~h5,h1~h6").append(function(index, html){
70 | var element = $(this);
71 | var url = encodeURI(document.location.origin + document.location.pathname);
72 | var link = url + "#"+element[0].id;
73 | return " " +
74 | "" +
75 | ""
76 | ;
77 | });
78 |
79 | $(".anchor").on('mouseleave', function(e) {
80 | $(this).attr('aria-label', null).removeClass('tooltipped tooltipped-s tooltipped-w');
81 | });
82 |
83 | clip.on('success', function(e) {
84 | e.clearSelection();
85 | $(e.trigger).attr('aria-label', 'Link copied to clipboard!').addClass('tooltipped tooltipped-s');
86 | });
87 | $('code.language-mermaid').each(function(index, element) {
88 | var content = $(element).html().replace(/&/g, '&');
89 | $(element).parent().replaceWith('
' + content + '
');
90 | });
91 | });
92 |
--------------------------------------------------------------------------------
/content/40_connect-transcribe/40_create-contactflows.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Create Contact Flows"
3 | chapter = false
4 | weight = 40
5 | +++
6 |
7 | ## Importing Contact Flows
8 |
9 | 1. First we should navigate to the bucket that was created by CloudFormation and grab the generated Contact Flows. The easiest way to find this bucket is to use the **Resources** tab of the CloudFormation console for the stack we just launched and filter on something like `bucket`. Then click the link under **Physical ID** to opent he S3 console.
10 | 
11 | 2. From there we should download the files that are already in the bucket: `agentWhisperKvsStreamingSampleFlow` and `kvsStreamingSampleFlow`. These flows have been automatically generated by CloudFormation and will have our lambda functions already added into them.
12 | 3. Now we'll import the flows by navigating back to our connect instance, logging in if needed, and creating a new contact flow by selecting **Contact Flows** from the bar on the left hand side of the screen.
13 | 
14 | 4. Now we'll create the agent whisper flow by selecting the drop down arrow next to the **Create contact flow** button and selecting **Create agent whisper flow**.
15 | 
16 | 5. Next, use the drop down in the top right corner of the screen to select **Import flow**.
17 | 
18 | 6. From there select the file `agentWhisperKvsStreamingSampleFlow` that you downloaded in step 2 and click **Import**. The finished flow should look like this:
19 | 
20 | 7. From there use the drop down in the top right to select **Save and publish**.
21 | 8. Now we'll create the customer flow by going back to the contact flows screen and clicking the **Create contact flow** button.
22 | 
23 | 9. We'll follow the same steps from 5-6 to import the `kvsStreamingSampleFlow`.
24 | 
25 | 10. The finished import should look like this:
26 | 
27 | 11. Now we'll click **Save and publish** from the drop down in the top right again.
28 |
29 | ## Assigning Contact Flow to a Number
30 |
31 | The last step is to select **Phone Numbers** from the bar on the left and edit the number to use our newly created contact flow.
32 | 
33 |
34 | From there we'll select our number and edit it. We'll change the **Contact flow / IVR** to our newly imported `kvsStreamingFlow`
35 |
36 | 
37 |
38 |
39 | Now we're ready to start receiving data! All that remains is setting up the agent interface.
40 |
--------------------------------------------------------------------------------
/content/10_prereqs/30_twitter.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Create a Twitter App"
3 | chapter = false
4 | weight = 30
5 | +++
6 |
7 | Several of the following workshops involve the Twitter API to supply content and demonstrate a real world scenario. Twitter supports a number of APIs that all require a developer to register an application and collect some credentials. You'll need to create a regular twitter account before creating a twitter app.
8 |
9 | ### Step 1. Create a Twitter App
10 |
11 | 1. Navigate to https://developer.twitter.com/en/apps and signin with your twitter account (or create a twitter account).
12 |
13 | 2. Select "Create an app" in the top right corner.
14 | 
15 |
16 | 3. Now fill out the "App details" form.
17 |
18 | * **App name (required)** - this should be a unique name related to this workshop so you can recognize it later.
19 | * **Application description (required)** - this should be a brief description of the application over 100 characters. Something like "This is a demonstration application used to learn the Twitter API with AWS tools."
20 | * **Website URL (required)** - for now you can put in a personal site or https://ai-services.go-aws.com/ - other workshop may require you to change this.
21 | * **Tell us how this app will be used (required)** - here you need to explain to twitter that this is a demonstration application used to explore the twitter API and AWS AI APIs.
22 |
23 | 
24 |
25 | 4. After the app is created click on the "Keys and tokens" tab.
26 | 
27 |
28 | 5. The first two keys listed on this page are generated by Twitter and are specific to your application. They're the first half of the credentials used to make requests to Twitter and many requests can be made with just the application credentials. The second half of the credentials are specific to your twitter user (or whoever is using your application). Combined the two credentials let you make requests as your application **on behalf of** your user.
29 |
30 | {{% notice tip %}}
31 | This authorization and authentication model is often called OAuth and it's pretty standard for APIs across the web.
32 | {{% /notice %}}
33 |
34 | For now, Twitter's developer portal provides a convinient method for authenticating your own twitter user to the application you just created by clicking "Create" under "Access token & access token secret"
35 |
36 | 
37 |
38 | {{% notice warning %}}
39 | Keep these credentials secret. Do not publish them publically.
40 | {{% /notice %}}
41 |
42 | 6. Now we'll want to take down these credentials somewhere safe for use later in the lab.
43 | 
44 |
45 | {{% notice tip %}}
46 | A lot of folks store their application credentials in something like [Amazon Secrets Manager](https://aws.amazon.com/secrets-manager). This makes securely storing, accessing, sharing, and rotating secrets much easier than hard coding into them into environment variables.
47 | {{% /notice %}}
48 |
49 | From here you should be ready to start any of the workshops!
--------------------------------------------------------------------------------
/content/40_connect-transcribe/20_connect.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Create and Configure an Amazon Connect Instance"
3 | chapter = false
4 | weight = 20
5 | +++
6 |
7 | ## Provisioning an Amazon Connect Instance
8 |
9 | To get started we will provision an Amazon Connect instance.
10 |
11 | 1. First navigate to the [AWS Connect Console](https://console.aws.amazon.com/connect/).
12 | 2. Now click the **Add an instance** button
13 | 
14 | 3. To use Amazon Connect we'll need a user directory which we can create in the add instance wizard. Use a unique name for the URL like `ai-services-workshop-`.
15 | 
16 | 4. Create an administrator user and click **Next Step**.
17 | 
18 | 5. You can click through to the next screen accepting the default telephony options.
19 | 
20 | 6. You can also accept the default options for data storage and click **Next step**.
21 | 
22 | 7. Review the options and click **Create Instance**
23 | 
24 | 8. From there we can login to the connect instance with out administrator user.
25 |
26 | ## Configuring Connect Instance
27 |
28 | The first thing we can do is go through the Connect first launch wizard as we login. This will prompt us to select a phone number and supply a few sensible defaults.
29 | 
30 | 
31 |
32 | {{% notice note %}}
33 | It may take a few minutes for the number to become active.
34 | {{% /notice %}}
35 |
36 | The rest of the configuration takes place back in the [AWS Console for Connect](https://console.aws.amazon.com/connect/).
37 |
38 | 1. First click the link under **Instance Alias** that corresponds to the instance you just created.
39 | 2. Take note of the **Instance ARN** on this page for later, the value at the end of the ARN is what we will use to provision our CloudFormation resources later.
40 | 
41 | 3. Now click on the **Data storage** option on the far left and click **Edit** under the **Live media streaming** heading.
42 | 
43 | 4. From here create a prefix for your Amazon Kinesis Video (KVS) streams and select an encryption key and data retention period. Then click **Save** in the top right corner and click **Save** again in the bottom right corner.
44 | 
45 |
46 | Remember to take note of the instance alias and instance ARN - we'll use those in the next step.
47 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/layouts/partials/logo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/themes/hugo-theme-learn/exampleSite/content/cont/i18n/_index.fr.md:
--------------------------------------------------------------------------------
1 | ---
2 | date: 2016-04-09T16:50:16+02:00
3 | title: Multi-langue et i18n
4 | weight: 30
5 | ---
6 |
7 | **Learn** est complètement compatible avec le mode multi-langue d'Hugo.
8 |
9 | Il fournit :
10 |
11 | - Des *translation strings* pour les valeurs par défaut utilisées par le thème (Anglais et Français). N'hésitez pas à contribuer !
12 | - Génération automatique du menu avec le contenu multi-langue
13 | - Modification de la langue dans le navigateur
14 |
15 | 
16 |
17 | ## Configuration simple
18 |
19 | Après avoir appris [comment Hugo gère les sites multi-langue](https://gohugo.io/content-management/multilingual), définissez vos langues dans votre fichier `config.toml`.
20 |
21 | Par exemple, pour ce site, avec du contenu en français et en anglais.
22 |
23 | ```toml
24 | # Anglais est la langue par défaut
25 | defaultContentLanguage = "en"
26 | # Force d'avoir /en/ma-page et /fr/ma-page routes, même avec la langue par défaut.
27 | defaultContentLanguageInSubdir= true
28 |
29 | [Languages]
30 | [Languages.en]
31 | title = "Documentation for Hugo Learn Theme"
32 | weight = 1
33 | languageName = "English"
34 |
35 | [Languages.fr]
36 | title = "Documentation du thème Hugo Learn"
37 | weight = 2
38 | languageName = "Français"
39 | ```
40 |
41 | Puis, pour chaque nouvelle page, ajoutez *l'id* de la langue du fichier.
42 |
43 | - Le fichier `my-page.md` est découpé en deux fichiers :
44 | - en anglais : `my-page.en.md`
45 | - en français : `my-page.fr.md`
46 | - Le fichier `_index.md` est découpé en deux fichiers :
47 | - en anglais: `_index.en.md`
48 | - en français: `_index.fr.md`
49 |
50 | {{% notice info %}}
51 | Attention, seulement les pages traduites sont affichées dans le menu. Le contenu n'est pas remplacé par les pages de la langue par défaut.
52 | {{% /notice %}}
53 |
54 | {{% notice tip %}}
55 | Utilisez le paramètre du Front Matter [slug](https://gohugo.io/content-management/multilingual/#translate-your-content) pour traduire également les URLs.
56 | {{% /notice %}}
57 |
58 | ## Surcharger les *translation strings*
59 |
60 | Les *Translations strings* sont utilisées comme valeurs par défaut dans le thème (Bouton *Modifier la page*, Element de subsitution *Recherche*, etc.). Les traductions sont disponibles en français et en anglais mais vous pouvez utiliser n'importe quelle autre langue et surcharger avec vos propres valeurs.
61 |
62 | Pour surcharger ces valeurs, créer un nouveau fichier dans votre dossier i18n local `i18n/.toml` et inspirez vous du thème `themes/hugo-theme-learn/i18n/en.toml`
63 |
64 | D'ailleurs, ces traductions pour servir à tout le monde, donc svp prenez le temps de [proposer une Pull Request](https://github.com/matcornic/hugo-theme-learn/pulls) !
65 |
66 | ## Désactiver le changement de langue
67 |
68 | Vous pouvez changer de langue directement dans le navigateur. C'est une super fonctionnalité, mais vous avez peut-être besoin de la désactiver.
69 |
70 | Pour ce faire, ajouter le paramètre `disableLanguageSwitchingButton=true` dans votre `config.toml`
71 |
72 | ```toml
73 | [params]
74 | # Quand vous utilisez un site en multi-langue, désactive le bouton de changment de langue.
75 | disableLanguageSwitchingButton = true
76 | ```
77 |
78 | 
--------------------------------------------------------------------------------
/content/50_personalize/20_deploytemplate.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = "Deploy the App"
3 | chapter = false
4 | weight = 20
5 | +++
6 |
7 | ## Deploy the "Video Recommendation" Algorithm
8 |
9 | 1. The application will run on an EC2 instance, but at some point we will need to connect to the server in order to carry out some configuration task. To do this we need to have an *EC2 Key Pair* configured on the server that you also have access to on your computer; hence, we need to create and download a new one. Click on **EC2** from the list of all services by entering EC2 into the Find services box. This will bring you to the Amazon EC2 console home page.
10 |
11 | 
12 |
13 | 2. On the left-hand menu scroll down until you see **Key Pairs** and select it, and in the resulting dialog click on the **Create Key Pair** button. This will bring up a **Create Key Pair** dialog, where you need to enter the name of a new key pair - call it `myLabKey` and hit **Create**. This should automatically download the file, or you may need to manually do so.
14 |
15 | 
16 |
17 | 3. Click on the **Services** dropdown and select **CloudFormation** from the list of all services by entering CloudFormation into the Find services box. This will bring you to the Amazon CloudFormation console home page.
18 |
19 | 
20 |
21 | 4. We are going to deploy a pre-built application via a CloudFormation template - this will be a fully-functioning recommendation system, allowing access to multiple Amazon Personalize features. But it has one drawback - there are no models built into it! So we will create them in this lab, and when they are ready we will re-configure this application to use them. First, we'll deploy this skeleton application, which will require us to download this CloudFormation template file. Navigate to the following link, which will automatically save `cloudformation_template.yml` to your local computer.
22 |
23 | https://personalize-workshop-files.s3.amazonaws.com/cloudformation_template.yml
24 |
25 | 5. There will already be one stack deployed into your account, but we need to create another. On the CloudFormation screen, click on the **Create Stack** button to start the deployment wizard, and in the **Choose a template** section select **Upload a template to Amazon S3**, click on the **Choose file** button, and select the template file that you just downloaded. Then click on **Next**.
26 |
27 | 
28 |
29 | 6. The next screen asks for more configuration parameters, but only two of these are required: **Stack name** and **KeyName**. For Stack name enter something simple, such as *LabStack*, and select your previously-defined EC2 kay-pair, then click **Next** (not shown).
30 |
31 | 
32 |
33 | 7. There will then be two additional screens. The first is called *Options*, but we have none to enter, so just click on **Next**. The second is the final *Review* screen - **please verify** that the **KeyName** is the one that you just downloaded, and then click on **Create**. This will then go and create the environment, which will take around 10 minutes. Once the console returns to the main CloudFormation screen, you can continue with the next lab step.
--------------------------------------------------------------------------------