<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Don't forget about our meeting tomorrow. It's going to be
      awesome.</p>
    <p>If you are planning on attending, please RSVP on our new Meetup
      group: <a class="moz-txt-link-freetext" href="https://www.meetup.com/okcjug/events/236354888/">https://www.meetup.com/okcjug/events/236354888/</a></p>
    <p>
      <meta charset="utf-8">
    </p>
    <blockquote>
      <blockquote>
        <div id="event-title" class="line leading-bottom hover-to-edit"
          data-name="gRPC 101 for Java Developers"
          style="padding-bottom: 16px; color: rgba(0, 0, 0, 0.870588);
          font-family: "Graphik Meetup", helvetica, arial,
          sans-serif; font-size: 16px; font-style: normal;
          font-variant-ligatures: normal; font-variant-caps: normal;
          font-weight: normal; letter-spacing: normal; orphans: 2;
          text-align: start; text-indent: 0px; text-transform: none;
          white-space: normal; widows: 2; word-spacing: 0px;
          -webkit-text-stroke-width: 0px; background-color: rgb(255,
          255, 255); position: static;">
          <h1 class="text--display3" itemprop="name" style="font-size:
            28px; margin: 0px; padding: 0px 0px 8px; color: rgba(0, 0,
            0, 0.870588); stroke: transparent; fill: rgba(0, 0, 0,
            0.870588); font-weight: 600; letter-spacing: -0.02em;
            line-height: 1.25;">gRPC 101 for Java Developers</h1>
        </div>
        <time itemprop="startDate" datetime="2017-01-10T11:30:00-06:00"
          id="event-start-time" style="display: inline;">
          <h3 class="big flush--bottom" style="font-size: 20px;
            margin-top: 0px; margin-right: 0px; margin-bottom: 0px
            !important; margin-left: 0px; padding-top: 0px;
            padding-right: 0px; padding-bottom: 0px !important;
            padding-left: 0px; color: rgba(0, 0, 0, 0.870588); stroke:
            transparent; fill: rgba(0, 0, 0, 0.870588); font-weight:
            500; letter-spacing: -0.02em; line-height: 1.25;">Tuesday,
            January 10, 2017</h3>
        </time></blockquote>
      <div id="event-content" class="event-section leading-top"
        style="padding-top: 16px; position: relative; z-index: 100;
        color: rgba(0, 0, 0, 0.870588); font-family: "Graphik
        Meetup", helvetica, arial, sans-serif; font-size: 16px;
        font-style: normal; font-variant-ligatures: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: 2; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: 2;
        word-spacing: 0px; -webkit-text-stroke-width: 0px;
        background-color: rgb(255, 255, 255);">
        <ul class="paddedList" style="margin: 0px; padding: 0px;
          list-style: none;">
          <li id="event-when" class="event-stack event-stack-first
            hover-to-edit event-when complete" style="margin: 0px;
            padding: 0px; background: rgb(255, 255, 255); color: rgb(39,
            39, 39); position: static;">
            <div class="figureset">
              <div class="clearfix figureset-description"
                id="event-when-display" style="display: table-cell;
                vertical-align: top; width: auto; padding-left: 12px;">
                <div class="margin-bottom" style="margin-bottom: 16px;"><time
                    itemprop="startDate"
                    datetime="2017-01-10T11:30:00-06:00"
                    id="event-start-time" style="display: inline;"><span
                      class="subtext" style="display: inline;
                      animation-duration: 0.1s; animation-name: fontfix;
                      animation-iteration-count: 1;
                      animation-timing-function: linear;
                      animation-delay: 0.1s;">11:30 AM</span></time><span
                    class="Apple-converted-space"> </span><span
                    class="subtext" style="display: inline;
                    animation-duration: 0.1s; animation-name: fontfix;
                    animation-iteration-count: 1;
                    animation-timing-function: linear; animation-delay:
                    0.1s;">to</span><span class="Apple-converted-space"> </span><time
                    id="event-end-time" style="display: inline;"><span
                      class="subtext" style="display: inline;
                      animation-duration: 0.1s; animation-name: fontfix;
                      animation-iteration-count: 1;
                      animation-timing-function: linear;
                      animation-delay: 0.1s;">12:45 PM</span></time></div>
              </div>
            </div>
            <br>
          </li>
          <li id="event-where" class="event-stack hide-change changeable
            event-where complete hover-to-edit" data-id="24809421"
            data-name="StarSpace 46" data-address="1141 W Sheridan Ave,
            <span>Oklahoma City</span>,
            <span>OK</span>" style="margin: 0px; padding:
            8px 0px 0px; background: rgb(255, 255, 255); color: rgb(39,
            39, 39); position: static;">
            <div class="figureset">
              <div class="clearfix figureset-description"
                id="event-where-display" itemprop="location"
                itemscope="" itemtype="http://schema.org/Place"
                style="display: table-cell; vertical-align: top; width:
                auto; padding-left: 12px;">
                <h3 class="big flush--bottom" itemprop="name"
                  style="font-size: 20px; margin-top: 0px; margin-right:
                  0px; margin-bottom: 0px !important; margin-left: 0px;
                  padding-top: 0px; padding-right: 0px; padding-bottom:
                  0px !important; padding-left: 0px; color: rgba(0, 0,
                  0, 0.870588); stroke: transparent; fill: rgba(0, 0, 0,
                  0.870588); font-weight: 500; letter-spacing: -0.02em;
                  line-height: 1.25;"><a
href="https://maps.google.com/maps?f=q&hl=en&q=1141+W+Sheridan+Ave%2C+Oklahoma+City%2C+OK%2C+us"
                    target="_blank" title="" style="display: inline;
                    cursor: pointer; color: rgb(31, 36, 204);
                    text-decoration: none; animation-duration: 0.1s;
                    animation-name: fontfix; animation-iteration-count:
                    1; animation-timing-function: linear;
                    animation-delay: 0.1s;">StarSpace 46</a></h3>
                <p class="event-where-address small" itemprop="address"
                  itemscope=""
                  itemtype="http://schema.org/PostalAddress"
                  style="margin: 0px 0px 16px; padding: 0px;
                  animation-duration: 0.1s; animation-name: fontfix;
                  animation-iteration-count: 1;
                  animation-timing-function: linear; animation-delay:
                  0.1s; font-size: 13px; line-height: 17.42px;">1141 W
                  Sheridan Ave,<span class="Apple-converted-space"> </span><span
                    style="display: inline; animation-duration: 0.1s;
                    animation-name: fontfix; animation-iteration-count:
                    1; animation-timing-function: linear;
                    animation-delay: 0.1s;">Oklahoma City</span>,<span
                    class="Apple-converted-space"> </span><span
                    style="display: inline; animation-duration: 0.1s;
                    animation-name: fontfix; animation-iteration-count:
                    1; animation-timing-function: linear;
                    animation-delay: 0.1s;">OK</span><span
                    class="Apple-converted-space"> </span><span
                    class="set-meeting-location" data-lat="35.466789"
                    data-lon="-97.532166" style="display: inline;
                    animation-duration: 0.1s; animation-name: fontfix;
                    animation-iteration-count: 1;
                    animation-timing-function: linear; animation-delay:
                    0.1s;">(<a
                      href="https://www.meetup.com/okcjug/events/236354888/"
                      style="display: inline; cursor: pointer; color:
                      rgb(31, 36, 204); text-decoration: none;
                      animation-duration: 0.1s; animation-name: fontfix;
                      animation-iteration-count: 1;
                      animation-timing-function: linear;
                      animation-delay: 0.1s;">edit map</a>)</span></p>
              </div>
            </div>
          </li>
          <li id="event-desc" class="hover-to-edit-noposchange
            event-desc hover-to-edit J_noBorderBottom
            hover-to-edit-hovering" style="margin: 0px; padding: 8px 0px
            0px; line-height: 1.35em; position: relative;
            background-color: rgb(230, 230, 230); border-bottom: none
            !important;">
            <div id="event-description-wrap" itemprop="description"
              class="line redactor-description" style="width: 500px;
              word-wrap: break-word; word-break: break-word;
              white-space: normal; overflow: hidden; line-height: 1.4;">
              <p style="margin: 0px 0px 16px; padding: 0px;
                animation-duration: 0.1s; animation-name: fontfix;
                animation-iteration-count: 1; animation-timing-function:
                linear; animation-delay: 0.1s;">gRPC is a high
                performance, open source, general RPC framework that
                puts mobile and HTTP/2 first. gRPC is based on many
                years of Google's experience in building distributed
                systems - it is designed to be low latency, bandwidth
                and CPU efficient, to create massively distributed
                systems that span data centers, as well as power mobile
                apps, real-time communications, IoT devices and APIs.
                It's also interoperable between multiple languages.</p>
              <p style="margin: 0px 0px 16px; padding: 0px;
                animation-duration: 0.1s; animation-name: fontfix;
                animation-iteration-count: 1; animation-timing-function:
                linear; animation-delay: 0.1s;"><br>
                But beyond that fact that it's more efficient than REST,
                we'll look into how to use gRPC's streaming API, where
                you can establish server-side streaming, client-side
                streaming, and bidirectional streaming! This allows
                developers to build sophisticated real-time applications
                with ease.</p>
              <p style="margin: 0px 0px 16px; padding: 0px;
                animation-duration: 0.1s; animation-name: fontfix;
                animation-iteration-count: 1; animation-timing-function:
                linear; animation-delay: 0.1s;"><br>
                In addition to learning about gRPC and HTTP/2 concepts
                with code and demonstrations, we'll also deep dive into
                integration with existing build systems such as Maven
                and Gradle, but also frameworks such as Spring Boot and
                RxJava.</p>
              <p style="margin: 0px 0px 16px; padding: 0px;
                animation-duration: 0.1s; animation-name: fontfix;
                animation-iteration-count: 1; animation-timing-function:
                linear; animation-delay: 0.1s;"><br>
                Writing/using a Spring Boot starter to run gRPC server</p>
              <p style="margin: 0px 0px 16px; padding: 0px;
                animation-duration: 0.1s; animation-name: fontfix;
                animation-iteration-count: 1; animation-timing-function:
                linear; animation-delay: 0.1s;">Configuring projects to
                generate gRPC stub code</p>
              <p style="margin: 0px 0px 16px; padding: 0px;
                animation-duration: 0.1s; animation-name: fontfix;
                animation-iteration-count: 1; animation-timing-function:
                linear; animation-delay: 0.1s;">Integrating w/ RxJava's
                observable sequences, which matches very well with
                gRPC's Stream Observable constructs</p>
              <p style="margin: 0px 0px 16px; padding: 0px;
                animation-duration: 0.1s; animation-name: fontfix;
                animation-iteration-count: 1; animation-timing-function:
                linear; animation-delay: 0.1s;">Speaker Bio:<span
                  class="Apple-converted-space"> </span><br>
                Ray Tsang is a Developer Advocate for the Google Cloud
                Platform. Ray had extensive hands on cross-industry
                enterprise systems integration delivery and management
                experiences during his time at Accenture, managed full
                stack application development, DevOps, and ITOps. Ray
                specialized in middleware, big data, and PaaS products
                during his time at Red Hat while contributing to open
                source projects, such as Infinispan. Aside from
                technology, Ray enjoys traveling and adventures.</p>
              <p style="margin: 0px 0px 16px; padding: 0px;
                animation-duration: 0.1s; animation-name: fontfix;
                animation-iteration-count: 1; animation-timing-function:
                linear; animation-delay: 0.1s;">Follow Ray on Twitter
                @saturnism (<a href="https://twitter.com/saturnism"
                  class="linkified" style="display: inline; cursor:
                  pointer; color: rgb(31, 36, 204); text-decoration:
                  none; animation-duration: 0.1s; animation-name:
                  fontfix; animation-iteration-count: 1;
                  animation-timing-function: linear; animation-delay:
                  0.1s; word-wrap: break-word; word-break: break-all;
                  white-space: normal;">https://twitter.com/saturnism</a>)</p>
            </div>
          </li>
        </ul>
      </div>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Jason Lee
<a class="moz-txt-link-freetext" href="http://cubtracker.com">http://cubtracker.com</a> 
<a class="moz-txt-link-freetext" href="http://blogs.steeplesoft.com">http://blogs.steeplesoft.com</a>
<a class="moz-txt-link-freetext" href="http://twitter.com/jasondlee">http://twitter.com/jasondlee</a>
<a class="moz-txt-link-freetext" href="http://blogs.steeplesoft.com/+">http://blogs.steeplesoft.com/+</a>
<a class="moz-txt-link-freetext" href="http://blogs.steeplesoft.com/in">http://blogs.steeplesoft.com/in</a></pre>
  </body>
</html>