<!--
 ▄▄▄       ██▓███   ▄▄▄       ▄████▄   ██░ ██ ▓█████     ██▓  ▄████  ███▄    █  ██▓▄▄▄█████▓▓█████
▒████▄    ▓██░  ██▒▒████▄    ▒██▀ ▀█  ▓██░ ██▒▓█   ▀    ▓██▒ ██▒ ▀█▒ ██ ▀█   █ ▓██▒▓  ██▒ ▓▒▓█   ▀
▒██  ▀█▄  ▓██░ ██▓▒▒██  ▀█▄  ▒▓█    ▄ ▒██▀▀██░▒███      ▒██▒▒██░▄▄▄░▓██  ▀█ ██▒▒██▒▒ ▓██░ ▒░▒███
░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█  ▄    ░██░░▓█  ██▓▓██▒  ▐▌██▒░██░░ ▓██▓ ░ ▒▓█  ▄
 ▓█   ▓██▒▒██▒ ░  ░ ▓█   ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒   ░██░░▒▓███▀▒▒██░   ▓██░░██░  ▒██▒ ░ ░▒████▒
 ▒▒   ▓▒█░▒▓▒░ ░  ░ ▒▒   ▓▒█░░ ░▒ ▒  ░ ▒ ░░▒░▒░░ ▒░ ░   ░▓   ░▒   ▒ ░ ▒░   ▒ ▒ ░▓    ▒ ░░   ░░ ▒░ ░
  ▒   ▒▒ ░░▒ ░       ▒   ▒▒ ░  ░  ▒    ▒ ░▒░ ░ ░ ░  ░    ▒ ░  ░   ░ ░ ░░   ░ ▒░ ▒ ░    ░     ░ ░  ░
  ░   ▒   ░░         ░   ▒   ░         ░  ░░ ░   ░       ▒ ░░ ░   ░    ░   ░ ░  ▒ ░  ░         ░
      ░  ░               ░  ░░ ░       ░  ░  ░   ░  ░    ░        ░          ░  ░              ░  ░
-->

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <link rel="canonical" href="https://ignite.apache.org/screencasts.html"/>
    <!--#include virtual="/includes/scriptshead.html" -->

    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
    <meta http-equiv="Pragma" content="no-cache"/>
    <meta http-equiv="Expires" content="0"/>
    <title>Videos and Recordings - Apache Ignite</title>
    <!--#include virtual="/includes/styles.html" -->
</head>
<body>
<!--#include virtual="/includes/header.html" -->
<article>
    <header>
        <div class="container">

            <h1>Apache Ignite <strong>Videos and Recordings</strong></h1>
        </div>
    </header>
    <div class="container" id="screencasts">

        <p>
            Apache Ignite is a feature-rich in-memory computing platform that can power many use cases.
            Explore our collection of videos featuring presentations of Ignite community members as well as short
            screencasts.
        </p>

        <h2>Apache Ignite Essentials</h2>
        <div class="row">
            <div class="col-md-4">

                <a class="video" data-target="#videoModal" href="#imc-modal"
                   data-title="In-Memory Computing Essentials"
                   data-video-url="https://www.youtube.com/embed/UeQKuAQaMNU" data-toggle="modal">
                    <p>In-Memory Computing <br/>Essentials </p>
                    <span>Webinar Recording</span>
                </a>

            </div>

            <div class="col-md-4">

                <a class="video" data-target="#videoModal" href="#compute-modal" data-toggle="modal"
                   data-title="Distributed Computing With Apache Ignite&reg;"
                   data-video-url="https://www.youtube.com/embed/hrnrsIkCnI0">

                    <p>DISTRIBUTED COMPUTING <br/> WITH APACHE IGNITE</p>
                    <span>Webinar Recording</span>
                </a>

            </div>

            <div class="col-md-4">

                <a class="video" data-target="#videoModal" href="#tx-modal" data-toggle="modal"
                   data-title="Architects' Guide for Apache Ignite ACID Transactions and Consistency"
                   data-video-url="https://www.youtube.com/embed/TCsl-W0tsEE">

                    <p>CONSISTENCY AND TRANSACTIONS <br/> OF APACHE IGNITE</p>
                    <span>Webinar Recording</span>
                </a>

            </div>

        </div>

        <div style="height: 70px"></div>

        <div class="row">
            <div class="col-md-4">

                <a class="video" data-target="#videoModal" href="#sql-modal"
                   data-title="Getting Started With Ignite SQL"
                   data-video-url="https://www.youtube.com/embed/eYV-tNLzIts" data-toggle="modal">
                    <p>Apache Ignite SQL <br/>Essentials </p>
                    <span>Webinar Recording</span>
                </a>

            </div>

            <div class="col-md-4">

                <a class="video" data-target="#videoModal" href="#ignite-in-kubernetes-modal" data-toggle="modal"
                   data-title="How-to for Apache Ignite Deployments in Kubernetes"
                   data-video-url="https://www.youtube.com/embed/38YgdAOs038">

                    <p>Deploying Apache Ignite <br/> in Kubernetes</p>
                    <span>Webinar Recording</span>
                </a>

            </div>

            <div class="col-md-4">

                <a class="video" data-target="#videoModal" href="#ignite-ml-modal" data-toggle="modal"
                   data-title="Architects' Guide for Apache Ignite Machine Learning"
                   data-video-url="https://www.youtube.com/embed/eGlmZoBSS8g">

                    <p>Machine Learning <br/> With Apache Ignite</p>
                    <span>Webinar Recording</span>
                </a>

            </div>

        </div>

        <div aria-hidden="true" aria-labelledby="videoModal" class="modal fade" id="videoModal" role="dialog"
             tabindex="-1">
            <div class="modal-dialog" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <button aria-label="Close" class="close" data-dismiss="modal" type="button"><span
                                aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title"></h4>
                    </div>

                    <div class="modal-body">
                        <iframe id="data-grid" src="" frameborder="0" allowfullscreen=""></iframe>
                    </div>

                </div>
            </div>
        </div>

        <div style="height: 30px"></div>
    </div>

    <div class="container">
        <p class="text-center">
        Explore the <a href="https://www.youtube.com/channel/UChYD3lCEnzHlWioUb2sNgSg"
                       target="_blank" rel="noopener">full collection of Apache Ignite videos</a> and recordings on YouTube.
        </p>
    </div>
</article>
<!--#include virtual="/includes/footer.html" -->

<!--#include virtual="/includes/scripts.html" -->

<script type="text/javascript">
    jQuery('#videoModal').on('show.bs.modal', function (event) {
        console.log(jQuery(event.relatedTarget));

        const title = jQuery(event.relatedTarget).data('title');
        jQuery(this).find('h4').text(title);

        const video = jQuery(event.relatedTarget).data('video-url');
        jQuery(this).find('iframe').attr('src', video);
    });

</script>
</body>
</html>
