<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>