<?xml version="1.0" encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="https://raibledesigns.com/roller-ui/styles/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:app="http://www.w3.org/2007/app"
      xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">

    <title type="html">Search for [vender monedas FC  26 u7buy Visit&amp;amp;amp;amp;amp] in weblog rd</title>
    <subtitle type="html">Search results for [vender monedas FC  26 u7buy Visit&amp;amp;amp;amp;amp] within weblog Raible Designs</subtitle>
    <id>https://raibledesigns.com/rd/feed/entries/atom?q=vender+monedas+FC++26+u7buy+Visit%26amp%3Bamp%3Bamp%3Bamp%3Bamp</id>

    <link rel="self" type="application/atom+xml" 
        href="https://raibledesigns.com/rd/feed/entries/atom?q=vender+monedas+FC++26+u7buy+Visit%26amp%3Bamp%3Bamp%3Bamp%3Bamp" />

    <link rel="alternate" type="text/html" 
        href="https://raibledesigns.com/rd/search?q=vender+monedas+FC++26+u7buy+Visit%26amp%3Bamp%3Bamp%3Bamp%3Bamp" />

    <link rel="search" type="application/opensearchdescription+xml" 
        href="https://raibledesigns.com/roller-services/opensearch/rd" />
    <opensearch:Query role="request" searchTerms="vender monedas FC  26 u7buy Visit&amp;amp;amp;amp;amp" startPage="1" />

    <link rel="first" type="application/atom+xml" href="https://raibledesigns.com/rd/feed/entries/atom?q=vender+monedas+FC++26+u7buy+Visit%26amp%3Bamp%3Bamp" />
    <updated>2026-05-25T13:53:18-06:00</updated>
    <generator uri="http://roller.apache.org" version="5.0.3 (1388864191739:dave)">Apache Roller</generator>

        <entry>
        <id>https://raibledesigns.com/rd/entry/2022_a_year_in_review</id>
        <title type="html">2022 - A Year in Review</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/2022_a_year_in_review"/>
        <published>2023-02-10T09:34:31-07:00</published>
        <updated>2023-02-12T01:39:47-07:00</updated> 
        <category term="/General" label="General" />
        <category term="covid" scheme="http://roller.apache.org/ns/tags/" />
        <category term="vacation" scheme="http://roller.apache.org/ns/tags/" />
        <category term="hefethebus" scheme="http://roller.apache.org/ns/tags/" />
        <category term="okta" scheme="http://roller.apache.org/ns/tags/" />
        <category term="2022" scheme="http://roller.apache.org/ns/tags/" />
        <category term="blogging" scheme="http://roller.apache.org/ns/tags/" />
        <category term="family" scheme="http://roller.apache.org/ns/tags/" />
        <category term="yearinreview" scheme="http://roller.apache.org/ns/tags/" />
        <category term="apacheroller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="stoutthesyncro" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;
  When 2022 started, I was excited to start traveling again. We started things off with a trip to Mexico and worked remotely from the Cabo San Lucas marina for a couple of weeks. In March, the kids and I ventured to the Cayman Islands for spring break. We arrived home to a red-hot DU hockey team and followed them all the way to the Frozen Four. I went to college at DU, aka the University of Denver, and I&apos;m a proud alumnus.
&lt;/p&gt;
&lt;p&gt;
  I made my way to Boston to work on a presentation with a co-worker, nicely coinciding with the Frozen Four tournament. A few friends and I had the time of our lives watching DU win the NCAA championship. After staying up late and celebrating, I felt awful the next day. I flew home and still felt terrible on Monday. Figuring it was a bad cold from over-indulgence, I took a COVID test, tested negative, and hopped on a plane to Devnexus on Tuesday. That week did not end well.
&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I tested positive for COVID this morning. I&amp;#39;m so sorry to all the people and friends I came in contact with at &lt;a href= &quot;https://twitter.com/devnexus?ref_src=twsrc%5Etfw&quot;&gt;@devnexus&lt;/a&gt; this week. I feel like such an ass. &lt;br&gt;&lt;br&gt;I thought I was OK because I tested negative Tuesday morning and never lost my sense of taste and smell. &lt;a href=&quot;https://t.co/lR5tdOM2gP&quot;&gt;https://t.co/lR5tdOM2gP&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1514988938083057668?ref_src=twsrc%5Etfw&quot;&gt;April 15, 2022&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;
  From &lt;a href=&quot;https://raibledesigns.com/rd/entry/2021_a_year_in_review&quot;&gt;last year&apos;s year in review&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote class=&quot;quote&quot;&gt;
  I only have one goal for 2022: &lt;strong&gt;smile more&lt;/strong&gt;.
&lt;/blockquote&gt;
&lt;p&gt;
I rediscovered one of the things that makes me smile a lot: in-person meetups with friends. I had so much fun at Devnexus seeing old friends from the conference circuit. This continued at Spring I/O in Barcelona and at JavaOne in the fall. Being with family always makes me smile too. A trip to Alaska to celebrate my parent&apos;s 50th wedding anniversary was a highlight of the year!
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52258188360_0ef8cbac60_c.jpg&quot; title=&quot;Alaska from the road&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52258188360/in/album-72177720300991585/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52258188360_0ef8cbac60.jpg&quot; width=&quot;500&quot; alt=&quot;Alaska from the road&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt; I will look back on 2022 using the following categories.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#professional&quot;&gt;Professional&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#speaking&quot;&gt;Speaking&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#community&quot;&gt;Community&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#projects&quot;&gt;Projects&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#personal&quot;&gt;Personal&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#hefe-and-stout&quot;&gt;Hefe the Bus and Stout the Syncro&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#2023&quot;&gt;2023&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary>
        <content type="html">&lt;p&gt;
  When 2022 started, I was excited to start traveling again. We started things off with a trip to Mexico and worked remotely from the Cabo San Lucas marina for a couple of weeks. In March, the kids and I ventured to the Cayman Islands for spring break. We arrived home to a red-hot DU hockey team and followed them all the way to the Frozen Four. I went to college at DU, aka the University of Denver, and I&apos;m a proud alumnus.
&lt;/p&gt;
&lt;p&gt;
  I made my way to Boston to work on a presentation with a co-worker, nicely coinciding with the Frozen Four tournament. A few friends and I had the time of our lives watching DU win the NCAA championship. After staying up late and celebrating, I felt awful the next day. I flew home and still felt terrible on Monday. Figuring it was a bad cold from over-indulgence, I took a COVID test, tested negative, and hopped on a plane to Devnexus on Tuesday. That week did not end well.
&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I tested positive for COVID this morning. I&amp;#39;m so sorry to all the people and friends I came in contact with at &lt;a href= &quot;https://twitter.com/devnexus?ref_src=twsrc%5Etfw&quot;&gt;@devnexus&lt;/a&gt; this week. I feel like such an ass. &lt;br&gt;&lt;br&gt;I thought I was OK because I tested negative Tuesday morning and never lost my sense of taste and smell. &lt;a href=&quot;https://t.co/lR5tdOM2gP&quot;&gt;https://t.co/lR5tdOM2gP&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1514988938083057668?ref_src=twsrc%5Etfw&quot;&gt;April 15, 2022&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;
  From &lt;a href=&quot;https://raibledesigns.com/rd/entry/2021_a_year_in_review&quot;&gt;last year&apos;s year in review&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote class=&quot;quote&quot;&gt;
  I only have one goal for 2022: &lt;strong&gt;smile more&lt;/strong&gt;.
&lt;/blockquote&gt;
&lt;p&gt;
I rediscovered one of the things that makes me smile a lot: in-person meetups with friends. I had so much fun at Devnexus seeing old friends from the conference circuit. This continued at Spring I/O in Barcelona and at JavaOne in the fall. Being with family always makes me smile too. A trip to Alaska to celebrate my parent&apos;s 50th wedding anniversary was a highlight of the year!
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52258188360_0ef8cbac60_c.jpg&quot; title=&quot;Alaska from the road&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52258188360/in/album-72177720300991585/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52258188360_0ef8cbac60.jpg&quot; width=&quot;500&quot; alt=&quot;Alaska from the road&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt; I will look back on 2022 using the following categories.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#professional&quot;&gt;Professional&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#speaking&quot;&gt;Speaking&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#community&quot;&gt;Community&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#projects&quot;&gt;Projects&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#personal&quot;&gt;Personal&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#hefe-and-stout&quot;&gt;Hefe the Bus and Stout the Syncro&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2022_a_year_in_review#2023&quot;&gt;2023&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;professional&quot;&gt;Professional&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;For those stumbling upon this post with no context, I&apos;m an open source developer that works at &lt;a
    href= &quot;https://developer.auth0.com&quot;&gt;Okta&lt;/a&gt;. My title is officially &quot;Developer Advocate,&quot; but all the code and words
  I write are distributed as open source.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;
  This year, I focused on creating YouTube videos more than blog posts. On the &lt;a href=&quot;https://youtube.com/c/oktadev&quot;&gt;OktaDev
  YouTube Channel&lt;/a&gt;, I created 12 videos (same as 2021). My most popular video (11K views) was based on a blog post
  I wrote in January called &lt;a href= &quot;https://auth0.com/blog/full-stack-java-with-react-spring-boot-and-jhipster/&quot;&gt;Full Stack Java with React, Spring Boot, and JHipster&lt;/a&gt;.
&lt;/p&gt;
&lt;div style= &quot;text-align: center&quot;&gt;
  &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/PECnQs5bVbQ&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;
  I published the &lt;a href=&quot;https://raibledesigns.com/rd/entry/the_angular_mini_book_2&quot;&gt;Angular Mini-Book 2.0&lt;/a&gt;. When writing blog posts, I focused mostly on Java, REST APIs, and JHipster, with a bit of JavaScript too. I authored 11 blog posts on the &lt;a href=&quot;https://developer.okta.com/blog&quot;&gt;Okta developer blog&lt;/a&gt;:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/01/06/native-java-helidon&quot;&gt;Build REST APIs and Native Java Apps with Helidon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/03/03/spring-native-jhipster&quot;&gt;Introducing Spring Native for JHipster: Serverless Full-Stack Made Easy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/04/22/github-actions-graalvm&quot;&gt;Use GitHub Actions to Build GraalVM Native Images&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/05/12/ionic-angular-jhipster&quot;&gt;Build Secure Ionic Apps with Angular and JHipster&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/05/23/java-rest-api-quarkus&quot;&gt;Kickstart a Java REST API with Quarkus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/05/25/java-rest-api-spring-boot&quot;&gt;Start a Java REST API with Spring Boot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/05/31/java-rest-api-micronaut&quot;&gt;Launch a Java REST API with Micronaut&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/06/02/java-rest-api-helidon&quot;&gt;Create a Java REST API with Helidon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/06/16/oauth-java&quot;&gt;OAuth for Java Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/06/17/simple-crud-react-and-spring-boot&quot;&gt;Use React and Spring Boot to Build a Simple CRUD App&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/08/05/spring-boot-saml&quot;&gt;Get Started with Spring Boot and SAML&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I published four blog posts to the &lt;a href=&quot;https://auth0.com/blog/&quot;&gt;Auth0 blog&lt;/a&gt;. 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://auth0.com/blog/add-oidc-to-angular-apps-quickly/&quot;&gt;Add OpenID Connect to Angular Apps Quickly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://auth0.com/blog/integrate-react-native-and-spring-boot-securely/&quot;&gt;Integrate React Native and Spring Boot Securely&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://auth0.com/blog/micro-frontends-for-java-microservices/&quot;&gt;Micro Frontends for Java Microservices&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;https://auth0.com/blog/quick-javascript-authentication/&quot;&gt;Quick JavaScript Authentication with OktaDev Schematics&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
  Last year, I was celebrating new teammates &lt;a
    href=&quot;https://twitter.com/deepu105&quot;&gt;Deepu K Sasidharan&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/alisaduncan&quot;&gt;Alisa
  Duncan&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/qedunham&quot;&gt;E. Dunham&lt;/a&gt;, and &lt;a href=&quot;https://twitter.com/tanay1337&quot;&gt;Tanay
  Pant&lt;/a&gt;. This summer, I moved to the Auth0 DevRel team and have a plethora of new teammates to collaborate with. I&apos;m excited to help grow Auth0 usage in the Java community, and I&apos;m pumped to work closely with Deepu to make it happen.
&lt;/p&gt;
&lt;p&gt;
  I continued to stream meetups for the Denver/Boulder JUG and Denver Open Source Users Group (DOSUG). We used &lt;a
    href= &quot;https://streamyard.com/&quot;&gt;StreamYard&lt;/a&gt; and YouTube to broadcast our meetups. We published nine videos to the &lt;a
    href= &quot;https://www.youtube.com/denverjug&quot;&gt;Denver JUG YouTube Channel&lt;/a&gt;. We only published two videos to the &lt;a
    href= &quot;https://www.youtube.com/denveropensource&quot;&gt;Denver Open Source Users Group Channel&lt;/a&gt;, but we did meet in-person! We&apos;re grateful to the folks at &lt;a href=&quot;https://www.thriveworkplace.com/&quot;&gt;Thrive
  Workplace&lt;/a&gt; for donating their space.
&lt;/p&gt;
&lt;p&gt;Denver JUG is now up to 3,688 members. Our most popular video in 2022 was from Gordon Weakliem on &lt;a
    href= &quot;https://www.youtube.com/watch?v=3LH9tJ6qSGQ&quot;&gt;Coding Interviews for Java Developers&lt;/a&gt;.
&lt;/p&gt;

&lt;h3 id=&quot;speaking&quot;&gt;Speaking&lt;/h3&gt;
&lt;p&gt;
  According to TripIt, I took 24 trips, to 45 cities, in 11 countries. 13 trips were work-related, and the rest involved traveling to see family. That&apos;s 11 more trips than in 2021, and I had 123 days on the road (+46 from 2021). United 1K was achieved. 
&lt;/p&gt;
&lt;p&gt;
  &lt;a href= &quot;https://speakerdeck.com/mraible&quot;&gt;My Speaker Deck profile&lt;/a&gt; shows 12 presentations at 12 events. 11 of
  those were in-person. I missed Devoxx France because I caught COVID in April at the NCAA Frozen Four tournament. I later &lt;a href= &quot;https://www.youtube.com/watch?v=dp3YbdIEyWU&quot;&gt;live-streamed my presentation on Comparing Native Java REST API Frameworks&lt;/a&gt;. This was also my &lt;a
    href=&quot;https://speakerdeck.com/mraible/comparing-native-java-rest-api-frameworks-devoxx-france-2022&quot;&gt;most-viewed presentation on Speaker Deck&lt;/a&gt; with 3.1K views.
&lt;/p&gt;
&lt;table style=&quot;margin: -10px auto&quot;&gt;
  &lt;tbody&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;ol&gt;
        &lt;li&gt;&lt;a href=&quot;https://devnexus.org/&quot;&gt;Devnexus&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.devoxx.fr/&quot;&gt;Devoxx France&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://2022.springio.net/&quot;&gt;Spring I/O&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.seajug.org/&quot;&gt;Seattle JUG&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://corkjug.ie/&quot;&gt;Cork JUG&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.dubjug.org&quot;&gt;Dublin JUG&lt;/a&gt;&lt;/li&gt;
      &lt;/ol&gt;
    &lt;/td&gt;
    &lt;td&gt;
      &lt;ol start=&quot;7&quot;&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/belfastjug/&quot;&gt;Belfast JUG&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;http://www.apachecon.com/&quot;&gt;ApacheCon North America&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://javaone.com&quot;&gt;JavaOne&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/ManchesterUK-Java-Community/&quot;&gt;Manchester JUG&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Londonjavacommunity/&quot;&gt;London JUG&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;https://www.djug.org/&quot;&gt;Denver JUG&lt;/a&gt;&lt;/li&gt;
      &lt;/ol&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I had a full room of attendees for my talk on Reactive Microservices at Spring I/O in Barcelona. Even the &lt;a href=&quot;https://twitter.com/xeraa/status/1529766569873637377&quot;&gt;overflow room was packed&lt;/a&gt;!&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;My &lt;a href=&quot;https://twitter.com/jhipster?ref_src=twsrc%5Etfw&quot;&gt;@jhipster&lt;/a&gt; talk at &lt;a href=&quot;https://twitter.com/spring_io?ref_src=twsrc%5Etfw&quot;&gt;@spring_io&lt;/a&gt; had a lot of awesome people in it! Thank you all for your enthusiasm and smiles. &amp;#x1F603; &lt;a href=&quot;https://t.co/u4pOtOSbkl&quot;&gt;pic.twitter.com/u4pOtOSbkl&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1529782041126088704?ref_src=twsrc%5Etfw&quot;&gt;May 26, 2022&lt;/a&gt;&lt;/blockquote&gt; 
&lt;/div&gt;
&lt;p&gt;
  I had a lot of fun doing a September JUG tour in Ireland. My folks tagged along. It was a fast-moving trip with new hotels most nights. At their age, they&apos;ll unlikely join me for a JUG tour again. &amp;#x1F605;
&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;We stopped by the &lt;a href=&quot;https://twitter.com/okta?ref_src=twsrc%5Etfw&quot;&gt;@okta&lt;/a&gt; Dublin office this morning in the Bloodstone building. Great location with a fun vibe about it. &amp;#x1F44D; &lt;a href=&quot;https://t.co/vvaeswAvT0&quot;&gt;pic.twitter.com/vvaeswAvT0&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1575432335230730240?ref_src=twsrc%5Etfw&quot;&gt;September 29, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;JavaOne returned in October and was held in Las Vegas for the first time. I spoke about &lt;a href=&quot;https://speakerdeck.com/mraible/micro-frontends-for-java-developers-javaone-2022&quot;&gt;Micro Frontends for Java Microservices&lt;/a&gt; and loved spending time with the Java community.&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;The community at &lt;a href=&quot;https://twitter.com/hashtag/JavaOne?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#JavaOne&lt;/a&gt; is amazing! &lt;a href=&quot;https://t.co/IwOdr3V7gx&quot;&gt;pic.twitter.com/IwOdr3V7gx&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1582579074400063488?ref_src=twsrc%5Etfw&quot;&gt;October 19, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Late October brought me to the UK for another JUG tour. It was a lot of fun hosting it at the Okta office there.&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;It was a pleasure talking with the &lt;a href=&quot;https://twitter.com/ljcjug?ref_src=twsrc%5Etfw&quot;&gt;@ljcjug&lt;/a&gt; tonight about web app security for Java developers. The &lt;a href=&quot;https://twitter.com/hashtag/Java?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#Java&lt;/a&gt; community is strong in London! &amp;#x1F4AA; &lt;br&gt;&lt;br&gt;Thanks to &lt;a href=&quot;https://twitter.com/OctopusDeploy?ref_src=twsrc%5Etfw&quot;&gt;@OctopusDeploy&lt;/a&gt; for sponsoring and &lt;a href=&quot;https://twitter.com/okta?ref_src=twsrc%5Etfw&quot;&gt;@okta&lt;/a&gt; for hosting. It was fun to see a full house with all the seats filled by the end. &amp;#x1F603; &lt;a href=&quot;https://t.co/SmtvRgw1Jh&quot;&gt;pic.twitter.com/SmtvRgw1Jh&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1585743684749828096?ref_src=twsrc%5Etfw&quot;&gt;October 27, 2022&lt;/a&gt;&lt;/blockquote&gt; 
&lt;/div&gt;
&lt;p&gt;I originally planned my UK JUG tour to coincide with the Broncos playing in London, but their record was so bad by then that I flew home early. Coincidentally, they won that weekend.&lt;/p&gt;
&lt;p&gt;Oktane followed soon after. It was the first time meeting some of my teammates in-person. I wore an &lt;a href=&quot;https://twitter.com/okta/status/1590509668685733895&quot;&gt;{ okta } cape&lt;/a&gt; and thoroughly enjoyed the developer track we assembled.&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Excited for the developer keynote at &lt;a href=&quot;https://twitter.com/hashtag/Oktane22?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#Oktane22&lt;/a&gt;! &lt;a href=&quot;https://t.co/Jy2XPDoIxx&quot;&gt;pic.twitter.com/Jy2XPDoIxx&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1590488396983840769?ref_src=twsrc%5Etfw&quot;&gt;November 9, 2022&lt;/a&gt;&lt;/blockquote&gt; 
&lt;/div&gt;
&lt;p&gt;
  In December, we had our first in-person Denver JUG meetup since the pandemic began. It was awesome seeing everyone again!
&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
  &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Had a blast at the &lt;a href=&quot;https://twitter.com/denverjug?ref_src=twsrc%5Etfw&quot;&gt;@denverjug&lt;/a&gt; holiday party tonight! Thanks to all the local &lt;a href= &quot;https://twitter.com/java?ref_src=twsrc%5Etfw&quot;&gt;@java&lt;/a&gt; folks that joined in the fun. &amp;#x1F600; &lt;a href=&quot;https://t.co/sI9tsbrlk7&quot;&gt;pic.twitter.com/sI9tsbrlk7&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1603247609258319873?ref_src=twsrc%5Etfw&quot;&gt;December 15, 2022&lt;/a&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt; We&apos;ve had a couple of meetups since then but are still looking for a nice venue to gather. Frank Delporte recently interviewed the organizers for the Boulder and Denver JUGs on the Foojay Podcast. Check out &lt;a href=&quot; https://foojay.io/today/foojay-podcast-13/&quot;&gt;Episode #13&lt;/a&gt; if you&apos;re interested in hearing about our group&apos;s history.
&lt;/p&gt;
&lt;h3 id=&quot;community&quot;&gt;Community&lt;/h3&gt;
&lt;p&gt;
  In the past, I used this section to talk about meetups I&apos;ve started, like &lt;a
    href= &quot;https://www.meetup.com/dev-ski-days/&quot;&gt;Developer Ski Days&lt;/a&gt; and &lt;a
    href= &quot;https://www.meetup.com/Devoxx4Kids-Denver/&quot;&gt;Devoxx4Kids Denver&lt;/a&gt;. We didn&apos;t host any events in 2022, but I
  might organize a developer ski day soon. Right before COVID hit, we had a &lt;a href= &quot;https://www.amtrak.com/winter-park-express&quot;&gt;ski train&lt;/a&gt; to Winter Park adventure planned. It was supposed to happen right after Venkat&apos;s dev.next conference. I&apos;d love to try and do that again.
&lt;/p&gt;

&lt;h3 id=&quot;projects&quot;&gt;Projects&lt;/h3&gt;

&lt;p&gt;I continued to maintain &lt;a href=&quot;https://github.com/oktadev/schematics&quot;&gt;OktaDev Schematics&lt;/a&gt; in 2022. The
  project had five releases. I added &lt;a href= &quot;https://auth0.com/blog/quick-javascript-authentication/&quot;&gt;support for Auth0&apos;s SDKs&lt;/a&gt;, which helps ensure I know how to use the latest versions. According to &lt;a
      href= &quot;https://npm-stat.com/charts.html?package=%40oktadev%2Fschematics&amp;from=2022-01-01&amp;to=2022-12-31&quot;&gt;npm-stat.com&lt;/a&gt;,
  it had ~62K downloads in 2022 (+2K from 2021).&lt;/p&gt;

&lt;p&gt;My other projects are related to &lt;a href=&quot;https://www.jhipster.tech&quot;&gt;JHipster&lt;/a&gt;. I helped &lt;a href=&quot;https://github.com/jhipster/generator-jhipster/issues/19782&quot;&gt;upgrade the main generator to Spring Boot 3&lt;/a&gt; and did a lot of QA for micro frontends. We had &lt;a
      href=&quot;https://www.jhipster.tech/releases/&quot;&gt;eight releases&lt;/a&gt; and &lt;a
      href=&quot;https://npm-stat.com/charts.html?package=generator-jhipster&amp;from=2022-01-01&amp;to=2022-12-31&quot;&gt;~1.5 million
    downloads&lt;/a&gt; in 2022 (down 300K from 2021). We&apos;ve worked hard on JHipster 8 and hope to release an alpha version soon.&lt;/p&gt;
&lt;p&gt;
  I spent most of the year (in fits and spurts) working on the JHipster Mini-Book.
  &lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;My author *finally* finished updating my intro and chapter 1 for &lt;a href=&quot;https://twitter.com/jhipster?ref_src=twsrc%5Etfw&quot;&gt;@jhipster&lt;/a&gt; 7. He started working on this PR in March!&lt;a href=&quot;https://t.co/R0h09xXle2&quot;&gt;https://t.co/R0h09xXle2&lt;/a&gt;&lt;br&gt;&lt;br&gt;What took so long? &amp;#x1F9F5;&lt;/p&gt;&amp;mdash; The JHipster Mini-Book (@jhipster_book) &lt;a href=&quot;https://twitter.com/jhipster_book/status/1598760081390084096?ref_src=twsrc%5Etfw&quot;&gt;December 2, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;
  I sent the book to tech editing just before Christmas vacation and got it back from the copy editors at InfoQ this week. Hopefully, it&apos;ll be available for download by the end of this month!
&lt;/p&gt;
&lt;p&gt;
  I helped create the &lt;a href= &quot;https://github.com/jhipster/generator-jhipster-native&quot;&gt;JHipster Native&lt;/a&gt; blueprint in early 2022 and wrote about how to use it in &lt;a href= &quot;https://developer.okta.com/blog/2022/03/03/spring-native-jhipster&quot;&gt;Introducing Spring Native for JHipster: Serverless Full-Stack Made Easy&lt;/a&gt;.
  We converted &lt;a href=&quot;https://github.com/jhipster/generator-jhipster-ionic&quot;&gt;Ionic for JHipster&lt;/a&gt; into a blueprint and updated &lt;a href=&quot;https://github.com/jhipster/generator-jhipster-react-native&quot;&gt;JHipster React Native&lt;/a&gt;. I wrote about them both on the OktaDev and Auth0 blogs:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2022/05/12/ionic-angular-jhipster&quot;&gt;Build Secure Ionic Apps with Angular and JHipster&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://auth0.com/blog/integrate-react-native-and-spring-boot-securely/&quot;&gt;Integrate React Native and Spring Boot Securely&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;personal&quot;&gt;Personal&lt;/h2&gt;
&lt;p&gt;
  We started the year with a trip to Cabo San Lucas with my parents and sisters. My parents like to do a &quot;chasing the sun&quot; trip in the midst of winter because they live in the backwoods of Montana, and the sun doesn&apos;t shine a whole lot.
&lt;/p&gt;
&lt;p style= &quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/51984135336_482f528eb2_c.jpg&quot; title=&quot;Trish made it!&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/51984135336/in/album-72177720297877216/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/51984135336_482f528eb2_q.jpg&quot; width=&quot;150&quot; alt=&quot;Trish made it!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/51984706870_7088ce0541_c.jpg&quot; title=&quot;Awesome ladies!&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/51984706870/in/album-72177720297877216/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/51984706870_7088ce0541_q.jpg&quot; width=&quot;150&quot; alt=&quot;Awesome ladies!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/51983135892_6e38f1467a_c.jpg&quot; title=&quot;Golfing Sweethearts&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/51983135892/in/album-72177720297877216/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/51983135892_6e38f1467a_q.jpg&quot; width=&quot;150&quot; alt=&quot;Golfing Sweethearts&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  I had &lt;a href= &quot;https://raibledesigns.com/rd/entry/how_to_renew_your_passport&quot;&gt;difficulties getting my passport renewed&lt;/a&gt; in March, but succeeded after learning a local government official can help expedite things. Once I got a new passport, Abbie, Jack, and I had a blast with Trish&apos;s brother&apos;s family in Grand Cayman.
&lt;/p&gt;
&lt;p style= &quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/51984510474_5fc5ef872f_c.jpg&quot; title=&quot;Awesome family crew for Spring Break 2022!&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/51984510474/in/album-72177720297875885/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/51984510474_5fc5ef872f.jpg&quot; width=&quot;500&quot; alt=&quot;Awesome family crew for Spring Break 2022!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  The &lt;a href=&quot;https://raibledesigns.com/rd/entry/farewell_to_the_2021_2022&quot;&gt;2021-2022 ski season&lt;/a&gt; was pretty good. This year is shaping up to be &lt;em&gt;much better&lt;/em&gt;! I already have 24 days in, and we&apos;re only halfway through the season!
&lt;/p&gt;
&lt;p&gt;For the third year in a row, I took a long summer vacation thanks to Okta&apos;s unlimited vacation policy.&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
  &lt;blockquote class= &quot;twitter-tweet&quot;&gt;&lt;p lang= &quot;en&quot; dir= &quot;ltr&quot;&gt;In 24 hours, I&apos;ll be starting my summer vacation. &lt;a href= &quot;https://twitter.com/okta?ref_src=twsrc%5Etfw&quot;&gt;@okta&lt;/a&gt; has an unlimited vacation policy and I&apos;m taking full advantage with a month off! &amp;#x1F603;&lt;br&gt;&lt;br&gt;What will I do?&lt;br&gt;&lt;br&gt;&amp;#x1F3D4; A week in Alaska&lt;br&gt;&amp;#x1F920; A RV trip to Montana&lt;br&gt;&amp;#x1F6F6; A week-long rafting trip&lt;br&gt;&amp;#x1F918; Def Leppard / M&#246;tley Cr&#252;e concert&lt;a href=&quot;https://twitter.com/hashtag/LifeAtOkta?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#LifeAtOkta&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1537571220752764933?ref_src=twsrc%5Etfw&quot;&gt;June 16, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Celebrating my parent&apos;s &lt;a href=&quot;https://raibledesigns.com/rd/entry/summer_2022_family_adventures_in&quot;&gt;50th in Alaska&lt;/a&gt; was fantastic!&lt;/p&gt;
&lt;p style= &quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52257727878_8d8e1a6758_c.jpg&quot; title=&quot;Abbie and Jack are ready for adventure!&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52257727878/in/album-72177720300991585/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52257727878_8d8e1a6758_q.jpg&quot; width=&quot;150&quot; alt=&quot;Abbie and Jack are ready for adventure!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

  &lt;a href=&quot;https://live.staticflickr.com/65535/52256699527_bc9567196c_c.jpg&quot; title=&quot;Family photo!&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52256699527/in/album-72177720300991585/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52256699527_bc9567196c_q.jpg&quot; width=&quot;150&quot; alt=&quot;Family photo!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

  &lt;a href=&quot;https://live.staticflickr.com/65535/52256669447_bcbba2397c_c.jpg&quot; title=&quot;Happy Mom and Trish!&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52256669447/in/album-72177720300991585/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52256669447_bcbba2397c_q.jpg&quot; width=&quot;150&quot; alt=&quot;Happy Mom and Trish!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;And so was the Colorado Avalanche&apos;s Stanley Cup victory. &amp;#x1F973;&lt;/p&gt;
&lt;p style= &quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52256730797_f4ae9a23ba_c.jpg&quot; title=&quot;Avs Parade&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52256730797/in/album-72177720300991585/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52256730797_f4ae9a23ba.jpg&quot; width=&quot;500&quot; alt=&quot;Avs Parade&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;We managed to go rafting a lot in July. Five nights camping on the Green River was our favorite trip.&lt;/p&gt;
&lt;p style= &quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52256616337_ce96e53883_c.jpg&quot; title=&quot;Planning Committee&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52256616337/in/album-72177720300991585/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52256616337_ce96e53883.jpg&quot; width=&quot;500&quot; alt=&quot;Planning Committee&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style= &quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52257984110_3d629e6fdd_c.jpg&quot; title=&quot;The Green River&quot; rel=&quot;lightbox[yearinreview2022]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52257984110/in/album-72177720300991585/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52257984110_3d629e6fdd.jpg&quot; width=&quot;500&quot; alt=&quot;The Green River&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I celebrated &lt;a href=&quot;https://raibledesigns.com/rd/entry/20_years_of_blogging&quot;&gt;20 years of blogging&lt;/a&gt; in August. Jack &lt;a href= &quot;https://raibledesigns.com/rd/entry/happy_birthday_jack11&quot;&gt;turned 18&lt;/a&gt; at the end of the month.&lt;/p&gt;
&lt;p&gt;I took the kids to the first game of the Broncos&apos; season in Seattle. Their stadium had a sweet view of the city. We did not expect to lose that game.&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;We enjoyed a beautiful &lt;a href=&quot;https://twitter.com/Broncos?ref_src=twsrc%5Etfw&quot;&gt;@Broncos&lt;/a&gt; sunset in Seattle last night. &amp;#x1F60A; &lt;a href=&quot;https://t.co/OVchzB6zYe&quot;&gt;pic.twitter.com/OVchzB6zYe&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1569337055997759488?ref_src=twsrc%5Etfw&quot;&gt;September 12, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;The fall was filled with a disappointing Broncos season, &lt;a href= &quot;https://raibledesigns.com/rd/entry/happy_birthday_abbie16&quot;&gt; Abbie&apos;s 20th birthday&lt;/a&gt;, and an even more disappointing CU Buffaloes football season. We have elevated hopes for both the CU Buffs and the Denver Broncos in 2023!&lt;/p&gt;

&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;We had a blast celebrating &lt;a href=&quot;https://twitter.com/AbbieRaible?ref_src=twsrc%5Etfw&quot;&gt;@AbbieRaible&lt;/a&gt;&amp;#39;s birthday this weekend! &amp;#x1F973; &lt;a href=&quot;https://t.co/69AKuDOp17&quot;&gt;pic.twitter.com/69AKuDOp17&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1589421089322840066?ref_src=twsrc%5Etfw&quot;&gt;November 7, 2022&lt;/a&gt;&lt;/blockquote&gt; 
&lt;/div&gt;

&lt;p&gt;In the meantime, we&apos;re big Nuggets and Avalanche fans and are excited for their playoff runs this spring.&lt;/p&gt;

&lt;p&gt;Trish and I ended the year &lt;a href=&quot;https://raibledesigns.com/rd/entry/celebrating_love_in_the_philippines&quot;&gt;celebrating love in the Philippines&lt;/a&gt;.&lt;/p&gt;
&lt;p style= &quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52625567410_bd516a31cb_c.jpg&quot;
     title=&quot;Sunset by Trish McGinity&quot; rel=&quot;lightbox[yearinreview2022]&quot;
     data-href=&quot;https://www.flickr.com/photos/mraible/52625567410/in/album-72177720305227549/&quot;&gt;&lt;img
      src=&quot;https://live.staticflickr.com/65535/52625567410_bd516a31cb.jpg&quot; width=&quot;500&quot; alt=&quot;Sunset by Trish McGinity&quot;
      style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&quot;hefe-and-stout&quot;&gt;Hefe the Bus and Stout the Syncro&lt;/h3&gt;
&lt;p&gt;
  Stout the Syncro&apos;s Subaru engine died in February. Because of this, I decided it was a good time to restore him like Hefe with a new paint job, interior, and other improvements. We hauled him to our favorite Vanagon mechanics, &lt;a href= &quot;https://www.mrmechanic.biz/&quot;&gt;Mr. Mechanic&lt;/a&gt;, to install a new Subaru Outback engine. Trish bought me a temporary Tesla to tide me over because we figured the restoration might take six months to a year. I named it White Lightning. 
&lt;/p&gt;
&lt;p&gt;
As luck would have it, we couldn&apos;t find anyone to do the bodywork and paint, so we ended up getting it back with a new engine in June. After experiencing several expensive adjustments &lt;em&gt;after&lt;/em&gt; the new engine, I&apos;m still driving my temporary Tesla, and Stout is parked in our barn. Trish wants to trade White Lightning for an RV (a 20-year dream of hers), while I&apos;m hoping to swap it for an ID Buzz.
&lt;/p&gt;
&lt;p&gt;The year&apos;s VW highlight was the Colorado Bug-In at Bandimere Speedway. Stout won runner-up in his class, while Hefe won the whole kit and kaboodle: Best in Class, Best Interior, and Best of Show!! &amp;#x1F606;
&lt;/p&gt;
&lt;p style= &quot;text-align: center&quot;&gt;
  &lt;a href= &quot;https://live.staticflickr.com/65535/52256667992_18bf882743_c.jpg&quot; title= &quot;Hefe is all shined up and ready for the Colorado Bug-In at Bandimere!&quot; rel=&quot; lightbox[yearinreview2022]&quot; data-href=&quot; https://www.flickr.com/photos/mraible/52256667992/in/album-72177720300991585/&quot;&gt;&lt;img src= &quot;https://live.staticflickr.com/65535/52256667992_18bf882743.jpg&quot; width= &quot;500&quot; alt= &quot;Hefe is all shined up and ready for the Colorado Bug-In at Bandimere!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
  &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I&amp;#39;m back from summer vacation today and feeling fantastic! &lt;a href= &quot;https://twitter.com/hashtag/HefeTheBus?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#HefeTheBus&lt;/a&gt; won Best of Show, Best Interior, and his class at the Colorado Bug-In yesterday!!&lt;br&gt;&lt;br&gt;Winning Best of Show at the Bug-In was a bucket list item for me when I bought him way back in 2004. So proud! &amp;#x1F973; &lt;a href=&quot;https://twitter.com/hashtag/vwbus?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#vwbus&lt;/a&gt; &lt;a href=&quot;https://t.co/Vm4p1KQNcl&quot;&gt;pic.twitter.com/Vm4p1KQNcl&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1551613875728125954?ref_src=twsrc%5Etfw&quot;&gt;July 25, 2022&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;We&apos;re still featured on the &lt;a href=&quot;https://bandimere.com/bugin-show-winners/&quot;&gt;Bandimere website&lt;/a&gt; as the Best of Show winners.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://live.staticflickr.com/65535/52257942130_23bb0c7e30_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52257942130/in/album-72177720300991585/&quot; title=&quot;Wahoo!&quot; rel=&quot; lightbox[yearinreview2022]&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52257942130_23bb0c7e30.jpg&quot; width=&quot;500&quot; alt=&quot;Wahoo!&quot;  style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id=&quot;2023&quot;&gt;2023&lt;/h2&gt;
&lt;p&gt;Professionally, I hope to do some JUG tours in the US this year. I joined the Auth0 product unit at Okta in August, and they&apos;re much more regionally focused than my former OktaDev team was. This is largely because we have developer advocates worldwide, and it&apos;s more sustainable if Deepu hits the Java conferences in Europe while I focus on the US. If you&apos;re interested in seeing where my team will be in 2023, see &lt;a href= &quot;https://developer.auth0.com/events&quot;&gt;developer.auth0.com/events&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This will be a big year for our family. Jack graduates high school in May, and we&apos;ll become empty nesters in August. He got accepted to CU a couple of weeks ago and will join his sister up in Boulder! With Coach Prime on board, we&apos;re hoping for some good CU football games this season. Because it&apos;s his last six months at home, I&apos;m &lt;a href=&quot;https://twitter.com/mraible/status/1577299138592624640&quot;&gt;skipping conferences that happen while he&apos;s at our house&lt;/a&gt;.
&lt;p&gt;
  I only have one goal for 2023: &lt;strong&gt;be present&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt; I&apos;ve noticed that this is easy if I&apos;m playing with friends or visiting family. Putting down my phone, listening, and paying attention on Zoom calls is my jam this year. &lt;/p&gt;
&lt;p&gt;
  If you want to follow along on my adventures, please &lt;a href= &quot;https://twitter.com/mraible&quot;&gt;follow me on Twitter&lt;/a&gt;.
  I
  also post pictures of my favorite moments &lt;a href=&quot;https://www.instagram.com/vwsforlife&quot;&gt;on Instagram&lt;/a&gt; and whole
  albums &lt;a href=&quot;https://www.flickr.com/photos/mraible&quot;&gt;on Flickr&lt;/a&gt;.
&lt;/p&gt;

</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/farewell_to_the_2021_2022</id>
        <title type="html">Farewell to the 2021-2022 Ski Season</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/farewell_to_the_2021_2022"/>
        <published>2022-05-24T11:10:55-06:00</published>
        <updated>2022-05-24T20:39:57-06:00</updated> 
        <category term="/General" label="General" />
        <category term="maryjane" scheme="http://roller.apache.org/ns/tags/" />
        <category term="steamboat" scheme="http://roller.apache.org/ns/tags/" />
        <category term="skiseason" scheme="http://roller.apache.org/ns/tags/" />
        <category term="trish" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jack" scheme="http://roller.apache.org/ns/tags/" />
        <category term="abbie" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jacksonhole" scheme="http://roller.apache.org/ns/tags/" />
        <category term="winterpark" scheme="http://roller.apache.org/ns/tags/" />
        <category term="skiing" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;I had a lot of fun this ski season, but I didn&apos;t make it to the mountains as much as I thought I would. I bought both the Epic and Ikon passes with high hopes at the beginning of the season. The rest of the family had Ikon. The ski season started for me on Nov 24, 2020 with a backyard cross-country ski. It took me another month until I ventured up to the high country. A-Basin didn&apos;t have a whole lot of snow on Dec 23.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086732083_044ff40a84_c.jpg&quot; title=&quot;First Day at A-Basin&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086732083/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086732083_044ff40a84.jpg&quot; width=&quot;500&quot; alt=&quot;First Day at A-Basin&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  I got to ski with the Makofsky family at Copper on New Years Eve.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086727668_7862688b32_c.jpg&quot; title=&quot;Skiing with the Makofsky Family&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086727668/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086727668_7862688b32_m.jpg&quot; width=&quot;240&quot; alt=&quot;Skiing with the Makofsky Family&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

  &lt;a href=&quot;https://live.staticflickr.com/65535/52087198940_ff5d8f1f60_c.jpg&quot; title=&quot;The Magnificent Makofskys!&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52087198940/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52087198940_ff5d8f1f60_m.jpg&quot; width=&quot;240&quot; alt=&quot;The Magnificent Makofskys!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  The next day, Trish and I enjoyed a fresh blanket of snow to ring in the new year. &amp;#x1F38A;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086705031_10873291f0_c.jpg&quot; title=&quot;Skiing on New Years Day&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086705031/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086705031_10873291f0_m.jpg&quot; width=&quot;240&quot; alt=&quot;Skiing on New Years Day&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086729278_9e31ab1395_c.jpg&quot; title=&quot;Nice backyard ski&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086729278/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086729278_9e31ab1395_m.jpg&quot; width=&quot;240&quot; alt=&quot;Nice backyard ski&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;I had a lot of fun this ski season, but I didn&apos;t make it to the mountains as much as I thought I would. I bought both the Epic and Ikon passes with high hopes at the beginning of the season. The rest of the family had Ikon. The ski season started for me on Nov 24, 2020 with a backyard cross-country ski. It took me another month until I ventured up to the high country. A-Basin didn&apos;t have a whole lot of snow on Dec 23.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086732083_044ff40a84_c.jpg&quot; title=&quot;First Day at A-Basin&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086732083/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086732083_044ff40a84.jpg&quot; width=&quot;500&quot; alt=&quot;First Day at A-Basin&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  I got to ski with the Makofsky family at Copper on New Years Eve.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086727668_7862688b32_c.jpg&quot; title=&quot;Skiing with the Makofsky Family&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086727668/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086727668_7862688b32_m.jpg&quot; width=&quot;240&quot; alt=&quot;Skiing with the Makofsky Family&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

  &lt;a href=&quot;https://live.staticflickr.com/65535/52087198940_ff5d8f1f60_c.jpg&quot; title=&quot;The Magnificent Makofskys!&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52087198940/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52087198940_ff5d8f1f60_m.jpg&quot; width=&quot;240&quot; alt=&quot;The Magnificent Makofskys!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  The next day, Trish and I enjoyed a fresh blanket of snow to ring in the new year. &amp;#x1F38A;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086705031_10873291f0_c.jpg&quot; title=&quot;Skiing on New Years Day&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086705031/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086705031_10873291f0_m.jpg&quot; width=&quot;240&quot; alt=&quot;Skiing on New Years Day&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086729278_9e31ab1395_c.jpg&quot; title=&quot;Nice backyard ski&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086729278/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086729278_9e31ab1395_m.jpg&quot; width=&quot;240&quot; alt=&quot;Nice backyard ski&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;There was a boys trip to Jackson Hole in late January.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52087207220_a7240405f2_c.jpg&quot; title=&quot;Awesome Crew from Jackson Hole&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52087207220/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52087207220_a7240405f2_m.jpg&quot; width=&quot;240&quot; alt=&quot;Awesome Crew from Jackson Hole&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086730243_d82faeb90a_c.jpg&quot; title=&quot;Jackson Hole Airport with Tetons&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086730243/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086730243_d82faeb90a_m.jpg&quot; width=&quot;240&quot; alt=&quot;Jackson Hole Airport with Tetons&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;And more nordic skiing with our pups, Daisy and Kai.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086733298_106812a666_c.jpg&quot; title=&quot;Another backyard nordic ski&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086733298/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086733298_106812a666_q.jpg&quot; width=&quot;150&quot; alt=&quot;Another backyard nordic ski&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086726313_f62ab506d8_c.jpg&quot; title=&quot;Sure is peaceful&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086726313/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086726313_f62ab506d8_q.jpg&quot; width=&quot;150&quot; alt=&quot;Sure is peaceful&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52087203105_f46df0b4c7_c.jpg&quot; title=&quot;Puppies!&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52087203105/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52087203105_f46df0b4c7_q.jpg&quot; width=&quot;150&quot; alt=&quot;Puppies!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;We skied with the Morse Family and played with the Snyders in Steamboat.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086947974_3a1fe65a49_c.jpg&quot; title=&quot;The Fantastic Morse Family!&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086947974/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086947974_3a1fe65a49.jpg&quot; width=&quot;500&quot; alt=&quot;The Fantastic Morse Family!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;And closed out the year with a day off the internet at Mary Jane.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52086707731_240df5afa1_c.jpg&quot; title=&quot;It&apos;s nice to get away from the internet on April 1st&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52086707731/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52086707731_240df5afa1_m.jpg&quot; width=&quot;240&quot; alt=&quot;It&apos;s nice to get away from the internet on April 1st&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52085674632_37c2455837_c.jpg&quot; title=&quot;Happy Friday!&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52085674632/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52085674632_37c2455837_m.jpg&quot; width=&quot;240&quot; alt=&quot;Happy Friday!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  My stats for the season:
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;15 days downhill&lt;/li&gt;
  &lt;li&gt;11 days cross-country&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;26 days combined is a far cry from &lt;a href=&quot;https://raibledesigns.com/rd/entry/farewell_to_the_2020_21&quot;&gt;last year&apos;s 51&lt;/a&gt;! It makes a big difference when you rent a place in the mountains like we did last year.&lt;/p&gt;
&lt;p&gt;There weren&apos;t that many ski days with Abbie and Jack this year. Abbie ended up skiing a lot with friends from CU Boulder. Jack is looking as handsome as ever. Here&apos;s his prom photo with friends.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52087204700_076795c41c_c.jpg&quot; title=&quot;Jack and crew on Prom Night&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52087204700/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52087204700_076795c41c.jpg&quot; width=&quot;500&quot; alt=&quot;Jack and crew on Prom Night&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Trish was the fantastic photographer for the big night.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/52087203275_df31c35aac_c.jpg&quot; title=&quot;Prom Night!&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52087203275/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52087203275_df31c35aac.jpg&quot; width=&quot;500&quot; alt=&quot;Prom Night!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Hefe the Bus is ready for summer, as are we. &lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;https://live.staticflickr.com/65535/52085676437_c1cc93cf0b_c.jpg&quot; title=&quot;#HefeTheBus&quot; rel=&quot;lightbox[skiseason202122]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52085676437/in/album-72177720299109077/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52085676437_c1cc93cf0b_z.jpg&quot; width=&quot;480&quot; alt=&quot;#HefeTheBus&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;We&apos;re traveling to Alaska with my folks for their 50th anniversary, Trish just rented an RV for adventuring to Montana, and we have a week-long rafting trip starting at the &lt;a href=&quot;https://www.nps.gov/dino/planyourvisit/gatesoflodore.htm&quot;&gt;Gates of Lodore&lt;/a&gt;. I hope you get a chance to opt outside in the next few months too. Giddyup and get out there! &amp;#x1F920;&lt;/p&gt;
&lt;!-- album: https://www.flickr.com/photos/mraible/albums/72177720299109077 --&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/2019_a_year_in_review</id>
        <title type="html">2019 - A Year in Review</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/2019_a_year_in_review"/>
        <published>2020-02-09T20:56:56-07:00</published>
        <updated>2020-06-30T18:03:21-06:00</updated> 
        <category term="/General" label="General" />
        <category term="syncro" scheme="http://roller.apache.org/ns/tags/" />
        <category term="vacation" scheme="http://roller.apache.org/ns/tags/" />
        <category term="2019" scheme="http://roller.apache.org/ns/tags/" />
        <category term="hefethebus" scheme="http://roller.apache.org/ns/tags/" />
        <category term="okta" scheme="http://roller.apache.org/ns/tags/" />
        <category term="family" scheme="http://roller.apache.org/ns/tags/" />
        <category term="blogging" scheme="http://roller.apache.org/ns/tags/" />
        <category term="apacheroller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="yearinreview" scheme="http://roller.apache.org/ns/tags/" />
        <category term="porschebus" scheme="http://roller.apache.org/ns/tags/" />
        <category term="stoutthesyncro" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;It&apos;s time for my year-in-review post! This post sets the record for being the most delayed, ever. Usually, I&apos;m able to get it published by the end of January. Oh well, I hope you enjoy it!&lt;/p&gt;
&lt;p&gt;In 2019, I did my best to work hard, play often, and travel to interesting places. I took my Dad to Hawaii, drove through the worst blizzard of my life, traveled to India for the first time, did a UK + Ireland JUG Tour, and indulged in several fun vacations with my family.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473157308_9d34a3fb86_c.jpg&quot; title=&quot;Spring Skiing in Steamboat&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473157308/in/album-72157712929838236/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473157308_9d34a3fb86.jpg&quot; width=&quot;500&quot; alt=&quot;Spring Skiing in Steamboat&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    We bought some additional rafts for whitewater, rafted in Montana and Colorado, and celebrated a family reunion in Cape Cod. Our classic VWs continued to perform well, and Hefe won his class once again at the 2019 VWs on the Green show. We did have to replace a clutch in Stout the Syncro, but I&apos;m OK with that since he safely transported me through the most treacherous driving conditions of my life.
&lt;/p&gt;

&lt;p&gt;I&apos;m going to look back on 2019 using the following categories.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#professional&quot;&gt;Professional&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#speaking&quot;&gt;Speaking&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#community&quot;&gt;Community&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#projects&quot;&gt;Projects&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#personal&quot;&gt;Personal&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#stout-and-hefe&quot;&gt;Stout the Syncro and Hefe the Bus&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#2020&quot;&gt;2020&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</summary>
        <content type="html">&lt;p&gt;It&apos;s time for my year-in-review post! This post sets the record for being the most delayed, ever. Usually, I&apos;m able to get it published by the end of January. Oh well, I hope you enjoy it!&lt;/p&gt;
&lt;p&gt;In 2019, I did my best to work hard, play often, and travel to interesting places. I took my Dad to Hawaii, drove through the worst blizzard of my life, traveled to India for the first time, did a UK + Ireland JUG Tour, and indulged in several fun vacations with my family.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473157308_9d34a3fb86_c.jpg&quot; title=&quot;Spring Skiing in Steamboat&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473157308/in/album-72157712929838236/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473157308_9d34a3fb86.jpg&quot; width=&quot;500&quot; alt=&quot;Spring Skiing in Steamboat&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    We bought some additional rafts for whitewater, rafted in Montana and Colorado, and celebrated a family reunion in Cape Cod. Our classic VWs continued to perform well, and Hefe won his class once again at the 2019 VWs on the Green show. We did have to replace a clutch in Stout the Syncro, but I&apos;m OK with that since he safely transported me through the most treacherous driving conditions of my life.
&lt;/p&gt;

&lt;p&gt;I&apos;m going to look back on 2019 using the following categories.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#professional&quot;&gt;Professional&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#speaking&quot;&gt;Speaking&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#community&quot;&gt;Community&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#projects&quot;&gt;Projects&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#personal&quot;&gt;Personal&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#stout-and-hefe&quot;&gt;Stout the Syncro and Hefe the Bus&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2019_a_year_in_review#2020&quot;&gt;2020&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;professional&quot;&gt;Professional&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;For those stumbling upon this post with no context, I&apos;m an open source developer that works at &lt;a href=&quot;https://okta.com&quot;&gt;Okta&lt;/a&gt;. My title is officially &quot;Developer Advocate&quot;, but all the code and words I write are distributed as open source.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
    This year I started trying to produce more YouTube videos in addition to blog posts. My team discovered our YouTube subscriber count increases a lot faster than our Twitter followers, so that provided our motivation. I published 13 videos on the &lt;a href=&quot;https://youtube.com/c/oktadev&quot;&gt;OktaDev YouTube Channel&lt;/a&gt;. My most popular one was &lt;a href=&quot;https://youtu.be/rH-FnPC_xCA&quot;&gt;Java Microservices in 20 Minutes with Spring Boot and Spring Cloud&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;iframe width=&quot;700&quot; height=&quot;394&quot; style=&quot;max-width: 100%&quot; src=&quot;https://www.youtube.com/embed/rH-FnPC_xCA&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;I upped my videographer skills by learning how to record meetups. I copied Aaron Parecki&apos;s &lt;a href=&quot;https://aaronparecki.com/2018/10/15/4/portable-wireless-live-video&quot;&gt;portable wireless video setup&lt;/a&gt; and started recording Denver JUG and Denver Open Source User Group meetups. We posted the first couple to the OktaDev channel, then decided it&apos;d be better to have the meetups start their own channels. We published 6 to the DJUG channel and 3 to the DOSUG channel. I recommend subscribing if you&apos;re into Java or Open Source.
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCbekUcgWZJC4sSMk1Tr68Jw&quot;&gt;Denver JUG YouTube Channel&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCO8KSzxg75tuzcn3M4fyWJw&quot;&gt;Denver Open Source Users Group YouTube Channel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I taught Abbie and Jack how to work the video kit and they&apos;ve been recording these meetups when I&apos;m out of town. &lt;em&gt;Thanks kids!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
    I wrote 22 blog posts throughout the year on &lt;a href=&quot;https://developer.okta.com/blog&quot;&gt;the Okta developer blog&lt;/a&gt;. &lt;!-- If you count 7 on raibledesigns.com and 0 on jhipster-book.com, that&apos;s 29! For those counting, that&apos;s 14 less than I wrote in 2018. --&gt; We publish two types of blog posts: thought leadership and conversion. Thought leadership posts tend to be about a hot topic while conversion posts are usually tutorials. My main topics for the year included Angular, Schematics, JHipster, microservices, and mobile development with Ionic 4 and React Native. Here are some that seemed to be popular.
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/05/13/angular-8-spring-boot-2&quot;&gt;Angular 8 + Spring Boot 2.2: Build a CRUD App Today!&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/02/13/angular-schematics&quot;&gt;Use Angular Schematics to Simplify Your Life&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/04/04/java-11-java-12-jhipster-oidc&quot;&gt;Better, Faster, Lighter Java with Java 12 and JHipster 6&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/05/22/java-microservices-spring-boot-spring-cloud&quot;&gt;Java Microservices with Spring Boot and Spring Cloud&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/05/23/java-microservices-spring-cloud-config&quot;&gt;Java Microservices with Spring Cloud Config and JHipster&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/08/28/reactive-microservices-spring-cloud-gateway&quot;&gt;Secure Reactive Microservices with Spring Cloud Gateway&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/06/20/ionic-4-tutorial-user-authentication-and-registration&quot;&gt;Tutorial: User Login and Registration in Ionic 4&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/11/14/react-native-login&quot;&gt;Create a React Native App with Login in 10 Minutes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    I wrote a few thought leadership posts too:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/01/16/which-java-sdk&quot;&gt;Which Java SDK Should You Use?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/01/28/developer-relations-pro-tips&quot;&gt;Pro Tips for Developer Relations&lt;/a&gt; (+ &lt;a href=&quot;https://developer.okta.com/blog/2019/04/30/developer-relations-pro-tips-2&quot;&gt;Part 2&lt;/a&gt;)&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/07/15/java-myths-2019&quot;&gt;10 Myths About Java in 2019&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/08/08/micro-frontends-for-microservices&quot;&gt;How to Win at UI Development in the World of Microservices&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2019/12/16/semantic-versioning&quot;&gt;Semantic Versioning Sucks! Long Live Semantic Versioning&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;speaking&quot;&gt;Speaking&lt;/h3&gt;
&lt;p&gt;
    According to TripIt, I took 22 trips, to 41 cities, in 12 countries. That&apos;s four fewer trips than 2018, and I had 129 days on the road (+10 from 2018). I visited twice as many countries in 2019 as I did in 2018.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49477931058_53fdc13535_c.jpg&quot; title=&quot;2019 Conferences&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49477931058/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49477931058_53fdc13535.jpg&quot; width=&quot;500&quot; alt=&quot;2019 Conferences&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    &lt;a href=&quot;https://speakerdeck.com/mraible&quot;&gt;My Speaker Deck profile&lt;/a&gt; shows 39 presentations at 24 events.
&lt;/p&gt;
&lt;table style=&quot;margin-top: -10px; margin-bottom: -10px&quot;&gt;
    &lt;tbody&gt;
    &lt;tr&gt;
        &lt;td&gt;
            &lt;ol&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/DenverJavaUsersGroup/&quot;&gt;Denver JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://devnexus.com&quot;&gt;Devnexus&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.snowfroc.com/&quot;&gt;SnowFROC&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.developersummit.com/&quot;&gt;Great International Developer Summit: GIDS&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/DenverMicroservices/&quot;&gt;Denver Microservices&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.jbcnconf.com/&quot;&gt;JBCNConf&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://thesecuredeveloper.com&quot;&gt;The Secure Developer&lt;/a&gt; (now MyDevSecOps)&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Angular-SF/&quot;&gt;Angular SF&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://jhipster-conf.github.io/&quot;&gt;JHipsterConf&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.kcdc.info/&quot;&gt;KCDC&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://javasig.org/&quot;&gt;ACGNJ Java Users Group&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/JavaSIG/&quot;&gt;JavaSIG (New York, NY)&lt;/a&gt;&lt;/li&gt;
            &lt;/ol&gt;
        &lt;/td&gt;
        &lt;td&gt;
            &lt;ol start=&quot;13&quot;&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.thatconference.com/wi&quot;&gt;That Conference&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://developdenver.org/&quot;&gt;Develop Denver&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Londonjavacommunity/&quot;&gt;London Java Community&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/South-West-Java/&quot;&gt;South West Java &amp;amp; JVM User Group&lt;/a&gt; (Bristol, UK)&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://wm-jug.org/&quot;&gt;West Midlands Java User Group&lt;/a&gt; (Birmingham, UK)&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/BelfastJUG/&quot;&gt;Belfast JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/JHipsterDublin/&quot;&gt;JHipster Dublin&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.dubjug.org/&quot;&gt;Dublin JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/corkjug/&quot;&gt;Cork JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://devoxx.be/&quot;&gt;Devoxx Belgium&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://devoxx.ma/&quot;&gt;Devoxx Morocco&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://progressivewebexperience.io/&quot;&gt;The Progressive Web Experience&lt;/a&gt;&lt;/li&gt;
            &lt;/ol&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I also attended &lt;a href=&quot;https://twitter.com/LavaOneConf&quot;&gt;LavaOne&lt;/a&gt; (now &lt;a href=&quot;https://twitter.com/UnVoxxedHawaii&quot;&gt;UnVoxxed Hawaii&lt;/a&gt;) with my Dad. It was during his birthday week, so &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157712746376916&quot;&gt;we played some golf and toured Pearl Harbor&lt;/a&gt; after the conference.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49412013078_ee22f4fbbb_c.jpg&quot; title=&quot;At LavaOne with my dad&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49412013078/in/album-72157712746376916/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49412013078_ee22f4fbbb.jpg&quot; width=&quot;500&quot; alt=&quot;At LavaOne with my dad&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;GIDS 2019 was &lt;a href=&quot;https://raibledesigns.com/rd/entry/gids_2019_adventures_in_india&quot;&gt;incredibly fun with my sister&lt;/a&gt;. We hung out with many usual suspects and had a fabulous experience.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/47753007051_a6acb06bdb_c.jpg&quot; title=&quot;I picked up a travel buddy in Seattle. My awesome sister, Kalin, is coming with me!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://live.staticflickr.com/65535/47753007051_a6acb06bdb_c.jpg&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/47753007051_a6acb06bdb.jpg&quot; width=&quot;500&quot; alt=&quot;I picked up a travel buddy in Seattle. My awesome sister, Kalin, is coming with me!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
    I learned how to present without an internet connection and found much joy in serious selfies.&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 500px&quot;&gt;
    &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Monday closing crew at &lt;a href=&quot;https://twitter.com/hashtag/gids19?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#gids19&lt;/a&gt;! ???? &lt;a href=&quot;https://t.co/Axp5uRYqql&quot;&gt;pic.twitter.com/Axp5uRYqql&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1120397254416846852?ref_src=twsrc%5Etfw&quot;&gt;April 22, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;I published pictures from &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157712930811443&quot;&gt;Devnexus&lt;/a&gt;,&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473509121_4f5bd2efe1_c.jpg&quot; title=&quot;Java Legends&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473509121/in/album-72157712930811443/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473509121_4f5bd2efe1_q.jpg&quot; width=&quot;150&quot; alt=&quot;Java Legends&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473725527_713f3b57c7_c.jpg&quot; title=&quot;OSS R3 JAM&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473725527/in/album-72157712930811443/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473725527_713f3b57c7_q.jpg&quot; width=&quot;150&quot; alt=&quot;OSS R3 JAM&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473726392_4364eaa222_c.jpg&quot; title=&quot;Awesome keynote with @reverentgeek&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473726392/in/album-72157712930811443/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473726392_4364eaa222_q.jpg&quot; width=&quot;150&quot; alt=&quot;Awesome keynote with @reverentgeek&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;my &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157710830433193&quot;&gt;UK + Ireland JUG Tour&lt;/a&gt;,&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48729350392_333c78644d_c.jpg&quot; title=&quot;Second stop: Bristol&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48729350392/in/album-72157710830433193/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48729350392_333c78644d_q.jpg&quot; width=&quot;150&quot; alt=&quot;Second stop: Bristol&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48729175991_fbd492fe5c_c.jpg&quot; title=&quot;Third stop: Birmingham&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48729175991/in/album-72157710830433193/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48729175991_fbd492fe5c_q.jpg&quot; width=&quot;150&quot; alt=&quot;Third stop: Birmingham&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48729177256_c68ef87f57_c.jpg&quot; title=&quot;Forth stop: Belfast&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48729177256/in/album-72157710830433193/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48729177256_c68ef87f57_q.jpg&quot; width=&quot;150&quot; alt=&quot;Forth stop: Belfast&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48729348667_4dd6652043_c.jpg&quot; title=&quot;The JHipster Dublin Crew!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48729348667/in/album-72157710830433193/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48729348667_4dd6652043_q.jpg&quot; width=&quot;150&quot; alt=&quot;The JHipster Dublin Crew!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48729348417_4cd4b05b2a_c.jpg&quot; title=&quot;@DubJug is in the house!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48729348417/in/album-72157710830433193/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48729348417_4cd4b05b2a_q.jpg&quot; width=&quot;150&quot; alt=&quot;@DubJug is in the house!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48729173811_1d70aa9a9f_c.jpg&quot; title=&quot;Final stop: Cork&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48729173811/in/album-72157710830433193/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48729173811_1d70aa9a9f_q.jpg&quot; width=&quot;150&quot; alt=&quot;Final stop: Cork&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157712930644037&quot;&gt;SpringOne&lt;/a&gt;,&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49474134372_69e4df1962_c.jpg&quot; title=&quot;SpringOne Closing Crew&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49474134372/in/album-72157712930644037/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49474134372_69e4df1962.jpg&quot; width=&quot;500&quot; alt=&quot;SpringOne Closing Crew&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;and &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157712932648143&quot;&gt;Devoxx Belgium/Morocco&lt;/a&gt;.
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473595483_43ebde56c7_c.jpg&quot; title=&quot;Big Crowd for 10 Excellent Ways to Secure Your Spring Boot Applications&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473595483/in/album-72157712932648143/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473595483_43ebde56c7_q.jpg&quot; width=&quot;150&quot; alt=&quot;Big Crowd for 10 Excellent Ways to Secure Your Spring Boot Applications&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473593463_434f24ee78_c.jpg&quot; title=&quot;Hello, Morocco!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473593463/in/album-72157712932648143/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473593463_434f24ee78_q.jpg&quot; width=&quot;150&quot; alt=&quot;Hello, Morocco!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473596578_a2bcf4340c_c.jpg&quot; title=&quot;Another gorgeous sunset&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473596578/in/album-72157712932648143/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473596578_a2bcf4340c_q.jpg&quot; width=&quot;150&quot; alt=&quot;Another gorgeous sunset&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;At SpringOne, I did a talk with &lt;a href=&quot;https://twitter.com/starbuxman&quot;&gt;Josh Long&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/_JamesWard&quot;&gt;James Ward&lt;/a&gt;. I&apos;ve never had so much fun on stage. &amp;#x1F606;&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 500px&quot;&gt;
    &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I got to do a talk with two of my best friends and favorite technologists, &lt;a href=&quot;https://twitter.com/okta?ref_src=twsrc%5Etfw&quot;&gt;@okta&lt;/a&gt; &#8216;s &lt;a href=&quot;https://twitter.com/mraible?ref_src=twsrc%5Etfw&quot;&gt;@mraible&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/Google?ref_src=twsrc%5Etfw&quot;&gt;@google&lt;/a&gt; &#8216;s &lt;a href=&quot;https://twitter.com/_JamesWard?ref_src=twsrc%5Etfw&quot;&gt;@_JamesWard&lt;/a&gt;. &lt;br&gt;&lt;br&gt;Thanks for making this happen &lt;a href=&quot;https://twitter.com/s1p?ref_src=twsrc%5Etfw&quot;&gt;@s1p&lt;/a&gt; ! &lt;a href=&quot;https://t.co/VCB7X7G8v4&quot;&gt;pic.twitter.com/VCB7X7G8v4&lt;/a&gt;&lt;/p&gt;&amp;mdash; Josh Long (???, ???, ???? ????, ??? ????) (@starbuxman) &lt;a href=&quot;https://twitter.com/starbuxman/status/1182366031764951040?ref_src=twsrc%5Etfw&quot;&gt;October 10, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;A recording of our talk was &lt;a href=&quot;https://youtu.be/p1sernXyPHY&quot;&gt;published to YouTube&lt;/a&gt;.
&lt;div style=&quot;text-align: center; margin-bottom: 10px&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; style=&quot;max-width: 100%&quot; src=&quot;https://www.youtube.com/embed/p1sernXyPHY&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h3 id=&quot;community&quot;&gt;Community&lt;/h3&gt;
&lt;p&gt;I was involved in many community activities in 2019. I&apos;m proud to say that &lt;a href=&quot;https://blogs.oracle.com/java/2019-dukes-choice-award-winners&quot;&gt;Denver JUG won a Duke&apos;s Choice Award&lt;/a&gt; this year! I flew out to CodeOne for a night to accept the award and celebrate with Java friends.
&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 500px&quot;&gt;
    &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Wahoo! &lt;a href=&quot;https://twitter.com/denverjug?ref_src=twsrc%5Etfw&quot;&gt;@denverjug&lt;/a&gt; wins a Duke&amp;#39;s Choice Award at &lt;a href=&quot;https://twitter.com/hashtag/CodeOne?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#CodeOne&lt;/a&gt;!! ???? &lt;a href=&quot;https://t.co/4f7wo9FTPF&quot;&gt;https://t.co/4f7wo9FTPF&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1173753912324583424?ref_src=twsrc%5Etfw&quot;&gt;September 17, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;We only had two &lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/&quot;&gt;Devoxx4Kids Denver&lt;/a&gt; workshops in 2019:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/events/262330629/&quot;&gt;Gotta Catch &#8216;Em All! Raspberry Pi and Java Pokemon Training&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/events/265404289/&quot;&gt;Learn How to Build a Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first one was taught by Abbie and Jack. I taught the second one. It seems I need to do a better job recruiting speakers. In reality, I think it&apos;s time to offer the leadership of the group to someone who has more time.&lt;/p&gt;
&lt;h3 id=&quot;projects&quot;&gt;Projects&lt;/h3&gt;
&lt;p&gt;I developed and released a new open source project in 2019: &lt;a href=&quot;https://github.com/oktadeveloper/schematics&quot;&gt;OktaDev Schematics&lt;/a&gt;. It provides a way to add Okta for authentication to Angular, React, Vue, Ionic, and React Native projects. I developed it mostly to make my demos easier. It had 12 releases throughout the year.&lt;/p&gt;
&lt;p&gt;My other projects are mostly around JHipster. I support its OAuth 2.0 and OIDC support as best I can, and &lt;a href=&quot;https://github.com/oktadeveloper/generator-jhipster-ionic/releases&quot;&gt;released seven versions of its Ionic module&lt;/a&gt;. Upgrading to Ionic 4 was a big task and I wrote about &lt;a href=&quot;https://developer.okta.com/blog/2019/06/24/ionic-4-angular-spring-boot-jhipster&quot;&gt;how to use Ionic 4 with JHipster 6&lt;/a&gt;. I recorded a screencast showing
    &lt;a href=&quot;https://youtu.be/uQqlO3IGpTU&quot;&gt;how to get started with JHipster 6&lt;/a&gt; and &lt;a href=&quot;https://raibledesigns.com/rd/entry/my_journey_to_jhipster_conf&quot;&gt;traveled to JHipster Conf&lt;/a&gt;.
&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;
    &lt;iframe width=&quot;700&quot; height=&quot;394&quot; style=&quot;max-width: 100%&quot; src=&quot;https://www.youtube.com/embed/uQqlO3IGpTU&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;I did not work on the JHipster Mini-Book in 2019, but I hope to update it for JHipster 7 this year.&lt;/p&gt;
&lt;h2 id=&quot;personal&quot;&gt;Personal&lt;/h2&gt;
&lt;p&gt;Trish and I journeyed to &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157712931825848&quot;&gt;Jazz Fest in New Orleans&lt;/a&gt;. It was my first time and it might become a yearly tradition. &lt;em&gt;So fun!&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49474031062_881042ec28_c.jpg&quot; title=&quot;Matt&apos;s First Jazz Fest!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49474031062/in/album-72157712931825848/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49474031062_881042ec28_q.jpg&quot; width=&quot;150&quot; alt=&quot;Matt&apos;s First Jazz Fest!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49474038287_562533b545_c.jpg&quot; title=&quot;Jazz Fest 50&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49474038287/in/album-72157712931825848/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49474038287_562533b545_q.jpg&quot; width=&quot;150&quot; alt=&quot;Jazz Fest 50&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473813246_23d59c4786_c.jpg&quot; title=&quot;Gorgeous weather in New Orleans&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473813246/in/album-72157712931825848/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473813246_23d59c4786_q.jpg&quot; width=&quot;150&quot; alt=&quot;Gorgeous weather in New Orleans&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    I was fortunate enough to bring family along with me a few times when traveling for work. Highlights include:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Taking my whole family to &lt;a href=&quot;https://raibledesigns.com/rd/entry/a_beautiful_adventure_to_jbcnconf&quot;&gt;JBCNConf in Barcelona&lt;/a&gt;. They all speak Spanish, so I knew it&apos;d be a fun adventure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://live.staticflickr.com/65535/48142488716_55ca185d18_c.jpg&quot; title=&quot;Trish and Abbie at Montserrat&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48142488716/in/album-72157709287954566/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48142488716_55ca185d18.jpg&quot; width=&quot;500&quot; alt=&quot;Trish and Abbie at Montserrat&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;That Conference with Jack and my nephew, Michael. It was at a water park so the boys had a blast.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://live.staticflickr.com/65535/48625172732_c550127544_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48625172732/in/album-72157710555144233/&quot; title=&quot;Phew - we made it to THAT Conference&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48625172732_c550127544.jpg&quot; width=&quot;500&quot; alt=&quot;Phew - we made it to THAT Conference&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Trish and my parents meeting me during my Ireland JUG Tour.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473585207_bd4bf99af5_c.jpg&quot; title=&quot;My fabulous parents and wife&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473585207/in/album-72157710830433193/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473585207_bd4bf99af5.jpg&quot; width=&quot;500&quot; alt=&quot;My fabulous parents and wife&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    I regret leaving in the middle of a family reunion for KCDC. The location in Cape Cod was fantastic.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48625209527_228a15bbf1_c.jpg&quot; title=&quot;Wowee!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48625209527/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48625209527_228a15bbf1.jpg&quot; width=&quot;500&quot; alt=&quot;Wowee!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    Jack got his learners permit to drive in August. He was a little rusty at first, but he&apos;s come a long way since. He drives several times a week for practice when he&apos;s at our house.
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://raibledesigns.com/rd/entry/happy_birthday_abbie13&quot;&gt;Abbie is now 17&lt;/a&gt; and &lt;a href=&quot;https://raibledesigns.com/rd/entry/happy_birthday_jack8&quot;&gt;Jack is 15&lt;/a&gt;. They grow a lot when they become teenagers. Jack is the tallest one in our house!&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49020698497_88738a8fb5_c.jpg&quot; title=&quot;Abbie Raible 2019&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49020698497/in/dateposted-public/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49020698497_88738a8fb5_m.jpg&quot; width=&quot;194&quot; alt=&quot;Abbie Raible 2019&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49019972783_fe5cc989bd_c.jpg&quot; title=&quot;Jack Raible 2019&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49019972783/in/dateposted-public/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49019972783_fe5cc989bd_m.jpg&quot; width=&quot;194&quot; alt=&quot;Jack Raible 2019&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;We had a ball with Trish&apos;s brother&apos;s family and parents in Turks and Caicos. It was part of a double-header Spring Break that started with skiing in Steamboat.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473659481_58a1eafb44_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473659481/in/album-72157712929838236/&quot; title=&quot;Riding the lift at Steamboat&quot; &gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473659481_58a1eafb44.jpg&quot; width=&quot;500&quot; style=&quot;border: 1px solid black;&quot; alt=&quot;Riding the lift at Steamboat&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473657086_cde67fcfac_c.jpg&quot; title=&quot;Turks and Caicos!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473657086/in/album-72157712929838236/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473657086_cde67fcfac_m.jpg&quot; width=&quot;240&quot; alt=&quot;Turks and Caicos!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473871917_32376fcc3b_c.jpg&quot; title=&quot;Trish and Morgan&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473871917/in/album-72157712929838236/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473871917_32376fcc3b_m.jpg&quot; width=&quot;240&quot; alt=&quot;Trish and Morgan&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://raibledesigns.com/rd/entry/farewell_to_the_2018_19&quot;&gt;2018-19&lt;/a&gt; ski season was fabulous and Stout was quite the hero during our first Bomb Cyclone!&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/47927615997_7ab2798f62_c.jpg&quot; title=&quot;Stout at Wolf Creek&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://live.staticflickr.com/65535/47927615997_7ab2798f62_c.jpg&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/47927615997_7ab2798f62_m.jpg&quot; width=&quot;240&quot; alt=&quot;Stout at Wolf Creek&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/47927638718_3507a2e695_c.jpg&quot; title=&quot;The Van after Bomb Cyclone #1&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://live.staticflickr.com/65535/47927638718_3507a2e695_c.jpg&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/47927638718_3507a2e695_m.jpg&quot; width=&quot;240&quot; alt=&quot;The Van after Bomb Cyclone #1&quot; style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;We added two duckies to our rafting fleet so we can take more friends on the river in June. Father&apos;s Day on the Upper Colorado was fun with friends, but Chris Morse and the Fesser did have to float through a cold and dangerous class IV rapid. You could say they&apos;re were not fans of our duckies.
&lt;/p&gt;
&lt;p&gt;My Dad made me proud with his cameo in the &lt;a href=&quot;https://twitter.com/okta/status/1140317270998048768&quot;&gt;&quot;What is Okta?&quot; Father&apos;s Day video&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We took Abbie&apos;s boyfriend, Joseph, with us to Montana for the 4th of July. My Dad and I road-tripped up in our Westfalia Vanagon. We decorated a float for the parade, enjoyed a couple days on the river, and spent some quality time with Owen and Dana. &lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48624779968_5090a14ed7_c.jpg&quot; title=&quot;Night two in Grand Tetons National Park&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48624779968/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48624779968_5090a14ed7_q.jpg&quot; width=&quot;150&quot; alt=&quot;Night two in Grand Tetons National Park&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48624779343_688d082c2f_c.jpg&quot; title=&quot;Sunset at Grand Teton National Park&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48624779343/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48624779343_688d082c2f_q.jpg&quot; width=&quot;150&quot; alt=&quot;Sunset at Grand Teton National Park&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48625126491_701e95d8bd_c.jpg&quot; title=&quot;#VanLife&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48625126491/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48625126491_701e95d8bd_q.jpg&quot; width=&quot;150&quot; alt=&quot;#VanLife&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48624762833_4178e3ddef_c.jpg&quot; title=&quot;Ready for the 4th of July Parade!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48624762833/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48624762833_4178e3ddef.jpg&quot; width=&quot;500&quot; alt=&quot;Ready for the 4th of July Parade!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48625097816_2206456bf5_c.jpg&quot; title=&quot;Family Day on the Blackfoot!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48625097816/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48625097816_2206456bf5_m.jpg&quot; width=&quot;240&quot; alt=&quot;Family Day on the Blackfoot!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48625234197_67a4ed2862_c.jpg&quot; title=&quot;Duckie Fun&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48625234197/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48625234197_67a4ed2862_m.jpg&quot; width=&quot;240&quot; alt=&quot;Duckie Fun&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48624735243_e1abfa8bd4_c.jpg&quot; title=&quot;Rig to flip!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48624735243/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48624735243_e1abfa8bd4_m.jpg&quot; width=&quot;240&quot; alt=&quot;Rig to flip!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48625235337_ece0755cd2_c.jpg&quot; title=&quot;With Owen and Dana!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48625235337/in/album-72157710555144233/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48625235337_ece0755cd2_m.jpg&quot; width=&quot;240&quot; alt=&quot;With Owen and Dana!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;Trish and I celebrated our 6th anniversary in Estes Park.&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
    &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Happy Anniversary to us!! &lt;a href=&quot;https://twitter.com/hashtag/6years?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#6years&lt;/a&gt; &amp;#x2764;&amp;#xFE0F;&amp;#x1F389;&amp;#x1F970;&amp;#x1F483;&amp;#x1F57A; &lt;a href=&quot;https://t.co/JnzhenOIzI&quot;&gt;pic.twitter.com/JnzhenOIzI&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1155222535027347456?ref_src=twsrc%5Etfw&quot;&gt;July 27, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;We stayed at the Stanley Hotel in the &quot;Kissing Cowboy&quot; room. &amp;#x1F631;&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/48625041576_c8288b110c_c.jpg&quot; title=&quot;Beautiful View from the Stanley Hotel&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48625041576/in/dateposted-public/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48625041576_c8288b110c.jpg&quot; width=&quot;500&quot; alt=&quot;Beautiful View from the Stanley Hotel&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    Trish went big in September and added her own cataraft to our fleet!&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473935241_c8678107c4_c.jpg&quot; title=&quot;Introducing, Trish&apos;s cataraft!&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473935241/in/album-72157712930704457/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473935241_c8678107c4_m.jpg&quot; width=&quot;240&quot; alt=&quot;Introducing, Trish&apos;s cataraft!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49474152842_c68cefe4c3_c.jpg&quot; title=&quot;The Good Life&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49474152842/in/album-72157712930704457/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49474152842_c68cefe4c3_m.jpg&quot; width=&quot;240&quot; alt=&quot;The Good Life&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    We visited Trish&apos;s family on the east coast for Thanksgiving.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
   &lt;a href=&quot;https://live.staticflickr.com/65535/49513779748_359e6475d6_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49513779748/&quot; title=&quot;McGinity Thanksgiving 2019&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49513779748_359e6475d6.jpg&quot; width=&quot;500&quot; alt=&quot;McGinity Thanksgiving 2019&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    Christmas at my parent&apos;s house in Montana was warm and cozy.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/49473716588_12a9894a5b_c.jpg&quot; title=&quot;The beautiful barn that my dad built in the 80s&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49473716588/in/album-72157712933118423/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49473716588_12a9894a5b.jpg&quot; width=&quot;500&quot; alt=&quot;The beautiful barn that my dad built in the 80s&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&quot;stout-and-hefe&quot;&gt;Stout the Syncro and Hefe the Bus&lt;/h3&gt;
&lt;p&gt;Our classic VWs are surviving and thriving. Hefe won best in class at VWs on the Green for the fourth time. Stout ran well on several road trips and now has a new clutch.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/47927546642_b5f9fd663f_c.jpg&quot; title=&quot;VWs on the Green&quot; rel=&quot;lightbox[2019yearinreview]&quot; data-href=&quot;https://live.staticflickr.com/65535/47927546642_b5f9fd663f_c.jpg&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/47927546642_b5f9fd663f.jpg&quot; width=&quot;500&quot; alt=&quot;VWs on the Green&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I hope to write a &quot;Story of Hefe&quot; book in 2020 from the pictures and posts on this blog.&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
    &lt;blockquote class=&quot;instagram-media&quot; data-instgrm-captioned data-instgrm-permalink=&quot;https://www.instagram.com/p/B2-Lra-lBIN/?utm_source=ig_embed&amp;amp;utm_campaign=loading&quot; data-instgrm-version=&quot;12&quot; style=&quot; background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);&quot;&gt;&lt;div style=&quot;padding:16px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/B2-Lra-lBIN/?utm_source=ig_embed&amp;amp;utm_campaign=loading&quot; style=&quot; background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;&quot; target=&quot;_blank&quot;&gt; &lt;div style=&quot; display: flex; flex-direction: row; align-items: center;&quot;&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: column; flex-grow: 1; justify-content: center;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 19% 0;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display:block; height:50px; margin:0 auto 12px; width:50px;&quot;&gt;&lt;svg width=&quot;50px&quot; height=&quot;50px&quot; viewBox=&quot;0 0 60 60&quot; version=&quot;1.1&quot; xmlns=&quot;https://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;https://www.w3.org/1999/xlink&quot;&gt;&lt;g stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;g transform=&quot;translate(-511.000000, -20.000000)&quot; fill=&quot;#000000&quot;&gt;&lt;g&gt;&lt;path d=&quot;M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div style=&quot;padding-top: 8px;&quot;&gt; &lt;div style=&quot; color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;&quot;&gt; View this post on Instagram&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 12.5% 0;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;&quot;&gt;&lt;div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 8px;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: auto;&quot;&gt; &lt;div style=&quot; width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt; &lt;p style=&quot; margin:8px 0 0 0; padding:0 4px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/B2-Lra-lBIN/?utm_source=ig_embed&amp;amp;utm_campaign=loading&quot; style=&quot; color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;&quot; target=&quot;_blank&quot;&gt;All shined up and ready for a cruise down Colfax tomorrow! #vw #vwbus #vwcolorado #hefethebus #vwec #21windows&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;&quot;&gt;A post shared by &lt;a href=&quot;https://www.instagram.com/vwsforlife/?utm_source=ig_embed&amp;amp;utm_campaign=loading&quot; style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px;&quot; target=&quot;_blank&quot;&gt; Matt Raible&lt;/a&gt; (@vwsforlife) on &lt;time style=&quot; font-family:Arial,sans-serif; font-size:14px; line-height:17px;&quot; datetime=&quot;2019-09-28T22:26:29+00:00&quot;&gt;Sep 28, 2019 at 3:26pm PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;script async src=&quot;//www.instagram.com/embed.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;h2 id=&quot;2020&quot;&gt;2020&lt;/h2&gt;
&lt;p&gt;
    Professionally, I&apos;ll be hitting some new exotic locations. Voxxed Days Z&#252;rich and JavaLand in Germany are on my list. JavaLand happens during Spring Break, so we&apos;ll be spending a few days skiing in the Swiss Alps afterward.
&lt;/p&gt;
&lt;p&gt;I plan to speak at Devoxx UK (London), Spring I/O (Barcelona), and Voxxed Days Singapore. I hope to visit with the Java community in Japan as well. If you&apos;re interested in seeing where the &lt;a href=&quot;https://twitter.com/oktadev&quot;&gt;@oktadev team&lt;/a&gt; will be in 2020, check out &lt;a href=&quot;https://oktadev.events&quot;&gt;oktadev.events&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;I&apos;ll be on vacation the whole month of July. I&apos;ve always wanted to live like a European and Okta&apos;s unlimited vacation policy makes this possible.
&lt;/p&gt;
&lt;p&gt;
    I&apos;m going to stop traveling in August for a year. Abbie will be a high school senior and I want to be around for her last year at home.
&lt;/p&gt;
&lt;p&gt;In 2020, I&apos;ll be skiing, biking, and rafting a lot more. I started &lt;a href=&quot;http://skiday.dev/&quot;&gt;Developer Ski Days&lt;/a&gt; to help with the first. I&apos;m excited that &lt;a href=&quot;https://www.thriveworkplace.com/&quot;&gt;Thrive Workplace&lt;/a&gt; has a new DTC location (at Innovation Pavilions). I&apos;ll be renting a desk from them and start bike-commuting soon. Our rafting family just applied for several week-long rafting permits. Spending a week on the river is one of our favorite activities!
&lt;/p&gt;
&lt;p&gt;
    Last year, I &lt;a href=&quot;https://raibledesigns.com/rd/entry/2018_a_year_in_review#personal-goals&quot;&gt;had a bunch of goals with numbers&lt;/a&gt;. This year I&apos;m going to try and get more headspace, spend more time with friends, and enjoy being home.
&lt;/p&gt;
&lt;p&gt;
    I believe less travel in 2020 will be very rewarding. I might even get Nuggets season tickets. They&apos;re pretty good these days.
&lt;/p&gt;
&lt;p&gt;
    If you want to follow along on my adventures, please &lt;a href=&quot;https://twitter.com/mraible&quot;&gt;follow me on Twitter&lt;/a&gt;. I also post pictures of my favorite moments &lt;a href=&quot;https://www.instagram.com/vwsforlife&quot;&gt;to Instagram&lt;/a&gt; and whole albums &lt;a href=&quot;https://www.flickr.com/photos/mraible&quot;&gt;on Flickr&lt;/a&gt;.
&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/my_journey_to_jhipster_conf</id>
        <title type="html">My Journey to JHipster Conf 2019</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/my_journey_to_jhipster_conf"/>
        <published>2019-07-03T12:00:09-06:00</published>
        <updated>2019-07-04T13:51:33-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="okta" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="paris" scheme="http://roller.apache.org/ns/tags/" />
        <category term="oauth" scheme="http://roller.apache.org/ns/tags/" />
        <category term="ippon" scheme="http://roller.apache.org/ns/tags/" />
        <category term="community" scheme="http://roller.apache.org/ns/tags/" />
        <category term="oss" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;Last week was quite the whirlwind for me. On Monday, I released &lt;a href=&quot;https://developer.okta.com/blog/2019/06/24/ionic-4-angular-spring-boot-jhipster&quot;&gt;Ionic for JHipster 4.0&lt;/a&gt;, updated my &lt;a href=&quot;https://github.com/mraible/jhipster6-demo&quot;&gt;get started with JHipster 6 tutorial&lt;/a&gt;, and recorded a matching screencast. Within an hour of recording, I was on my way to the airport to fly to &lt;a href=&quot;https://jhipster-conf.github.io/&quot;&gt;JHipster Conf&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a data-flickr-embed=&quot;true&quot; data-header=&quot;true&quot; data-footer=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160669171_cf6e812925_c.jpg&quot; title=&quot;Leaving Denver&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160669171/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160669171_cf6e812925.jpg&quot; width=&quot;500&quot; height=&quot;375&quot; alt=&quot;Leaving Denver&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  I edited the screencast on my flight and published it &lt;a href=&quot;https://youtu.be/uQqlO3IGpTU&quot;&gt;to YouTube&lt;/a&gt; on my layover in Reykjav&#237;k. I was impressed that it uploaded just fine over airport Wi-Fi.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/uQqlO3IGpTU&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;Last week was quite the whirlwind for me. On Monday, I released &lt;a href=&quot;https://developer.okta.com/blog/2019/06/24/ionic-4-angular-spring-boot-jhipster&quot;&gt;Ionic for JHipster 4.0&lt;/a&gt;, created a &lt;a href=&quot;https://github.com/mraible/jhipster6-demo&quot;&gt;get started with JHipster 6 tutorial&lt;/a&gt;, and recorded a matching screencast. Within an hour of recording, I was on my way to the airport to fly to &lt;a href=&quot;https://jhipster-conf.github.io/&quot;&gt;JHipster Conf&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a data-flickr-embed=&quot;true&quot; data-header=&quot;true&quot; data-footer=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160669171_cf6e812925_c.jpg&quot; title=&quot;Leaving Denver&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160669171/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160669171_cf6e812925.jpg&quot; width=&quot;500&quot; height=&quot;375&quot; alt=&quot;Leaving Denver&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  I edited the screencast on my flight and &lt;a href=&quot;https://youtu.be/uQqlO3IGpTU&quot;&gt;published it to YouTube&lt;/a&gt; on my layover in Reykjav&#237;k. I was impressed that it uploaded just fine over airport Wi-Fi.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/uQqlO3IGpTU&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;
  I took a long stroll that evening to &lt;a href=&quot;https://www.heberestaurant.com/&quot;&gt;H&#233;b&#233; Restaurant&lt;/a&gt; and had a delicious late night meal.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a data-flickr-embed=&quot;true&quot; data-header=&quot;true&quot; data-footer=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160673971_e235d6c2f8_c.jpg&quot; title=&quot;Dinner at H&#233;b&#233; Restaurant&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160673971/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160673971_e235d6c2f8_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;Dinner at H&#233;b&#233; Restaurant&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160745737_393fc3e705_c.jpg&quot; title=&quot;Dessert at H&#233;b&#233; Restaurant&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160745737/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160745737_393fc3e705_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;Dessert at H&#233;b&#233; Restaurant&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  On Wednesday, I worked in the morning, then found a good lunch spot at &lt;a href=&quot;http://www.panamebrewingcompany.com/&quot;&gt;Paname Brewing Company&lt;/a&gt;.
&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;To celebrate the summer heat ?? in Paris, I searched for &#8220;breweries near me&#8221;, then walked to the one that looked the best. Worth it! ?? &lt;a href=&quot;https://t.co/RgU5fbVuME&quot;&gt;pic.twitter.com/RgU5fbVuME&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1143861976004812801?ref_src=twsrc%5Etfw&quot;&gt;June 26, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;That evening, I journeyed to &lt;a href=&quot;https://www.julien-dubois.com/&quot;&gt;Julien Dubois&lt;/a&gt;&apos;s home and met his wonderful family. From there, we headed to the JHipster Conf speaker&apos;s dinner and experienced a marvelous evening. Thanks to &lt;a href=&quot;https://twitter.com/codefinger&quot;&gt;Joe Kutner&lt;/a&gt; and &lt;a href=&quot;https://www.heroku.com/home&quot;&gt;Heroku&lt;/a&gt; for sponsoring!
&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;The many faces of &lt;a href=&quot;https://twitter.com/java_hipster?ref_src=twsrc%5Etfw&quot;&gt;@java_hipster&lt;/a&gt; ?? &lt;a href=&quot;https://twitter.com/hashtag/jhipster?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#jhipster&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/jhipsterconf?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#jhipsterconf&lt;/a&gt; &lt;a href=&quot;https://t.co/hTPvOcjqOV&quot;&gt;pic.twitter.com/hTPvOcjqOV&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1144115034533978113?ref_src=twsrc%5Etfw&quot;&gt;June 27, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;
  Thursday was the big day of the conference. I woke up early, walked to La D&#233;fense in Paris, got lost a bit, and ended up arriving on time. 
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160770782_1ee03dbcbd_c.jpg&quot; title=&quot;Arc de Triomphe&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160770782/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160770782_1ee03dbcbd_q.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; alt=&quot;Arc de Triomphe&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160771767_7b8b413fbb_c.jpg&quot; title=&quot;River on my walk to JHipster Conf&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160771767/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160771767_7b8b413fbb_q.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; alt=&quot;River on my walk to JHipster Conf&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160772992_3fd6af1fc7_c.jpg&quot; title=&quot;Entering the land of bad GPS&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160772992/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160772992_3fd6af1fc7_q.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; alt=&quot;Entering the land of bad GPS&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I was pumped to meet some local &lt;a href=&quot;https://www.okta.com&quot;&gt;Okta&lt;/a&gt; folks and have them sponsor the event. I enjoyed quite a few talks throughout the day and &lt;a href=&quot;https://twitter.com/mraible/status/1144643581858242560&quot;&gt;learned how to add a CLI to your JHipster module&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160703756_cdfbd0e354_c.jpg&quot; title=&quot;Cindy Marion and Ernesto Butto at JHipster Conf&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160703756/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160703756_cdfbd0e354_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;Cindy Marion and Ernesto Butto at JHipster Conf&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160668586_764031c6c1_c.jpg&quot; title=&quot;Jon Ruddell at JHipster Conf&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160668586/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160668586_764031c6c1_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;Jon Ruddell at JHipster Conf&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I spoke about OAuth and OIDC just after lunch and &lt;a href=&quot;https://speakerdeck.com/mraible/what-the-heck-are-oauth-and-oidc-jhipster-conf-2019&quot;&gt;published my slides to Speaker Deck&lt;/a&gt;. You can view my presentation below.&lt;/p&gt;
&lt;div style=&quot;max-width: 600px; margin: 0 auto&quot;&gt;
&lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;88f1d4fc7d6949a1b33ff45bf3f8a806&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;After the conference ended at 7pm, a bunch of folks attended a party at &lt;a href=&quot;https://ippon.tech/&quot;&gt;Ippon&lt;/a&gt;. They have an excellent location with a gorgeous views from their rooftop patio.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160667211_cc5c4b1263_c.jpg&quot; title=&quot;JHipster Conf After Party at Ippon&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160667211/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160667211_cc5c4b1263_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;JHipster Conf After Party at Ippon&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160737307_315bc11699_c.jpg&quot; title=&quot;JHipster Conf After Party at Ippon&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160737307/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160737307_315bc11699_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;JHipster Conf After Party at Ippon&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160736502_0e1d9e6e68_c.jpg&quot; title=&quot;JHipster Conf After Party at Ippon&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160736502/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160736502_0e1d9e6e68_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;JHipster Conf After Party at Ippon&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://live.staticflickr.com/65535/48160735942_0640b4c6d8_c.jpg&quot; title=&quot;JHipster Conf After Party at Ippon&quot; rel=&quot;lightbox[jhipsterconf2019]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/48160735942/in/album-72157709338100441/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/48160735942_0640b4c6d8_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;JHipster Conf After Party at Ippon&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
  I agree with Cindy and Deepu&apos;s tweets about the conference. It was a fantastic experience!
&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
  &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I&amp;#39;m so grateful for this &lt;a href=&quot;https://twitter.com/jhipsterconf?ref_src=twsrc%5Etfw&quot;&gt;@jhipsterconf&lt;/a&gt; experience! You are a very special family! Thank you so much for bringing us together! ?? &lt;a href=&quot;https://t.co/yTkPQNlLJA&quot;&gt;pic.twitter.com/yTkPQNlLJA&lt;/a&gt;&lt;/p&gt;&amp;mdash; Cindy Marin (@laslorma) &lt;a href=&quot;https://twitter.com/laslorma/status/1144554471361601537?ref_src=twsrc%5Etfw&quot;&gt;June 28, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Wow &lt;a href=&quot;https://twitter.com/hashtag/jhipsterconf?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#jhipsterconf&lt;/a&gt; was such fun and such success. I hope everyone who attended enjoyed it. We had twice number of attendees from last year. I&amp;#39;m so glad I got to meet lot of core team IRL again. &lt;br&gt;So proud of the &lt;a href=&quot;https://twitter.com/java_hipster?ref_src=twsrc%5Etfw&quot;&gt;@java_hipster&lt;/a&gt; community. One of the few real &lt;a href=&quot;https://twitter.com/hashtag/OSS?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#OSS&lt;/a&gt; community.&lt;br&gt;thread ?? &lt;a href=&quot;https://t.co/i5UoepeINo&quot;&gt;pic.twitter.com/i5UoepeINo&lt;/a&gt;&lt;/p&gt;&amp;mdash; ?????????? ?? ???????????????????? (@deepu105) &lt;a href=&quot;https://twitter.com/deepu105/status/1144533511652741120?ref_src=twsrc%5Etfw&quot;&gt;June 28, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p style=&quot;font-size: .9em; font-style: italic; text-align: right&quot;&gt;For more pictures, see my &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157709338100441&quot;&gt;journey to JHipster Conf 2019 on Flickr&lt;/a&gt;.&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/2018_a_year_in_review</id>
        <title type="html">2018 - A Year in Review</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/2018_a_year_in_review"/>
        <published>2019-01-29T13:25:24-07:00</published>
        <updated>2024-05-21T21:21:22-06:00</updated> 
        <category term="/General" label="General" />
        <category term="family" scheme="http://roller.apache.org/ns/tags/" />
        <category term="roller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="hefethebus" scheme="http://roller.apache.org/ns/tags/" />
        <category term="blogging" scheme="http://roller.apache.org/ns/tags/" />
        <category term="syncro" scheme="http://roller.apache.org/ns/tags/" />
        <category term="okta" scheme="http://roller.apache.org/ns/tags/" />
        <category term="apacheroller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="porschebus" scheme="http://roller.apache.org/ns/tags/" />
        <category term="stoutthesyncro" scheme="http://roller.apache.org/ns/tags/" />
        <category term="2018" scheme="http://roller.apache.org/ns/tags/" />
        <category term="yearinreview" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;In 2018, I spoke at several fantastic meetups, traveled a bit overseas, and enjoyed some fun family vacations. We had the time of our lives driving Hefe in the Denver St. Paddy&apos;s Day Parade!&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://farm5.staticflickr.com/4782/40902535612_9fcc94e853_c.jpg&quot; title=&quot;Bubbles&quot; rel=&quot;lightbox[2018yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/40902535612/in/album-72157689027458320/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4782/40902535612_9fcc94e853.jpg&quot; width=&quot;500&quot; alt=&quot;Bubbles&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    We traveled to Crete for JCrete and had a blast with the Java community. We journeyed to Ireland with my folks, and I thoroughly enjoyed a speaking tour of Ireland JUGs and the Dublin JHipster Meetup. Our classic VWs had a great year with only minor repairs needed.
&lt;/p&gt;

&lt;p&gt;I&apos;m going to look back on 2018 using the following categories.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#professional&quot;&gt;Professional&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#speaking&quot;&gt;Speaking&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#community&quot;&gt;Community&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#projects&quot;&gt;Projects&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#personal&quot;&gt;Personal&lt;/a&gt;
        &lt;!--ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#stout-and-hefe&quot;&gt;Stout and Hefe&lt;/a&gt;&lt;/li&gt;
        &lt;/ul--&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#2019&quot;&gt;2019&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;professional&quot;&gt;Professional&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;For those stumbling upon this post with no context, I&apos;m a veteran open source developer that works at &lt;a href=&quot;https://okta.com&quot;&gt;Okta&lt;/a&gt; as a developer advocate.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
This year I focused on blogging more than speaking. I still spoke a fair bit, but I tried to focus on meetups more than conferences. The DevEx Team at Okta released a slew of SDKs at the end of 2017, so I had plenty to write about. Over the year, I found more and more developers had heard of Okta during my talks. I even found users in most audiences! This was quite a change from 2017, so it seems my team&apos;s advocacy efforts might be working.
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;In 2018, I spoke at several fantastic meetups, traveled a bit overseas, and enjoyed some fun family vacations. We had the time of our lives driving Hefe in the Denver St. Paddy&apos;s Day Parade!&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://farm5.staticflickr.com/4782/40902535612_9fcc94e853_c.jpg&quot; title=&quot;Bubbles&quot; rel=&quot;lightbox[2018yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/40902535612/in/album-72157689027458320/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4782/40902535612_9fcc94e853.jpg&quot; width=&quot;500&quot; alt=&quot;Bubbles&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    We traveled to Crete for JCrete and had a blast with the Java community. We journeyed to Ireland with my folks, and I thoroughly enjoyed a speaking tour of Ireland JUGs and the Dublin JHipster Meetup. Our classic VWs had a great year with only minor repairs needed.
&lt;/p&gt;

&lt;p&gt;I&apos;m going to look back on 2018 using the following categories.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#professional&quot;&gt;Professional&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#speaking&quot;&gt;Speaking&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#community&quot;&gt;Community&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#projects&quot;&gt;Projects&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#personal&quot;&gt;Personal&lt;/a&gt;
        &lt;!--ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#stout-and-hefe&quot;&gt;Stout and Hefe&lt;/a&gt;&lt;/li&gt;
        &lt;/ul--&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2018_a_year_in_review#2019&quot;&gt;2019&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;professional&quot;&gt;Professional&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;For those stumbling upon this post with no context, I&apos;m a veteran open source developer that works at &lt;a href=&quot;https://okta.com&quot;&gt;Okta&lt;/a&gt; as a developer advocate.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;
This year I focused on blogging more than speaking. I still spoke a fair bit, but I tried to focus on meetups more than conferences. The DevEx Team at Okta released a slew of SDKs at the end of 2017, so I had plenty to write about. Over the year, I found more and more developers had heard of Okta during my talks. I even found users in most audiences! This was quite a change from 2017, so it seems my team&apos;s advocacy efforts might be working.
&lt;/p&gt;
&lt;p&gt;
    I wrote 29 blog posts throughout the year on &lt;a href=&quot;https://developer.okta.com/blog&quot;&gt;the Okta developer blog&lt;/a&gt;. &lt;!-- If you count nine on raibledesigns.com and five on jhipster-book.com, that&apos;s 43! --&gt; We publish two types of blog posts: thought leadership and conversion. Thought leadership posts tend to be about a hot topic while conversion posts are generally tutorials. I wrote a series of posts on PWAs with Ionic + Angular and Spring Boot. The series started in January and ended in July.
&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/01/18/cryptocurrency-pwa-secured-by-okta&quot;&gt;Protect Your Cryptocurrency Wealth Tracking PWA with Okta&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/01/23/replace-local-storage-with-okta-profile-attributes&quot;&gt;Use Okta (Instead of Local Storage) to Store Your User&apos;s Data Securely&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/05/02/testing-spring-boot-angular-components&quot;&gt;The Hitchhiker&apos;s Guide to Testing Spring Boot APIs and Angular Components with WireMock, Jest, Protractor, and Travis CI&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/06/18/spring-boot-angular-auth-code-flow&quot;&gt;Deploy Your Secure Spring Boot + Angular PWA as a Single Artifact&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/07/11/ci-cd-spring-boot-jenkins-x-kubernetes&quot;&gt;Add CI/CD to Your Spring Boot App with Jenkins X and Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also wrote a number of posts on &lt;a href=&quot;https://www.jhipster.tech&quot;&gt;JHipster&lt;/a&gt;, starting with &lt;a href=&quot;https://developer.okta.com/blog/2018/01/30/jhipster-ionic-with-oidc-authentication&quot;&gt;Ionic for JHipster&lt;/a&gt;. Then I transitioned to microservices and showed &lt;a href=&quot;https://developer.okta.com/blog/2018/02/13/secure-spring-microservices-with-oauth&quot;&gt;how to build a Spring microservices architecture with Spring Security and OAuth 2.0&lt;/a&gt;. I felt this was important, as it&apos;s the same basic architecture that JHipster uses.&lt;/p&gt;
&lt;p&gt;
    I published &lt;a href=&quot;https://developer.okta.com/blog/2018/03/01/develop-microservices-jhipster-oauth&quot;&gt;Develop a Microservices Architecture with OAuth 2.0 and JHipster&lt;/a&gt;, and had two more JHipster posts about its React and React Native support.
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/06/25/react-spring-boot-photo-gallery-pwa&quot;&gt;Build a Photo Gallery PWA with React, Spring Boot, and JHipster&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/10/10/react-native-spring-boot-mobile-app&quot;&gt;Build a Mobile App with React Native and Spring Boot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I learned about React and React Native from research I did while writing previous posts.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/03/16/build-react-native-authentication-oauth-2&quot;&gt;Build a React Native Application and Authenticate with OAuth 2.0&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/07/19/simple-crud-react-and-spring-boot&quot;&gt;Use React and Spring Boot to Build a Simple CRUD App&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    I stayed current on the latest releases of Angular and Spring Boot because I &amp;#x2764; them both!
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/05/09/upgrade-to-angular-6&quot;&gt;Angular 6: What&apos;s New, and Why Upgrade
    &lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/11/26/spring-boot-2-dot-1-oidc-oauth2-reactive-apis&quot;&gt;Spring Boot 2.1: Outstanding OIDC, OAuth 2.0, and Reactive API Support&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/12/04/angular-7-oidc-oauth2-pkce&quot;&gt;Angular 7: What&apos;s New and Noteworthy + OIDC Goodness&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/08/22/basic-crud-angular-7-and-spring-boot-2&quot;&gt;Build a Basic CRUD App with Angular 7.0 and Spring Boot 2.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    I heard from several developers that they wanted to use Okta with their Java apps, but they weren&apos;t using Spring. Or they were using Spring MVC, but not Spring Boot. I wrote &lt;a href=&quot;https://developer.okta.com/blog/2018/09/12/secure-java-ee-rest-api&quot;&gt;Build a Java REST API with Java EE and OIDC&lt;/a&gt; to show a few authn/authz techniques: JWT validation, using Spring Security, and using Pac4j.
&lt;/p&gt;
&lt;p&gt;I had a blast in August and September collaborating with Josh Long about going &lt;a href=&quot;https://youtu.be/1xpwYe154Ys&quot;&gt;Full Stack Reactive with Spring WebFlux and React&lt;/a&gt;. Josh authored his parts with AsciiDoc and forced me to integrate &lt;a href=&quot;https://asciidoctor.org/&quot;&gt;Asciidoctor&lt;/a&gt; support in our blog. It took awhile, but I was thrilled with the result. Now I get to author all my blog posts with AsciiDoc! &amp;#x1F389;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/09/21/reactive-programming-with-spring&quot;&gt;Get Started with Reactive Programming in Spring&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/09/24/reactive-apis-with-spring-webflux&quot;&gt;Build Reactive APIs with Spring WebFlux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/09/25/spring-webflux-websockets-react&quot;&gt;Full Stack Reactive with Spring WebFlux, WebSockets, and React&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    I played with other new technologies in 2018, namely &lt;a href=&quot;https://developer.okta.com/blog/2018/07/11/build-react-graphql-api-user-authentication&quot;&gt;GraphQL and TypeORM&lt;/a&gt;, &lt;a href=&quot;https://developer.okta.com/blog/2018/09/17/desktop-app-electron-authentication&quot;&gt;Electron&lt;/a&gt;, and &lt;a href=&quot;https://developer.okta.com/blog/2018/12/03/bootiful-spring-boot-java-vue-typescript&quot;&gt;Vue with TypeScript&lt;/a&gt;.
&lt;/p&gt;
&lt;h3&gt;The Super Epic Advocacy Battle!&lt;/h3&gt;
&lt;p&gt;
    I was super motivated to write a bunch of blog posts in June and July because I was having a &quot;most views&quot; contest with &lt;a href=&quot;https://twitter.com/rdegges&quot;&gt;Randall Degges&lt;/a&gt;. The contest started after I mouthed off that I thought I could outperform him in the waning hours of our Oktane 2018 conference. He accepted my challenge and we competed for two months. He wrote mostly thought leadership posts, I wrote mostly tutorials. Long story short: he won. I had to wear gold pants the week of CodeOne for my lack of winning.
&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 500px&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Hanging out at Oracle Code One conf with my buddy &lt;a href=&quot;https://twitter.com/mraible?ref_src=twsrc%5Etfw&quot;&gt;@mraible&lt;/a&gt; and his amazing MC Hammer pants.&lt;br&gt;&lt;br&gt;I wonder why he&amp;#39;s wearing them? :D&lt;br&gt;&lt;br&gt;He&amp;#39;s about to get onstage to talk about micro services &amp;lt;33333 &lt;a href=&quot;https://t.co/syoiIeSDMc&quot;&gt;pic.twitter.com/syoiIeSDMc&lt;/a&gt;&lt;/p&gt;&amp;mdash; Randall Degges (@rdegges) &lt;a href=&quot;https://twitter.com/rdegges/status/1054452785725358080?ref_src=twsrc%5Etfw&quot;&gt;October 22, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;
If only I&apos;d published &lt;a href=&quot;https://developer.okta.com/blog/2018/07/30/10-ways-to-secure-spring-boot&quot;&gt;10 Excellent Ways to Secure Your Spring Boot Application&lt;/a&gt; earlier in our contest. I collaborated on it with &lt;a href=&quot;https://twitter.com/sjmaple&quot;&gt;Simon Maple&lt;/a&gt;, and it seemed to be popular.
&lt;/p&gt;
&lt;p&gt;
I wrote a few other thought leadership posts throughout 2018:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/03/19/how-to-be-productive-at-work&quot;&gt;How to Achieve Massive Productivity at Work&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/11/20/three-developer-tools-im-thankful-for&quot;&gt;Three Developer Tools I&apos;m Thankful For&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/12/11/learning-java-first-language&quot;&gt;Learning Java as a First Language&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;speaking&quot;&gt;Speaking&lt;/h3&gt;
&lt;p&gt;
    According to TripIt, I took 26 trips, to 37 cities, in 6 countries. That&apos;s three fewer trips than 2017, and I only had 119 days on the road (versus 141). By my count, I spoke at 20 events.
&lt;/p&gt;
&lt;table&gt;
    &lt;tr&gt;
        &lt;td&gt;
            &lt;ol&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/DOSUG1&quot;&gt;Denver Open Source Users Group&lt;/a&gt; (DOSUG)&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;http://ujug.org/&quot;&gt;Utah JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;http://seajug.org/&quot;&gt;Seattle JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Google-Developer-Group-Boulder/&quot;&gt;GDG Boulder&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Richmond-Java-Users-Group/&quot;&gt;Richmond JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.okta.com/oktane18/&quot;&gt;Oktane&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://jhipster-conf.github.io/&quot;&gt;JHipsterConf&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://uberconf.com/conference/denver/2018/07/home&quot;&gt;UberConf&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/boston-java/&quot;&gt;Boston JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/BelfastJUG/&quot;&gt;Belfast JUG&lt;/a&gt;&lt;/li&gt;
            &lt;/ol&gt;
        &lt;/td&gt;
        &lt;td&gt;
            &lt;ol start=&quot;11&quot;&gt;
                &lt;li&gt;&lt;a href=&quot;http://www.dubjug.org/&quot;&gt;Dublin JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/JHipsterDublin/&quot;&gt;JHipster Dublin&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;Denver Okta User Group&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://springoneplatform.io/&quot;&gt;SpringOne Platform&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;Salt Lake City Okta User Group&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Denver-Cloud-Security-Alliance-Meetup/&quot;&gt;Denver CSA Meetup&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;http://connect.tech/&quot;&gt;Connect.Tech&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.oracle.com/code-one/&quot;&gt;CodeOne&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/ChicagoJUG/&quot;&gt;Chicago JUG&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;https://therichwebexperience.com/conference/clearwater/2018/12/home&quot;&gt;The Rich Web Experience&lt;/a&gt;&lt;/li&gt;
            &lt;/ol&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/jhipsterconf_2018_summer_solstice_in&quot;&gt;JHipsterConf was especially fun&lt;/a&gt; because I took my son, Jack, with me. &lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 500px&quot;&gt;
    &lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I had a wonderful time this week in Paris and at &lt;a href=&quot;https://twitter.com/jhipsterconf?ref_src=twsrc%5Etfw&quot;&gt;@jhipsterconf&lt;/a&gt;. Many thanks to the &lt;a href=&quot;https://twitter.com/java_hipster?ref_src=twsrc%5Etfw&quot;&gt;@java_hipster&lt;/a&gt; developers, community, &lt;a href=&quot;https://twitter.com/juliendubois?ref_src=twsrc%5Etfw&quot;&gt;@juliendubois&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/deepu105?ref_src=twsrc%5Etfw&quot;&gt;@deepu105&lt;/a&gt;, and &lt;a href=&quot;https://twitter.com/ippontech?ref_src=twsrc%5Etfw&quot;&gt;@ippontech&lt;/a&gt; for making it all possible! &lt;a href=&quot;https://twitter.com/hashtag/JHipsterConf?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#JHipsterConf&lt;/a&gt; &lt;a href=&quot;https://t.co/61ZfRZxg8G&quot;&gt;pic.twitter.com/61ZfRZxg8G&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1010477663943909377?ref_src=twsrc%5Etfw&quot;&gt;June 23, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;
    I also attended a few conferences that I did not speak at: &lt;a href=&quot;https://www.iterateconf.io/&quot;&gt;Iterate&lt;/a&gt;, &lt;a href=&quot;http://www.jcrete.org/&quot;&gt;JCrete&lt;/a&gt;, and &lt;a href=&quot;https://monktoberfest.com/&quot;&gt;Monktoberfest&lt;/a&gt;. All of these were special in their own ways. JCrete was an unconference in an exotic location (Crete, Greece) and was a fantastic experience. I learned that 1) it&apos;s important to rent a car if you bring your family and 2) an unconference is what you make of it. Put a lot into it, and you&apos;ll get a lot out of it. As a speaker, I think it&apos;s a fantastic conference format because it&apos;s an excellent networking atmosphere. You can also learn a lot if there are peers with expertise in the topic you&apos;re interested in. Monktoberfest also provided next-level networking.
&lt;/p&gt;

&lt;h3 id=&quot;community&quot;&gt;Community&lt;/h3&gt;
&lt;p&gt;I was involved in many community activities in 2018: &lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/&quot;&gt;Devoxx4Kids Denver&lt;/a&gt;,
    &lt;a href=&quot;https://www.meetup.com/DenverJavaUsersGroup/&quot;&gt;Denver JUG&lt;/a&gt;, &lt;a href=&quot;https://www.meetup.com/DenverMicroservices/&quot;&gt;Denver Microservices Meetup&lt;/a&gt;, and I attended a few &lt;a href=&quot;https://www.meetup.com/DOSUG1/&quot;&gt;DOSUG&lt;/a&gt; meetups too.&lt;/p&gt;
&lt;p&gt;We had three Devoxx4Kids Denver workshops in 2018:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/events/247280135/&quot;&gt;Create 3D Models and Animations with Blender&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/events/249912127/&quot;&gt;Building Games With Unity&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/events/256271996/&quot;&gt;Gotta Catch &#8216;Em All! Raspberry Pi and Java Pokemon Training&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    Thanks to &lt;a href=&quot;https://twitter.com/elgatodekaitlyn&quot;&gt;Kaitlyn Hornbuckle&lt;/a&gt;, &lt;a href=&quot;https://www.linkedin.com/in/james-sablatura-9235b350/&quot;&gt;James Sablatura&lt;/a&gt;, and &lt;a href=&quot;https://twitter.com/tingsterchin&quot;&gt;Cassandra Chin&lt;/a&gt; for teaching these classes.
&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 500px&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Finished training Denver Pok&#233;mon Trainers at &lt;a href=&quot;https://twitter.com/hashtag/Devoxx4Kids?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#Devoxx4Kids&lt;/a&gt;.  Gotta catch them all!  &lt;a href=&quot;https://twitter.com/mraible?ref_src=twsrc%5Etfw&quot;&gt;@mraible&lt;/a&gt; &lt;a href=&quot;https://twitter.com/melissajmckay?ref_src=twsrc%5Etfw&quot;&gt;@melissajmckay&lt;/a&gt; &lt;a href=&quot;https://t.co/zQSbIdH7Zb&quot;&gt;pic.twitter.com/zQSbIdH7Zb&lt;/a&gt;&lt;/p&gt;&amp;mdash; Cassandra Chin (@tingsterchin) &lt;a href=&quot;https://twitter.com/tingsterchin/status/1071827255653949440?ref_src=twsrc%5Etfw&quot;&gt;December 9, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;
    We announced the &lt;strong&gt;2018 Denver JUG Rock Stars&lt;/strong&gt; at our December meetup. Venkat, David, and Jeff were voted as the group&apos;s favorite speakers. Y&apos;all were excellent! Thanks for adding DJUG to your schedules.
&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 500px&quot;&gt;
    &lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;At this week&amp;#39;s &lt;a href=&quot;https://twitter.com/denverjug?ref_src=twsrc%5Etfw&quot;&gt;@denverjug&lt;/a&gt;, we announced the Denver JUG Rock Stars of 2018. If you want to be entertained, intrigued, &amp;amp; educated: &lt;a href=&quot;https://twitter.com/venkat_s?ref_src=twsrc%5Etfw&quot;&gt;@venkat_s&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/dblevins?ref_src=twsrc%5Etfw&quot;&gt;@dblevins&lt;/a&gt;, and &lt;a href=&quot;https://twitter.com/jeffscottbrown?ref_src=twsrc%5Etfw&quot;&gt;@jeffscottbrown&lt;/a&gt; are three of our favorite speakers. &lt;a href=&quot;https://twitter.com/hashtag/denverjug?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#denverjug&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/rockstars?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#rockstars&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/java?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#java&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thanks to &lt;a href=&quot;https://twitter.com/oktadev?ref_src=twsrc%5Etfw&quot;&gt;@oktadev&lt;/a&gt; for sponsoring trophies! &lt;a href=&quot;https://t.co/uTNcDZVCFi&quot;&gt;pic.twitter.com/uTNcDZVCFi&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1073687604741181440?ref_src=twsrc%5Etfw&quot;&gt;December 14, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;h3 id=&quot;projects&quot;&gt;Projects&lt;/h3&gt;
&lt;p&gt;My projects these days are mostly around JHipster. I supported its OAuth 2.0 and OIDC support as best I could, and &lt;a href=&quot;https://github.com/oktadeveloper/generator-jhipster-ionic/releases&quot;&gt;released five versions of its Ionic module&lt;/a&gt;. I wrote about &lt;a href=&quot;https://developer.okta.com/blog/2018/01/30/jhipster-ionic-with-oidc-authentication&quot;&gt;how to use Ionic with JHipster&lt;/a&gt; in late January. I recorded a screencast showing
    &lt;a href=&quot;https://youtu.be/-VQ_SVkaXbs&quot;&gt;how to get started with JHipster 5&lt;/a&gt; in June.
&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/-VQ_SVkaXbs&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;We released the JHipster Mini-Book &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-v4x-released&quot;&gt;version 4.5 in April&lt;/a&gt; and &lt;a href=&quot;https://raibledesigns.com/rd/entry/the_jhipster_mini_book_v5&quot;&gt;version 5.0 in November&lt;/a&gt;. I published a Pluralsight course on &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/pluralsight-developing-microservices-and-mobile-apps-with-jhipster-play-by-play&quot;&gt;developing microservices and mobile apps with JHipster&lt;/a&gt; in April and released &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/21-points-v5-has-been-released&quot;&gt;21-Points Health 5.0&lt;/a&gt; in October.&lt;/p&gt;

&lt;h2 id=&quot;personal&quot;&gt;Personal&lt;/h2&gt;

&lt;p&gt;
    This year was a mix of work your ass off and try to have fun at the same time. There were many times when we wished we were home, but the times on the road were grand. I suspect this will be a constant battle for Trish and I. We love to be home, but we love to explore new places. If old friends gather with us at home or in new places, it&apos;s bound to be a fantastic evening!
&lt;/p&gt;
&lt;p&gt;
    The biggest change was Abbie became a &lt;em&gt;driver&lt;/em&gt;. For those parents with kids that have to chaperone endlessly throughout the weeks and weekends, you know this is a BFD! As of December 27, 2018, Abbie&apos;s now the captain of the ranch-to-school ship. She even drove in the blowing snow yesterday!
&lt;/p&gt;
&lt;p&gt;There were many highlights in 2019. My early favorite (that makes me tear up as I write this) is &lt;a href=&quot;//raibledesigns.com/rd/entry/hefe_3_5_has_been&quot;&gt;Hefe 3.5&lt;/a&gt;.
&lt;/p&gt;
    &lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
        &lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;My daughter observed the other day that most people are frowning when they&#8217;re driving. I&#8217;m not one of this people. In fact, I have to wear sunglasses to hide my tears of joy! &amp;#x1F923; &lt;a href=&quot;https://twitter.com/hashtag/HefeTheBus?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#HefeTheBus&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/21windows?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#21windows&lt;/a&gt; &lt;a href=&quot;https://t.co/0LWaQkjZlx&quot;&gt;pic.twitter.com/0LWaQkjZlx&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/973996844052180992?ref_src=twsrc%5Etfw&quot;&gt;March 14, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;We had a blast with Trish&apos;s parents &lt;a href=&quot;https://raibledesigns.com/rd/entry/spring_break_2018_sun_fun&quot;&gt;during Spring Break in Florida&lt;/a&gt; and squeezed in a day trip to Disney World.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/810/26408506757_ba6e81542e_c.jpg&quot; title=&quot;Disney Fireworks!&quot; rel=&quot;lightbox[2018yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/26408506757/in/album-72157667508590818/&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/810/26408506757_ba6e81542e.jpg&quot; width=&quot;500&quot; alt=&quot;Disney Fireworks!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://raibledesigns.com/rd/entry/farewell_to_the_2017_18&quot;&gt;2017-18&lt;/a&gt; ski season didn&apos;t bring a lot of snow, but our ski trip to Utah was wonderful!&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/970/41365298975_1c2a604378_c.jpg&quot; title=&quot;Alta!&quot; rel=&quot;lightbox[2018yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/41365298975/in/dateposted-public/&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/970/41365298975_1c2a604378.jpg&quot; width=&quot;500&quot; alt=&quot;Alta!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Trish and I celebrated our 5th anniversary at JCrete. I hope the next five years are as adventurous as the last five!&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Happy Friday! We&#8217;re having a blast celebrating our 5th anniversary in Greece. &amp;#x1F603 &lt;a href=&quot;https://twitter.com/hashtag/JCrete?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#JCrete&lt;/a&gt; &lt;a href=&quot;https://t.co/yMzphpNhnj&quot;&gt;pic.twitter.com/yMzphpNhnj&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1022829794151395328?ref_src=twsrc%5Etfw&quot;&gt;July 27, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Jack &lt;a href=&quot;https://raibledesigns.com/rd/entry/happy_birthday_jack7&quot;&gt;turned 14&lt;/a&gt;, and Abbie &lt;a href=&quot;https://raibledesigns.com/rd/entry/happy_birthday_abbie12&quot;&gt;turned 16&lt;/a&gt;. I&apos;m proud to say they&apos;re both fabulous humans. &amp;#x1F60A&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a data-href=&quot;https://www.flickr.com/photos/mraible/43441216425/&quot; href=&quot;https://farm2.staticflickr.com/1894/43441216425_7e456c4b73_c.jpg&quot; title=&quot;Jack at Versailles&quot; rel=&quot;lightbox[2018yearinreview]&quot;&gt;&lt;img src=&quot;https://farm2.staticflickr.com/1894/43441216425_7e456c4b73_m.jpg&quot; width=&quot;240&quot; alt=&quot;Jack at Versailles&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
  &lt;a data-href=&quot;https://www.flickr.com/photos/mraible/45018903354&quot; href=&quot;https://farm5.staticflickr.com/4912/45018903354_2d4ff98729_c.jpg&quot; title=&quot;Abbie in Crete&quot; rel=&quot;lightbox[2018yearinreview]&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4912/45018903354_2d4ff98729_m.jpg&quot; width=&quot;240&quot; alt=&quot;Abbie in Crete&quot; style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;If you want a glimpse of my backwoods childhood (without electricity) in Montana, see my &lt;a href=&quot;https://raibledesigns.com/rd/entry/life_update_thanksgiving_in_montana&quot;&gt;Life Update: Thanksgiving in Montana, RWX2018, Devoxx4Kids, DJUG, and Trish&apos;s Birthday&lt;/a&gt; post.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;

    &lt;a href=&quot;https://farm5.staticflickr.com/4914/31450743277_6741c5de04_c.jpg&quot; title=&quot;The Cabin&apos;s dining room&quot; rel=&quot;lightbox[2018yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/31450743277/in/album-72157704814416525/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4914/31450743277_6741c5de04_m.jpg&quot; width=&quot;240&quot; alt=&quot;The Cabin&apos;s dining room&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4820/45666897694_449e38462f_c.jpg&quot; title=&quot;The stove! My dad used to love sitting on the oven door every morning.&quot; rel=&quot;lightbox[2018yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/45666897694/in/album-72157704814416525/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4820/45666897694_449e38462f_m.jpg&quot; width=&quot;240&quot; alt=&quot;The stove! My dad used to love sitting on the oven door every morning.&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4837/32518041268_d3d696a280_c.jpg&quot; title=&quot;It&apos;s a guest room now, but I think my sister (Kalin) was born in this corner.&quot; rel=&quot;lightbox[2018yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/32518041268/in/album-72157704814416525/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4837/32518041268_d3d696a280_m.jpg&quot; width=&quot;240&quot; alt=&quot;It&apos;s a guest room now, but I think my sister (Kalin) was born in this corner.&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4821/45666893624_e6d3d5a8a7_c.jpg&quot; title=&quot;I was born in this corner.&quot; rel=&quot;lightbox[2018yearinreview]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/45666893624/in/album-72157704814416525/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4821/45666893624_e6d3d5a8a7_m.jpg&quot; width=&quot;240&quot; alt=&quot;I was born in this corner.&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;h2 id=&quot;2019&quot;&gt;2019&lt;/h2&gt;
&lt;p&gt;
    Professionally, I&apos;m planning to travel a bit more to exotic locations. Atlanta, San Francisco, Paris, Bangalore, Barcelona, and Kansas City are on my list (before August). The &lt;a href=&quot;https://twitter.com/oktadev&quot;&gt;Developer Relations team&lt;/a&gt; at &lt;a href=&quot;https://twitter.com/okta&quot;&gt;Okta&lt;/a&gt; is a fantastic place to be. As many of y&apos;all know, the best thing about a job is often your boss. Mine is &lt;a href=&quot;https://twitter.com/rdegges&quot;&gt;Randall Degges&lt;/a&gt;. He&apos;s a legitimate badass hacker. Don&apos;t try to win a popularity contest with him. There&apos;s a good chance I&apos;ll be at Okta as long as he&apos;s my boss.
&lt;/p&gt;
&lt;p&gt;On the developer relations team, we set our own schedules, plan our own interests, schedule our own conference appearances, and sponsor our favorite local events. Being a developer advocate is a gratifying job. You can write about your favorite open source frameworks, attend/sponsor local meetups, and learn new things every day! If you happen to be #devrel folk (or a like-minded awesomeperson), you might like my &lt;a href=&quot;https://developer.okta.com/blog/2019/01/28/developer-relations-pro-tips&quot;&gt;Pro Tips for Developer Relations&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;Personally, I&apos;d like to ski, raft, bike, and have a good time in 2019 a lot more! Y&apos;all know I won&apos;t have any problem with the last one, but its predecessors are the ones that really make me smile. Skiing down a chute, rafting through a class IV, and biking in Moab are some of the most exhilarating activities I&apos;ve ever experienced. I&apos;m getting a bit older (44) these days, but I still love playing in the outdoors. Luckily, I married a magical woman that loves the outdoors as much as I do. Even better, &lt;a href=&quot;https://www.mcginityphoto.com/&quot;&gt;she photographs its excellence&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Abbie is the school-commute driver, but Jack will be 15 in August, and he&apos;s determined to get his learners permit as soon as he can. That means he&apos;ll need a family member in the car that&apos;s 21+. If he wants to drive, the 20-minute-each-way commute is back on in the fall. For those of you with children of similar ages, you know that this is a precious time in our lives. I don&apos;t have a &lt;em&gt;work&lt;/em&gt; commute. Driving my kids to school takes an hour round-trip. If it were a commute to work, I&apos;d hate it. However, it&apos;s precious time with my kids, and it&apos;s really quite fabulous. Even if they&apos;re staring at their phones, you have their full attention. Ask questions and enjoy their responses.&lt;/p&gt;
&lt;p&gt;
Last year, I &lt;a href=&quot;https://raibledesigns.com/rd/entry/2017_a_year_in_review#personal&quot;&gt;said&lt;/a&gt; one of my goals was to simply be content. This year, I&apos;m taking it up a notch. If you don&apos;t have goals, how can you measure how you improved your life? I&apos;m a big believer in self-improvement, so here goes (in order of priority):
&lt;/p&gt;
&lt;h3 id=&quot;personal-goals&quot;&gt;Personal&lt;/h3&gt;
&lt;ul&gt;
    &lt;li&gt;Good Blood Pressure&lt;/li&gt;
    &lt;li&gt;More 2 and 3 point days&lt;/li&gt;
    &lt;li&gt;Ride/ski/hoops 4x week&lt;/li&gt;
    &lt;li&gt;Walk daily (preferably at home with Sagan and Daisy)&lt;/li&gt;
    &lt;li&gt;More salads, less red meat&lt;/li&gt;
    &lt;li&gt;Love is a verb, embrace 1:1 time with everyone (Trish, kids, parents, friends)&lt;/li&gt;
    &lt;li&gt;20 days camping&lt;/li&gt;
    &lt;li&gt;25 days skiing&lt;/li&gt;
    &lt;li&gt;15 days rafting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I&apos;m a big fan of the last three. Those activities typically involve a break from technology, the great outdoors, and exquisite views. &lt;a href=&quot;https://www.instagram.com/vwsforlife/&quot;&gt;Follow me on Instagram&lt;/a&gt; if you want a highlight reel.&lt;/p&gt;
&lt;p&gt;I have some work-related goals too, because metrics seem to motivate me.&lt;/p&gt;
&lt;h3 id=&quot;work&quot;&gt;Work&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Author/publish two blog posts per month&lt;/li&gt;
    &lt;li&gt;Review/mentor four blog posts per month&lt;/li&gt;
    &lt;li&gt;Record/publish two videos per month&lt;/li&gt;
    &lt;li&gt;One performance/speaking gig per month&lt;/li&gt;
    &lt;li&gt;Three &quot;no travel&quot; months&lt;/li&gt;
    &lt;li&gt;Stand more while working&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    I believe 2019 will be fabulous, and I hope to reflect my favorite moments on this blog. If you&apos;re a long-time follower, you&apos;ll notice I&apos;m mostly active &lt;a href=&quot;https://twitter.com/mraible&quot;&gt;@mraible&lt;/a&gt;. Y&apos;all use Twitter, right? That&apos;s my modern day notification channel. When I&apos;m super giddy, I&apos;ll post pictures of my favorite moments &lt;a href=&quot;https://www.instagram.com/vwsforlife&quot;&gt;on Instagram&lt;/a&gt;. When I want to save them forever, I publish them to &lt;a href=&quot;https://www.flickr.com/photos/mraible&quot;&gt;Flickr&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;I hope to see you at a conference or meetup in 2019!&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 600px&quot;&gt;
    &lt;blockquote class=&quot;instagram-media&quot; data-instgrm-captioned data-instgrm-permalink=&quot;https://www.instagram.com/p/BdoMtTilm2M/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; data-instgrm-version=&quot;12&quot; style=&quot; background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);&quot;&gt;&lt;div style=&quot;padding:16px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BdoMtTilm2M/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;&quot; target=&quot;_blank&quot;&gt; &lt;div style=&quot; display: flex; flex-direction: row; align-items: center;&quot;&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: column; flex-grow: 1; justify-content: center;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 19% 0;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;display:block; height:50px; margin:0 auto 12px; width:50px;&quot;&gt;&lt;svg width=&quot;50px&quot; height=&quot;50px&quot; viewBox=&quot;0 0 60 60&quot; version=&quot;1.1&quot; xmlns=&quot;https://www.w3.org/2000/svg&quot; xmlns&lt;img src=&quot;https://raibledesigns.com/images/smileys/love.gif&quot; class=&quot;smiley&quot; alt=&quot;:x&quot; title=&quot;:x&quot; /&gt;link=&quot;https://www.w3.org/1999/xlink&quot;&gt;&lt;g stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;g transform=&quot;translate(-511.000000, -20.000000)&quot; fill=&quot;#000000&quot;&gt;&lt;g&gt;&lt;path d=&quot;M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631&quot;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div style=&quot;padding-top: 8px;&quot;&gt; &lt;div style=&quot; color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;&quot;&gt; View this post on Instagram&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;padding: 12.5% 0;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;&quot;&gt;&lt;div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot;background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 8px;&quot;&gt; &lt;div style=&quot; background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: auto;&quot;&gt; &lt;div style=&quot; width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);&quot;&gt;&lt;/div&gt; &lt;div style=&quot; width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/a&gt; &lt;p style=&quot; margin:8px 0 0 0; padding:0 4px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BdoMtTilm2M/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;&quot; target=&quot;_blank&quot;&gt;Fun family photo in Crested Butte. #lastbestskitown&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;&quot;&gt;A post shared by &lt;a href=&quot;https://www.instagram.com/vwsforlife/?utm_source=ig_embed&amp;amp;utm_medium=loading&quot; style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px;&quot; target=&quot;_blank&quot;&gt; Matt Raible&lt;/a&gt; (@vwsforlife) on &lt;time style=&quot; font-family:Arial,sans-serif; font-size:14px; line-height:17px;&quot; datetime=&quot;2018-01-07T00:27:20+00:00&quot;&gt;Jan 6, 2018 at 4:27pm PST&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;script async src=&quot;//www.instagram.com/embed.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/let_the_okta_and_devoxx</id>
        <title type="html">Let the Okta and Devoxx Journeys Begin!</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/let_the_okta_and_devoxx"/>
        <published>2017-03-16T11:43:59-06:00</published>
        <updated>2017-03-16T18:02:05-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="okta" scheme="http://roller.apache.org/ns/tags/" />
        <category term="vws" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxxfr" scheme="http://roller.apache.org/ns/tags/" />
        <category term="hefe" scheme="http://roller.apache.org/ns/tags/" />
        <category term="stout" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxxus" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;
It&apos;s been almost a month since &lt;a href=&quot;https://stormpath.com/blog/stormpaths-new-path&quot;&gt;Stormpath joined forces with Okta&lt;/a&gt;. My first day at Okta was on February 27, and I was only briefly in the San Francisco headquarters. I had to fly out at noon on my second day, so I hunkered down in the Okta Pub and cranked out a presentation for a &lt;a href=&quot;https://www.meetup.com/kc-spring/events/237347674/&quot;&gt;talk with Micah Silverman&lt;/a&gt; at the Kansas City Spring User Group.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://www.flickr.com/photos/mraible/32660168943/&quot; title=&quot;The Okta Pub&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/1/597/32660168943_760470f40f.jpg&quot; width=&quot;500&quot; alt=&quot;The Okta Pub&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
That&apos;s right, Okta has a &lt;em&gt;pub&lt;/em&gt; in their SF HQ. When I first heard about this, I knew it&apos;d be a good fit for me!
&lt;/p&gt;

&lt;p&gt;Now properly fortified, I finished the presentation and headed for the airport, where I rejoiced in my clothing choices for the day.&lt;/p&gt;

&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;I love wearing this &lt;a href=&quot;https://twitter.com/goStormpath&quot;&gt;@goStormpath&lt;/a&gt; t-shirt when going through security at the airport. ?? &lt;a href=&quot;https://t.co/4oOGiaXEd9&quot;&gt;pic.twitter.com/4oOGiaXEd9&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/836650699962236928&quot;&gt;February 28, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;

&lt;p&gt;
The whirlwind of ramping up at Okta hasn&apos;t died down yet. Last week, I figured out how to authenticate with Okta&apos;s API using Spring Boot and SAML. I also got an OAuth 2.0 example working. Then I moved onto Angular and got an example working with OpenID Connect (OIDC), &lt;a href=&quot;https://github.com/okta/okta-signin-widget&quot;&gt;Okta&apos;s Sign-In Widget&lt;/a&gt;, and the &lt;a href=&quot;https://github.com/okta/okta-auth-js&quot;&gt;Okta Auth SDK&lt;/a&gt;. I was especially pumped when I got an Angular client working with OIDC and a Spring Boot + Spring Security backend. This week, I wrote up my findings as tutorials and recorded a couple screencasts to accompany them. These will likely show up as blogs posts on &lt;a href=&quot;http://developer.okta.com/blog/&quot;&gt;Okta Developer Blog&lt;/a&gt; over the next few weeks.
&lt;/p&gt;
&lt;p&gt;
While the first couple of weeks at Okta has been exciting, I&apos;m more excited about the upcoming Devoxx conferences I&apos;ll be speaking at.
&lt;/p&gt; 
&lt;p&gt;Next week, &lt;a href=&quot;http://devoxx.us/&quot;&gt;Devoxx US&lt;/a&gt; will be happening for the first time! As a member of the program committee, I  promise you this is going to be a great show! We had an incredible number of high quality submissions and it shows in the &lt;a href=&quot;http://cfp.devoxx.us/2017/talks&quot;&gt;agenda&lt;/a&gt;. I&apos;m especially looking forward to &lt;a href=&quot;https://twitter.com/janellekz&quot;&gt;Janelle Klein&apos;s&lt;/a&gt; &lt;a href=&quot;http://cfp.devoxx.us/2017/talk/NAN-8167/What_is_%22Identity%22%3F&quot;&gt;What is Identity?&lt;/a&gt; keynote. I&apos;ll be doing talks on &lt;a href=&quot;http://cfp.devoxx.us/2017/speaker/matt_raible&quot;&gt;JHipster, Asciidoctor, and how NOT to restore a VW Bus&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;Speaking of the bus, Hefe sure looks good, doesn&apos;t he? &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;&lt;/p&gt;

&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;instagram-media&quot; data-instgrm-version=&quot;7&quot; style=&quot; background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);&quot;&gt;&lt;div style=&quot;padding:8px;&quot;&gt; &lt;div style=&quot; background:#F8F8F8; line-height:0; margin-top:40px; padding:34.76851851851852% 0; text-align:center; width:100%;&quot;&gt; &lt;div style=&quot; background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAMUExURczMzPf399fX1+bm5mzY9AMAAADiSURBVDjLvZXbEsMgCES5/P8/t9FuRVCRmU73JWlzosgSIIZURCjo/ad+EQJJB4Hv8BFt+IDpQoCx1wjOSBFhh2XssxEIYn3ulI/6MNReE07UIWJEv8UEOWDS88LY97kqyTliJKKtuYBbruAyVh5wOHiXmpi5we58Ek028czwyuQdLKPG1Bkb4NnM+VeAnfHqn1k4+GPT6uGQcvu2h2OVuIf/gWUFyy8OWEpdyZSa3aVCqpVoVvzZZ2VTnn2wU8qzVjDDetO90GSy9mVLqtgYSy231MxrY6I2gGqjrTY0L8fxCxfCBbhWrsYYAAAAAElFTkSuQmCC); display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px; width:44px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;&quot;&gt;&lt;a href=&quot;https://www.instagram.com/p/BRqXnjwBck-/&quot; style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;&quot; target=&quot;_blank&quot;&gt;A post shared by Matt Raible (@vwsforlife)&lt;/a&gt; on &lt;time style=&quot; font-family:Arial,sans-serif; font-size:14px; line-height:17px;&quot; datetime=&quot;2017-03-15T14:24:26+00:00&quot;&gt;Mar 15, 2017 at 7:24am PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;script async defer src=&quot;//platform.instagram.com/en_US/embeds.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;

&lt;p&gt;After returning from Devoxx US, Trish and I are taking Abbie and Jack on the spring break trip of a lifetime. I&apos;ve never been to &lt;a href=&quot;http://bigskyresort.com/&quot;&gt;Big Sky&lt;/a&gt;, so we&apos;re heading there for a week of skiing, frolicking, and playing in the snow. I might even go phoneless for the week to fully embrace the serenity that Montana provides.
&lt;/p&gt;
&lt;p&gt;I&apos;m off to &lt;a href=&quot;http://devoxx.fr/&quot;&gt;Devoxx France&lt;/a&gt; the following week. I&apos;m really looking forward to this conference because &lt;a href=&quot;http://cfp.devoxx.fr/2017/speaker/matt_raible&quot;&gt;my talks&lt;/a&gt; are all about Angular. I&apos;ll be doing a hands-on lab on getting started with Angular, as well as developing a &lt;abbr title=&quot;Progressive Web App&quot;&gt;PWA&lt;/a&gt; with Josh Long.
&lt;/p&gt;
&lt;p&gt;To make things even better while I&apos;m on the road, I&apos;m getting some work done on both VWs. We&apos;re getting Stout the Syncro painted and having a stereo installed in Hefe. With any luck, Stout 5.0 and Hefe 3.0 will be released in April, just in time for the car show season.&lt;/p&gt;
&lt;p&gt;So yeah, life is pretty darn good right now. Let me know if you&apos;ll be in Tahoe, San Jose, Big Sky, or Paris when I&apos;m there. I&apos;d love to chat about authentication, open source technologies, VWs, or good beer.
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/2016_a_year_in_review</id>
        <title type="html">2016 - A Year in Review</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/2016_a_year_in_review"/>
        <published>2017-02-01T17:46:59-07:00</published>
        <updated>2018-01-31T16:10:43-07:00</updated> 
        <category term="/Roller" label="Roller" />
        <category term="raibleranch" scheme="http://roller.apache.org/ns/tags/" />
        <category term="2016" scheme="http://roller.apache.org/ns/tags/" />
        <category term="apacheroller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="syncro" scheme="http://roller.apache.org/ns/tags/" />
        <category term="blogging" scheme="http://roller.apache.org/ns/tags/" />
        <category term="porschebus" scheme="http://roller.apache.org/ns/tags/" />
        <category term="roller" scheme="http://roller.apache.org/ns/tags/" />
        <category term="yearinreview" scheme="http://roller.apache.org/ns/tags/" />
        <category term="stormpath" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;When I wrote my &lt;a href=&quot;//raibledesigns.com/rd/entry/2015_a_year_in_review&quot;&gt;2015 year in review blog post&lt;/a&gt;,
    I was certain my &apos;66 VW Bus would finally be finished. AND IT IS! Do I need to even write this year&apos;s post? Yes,
    because
    I want to tell you how awesome it is to own this incredible-looking, awesomely-fast, mean machine. &lt;img src=&quot;//raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;)&quot; title=&quot;;)&quot;&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://c1.staticflickr.com/1/325/31876057643_4a4cb6b330_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/31876057643/in/datetaken-public/&quot; title=&quot;Hefe 2.0&quot; rel=&quot;lightbox[yearinreview2016]&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/1/325/31876057643_4a4cb6b330.jpg&quot; width=&quot;500&quot; alt=&quot;Hefe 2.0&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;But first, let&apos;s review the year using the following categories.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#professional&quot;&gt;Professional&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#speaking&quot;&gt;Speaking&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#devoxx4kids&quot;&gt;Devoxx4Kids&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#projects&quot;&gt;Projects&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#personal&quot;&gt;Personal&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#stout&quot;&gt;The Ski Bus (&lt;em&gt;aka&lt;/em&gt; Stout)&lt;/a&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#hefe&quot;&gt;The Porsche Bus (&lt;em&gt;aka&lt;/em&gt;
                Hefe)&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#2017&quot;&gt;2017&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;professional&quot;&gt;Professional&lt;/h2&gt;
&lt;p&gt;
    I had two different clients in 2016: &lt;a href=&quot;https://www.ca.com/&quot;&gt;CA Technologies&lt;/a&gt; and &lt;a
    href=&quot;https://stormpath.com&quot;&gt;Stormpath&lt;/a&gt;. I worked full-time for CA in January and February, helping them adopt
    AngularJS.
    To help them learn about Angular 2, I rewrote my AngularJS &lt;a
    href=&quot;//raibledesigns.com/rd/entry/getting_started_with_angularjs&quot;&gt;getting started&lt;/a&gt; and &lt;a
    href=&quot;//raibledesigns.com/rd/entry/testing_angularjs_applications&quot;&gt;testing&lt;/a&gt; tutorials for Angular 2. The first
    versions were published at
    &lt;a href=&quot;//raibledesigns.com/rd/entry/getting_started_with_angular_2&quot;&gt;Getting Started with Angular 2&lt;/a&gt; and &lt;a
    href=&quot;//raibledesigns.com/rd/entry/testing_angular_2_applications&quot;&gt;Testing Angular 2 Applications&lt;/a&gt;.
    I refactored both tutorials to use Angular CLI in August and published &lt;a
    href=&quot;//raibledesigns.com/rd/entry/getting_started_with_angular_cli&quot;&gt;Getting Started + Testing with Angular CLI and
    Angular 2 (RC5)&lt;/a&gt;. Since then, I&apos;ve been maintaining an up-to-date version &lt;a
    href=&quot;https://github.com/mraible/ng-demo/blob/master/README.adoc&quot;&gt;on GitHub&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    In April, I started working half-time for CA and half-time for Stormpath. For Stormpath, I worked on their Java SDK
    and helped them launch their &lt;a href=&quot;https://www.infoq.com/news/2016/08/stormpath-java-1.0&quot;&gt;Java SDK 1.0&lt;/a&gt;. I
    really enjoyed working with the team at Stormpath. This led to me think about my priorities in life. I realized
    that I wanted to work remotely, get paid to speak at conferences, and get paid to work on open source. Stormpath
    provided me with all of these opportunities and I &lt;a href=&quot;https://stormpath.com/blog/hello-stormpath-matt-raible&quot;&gt;started
    working full-time&lt;/a&gt; for them on September 26, 2016.
&lt;/p&gt;
&lt;p&gt;
    In May, I joined the board of the &lt;a href=&quot;http://www.denverjug.org/&quot;&gt;Denver Java User Group&lt;/a&gt;. I&apos;ve been helping
    organize meetups, find speakers, and secure location sponsors. If you&apos;re interested in speaking at DJUG in 2017, please let me know!
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;When I wrote my &lt;a href=&quot;//raibledesigns.com/rd/entry/2015_a_year_in_review&quot;&gt;2015 year in review blog post&lt;/a&gt;,
    I was certain my &apos;66 VW Bus would finally be finished. AND IT IS! Do I need to even write this year&apos;s post? Yes,
    because
    I want to tell you how awesome it is to own this incredible-looking, awesomely-fast, mean machine. &lt;img src=&quot;//raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;)&quot; title=&quot;;)&quot;&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a data-flickr-embed=&quot;true&quot; data-header=&quot;false&quot; data-footer=&quot;false&quot;  href=&quot;https://www.flickr.com/photos/mraible/albums/72157666949317472&quot; title=&quot;Hello Hefe&quot;&gt;&lt;img src=&quot;https://farm2.staticflickr.com/1538/26402259315_8fff390a71_z.jpg&quot; width=&quot;640&quot; height=&quot;500&quot; alt=&quot;Hello Hefe&quot;&gt;&lt;/a&gt;&lt;script async src=&quot;//embedr.flickr.com/assets/client-code.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/p&gt;

&lt;p&gt;But first, let&apos;s review the year using the following categories.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#professional&quot;&gt;Professional&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#speaking&quot;&gt;Speaking&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#devoxx4kids&quot;&gt;Devoxx4Kids&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#projects&quot;&gt;Projects&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#personal&quot;&gt;Personal&lt;/a&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#stout&quot;&gt;The Ski Bus (&lt;em&gt;aka&lt;/em&gt; Stout)&lt;/a&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#hefe&quot;&gt;The Porsche Bus (&lt;em&gt;aka&lt;/em&gt;
                Hefe)&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;//raibledesigns.com/rd/entry/2016_a_year_in_review#2017&quot;&gt;2017&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;professional&quot;&gt;Professional&lt;/h2&gt;
&lt;p&gt;
    I had two different clients in 2016: &lt;a href=&quot;https://www.ca.com/&quot;&gt;CA Technologies&lt;/a&gt; and &lt;a
    href=&quot;https://stormpath.com&quot;&gt;Stormpath&lt;/a&gt;. I worked full-time for CA in January and February, helping them adopt
    AngularJS.
    To help them learn about Angular 2, I rewrote my AngularJS &lt;a
    href=&quot;//raibledesigns.com/rd/entry/getting_started_with_angularjs&quot;&gt;getting started&lt;/a&gt; and &lt;a
    href=&quot;//raibledesigns.com/rd/entry/testing_angularjs_applications&quot;&gt;testing&lt;/a&gt; tutorials for Angular 2. The first
    versions were published at
    &lt;a href=&quot;//raibledesigns.com/rd/entry/getting_started_with_angular_2&quot;&gt;Getting Started with Angular 2&lt;/a&gt; and &lt;a
    href=&quot;//raibledesigns.com/rd/entry/testing_angular_2_applications&quot;&gt;Testing Angular 2 Applications&lt;/a&gt;.
    I refactored both tutorials to use Angular CLI in August and published &lt;a
    href=&quot;//raibledesigns.com/rd/entry/getting_started_with_angular_cli&quot;&gt;Getting Started + Testing with Angular CLI and
    Angular 2 (RC5)&lt;/a&gt;. Since then, I&apos;ve been maintaining an up-to-date version &lt;a
    href=&quot;https://github.com/mraible/ng-demo/blob/master/README.adoc&quot;&gt;on GitHub&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    In April, I started working half-time for CA and half-time for Stormpath. For Stormpath, I worked on their Java SDK
    and helped them launch their &lt;a href=&quot;https://www.infoq.com/news/2016/08/stormpath-java-1.0&quot;&gt;Java SDK 1.0&lt;/a&gt;. I
    really enjoyed working with the team at Stormpath. This led to me think about my priorities in life. I realized
    that I wanted to work remotely, get paid to speak at conferences, and get paid to work on open source. Stormpath
    provided me with all of these opportunities and I &lt;a href=&quot;https://stormpath.com/blog/hello-stormpath-matt-raible&quot;&gt;started
    working full-time&lt;/a&gt; for them on September 26, 2016.
&lt;/p&gt;
&lt;p&gt;
    In May, I joined the board of the &lt;a href=&quot;http://www.denverjug.org/&quot;&gt;Denver Java User Group&lt;/a&gt;. I&apos;ve been helping
    organize meetups, find speakers, and secure location sponsors. If you&apos;re interested in speaking at DJUG in 2017, please let me know!
&lt;/p&gt;
&lt;p&gt;
    I wrote about &lt;a href=&quot;//raibledesigns.com/rd/entry/life_as_an_open_source&quot;&gt;life as an open source developer&lt;/a&gt; in
    early November. At that time, I mentioned being more stressed than I was used to. My stress levels continued to be high through the
    end of the year because I get to create my own job. I get to choose the conferences I submit too, the talks I
    create, the example apps, the blog posts, everything. There&apos;s so much I want to do that I&apos;ve had to learn to &lt;em&gt;scale
        back&lt;/em&gt; and not try to do so much at once.
&lt;/p&gt;
&lt;p&gt;
    I didn&apos;t blog much on raibledesigns.com in Q4 of 2016, but I wrote a bunch of technical posts on the &lt;a
    href=&quot;https://stormpath.com/blog&quot;&gt;Stormpath
    blog&lt;/a&gt;.
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://stormpath.com/blog/angularjs-spring-boot-tutorial&quot;&gt;Tutorial: Get Started with AngularJS, Spring
        Boot, and Stormpath&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://stormpath.com/blog/stormpath-jhipster-application&quot;&gt;Add Stormpath to Your JHipster
        Application&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://stormpath.com/blog/angular-2-user-authentication&quot;&gt;Build an Angular 2 Application with User
        Authentication in 10 Minutes&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://stormpath.com/blog/java-sdk-architecture&quot;&gt;The Architecture of Stormpath&#8217;s Java SDK&lt;/a&gt;
    &lt;li&gt;&lt;a href=&quot;https://stormpath.com/blog/angularjs-spring-boot-tips&quot;&gt;Tips and Tricks for AngularJS and Spring
        Boot with Stormpath&lt;/a&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;According to TripIt, I flew &lt;a href=&quot;http://cem.re/year-in-review/55145c02b97d22c568e9f7668cf0eb65f2652779.html&quot;&gt;59K
    miles in 2016&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;speaking&quot;&gt;Speaking&lt;/h3&gt;
&lt;p&gt;I spoke at nine different events in 2016. You can find links to my presentations on &lt;a href=&quot;//raibledesigns.com/rd/page/publications&quot;&gt;my
    presentations page&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;February: Denver Open Source Users Group&lt;/li&gt;
    &lt;li&gt;April: Colorado Springs Open Source Software Meetup Group and Devoxx France&lt;/li&gt;
    &lt;li&gt;June: Devoxx UK and GeekOut&lt;/li&gt;
    &lt;li&gt;August: HTML5 Denver Users Group&lt;/li&gt;
    &lt;li&gt;September: vJUG24&lt;/li&gt;
    &lt;li&gt;November: Rocky Mountain Software Symposium&lt;/li&gt;
    &lt;li&gt;December: The Rich Web Experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My most memorable conference in 2016 was Devoxx France because I took Abbie and we experienced &lt;a
    href=&quot;//raibledesigns.com/rd/entry/devoxx_france_2016_springtime_in&quot;&gt;springtime in Paris&lt;/a&gt; together.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1650/26377054130_d1d6561024_c.jpg&quot; title=&quot;Obligatory Arc de Triomphe selfie&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26377054130/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1650/26377054130_d1d6561024_m.jpg&quot; width=&quot;240&quot;
        alt=&quot;Obligatory Arc de Triomphe selfie&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1548/26377063160_2cc22299cf_c.jpg&quot; title=&quot;Abbie and Eiffel Tower&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26377063160/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1548/26377063160_2cc22299cf_m.jpg&quot; width=&quot;240&quot; alt=&quot;Abbie and Eiffel Tower&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1490/26044647774_97f6749313_c.jpg&quot; title=&quot;Spring in Paris is beautiful!&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26044647774/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1490/26044647774_97f6749313.jpg&quot; width=&quot;500&quot;
        alt=&quot;Spring in Paris is beautiful!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    Becoming a &lt;a href=&quot;https://community.oracle.com/community/java/java-champions&quot;&gt;Java Champion&lt;/a&gt; at Devoxx France was certainly a surprise too!
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1495/26044726404_91272a2bae_c.jpg&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26044726404/in/album-72157667022214770/&quot;
       title=&quot;Les Cast Codeurs&quot; rel=&quot;lightbox[yearinreview2016]&quot;&gt;
        &lt;img src=&quot;https://farm2.staticflickr.com/1495/26044726404_91272a2bae_m.jpg&quot; width=&quot;240&quot; alt=&quot;Les Cast Codeurs&quot;
             style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1465/26044729304_080e658df0_c.jpg&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26044729304/in/album-72157667022214770/&quot;
       title=&quot;I&apos;m a Java Champion! :)&quot; rel=&quot;lightbox[yearinreview2016]&quot;&gt;
        &lt;img src=&quot;https://farm2.staticflickr.com/1465/26044729304_080e658df0_m.jpg&quot; width=&quot;240&quot;
             alt=&quot;I&apos;m a Java Champion! :)&quot; style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    I really enjoyed taking my mom with me to &lt;a href=&quot;//raibledesigns.com/rd/entry/a_delightful_trip_to_devoxx&quot;&gt;Devoxx
    UK and GeekOut&lt;/a&gt;. It was my first time speaking at both conferences and I was impressed by both personnel
    and venues.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c2.staticflickr.com/8/7725/27617750865_1e2f064928_c.jpg&quot; title=&quot;St. Paul&apos;s Cathedral&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/27617750865/in/album-72157666992992284/&quot;&gt;&lt;img
        src=&quot;https://c2.staticflickr.com/8/7725/27617750865_1e2f064928_m.jpg&quot; width=&quot;240&quot; alt=&quot;St. Paul&apos;s Cathedral&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://c5.staticflickr.com/8/7387/27340321980_2438e8585b_c.jpg&quot; title=&quot;Tallin, Estonia&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/27340321980/in/album-72157666992992284/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/8/7387/27340321980_2438e8585b_m.jpg&quot; width=&quot;240&quot; alt=&quot;Tallin, Estonia&quot;
        style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&quot;devoxx4kids&quot;&gt;Devoxx4Kids&lt;/h3&gt;
&lt;p&gt;We only had two &lt;a href=&quot;http://www.meetup.com/Devoxx4Kids-Denver&quot;&gt;Devoxx4Kids Denver&lt;/a&gt; workshops in 2016: &lt;a
    href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/events/228591168/&quot;&gt;Introduction to Object-Oriented JavaScript using
    Bitsbox&lt;/a&gt; and &lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/events/232720431/&quot;&gt;Exploring JavaScript&lt;/a&gt;. The
    second one was taught by the world-famous &lt;a href=&quot;https://twitter.com/venkat_s&quot;&gt;Venkat Subramaniam&lt;/a&gt;.&lt;/p&gt;
&lt;div style=&quot;max-width: 500px; margin: 0 auto&quot;&gt;
    &lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;The great &lt;a
        href=&quot;https://twitter.com/venkat_s&quot;&gt;@venkat_s&lt;/a&gt; teaching &lt;a
        href=&quot;https://twitter.com/hashtag/Denver?src=hash&quot;&gt;#Denver&lt;/a&gt; kids about JavaScript. So awesome! &lt;a
        href=&quot;https://twitter.com/hashtag/Devoxx4Kids?src=hash&quot;&gt;#Devoxx4Kids&lt;/a&gt; &lt;a href=&quot;https://t.co/CqOW5ma6Cq&quot;&gt;pic.twitter.com/CqOW5ma6Cq&lt;/a&gt;
    &lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/774645470681403392&quot;&gt;September 10,
        2016&lt;/a&gt;&lt;/blockquote&gt;
    &lt;script async src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;
    I&apos;d like to plan a few Devoxx4Kids Denver events in 2017, so &lt;a href=&quot;//raibledesigns.com/rd/page/contact&quot;&gt;please let me know&lt;/a&gt;
    if you have a topic you&apos;d like to present.
&lt;/p&gt;
&lt;h3 id=&quot;projects&quot;&gt;Projects&lt;/h3&gt;
&lt;p&gt;
    I stopped working on AppFuse in February and announced I was &lt;a
    href=&quot;//raibledesigns.com/rd/entry/moving_appfuse_into_the_attic&quot;&gt;mothballing the project&lt;/a&gt; in April. &lt;b&gt;Reminder:&lt;/b&gt;
    the &lt;a href=&quot;http://demo.appfuse.org&quot;&gt;demos&lt;/a&gt;, &lt;a href=&quot;http://appfuse.org&quot;&gt;documentation&lt;/a&gt; and &lt;a
    href=&quot;http://issues.appfuse.org&quot;&gt;bug tracker&lt;/a&gt; will cease to exist on April 30, 2017.&lt;/p&gt;
&lt;p&gt;
    &lt;a href=&quot;https://www.infoq.com/minibooks/jhipster-4-mini-book&quot;&gt;
        &lt;img src=&quot;https://res.infoq.com/minibooks/jhipster-4-mini-book/en/cover/JHipster-Mini-book-COVER-thumb.jpg&quot;
             alt=&quot;The JHipster Mini-Book&quot; width=&quot;100&quot; class=&quot;picture&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
    I spent many late nights in July through October updating the &lt;a
    href=&quot;https://www.infoq.com/minibooks/jhipster-2-mini-book&quot;&gt;JHipster Mini-Book&lt;/a&gt; for JHipster 3.x. On the book&apos;s
    blog, I wrote about &lt;a
    href=&quot;http://www.jhipster-book.com/#!/news/entry/book-updated-for-jhipster-3-and-jhipster-gets-dirty&quot;&gt;what&apos;s
    changed&lt;/a&gt; and &lt;a
    href=&quot;http://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-v2-now-available-for-download&quot;&gt;how to buy a
    print version&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;personal&quot;&gt;Personal&lt;/h2&gt;

&lt;p&gt;I wrote down my goals at the beginning of 2016:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Finish the bus&lt;/li&gt;
    &lt;li&gt;Win a trophy&lt;/li&gt;
    &lt;li&gt;Ski a lot&lt;/li&gt;
    &lt;li&gt;Raft a lot&lt;/li&gt;
    &lt;li&gt;Stay in shape&lt;/li&gt;
    &lt;li&gt;July in Montana&lt;/li&gt;
    &lt;li&gt;Happy Trish&lt;/li&gt;
    &lt;li&gt;Ionic/Angular2 app&lt;/li&gt;
    &lt;li&gt;Learn how to make a good dirty martini&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I&apos;m proud to &lt;a href=&quot;//raibledesigns.com/rd/entry/the_bus_is_home&quot;&gt;the bus is finished&lt;/a&gt; and it won Best in Class
    at VWs on the Green.&lt;/p&gt;
&lt;div style=&quot;width: 350px; margin: 0 auto&quot;&gt;
&lt;blockquote class=&quot;instagram-media&quot; data-instgrm-captioned data-instgrm-version=&quot;7&quot; style=&quot; background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);&quot;&gt;&lt;div style=&quot;padding:8px;&quot;&gt; &lt;div style=&quot; background:#F8F8F8; line-height:0; margin-top:40px; padding:47.22222222222222% 0; text-align:center; width:100%;&quot;&gt; &lt;div style=&quot; background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAMUExURczMzPf399fX1+bm5mzY9AMAAADiSURBVDjLvZXbEsMgCES5/P8/t9FuRVCRmU73JWlzosgSIIZURCjo/ad+EQJJB4Hv8BFt+IDpQoCx1wjOSBFhh2XssxEIYn3ulI/6MNReE07UIWJEv8UEOWDS88LY97kqyTliJKKtuYBbruAyVh5wOHiXmpi5we58Ek028czwyuQdLKPG1Bkb4NnM+VeAnfHqn1k4+GPT6uGQcvu2h2OVuIf/gWUFyy8OWEpdyZSa3aVCqpVoVvzZZ2VTnn2wU8qzVjDDetO90GSy9mVLqtgYSy231MxrY6I2gGqjrTY0L8fxCxfCBbhWrsYYAAAAAElFTkSuQmCC); display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px; width:44px;&quot;&gt;&lt;/div&gt;&lt;/div&gt; &lt;p style=&quot; margin:8px 0 0 0; padding:0 4px;&quot;&gt; &lt;a href=&quot;https://www.instagram.com/p/BFcYBZyFPFk/&quot; style=&quot; color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;&quot; target=&quot;_blank&quot;&gt;Today was a great day! Won best in class Bus, Camper, Pickup Custom 1949-67 Split Window. #vwbus&lt;/a&gt;&lt;/p&gt; &lt;p style=&quot; color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;&quot;&gt;A photo posted by Matt Raible (@vwsforlife) on &lt;time style=&quot; font-family:Arial,sans-serif; font-size:14px; line-height:17px;&quot; datetime=&quot;2016-05-15T21:41:51+00:00&quot;&gt;May 15, 2016 at 2:41pm PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;script async defer src=&quot;//platform.instagram.com/en_US/embeds.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;We skied a lot, but never took our own raft on river. I stayed in shape and have records to prove it thanks to &lt;a
    href=&quot;http://www.21-points.com&quot;&gt;21-Points Health&lt;/a&gt; and &lt;a
    href=&quot;http://www.dailymile.com/people/mraible/training/2016/summary&quot;&gt;dailymile&lt;/a&gt;. This summer, I spent seven
    weekends in a row away from home; with three weeks in Montana. Not quite a month, but close. Trish was happy because
    we journeyed to Hawaii to celebrate her parents&apos; 50th anniversary.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c7.staticflickr.com/9/8060/29900654526_7c112a74e7_c.jpg&quot; title=&quot;Happy 50th Mau and Joe!&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900654526/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c7.staticflickr.com/9/8060/29900654526_7c112a74e7.jpg&quot; width=&quot;500&quot; alt=&quot;Happy 50th Mau and Joe!&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;Her happiness continued when she found her dream home in July. We moved into
    &lt;a href=&quot;//raibledesigns.com/rd/entry/life_update_a_summer_to&quot;&gt;The Raible Ranch&lt;/a&gt; in September.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c1.staticflickr.com/9/8085/29900652696_22d3a60f0b_c.jpg&quot; title=&quot;Home Sweet Home!&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900652696/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/9/8085/29900652696_22d3a60f0b.jpg&quot; width=&quot;500&quot; alt=&quot;Home Sweet Home!&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
    Weeks later, she and Abbie bought their dream horse named Tucker. I wrote about him in &lt;a
    href=&quot;//raibledesigns.com/rd/entry/happy_birthday_abbie10&quot;&gt;Abbie&apos;s 14th birthday post&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c7.staticflickr.com/6/5717/30766171446_2e96dd2477_c.jpg&quot; title=&quot;Abbie and Tucker&quot;
       rel=&quot;lightbox[yearinreview2016]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/30766171446/in/feed&quot;&gt;&lt;img
        src=&quot;https://c7.staticflickr.com/6/5717/30766171446_2e96dd2477_m.jpg&quot; width=&quot;240&quot; alt=&quot;Abbie and Tucker&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://c3.staticflickr.com/6/5348/30501849050_0001c1ee48_c.jpg&quot; title=&quot;Abbie and Tucker&quot;
       rel=&quot;lightbox[yearinreview2016]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/30501849050/in/feed&quot;&gt;&lt;img
        src=&quot;https://c3.staticflickr.com/6/5348/30501849050_0001c1ee48_m.jpg&quot; width=&quot;240&quot; alt=&quot;Abbie and Tucker&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I learned how to make an excellent dirty martini, but did not find the time to create an Ionic/Angular2 app.
&lt;h3 id=&quot;stout&quot;&gt;The Ski Bus (&lt;em&gt;aka&lt;/em&gt; Stout)&lt;/h3&gt;
&lt;p&gt;Stout the Syncro spent a couple months &lt;a href=&quot;https://www.flickr.com/photos/mraible/sets/72157674783246243&quot;&gt;getting
    upgrades&lt;/a&gt; in late 2015: transmission rebuilt, fridge installed, Propex heater installed, and new headlights.
    We leveraged these improvements on an &lt;a href=&quot;//raibledesigns.com/rd/entry/raible_road_trip_70_to&quot;&gt;epic family
        road trip to Jekyll Island (Georgia)&lt;/a&gt; for my Dad&apos;s 70th birthday.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1477/24510650770_94df1d646b_c.jpg&quot; title=&quot;Cards in the van&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/24510650770/in/album-72157661957952463/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1477/24510650770_94df1d646b_m.jpg&quot; width=&quot;240&quot; alt=&quot;Cards in the van&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://farm2.staticflickr.com/1720/24688342302_0a0cd91280_c.jpg&quot;
       title=&quot;Our campsite in Hot Springs, AR. 21F that night.&quot; rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/24688342302/in/album-72157661957952463/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1720/24688342302_0a0cd91280_m.jpg&quot; width=&quot;240&quot;
        alt=&quot;Our campsite in Hot Springs, AR. 21F that night.&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;We made it back to Denver just in time for the AFC Championship game and thoroughly enjoyed ourselves tailgating
    beforehand.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1657/24438602429_06d112155c_c.jpg&quot;
       title=&quot;We made it to Denver at 11pm Saturday. Broncos tailgate on Sunday!&quot; rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/24438602429/in/album-72157661957952463/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1657/24438602429_06d112155c.jpg&quot; width=&quot;500&quot;
        alt=&quot;We made it to Denver at 11pm Saturday. Broncos tailgate on Sunday!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Watching the Broncos win Super Bowl 50 was definitely a highlight of 2016.&lt;/p&gt;
&lt;p&gt;We took Stout on a bunch of ski trips and winter camped several times. The Propex heater and Reflectix insulation
    worked great and kept it around 50&amp;deg;F even when it was 0&amp;deg;F out.&lt;/p&gt;
&lt;p&gt;I bought a new mountain bike (Yeti SB 95) in May and Trish and I drove the van to &lt;a
    href=&quot;http://syncrosolstice.com&quot;&gt;Syncro Solstice&lt;/a&gt; in Moab. We were hoping for a weekend of mountain biking and 4-wheeling, but Trish had a bad crash and
    stabbed herself in the chest with a handlebar. That ended our 4x4 aspirations for the weekend, but the van ran
    great!&lt;/p&gt;
&lt;p&gt;The other major road trip for Stout was when I drove from Colorado to Montana over four days. I drove to Grand
    Junction on Monday evenning, worked during the day on Tuesday, went mountain biking in the afternoon, then drove to
    Jackson Hole that night. Wednesday, I worked in Jackson Hole, went mountain biking, then drove to Montana that
    night. I woke up early on Thursday and made it to Missoula to start working promptly at 8am. That evening, I drove
    to Seeley Lake and setup camp at the first annual &lt;a href=&quot;http://www.thebobmusic.com/&quot;&gt;Bob Marshall Music
        Festival&lt;/a&gt;. Trish flew in on Friday and we danced and celebrated my birthday all weekend.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c1.staticflickr.com/8/7490/29900643306_92e64b8945_c.jpg&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643306/in/datetaken/&quot;
       title=&quot;I like how this birthday week is progressing!&quot; rel=&quot;lightbox[yearinreview2016]&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/8/7490/29900643306_92e64b8945_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;I like how this birthday week is progressing!&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
    &lt;a rel=&quot;lightbox[yearinreview2016]&quot; href=&quot;https://c1.staticflickr.com/9/8468/29900643616_f47aa962c2_c.jpg&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643616/in/datetaken/&quot;
       title=&quot;It&amp;#x27;s easy to fall in love with Jackson, Wyoming on a day like today!&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/9/8468/29900643616_f47aa962c2_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;It&amp;#x27;s easy to fall in love with Jackson, Wyoming on a day like today!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
    &lt;a rel=&quot;lightbox[yearinreview2016]&quot; href=&quot;https://c1.staticflickr.com/8/7526/29900643736_cf5b6ef57c_c.jpg&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643736/in/datetaken/&quot; title=&quot;Idaho Sunset in Teton Valley&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/8/7526/29900643736_cf5b6ef57c_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;Idaho Sunset in Teton Valley&quot; style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;

    &lt;a rel=&quot;lightbox[yearinreview2016]&quot; href=&quot;https://c1.staticflickr.com/9/8819/29900643836_3b78c8a092_c.jpg&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643836/in/datetaken/&quot; title=&quot;Montana!&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/9/8819/29900643836_3b78c8a092.jpg&quot; width=&quot;500&quot; alt=&quot;Montana!&quot;
        style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&quot;hefe&quot;&gt;The Porsche Bus (&lt;em&gt;aka&lt;/em&gt; Hefe)&lt;/h3&gt;
&lt;p&gt;Hefe&apos;s debut at VWs on the Green was a wild success and we had a lot of fun that day. In June, we showed him at
    Colorado Concours d&apos;Elegance and won a blue ribbon. We trailered him to Montana and drove him in the Swan Valley
    parade &lt;em&gt;and&lt;/em&gt; the Seeley Lake parade.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c4.staticflickr.com/9/8265/29869377531_391704082d_c.jpg&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29869377531/in/album-72157673202240580/&quot;
       title=&quot;Hefe in the Swan Valley Parade&quot; rel=&quot;lightbox[yearinreview2016]&quot;&gt;&lt;img
        src=&quot;https://c4.staticflickr.com/9/8265/29869377531_391704082d_m.jpg&quot; width=&quot;240&quot;
        alt=&quot;Hefe in the Swan Valley Parade&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://c7.staticflickr.com/9/8770/29900642926_1ec60a28d1_c.jpg&quot;
       title=&quot;Our 2nd parade of the day! Hefe is lookin&apos; good. Happy 4th y&apos;all!&quot; rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900642926/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c7.staticflickr.com/9/8770/29900642926_1ec60a28d1_m.jpg&quot; width=&quot;240&quot;
        alt=&quot;Our 2nd parade of the day! Hefe is lookin&apos; good. Happy 4th y&apos;all!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;We hauled him back in Denver to be in the Colorado Bug-In at Bandimere Speedway, where he got second in the
    custom/radical class.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a rel=&quot;lightbox[yearinreview2016]&quot; href=&quot;https://c7.staticflickr.com/9/8509/29900643086_753e1e8e1c_c.jpg&quot;
       title=&quot;Hefe at his finest&quot; rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643086/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c7.staticflickr.com/9/8509/29900643086_753e1e8e1c_m.jpg&quot; width=&quot;240&quot; alt=&quot;Hefe at his finest&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a rel=&quot;lightbox[yearinreview2016]&quot; href=&quot;https://c5.staticflickr.com/8/7472/29900643196_0a3d735d17_c.jpg&quot;
       title=&quot;Got Runner Up in our class. Lost to a very nice Karmann Ghia. However, they trailered theirs home and I&apos;m driving mine!&quot;
       rel=&quot;lightbox[yearinreview2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643196/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/8/7472/29900643196_0a3d735d17_m.jpg&quot; width=&quot;240&quot;
        alt=&quot;Got Runner Up in our class. Lost to a very nice Karmann Ghia. However, they trailered theirs home and I&apos;m driving mine!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;On the way home from that event, one of the rear shocks blew up from rubbing against the axle. That was the beginning
    of the end for my air suspension. I drove Hefe to &lt;a href=&quot;http://kustomcoachwerks.com&quot;&gt;Kustom Coach Werks&lt;/a&gt; in
    early August to have fix the doors (they had gaps) and tune the suspension. When they finished, I called it &quot;release
    1.5&quot;.
&lt;/p&gt;
&lt;p&gt;
    I drove Hefe for a month without rear shocks and didn&apos;t have too many issues; it was just bouncy in the back. &lt;a
    href=&quot;https://www.facebook.com/pg/Colorado-Buses-at-the-Brewery-184288431618852&quot;&gt;Buses at the Brewery&lt;/a&gt; in
    Colorado Springs was a fun event and the first time that Hefe went viral on Facebook. This has happened a few times
    since then. He gets thousands of likes from being featured on a VW fan page.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a rel=&quot;lightbox[yearinreview2016]&quot; href=&quot;https://c1.staticflickr.com/9/8555/28695920833_7e4e36bd73_c.jpg&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/28695920833/in/datetaken-public/&quot;
       title=&quot;Buses at the Brewery&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/9/8555/28695920833_7e4e36bd73.jpg&quot; width=&quot;500&quot;
                                         style=&quot;border: 1px solid black&quot; alt=&quot;Buses at the Brewery&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Before the drive to Colorado Springs, I noticed the rear suspension was missing bolts, causing the rear end to
    shimmy. I was able to find a new bolt and fix it, but the problem with bolts falling out continued in September. I
    tried &lt;a href=&quot;https://www.flickr.com/photos/mraible/29383276332/in/datetaken/&quot;&gt;smaller wheels (15&quot; Fuchs)&lt;/a&gt;, but
    the suspension was still really stiff in front. Because of the suspension issues, I shipped it back to KCW in
    October. They ripped out the air suspension and replaced it with coil over shocks, making for a much better ride. It
    now can cruise at 90 mph easily and looks great all the time! After these repairs, it&apos;s now Hefe 2.0.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c1.staticflickr.com/1/710/31888383051_1e996f40ac_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/31888383051/in/datetaken/&quot;
       title=&quot;2nd stop: liquor store for the KCW guys!&quot; rel=&quot;lightbox[yearinreview2016]&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/1/710/31888383051_1e996f40ac.jpg&quot; width=&quot;500&quot; style=&quot;border: 1px solid black&quot;
        alt=&quot;2nd stop: liquor store for the KCW guys!&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;If you&apos;re interested in reading about the suspension decision process, or to see pictures, see &lt;a
    href=&quot;http://www.kustomcoachwerks.com/forums//viewtopic.php?f=17&amp;t=8072&amp;start=930#p253244&quot;&gt;this thread on KCW&apos;s
    forums&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;2017&quot;&gt;2017&lt;/h2&gt;
&lt;p&gt;
    Professionally, I&apos;ll be speaking at a lot of conferences and meetups this year. As a Developer Evangelist for
    Stormpath, I&apos;m expected to speak at least once a month. I did a webinar on &lt;a
    href=&quot;https://www.youtube.com/watch?v=Jq3szz2KOOs&quot;&gt;Getting Started with Angular&lt;/a&gt; in mid-January and I&apos;m traveling
    next week to &lt;a href=&quot;http://jfokus.com&quot;&gt;Jfokus&lt;/a&gt; in Stockholm. See my &lt;a
    href=&quot;//raibledesigns.com/rd/page/publications&quot;&gt;future engagements&lt;/a&gt; for more scheduled events.
&lt;/p&gt;
&lt;p&gt;
    I suspect most of the coding I&apos;ll be doing will be related to Stormpath&apos;s SDKs, both &lt;a
    href=&quot;https://github.com/stormpath/stormpath-sdk-angular&quot;&gt;Angular&lt;/a&gt; and &lt;a
    href=&quot;https://github.com/stormpath/stormpath-sdk-java&quot;&gt;Java&lt;/a&gt;. Of course, I&apos;ll help out on &lt;a
    href=&quot;http://jhipster.github.io&quot;&gt;JHipster&lt;/a&gt; as much as I can too. With &lt;a href=&quot;https://twitter.com/java_hipster/status/826819045068505089&quot;&gt;JHipster
    4 on the horizon&lt;/a&gt;, there will be a lot of work to update the JHipster Mini-Book.
&lt;/p&gt;
&lt;p&gt;Hefe 3.0 will be released this spring after I get a sweet sound system installed. As far as personal goals for 2017,
    I have only one: to drive Hefe up the California coast. With a new house, two running VWs, and a job that&apos;s a
    helluva
    lot of fun, life is pretty awesome right now. &lt;img src=&quot;//raibledesigns.com/images/smileys/grin.gif&quot; class=&quot;smiley&quot; alt=&quot;:-D&quot; title=&quot;:-D&quot;&gt;
&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/life_update_a_summer_to</id>
        <title type="html">Life Update: A Summer to Remember, a New House, and a Sweet New Gig</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/life_update_a_summer_to"/>
        <published>2016-09-26T07:29:24-06:00</published>
        <updated>2017-06-12T21:52:47-06:00</updated> 
        <category term="/General" label="General" />
        <category term="stormpath" scheme="http://roller.apache.org/ns/tags/" />
        <category term="summer2016" scheme="http://roller.apache.org/ns/tags/" />
        <category term="raibleranch" scheme="http://roller.apache.org/ns/tags/" />
        <category term="vanlife" scheme="http://roller.apache.org/ns/tags/" />
        <category term="life" scheme="http://roller.apache.org/ns/tags/" />
        <category term="house" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: I had a super fun summer traveling with my family, recently moved to a new house in the
    country, and I&apos;ve
    joined &lt;a href=&quot;https://stormpath.com/&quot;&gt;Stormpath&lt;/a&gt; as a Developer Evangelist. &lt;em&gt;Wahoo!&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
    I&apos;ve written several &quot;life update&quot; posts in the past, but there&apos;s been few as epic as this one. When I wrote my 2016
    Goals, I listed &quot;July in Montana&quot; as one of them. And y&apos;all know that &quot;finish the bus&quot; was #1. Since &lt;a
    href=&quot;//raibledesigns.com/rd/entry/the_bus_is_home&quot;&gt;the bus is done&lt;/a&gt;, I wanted to show it off in my hometown 4th
    of July parade in Condon, Montana.
    &lt;/p&gt;
    &lt;p&gt;
    A path to these goals became clear in mid-June, shortly after &lt;a
    href=&quot;http://raibledesigns.com/rd/entry/a_delightful_trip_to_devoxx&quot;&gt;visiting London and Tallinn with my Mom&lt;/a&gt;. It
    involved a lot of driving, but I was determined to make it happen. I was so excited about my plan that I sent an email to my
    best friend, Owen, on June 15.
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;: I had a super fun summer traveling with my family, recently moved to a new house in the
    country, and I&apos;ve
    joined &lt;a href=&quot;https://stormpath.com/&quot;&gt;Stormpath&lt;/a&gt; as a Developer Evangelist. &lt;em&gt;Wahoo!&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
    I&apos;ve written several &quot;life update&quot; posts in the past, but there&apos;s been few as epic as this one. When I wrote my 2016
    Goals, I listed &quot;July in Montana&quot; as one of them. And y&apos;all know that &quot;finish the bus&quot; was #1. Since &lt;a
    href=&quot;//raibledesigns.com/rd/entry/the_bus_is_home&quot;&gt;the bus is done&lt;/a&gt;, I wanted to show it off in my hometown 4th
    of July parade in Condon, Montana.
    &lt;/p&gt;
    &lt;p&gt;
    A path to these goals became clear in mid-June, shortly after &lt;a
    href=&quot;http://raibledesigns.com/rd/entry/a_delightful_trip_to_devoxx&quot;&gt;visiting London and Tallinn with my Mom&lt;/a&gt;. It
    involved a lot of driving, but I was determined to make it happen. I was so excited about my plan that I sent an email to my
    best friend, Owen, on June 15.
&lt;/p&gt;

&lt;div class=&quot;quote&quot;&gt;
    &lt;p style=&quot;margin-top: 0&quot;&gt;Hey Owen!
    &lt;/p&gt;
    &lt;p&gt;
        Hope you&apos;re doing well and enjoying the summer. I just wanted to give you a heads up that I&apos;ll be in Montana
        quite a bit this summer. First of all, we&apos;ll be driving up with the bus (it&apos;s finally done!) next week. We&apos;re
        not staying though - we have a flight out of Missoula to Hawaii on Saturday morning. We&apos;re going with Trish&apos;s
        family to celebrate her parent&apos;s 50th wedding anniversary.
    &lt;/p&gt;
    &lt;p&gt;
        We return on June 3rd, just in time to drive the bus in the parade on the 4th! I&apos;ll likely drive it down to
        Seeley Lake to be in theirs as well.
    &lt;/p&gt;
    &lt;p&gt;
        We&apos;re driving back to Denver on July 9 to be in a VW show on the 10th. Then I&apos;ll be driving our van back to
        MT starting on July 11. I plan to take it slow and work from the van on my way. My goal is to arrive by
        Thursday, July 14 for the &lt;a href=&quot;http://www.thebobmusic.com/&quot;&gt;Bob Marshall Music Festival&lt;/a&gt;.
    &lt;/p&gt;

    &lt;p&gt;Trish will fly in for the weekend. My birthday is that Saturday, the 16th! I plan to camp in Seeley and enjoy the
        music. Then, I&apos;ll hang out another week with my folks, working remotely and playing. I&apos;ll return to Denver on
        July
        23.&lt;/p&gt;
    &lt;p&gt;
        Can&apos;t wait to drink some beer with you old buddy!
    &lt;/p&gt;
    &lt;p&gt;
        Cheers,
    &lt;/p&gt;
    &lt;p style=&quot;margin-bottom: 0&quot;&gt;
        Matt&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
    Fast forward to today, September 26, 2016 &amp;#8594; it&apos;s fun to reminisce that I traveled to Hawaii for a wonderful
    anniversary
    celebration, flew to Montana for two 4th of July parades, showed Hefe at the Colorado Bug-In, and lived the
    &lt;a href=&quot;https://www.instagram.com/explore/tags/vanlife/&quot;&gt;#vanlife&lt;/a&gt;
    on the way to &lt;a href=&quot;//raibledesigns.com/rd/entry/the_cabin&quot;&gt;The Cabin&lt;/a&gt; via Grand Junction,
    Jackson Hole, Missoula and Seeley Lake.
&lt;/p&gt;
&lt;p&gt;You can see why it was a summer to remember. Here&apos;s some pics:&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c5.staticflickr.com/9/8433/29307988564_7ddd6725a5_c.jpg&quot; title=&quot;Hefe is ready to road trip!&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29307988564/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/9/8433/29307988564_7ddd6725a5_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;Hefe is ready to road trip!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c1.staticflickr.com/6/5478/29307988864_f3da3e3472_c.jpg&quot; title=&quot;Sunset in Hanalei Bay&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29307988864/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/6/5478/29307988864_f3da3e3472_q.jpg&quot; width=&quot;150&quot; alt=&quot;Sunset in Hanalei Bay&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c6.staticflickr.com/9/8205/29308746733_382d0d1a47_c.jpg&quot; title=&quot;Hanalei Happy Hour&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29308746733/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c6.staticflickr.com/9/8205/29308746733_382d0d1a47_q.jpg&quot; width=&quot;150&quot; alt=&quot;Hanalei Happy Hour&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c7.staticflickr.com/9/8060/29900654526_7c112a74e7_c.jpg&quot; title=&quot;Happy 50th Mau and Joe!&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900654526/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c7.staticflickr.com/9/8060/29900654526_7c112a74e7.jpg&quot; width=&quot;500&quot; alt=&quot;Happy 50th Mau and Joe!&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c5.staticflickr.com/9/8013/29820949332_d483dd7980_c.jpg&quot;
       title=&quot;Jack is wiped after last night&apos;s red eye. It&apos;s great to be at The Cabin!&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29820949332/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/9/8013/29820949332_d483dd7980_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;Jack is wiped after last night&apos;s red eye. It&apos;s great to be at The Cabin!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c7.staticflickr.com/9/8770/29900642926_1ec60a28d1_c.jpg&quot;
       title=&quot;Our 2nd parade of the day! Hefe is lookin&apos; good. Happy 4th y&apos;all!&quot; rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900642926/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c7.staticflickr.com/9/8770/29900642926_1ec60a28d1_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;Our 2nd parade of the day! Hefe is lookin&apos; good. Happy 4th y&apos;all!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c3.staticflickr.com/9/8321/29900656386_eb51615eec_c.jpg&quot; title=&quot;Hefe on Front Road&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900656386/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c3.staticflickr.com/9/8321/29900656386_eb51615eec_q.jpg&quot; width=&quot;150&quot; alt=&quot;Hefe on Front Road&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://c4.staticflickr.com/9/8265/29869377531_391704082d_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/29869377531/in/album-72157673202240580/&quot; title=&quot;Hefe in the Swan Valley Parade&quot; rel=&quot;lightbox[lifeupdate-201609]&quot;&gt;&lt;img src=&quot;https://c4.staticflickr.com/9/8265/29869377531_391704082d.jpg&quot; width=&quot;500&quot; alt=&quot;Hefe in the Swan Valley Parade&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c7.staticflickr.com/9/8509/29900643086_753e1e8e1c_c.jpg&quot; title=&quot;Hefe at his finest&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643086/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c7.staticflickr.com/9/8509/29900643086_753e1e8e1c_m.jpg&quot; width=&quot;240&quot; alt=&quot;Hefe at his finest&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c5.staticflickr.com/8/7472/29900643196_0a3d735d17_c.jpg&quot;
       title=&quot;Got Runner Up in our class. Lost to a very nice Karmann Ghia. However, they trailered theirs home and I&apos;m driving mine!&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643196/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/8/7472/29900643196_0a3d735d17_m.jpg&quot; width=&quot;240&quot;
        alt=&quot;Got Runner Up in our class. Lost to a very nice Karmann Ghia. However, they trailered theirs home and I&apos;m driving mine!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c3.staticflickr.com/8/7490/29900643306_92e64b8945_c.jpg&quot;
       title=&quot;I like how this birthday week is progressing!&quot; rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643306/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c3.staticflickr.com/8/7490/29900643306_92e64b8945_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;I like how this birthday week is progressing!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c1.staticflickr.com/9/8468/29900643616_f47aa962c2_c.jpg&quot;
       title=&quot;It&apos;s easy to fall in love with Jackson, Wyoming on a day like today!&quot; rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643616/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/9/8468/29900643616_f47aa962c2_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;It&apos;s easy to fall in love with Jackson, Wyoming on a day like today!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c1.staticflickr.com/8/7526/29900643736_cf5b6ef57c_c.jpg&quot; title=&quot;Idaho Sunset in Teton Valley&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900643736/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/8/7526/29900643736_cf5b6ef57c_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;Idaho Sunset in Teton Valley&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;


&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c5.staticflickr.com/9/8337/29900644356_1322c8c20c_c.jpg&quot;
       title=&quot;The siding is almost finished on The House! Dad rented a high lift and finished 80% today. This is the before photo.&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900644356/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/9/8337/29900644356_1322c8c20c_m.jpg&quot; width=&quot;240&quot;
        alt=&quot;The siding is almost finished on The House! Dad rented a high lift and finished 80% today. This is the before photo.&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c7.staticflickr.com/9/8503/29900646086_3c589a535e_c.jpg&quot;
       title=&quot;My parents finally finished the siding on their epic retirement house! Congrats awesome people!&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900646086/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c7.staticflickr.com/9/8503/29900646086_3c589a535e_m.jpg&quot; width=&quot;240&quot;
        alt=&quot;My parents finally finished the siding on their epic retirement house! Congrats awesome people!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c3.staticflickr.com/8/7505/29900655586_508a346031_c.jpg&quot;
       title=&quot;Celebrating our third anniversary at Garden of the Gods&quot; rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900655586/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c3.staticflickr.com/8/7505/29900655586_508a346031.jpg&quot; width=&quot;500&quot;
        alt=&quot;Celebrating our third anniversary at Garden of the Gods&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c5.staticflickr.com/9/8499/29307996604_354f4d13a4_c.jpg&quot;
       title=&quot;Jack&apos;s first day of middle school and Abbie&apos;s first day of 8th grade! Same school for the first time in three years. They&apos;re so excited to be reunited!&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29307996604/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/9/8499/29307996604_354f4d13a4_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;Jack&apos;s first day of middle school and Abbie&apos;s first day of 8th grade! Same school for the first time in three years. They&apos;re so excited to be reunited!&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c2.staticflickr.com/9/8555/28695920833_7e4e36bd73_c.jpg&quot; title=&quot;Buses at the Brewery&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/28695920833/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c2.staticflickr.com/9/8555/28695920833_7e4e36bd73_q.jpg&quot; width=&quot;150&quot; alt=&quot;Buses at the Brewery&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c5.staticflickr.com/9/8469/29820954092_6f93e4633f_c.jpg&quot;
       title=&quot;Jack and his buddies on his 12th birthday!&quot; rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29820954092/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/9/8469/29820954092_6f93e4633f_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;Jack and his buddies on his 12th birthday!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New House&lt;/strong&gt;&lt;br&gt;
    Trish and I&apos;ve been looking for a new house for a while now. I wrote about how we &lt;a
        href=&quot;//raibledesigns.com/rd/entry/life_update_the_bus_project&quot;&gt;tried to sell our home near DU last year&lt;/a&gt;. For the first year of our search,
    we were focused on finding a
    place near the kids&apos; school. This spring, we shifted our focus to looking for horse property. Trish was a
    competitive equestrian jumper in high school and she&apos;s got Abbie into it so why not? After all, their horse hobby is much less
    expensive than my VW obsession. &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;)&quot; title=&quot;;)&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;
    In late July, Trish found the property of her dreams in Centennial, Colorado (just north of Parker). At the time, I was still in Montana and the kids were in
    Florida with their Mom. Nevertheless, it felt right and we went for it. We put an offer on the home
    on July 19 and today I&apos;m writing this blog post inside our new home. We moved in last week and couldn&apos;t be
    happier. Of course, we wish we were &lt;em&gt;fully&lt;/em&gt; moved in, but
    we realize that&apos;ll probably take another week or two. The only downside of the move is we had to sell our &lt;a
    href=&quot;//raibledesigns.com/rd/entry/another_dream_realized_mountain_views&quot;&gt;mountain views&lt;/a&gt; in Fraser.
    The good news is we have new mountain views, two acres of land and plenty of room for our classic VW collection.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c1.staticflickr.com/9/8085/29900652696_22d3a60f0b_c.jpg&quot; title=&quot;Home Sweet Home!&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900652696/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c1.staticflickr.com/9/8085/29900652696_22d3a60f0b.jpg&quot; width=&quot;500&quot; alt=&quot;Home Sweet Home!&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;

&lt;a href=&quot;https://stormpath.com/&quot;&gt;&lt;img src=&quot;https://stormpath.com/wp-content/uploads/2016/08/logo.png&quot;
                                          alt=&quot;Stormpath&quot;
                                          style=&quot;float: right; width: 200px; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;a name=&quot;stormpath&quot;&gt;&lt;/a&gt;
&lt;p&gt;&lt;strong&gt;New Gig at Stormpath&lt;/strong&gt;&lt;br&gt;
    I&apos;ve been working with &lt;a href=&quot;https://stormpath.com&quot;&gt;Stormpath&lt;/a&gt; as a consultant since April. I contributed a fair amount of my
    time to helping them develop and
    launch their &lt;a href=&quot;https://www.infoq.com/news/2016/08/stormpath-java-1.0&quot;&gt;Java SDK 1.0 release&lt;/a&gt;. After the
    first
    couple months,
    I started talking with their co-founder and CTO, &lt;a href=&quot;https://twitter.com/lhazlewood&quot;&gt;Les Hazlewood&lt;/a&gt;, about joining
    Stormpath full-time. At first I was more interested in continuing my career as an independent consultant. Then I
    really
    started to think about what I liked to do for work. It came down to a few things: develop open source software,
    write about
    what I&apos;ve learned as a developer and preach the gospel of good developer tools. I sent Les a &quot;Stormpath Employment
    Proposal&quot; in late July.
&lt;/p&gt;
&lt;p&gt;After many conversations with Les and Alex (Stormpath&apos;s CEO), I flew out for interviews in early September.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c5.staticflickr.com/6/5619/29820954652_d5f99d2bda_c.jpg&quot; title=&quot;High plains&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29820954652/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/6/5619/29820954652_d5f99d2bda_q.jpg&quot; width=&quot;150&quot; alt=&quot;High plains&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c3.staticflickr.com/9/8272/29900651746_08817ba3c3_c.jpg&quot; title=&quot;The Rocky Mountains&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900651746/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c3.staticflickr.com/9/8272/29900651746_08817ba3c3_q.jpg&quot; width=&quot;150&quot; alt=&quot;The Rocky Mountains&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c5.staticflickr.com/6/5109/29900652036_faf53318eb_c.jpg&quot; title=&quot;Landing at SFO&quot;
       rel=&quot;lightbox[lifeupdate-201609]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/29900652036/in/album-72157673202240580/&quot;&gt;&lt;img
        src=&quot;https://c5.staticflickr.com/6/5109/29900652036_faf53318eb_q.jpg&quot; width=&quot;150&quot; alt=&quot;Landing at SFO&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; text-align: right; margin-top: -10px; max-width: 500px; font-size: .9em&quot;&gt;
    More photos on Flickr &amp;#8594; &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157673202240580&quot;&gt;2016: A Summer to Remember&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;The interviews went great and I&apos;m happy to say that Stormpath has offered me an tremendous opportunity to code,
    learn, and educate. Simply put: they gave me an offer I couldn&apos;t refuse. I quickly accepted and today is my first
    day as a Stormpath Developer Evangelist.
&lt;/p&gt;
&lt;p&gt;
    It takes a special kind of company to entice me to work for them full-time and I&apos;m
    looking forward to doing great things with Stormpath. Now more than ever, there&apos;s a good chance I&apos;ll see you on the
    road or at a conference soon!
&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/using_grunt_with_angularjs_for</id>
        <title type="html">Using Grunt with AngularJS for Front End Optimization</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/using_grunt_with_angularjs_for"/>
        <published>2014-01-15T12:15:52-07:00</published>
        <updated>2014-01-15T22:11:46-07:00</updated> 
        <category term="/The Web" label="The Web" />
        <category term="angularjs" scheme="http://roller.apache.org/ns/tags/" />
        <category term="grunt" scheme="http://roller.apache.org/ns/tags/" />
        <category term="pagespeed" scheme="http://roller.apache.org/ns/tags/" />
        <category term="yslow" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;I&apos;m passionate about front end optimization and have been for years. My original inspiration was Steve Souders and his &lt;a href=&quot;http://raibledesigns.com/rd/entry/oscon_2008_even_faster_web&quot;&gt;Even Faster Web Sites talk at OSCON 2008&lt;/a&gt;. Since then, I&apos;ve &lt;a href=&quot;http://raibledesigns.com/rd/entry/javascript_and_css_concatenation&quot;&gt;optimized this blog&lt;/a&gt;, made it even faster &lt;a href=&quot;http://raibledesigns.com/rd/entry/new_look_and_feel_designed&quot;&gt;with a new design&lt;/a&gt;, doubled the speed of several apps for clients and showed how to &lt;a href=&quot;http://raibledesigns.com/rd/entry/improving_appfuse_s_pagespeed_with&quot;&gt;make AppFuse faster&lt;/a&gt;. As part of my &lt;a href=&quot;http://raibledesigns.com/rd/entry/devoxx_2013_a_nordic_countries&quot;&gt;Devoxx 2013 presentation&lt;/a&gt;, I showed &lt;a href=&quot;https://vimeo.com/mraible/page-speed-demo&quot;&gt;how to do page speed optimization in a Java webapp&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I developed a couple AngularJS apps last year. To concat and minify their stylesheets and scripts, I used mechanisms that already existed in the projects. On one project, it was Ant and its &lt;a href=&quot;https://ant.apache.org/manual/Tasks/concat.html&quot;&gt;concat task&lt;/a&gt;. On the other, it was part of a Grails application, so I used the &lt;a href=&quot;http://grails.org/plugin/resources&quot;&gt;resources&lt;/a&gt; and &lt;a href=&quot;http://grails.org/plugin/yui-minify-resources&quot;&gt;yui-minify-resources&lt;/a&gt; plugins.
&lt;/p&gt;
&lt;p&gt;The Angular project I&apos;m working on now will be published on a web server, as well as bundled in an iOS native app. Therefore, I turned to &lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt&lt;/a&gt; to do the optimization this time. I found it to be quite simple, once I figured out &lt;a href=&quot;http://stackoverflow.com/questions/21056767/angular-and-grunt&quot;&gt;how to make it work with Angular&lt;/a&gt;. Based on my findings, I submitted a &lt;a href=&quot;https://github.com/angular/angular-seed/pull/131&quot;&gt;pull request to add Grunt to angular-seed&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;Below are the steps I used to add Grunt to my Angular project.&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;I&apos;m passionate about front end optimization and have been for years. My original inspiration was Steve Souders and his &lt;a href=&quot;http://raibledesigns.com/rd/entry/oscon_2008_even_faster_web&quot;&gt;Even Faster Web Sites talk at OSCON 2008&lt;/a&gt;. Since then, I&apos;ve &lt;a href=&quot;http://raibledesigns.com/rd/entry/javascript_and_css_concatenation&quot;&gt;optimized this blog&lt;/a&gt;, made it even faster &lt;a href=&quot;http://raibledesigns.com/rd/entry/new_look_and_feel_designed&quot;&gt;with a new design&lt;/a&gt;, doubled the speed of several apps for clients and showed how to &lt;a href=&quot;http://raibledesigns.com/rd/entry/improving_appfuse_s_pagespeed_with&quot;&gt;make AppFuse faster&lt;/a&gt;. As part of my &lt;a href=&quot;http://raibledesigns.com/rd/entry/devoxx_2013_a_nordic_countries&quot;&gt;Devoxx 2013 presentation&lt;/a&gt;, I showed &lt;a href=&quot;https://vimeo.com/mraible/page-speed-demo&quot;&gt;how to do page speed optimization in a Java webapp&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I developed a couple AngularJS apps last year. To concat and minify their stylesheets and scripts, I used mechanisms that already existed in the projects. On one project, it was Ant and its &lt;a href=&quot;https://ant.apache.org/manual/Tasks/concat.html&quot;&gt;concat task&lt;/a&gt;. On the other, it was part of a Grails application, so I used the &lt;a href=&quot;http://grails.org/plugin/resources&quot;&gt;resources&lt;/a&gt; and &lt;a href=&quot;http://grails.org/plugin/yui-minify-resources&quot;&gt;yui-minify-resources&lt;/a&gt; plugins.
&lt;/p&gt;
&lt;p&gt;The Angular project I&apos;m working on now will be published on a web server, as well as bundled in an iOS native app. Therefore, I turned to &lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt&lt;/a&gt; to do the optimization this time. I found it to be quite simple, once I figured out &lt;a href=&quot;http://stackoverflow.com/questions/21056767/angular-and-grunt&quot;&gt;how to make it work with Angular&lt;/a&gt;. Based on my findings, I submitted a &lt;a href=&quot;https://github.com/angular/angular-seed/pull/131&quot;&gt;pull request to add Grunt to angular-seed&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;Below are the steps I used to add Grunt to my Angular project.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install Grunt&apos;s command line interface with &quot;sudo npm install -g grunt-cli&quot;.&lt;/li&gt;
&lt;li&gt;Edit package.json to include a version number (e.g. &quot;version&quot;: &quot;1.0.0&quot;).&lt;/li&gt;
&lt;li&gt;Add Grunt plugins in package.json to do concat/minify/asset versioning:
&lt;pre class=&quot;brush: js&quot;&gt;
    &quot;grunt&quot;: &quot;~0.4.1&quot;,
    &quot;grunt-contrib-concat&quot;: &quot;~0.3.0&quot;,
    &quot;grunt-contrib-uglify&quot;: &quot;~0.2.7&quot;,
    &quot;grunt-contrib-cssmin&quot;: &quot;~0.7.0&quot;,
    &quot;grunt-usemin&quot;: &quot;~2.0.2&quot;,
    &quot;grunt-contrib-copy&quot;: &quot;~0.5.0&quot;,
    &quot;grunt-rev&quot;: &quot;~0.1.0&quot;,
    &quot;grunt-contrib-clean&quot;: &quot;~0.5.0&quot;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Run &quot;sudo npm install&quot; to install the project&apos;s dependencies.&lt;/li&gt;
&lt;li&gt;Create a &lt;code&gt;Gruntfile.js&lt;/code&gt; that runs all the plugins.
&lt;pre class=&quot;brush: js&quot;&gt;
module.exports = function (grunt) {

    grunt.initConfig({
        pkg: grunt.file.readJSON(&apos;package.json&apos;),

        clean: [&quot;dist&quot;, &apos;.tmp&apos;],

        copy: {
            main: {
                expand: true,
                cwd: &apos;app/&apos;,
                src: [&apos;**&apos;, &apos;!js/**&apos;, &apos;!lib/**&apos;, &apos;!**/*.css&apos;],
                dest: &apos;dist/&apos;
            },
            shims: {
                expand: true,
                cwd: &apos;app/lib/webshim/shims&apos;,
                src: [&apos;**&apos;],
                dest: &apos;dist/js/shims&apos;
            }
        },

        rev: {
            files: {
                src: [&apos;dist/**/*.{js,css}&apos;, &apos;!dist/js/shims/**&apos;]
            }
        },

        useminPrepare: {
            html: &apos;app/index.html&apos;
        },

        usemin: {
            html: [&apos;dist/index.html&apos;]
        },

        uglify: {
            options: {
                report: &apos;min&apos;,
                mangle: false
            }
        }
    });

    grunt.loadNpmTasks(&apos;grunt-contrib-clean&apos;);
    grunt.loadNpmTasks(&apos;grunt-contrib-copy&apos;);
    grunt.loadNpmTasks(&apos;grunt-contrib-concat&apos;);
    grunt.loadNpmTasks(&apos;grunt-contrib-cssmin&apos;);
    grunt.loadNpmTasks(&apos;grunt-contrib-uglify&apos;);
    grunt.loadNpmTasks(&apos;grunt-rev&apos;);
    grunt.loadNpmTasks(&apos;grunt-usemin&apos;);

    // Tell Grunt what to do when we type &quot;grunt&quot; into the terminal
    grunt.registerTask(&apos;default&apos;, [
        &apos;copy&apos;, &apos;useminPrepare&apos;, &apos;concat&apos;, &apos;uglify&apos;, &apos;cssmin&apos;, &apos;rev&apos;, &apos;usemin&apos;
    ]);
};
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Add comments to app/index.html so usemin knows what files to process. The comments are the important part, your files will likely be different.
&lt;pre class=&quot;brush: html&quot;&gt;
&amp;lt;!-- build:css css/app-name.min.css --&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;lib/bootstrap/bootstrap.min.css&quot;/&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;lib/font-awesome/font-awesome.min.css&quot;/&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;lib/toaster/toaster.css&quot;/&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/app.css&quot;/&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/custom.css&quot;/&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;css/responsive.css&quot;/&amp;gt;
&amp;lt;!-- endbuild --&amp;gt;
...

&amp;lt;!-- build:js js/app-name.min.js --&amp;gt;
&amp;lt;script src=&quot;lib/jquery/jquery-1.10.2.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/bootstrap/bootstrap.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/angular/angular.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/angular/angular-animate.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/angular/angular-cookies.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/angular/angular-resource.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/angular/angular-route.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/fastclick.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/toaster/toaster.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/webshim/modernizr.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;lib/webshim/polyfiller.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;js/app.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;js/services.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;js/controllers.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;js/filters.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;js/directives.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;!-- endbuild --&amp;gt;
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A couple of things to note: 1) the &lt;em&gt;copy&lt;/em&gt; task copies the &quot;shims&quot; directory from &lt;a href=&quot;http://afarkas.github.io/webshim/demos/&quot;&gt;Webshims lib&lt;/a&gt; because it loads files dynamically and 2) setting &quot;mangle: false&quot; on the &lt;em&gt;uglify&lt;/em&gt; task is necessary for Angular&apos;s dependency injection to work. I tried to use &lt;a href=&quot;https://npmjs.org/package/grunt-ngmin&quot;&gt;grunt-ngmin&lt;/a&gt; with uglify and had no luck.&lt;/p&gt;
&lt;p&gt;After making these changes, I&apos;m able to run &quot;grunt&quot; and get an optimized version of my app in the &quot;dist&quot; folder of my project. For development, I continue to run the app from my &quot;app&quot; folder, so I don&apos;t currently have a need for watching and processing assets on-the-fly. That could change if I start using LESS or CoffeeScript.
&lt;/p&gt;
&lt;p&gt;The results speak for themselves: from 27 requests to 5 on initial load, and only 3 requests for less than 2K after that.&lt;/p&gt;
&lt;table class=&quot;comparison&quot; style=&quot;max-width: 600px&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;YSlow&lt;/th&gt;
&lt;th&gt;Page Speed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No optimization&lt;/td&gt;
&lt;td&gt;75 &lt;div style=&quot;float: right&quot;&gt;27 HTTP requests / 464K&lt;/div&gt;&lt;/td&gt;
&lt;td&gt;55/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apache optimization (gzip and expires headers)&lt;/td&gt;
&lt;td&gt;89
&lt;div style=&quot;float: right&quot;&gt;
initial load: 26 requests / 166K&lt;br/&gt;
primed cache: 4 requests / 40K 
&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;88/100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apache + concat/minified/versioned files&lt;/td&gt;
&lt;td&gt;98
&lt;div style=&quot;float: right&quot;&gt;
initial load: 5 requests / 136K&lt;br/&gt;
primed cache: 3 requests / 1.4K
&lt;/div&gt;
&lt;/td&gt;
&lt;td&gt;93/100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Andreas Andreou has a &lt;a href=&quot;https://twitter.com/andyhot/status/423571136538877952&quot;&gt;nice tip&lt;/a&gt; on how to reduce the LOC in this example.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Add &quot;matchdep&quot; as a dependency in package.json (or run &quot;sudo npm install matchdep --save-dev&quot;).
&lt;pre class=&quot;brush: js; gutter: false&quot;&gt;
&quot;matchdep&quot;: &quot;~0.3.0&quot;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Replace all the &lt;code&gt;grunt.loadNpmTasks(...)&lt;/code&gt; calls with the following:
&lt;pre class=&quot;brush: js; gutter: false&quot;&gt;
require(&apos;matchdep&apos;).filterDev(&apos;grunt-*&apos;).forEach(grunt.loadNpmTasks);
&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Thanks Andreas!&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/secure_json_services_with_play</id>
        <title type="html">Secure JSON Services with Play Scala and SecureSocial</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/secure_json_services_with_play"/>
        <published>2012-02-12T16:02:43-07:00</published>
        <updated>2014-05-08T19:47:19-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="securesocial" scheme="http://roller.apache.org/ns/tags/" />
        <category term="json" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jfokus" scheme="http://roller.apache.org/ns/tags/" />
        <category term="scala" scheme="http://roller.apache.org/ns/tags/" />
        <category term="playframework" scheme="http://roller.apache.org/ns/tags/" />
        <category term="rest" scheme="http://roller.apache.org/ns/tags/" />
        <category term="play-more" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;a href=&quot;http://www.flickr.com/photos/mcginityphoto/6716294395/&quot; title=&quot;AntwerpTownSquare by McGinityPhoto, on Flickr&quot;&gt;&lt;img src=&quot;//farm8.staticflickr.com/7002/6716294395_28ce2c5f5b_t.jpg&quot; width=&quot;100&quot; height=&quot;66&quot; alt=&quot;AntwerpTownSquare&quot; class=&quot;picture&quot;&gt;&lt;/a&gt;
Last November, I &lt;a href=&quot;http://raibledesigns.com/rd/entry/my_html5_with_play_scala&quot;&gt;traveled to Antwerp to speak at Devoxx&lt;/a&gt;. After my talk on HTML5 with Play Scala, &lt;a href=&quot;http://twitter.com/matkar&quot;&gt;Mattias Karlsson&lt;/a&gt; approached me and we had a chat about doing the same talk at &lt;a href=&quot;http://www.jfokus.se/&quot;&gt;Jfokus&lt;/a&gt; in Stockholm. I agreed and we began talking details after Trish and I returned to the US. 
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;http://jfokus.se&quot;&gt;
&lt;img width=&quot;450&quot; style=&quot;border-radius: 10px&quot; height=&quot;200&quot; src=&quot;//static.raibledesigns.com/repository/images/Jfokus2012_450x200.jpg&quot; alt=&quot;Jfokus&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I wrote this article on a plane between Denver and Seattle and will be hopping over the North Pole to Stockholm via Iceland tonight. For the past couple of weeks, I&apos;ve been updating my &lt;em&gt;Play More!&lt;/em&gt; HTML5/mobile app to add some new features. Most notably, I wanted to upgrade to Play 2.0, create JSON services and add authentication. 
&lt;/p&gt;
&lt;p id=&quot;play2&quot;&gt;&lt;strong&gt;Upgrading to Play 2.0&lt;/strong&gt;&lt;br/&gt;
My attempt to upgrade to Play 2.0 involved &lt;a href=&quot;https://github.com/playframework/play20&quot;&gt;checking out the source from GitHub&lt;/a&gt;, building and installing the RC1 snapshot. As I tried to upgrade my app and started getting failed imports, I turned to the internet (specifically StackOverflow) to &lt;a href=&quot;http://stackoverflow.com/questions/8264010/todays-options-for-an-easier-migration-path-to-play-2&quot;&gt;see if it was a good idea&lt;/a&gt;. The first answer for that question suggested I stay with 1.x.
  &lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
If it&apos;s a critical project, to be finished before next March 2012, I would go with Play 1.x. If it&apos;s a less important project, which could be delayed, and that in any case won&apos;t be released before March 2012, try Play 2.0.&lt;/p&gt;
&lt;p&gt;While I didn&apos;t plan on releasing &lt;em&gt;Play More!&lt;/em&gt; before Jfokus, I decided upgrading didn&apos;t add a whole lot to the talk. Also, I couldn&apos;t find a Play Scala 0.9.1 to Play 2.0 upgrade guide and I didn&apos;t have enough time to create one. So I decided to stick with Play 1.2.4 and add some JSON services for my iPhone client. 
&lt;/p&gt;
&lt;p id=&quot;play-json&quot;&gt;&lt;strong&gt;JSON Servers&lt;/strong&gt;&lt;br/&gt;
I found Manuel Bernhardt&apos;s &lt;a href=&quot;http://logician.free.fr/index.php/2011/09/16/play-scala-and-json/&quot;&gt;Play! Scala and JSON&lt;/a&gt;. This led me to &lt;a href=&quot;https://github.com/codahale/jerkson&quot;&gt;Jerkson&lt;/a&gt;, built by the &lt;a href=&quot;http://codahale.com/the-rest-of-the-story/&quot;&gt;now infamous&lt;/a&gt; &lt;a href=&quot;https://twitter.com/coda&quot;&gt;@coda&lt;/a&gt;.  
I was able to easily get things working fairly quickly and wrote the following WorkoutService.scala:
&lt;/p&gt;
&lt;pre class=&quot;brush: scala&quot;&gt;
package controllers.api

import play.mvc.Controller
import models._
import com.codahale.jerkson.Json._

object WorkoutService extends Controller {

  def workouts = {
    response.setContentTypeIfNotSet(&quot;application/json&quot;)
    generate(Workout.find().list())
  }
  def edit(id: Long) = {
    generate(Workout.byIdWithAthleteAndComments(id))
  }

  def create() = {
    var workout = params.get(&quot;workout&quot;, classOf[Workout])
    Workout.create(workout)
  }

  def save(id: Option[Long]) = {
    var workout = params.get(&quot;workout&quot;, classOf[Workout])
    Workout.update(workout)
  }

  def delete(id: Long) = {
    Workout.delete(&quot;id={id}&quot;).on(&quot;id&quot; -&gt; id).executeUpdate()
  }
}
&lt;/pre&gt;
&lt;p&gt;Next, I added routes for my new API to &lt;em&gt;conf/routes&lt;/em&gt;:
&lt;/p&gt;
&lt;pre&gt;
GET     /api/workouts               api.WorkoutService.workouts
GET     /api/workout/{id}           api.WorkoutService.edit
POST    /api/workout                api.WorkoutService.create
PUT     /api/workout/{id}           api.WorkoutService.save
DELETE  /api/workout/{id}           api.WorkoutService.delete
&lt;/pre&gt;
&lt;p&gt;
Then I created an ApiTest.scala class that verifies the first method works as expected.&lt;/p&gt;
&lt;pre class=&quot;brush: scala&quot;&gt;
import play.test.FunctionalTest
import play.test.FunctionalTest._
import org.junit._

class ApiTests extends FunctionalTest {
  
    @Test
    def testGetWorkouts() {
        var response = GET(&quot;/api/workouts&quot;);
        assertStatus(200, response);
        assertContentType(&quot;application/json&quot;, response)
        println(response.out)
    }
}
&lt;/pre&gt;
&lt;p&gt;
I ran &quot;play test&quot;, opened my browser to http://localhost:9000/@tests and clicked ApiTests -&gt; Start to verify it worked. All the green made me happy.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7180/6869080391_5a163cb28e.jpg&quot; title=&quot;Play More API Tests&quot; rel=&quot;lightbox[playmore-json]&quot;&gt;&lt;img src=&quot;//farm8.staticflickr.com/7180/6869080391_5a163cb28e_m.jpg&quot; width=&quot;240&quot; height=&quot;184&quot; alt=&quot;Play More API Tests&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Finally, I wrote some CoffeeScript and jQuery to allow users to delete workouts and make sure delete functionality worked.&lt;/p&gt;
&lt;pre class=&quot;brush: js&quot;&gt;
$(&apos;#delete&apos;).click -&gt;
  $.ajax
    type: &apos;POST&apos;
    url: $(this).attr(&apos;rel&apos;)
    error: -&gt;
      alert(&apos;Delete failed, please try again.&apos;)
    success: (data) -&gt;
      location.href = &quot;/more&quot;
&lt;/pre&gt;
&lt;p&gt;I was very impressed with how easy Play made it to create JSON services and I smiled as my CoffeeScript skills got a refresher.&lt;/p&gt;
&lt;p&gt;The Friday before we left for Devoxx, I saw the &lt;a href=&quot;http://groups.google.com/group/play-framework/browse_thread/thread/1cdebc6f54ec3e6f&quot;&gt;module registration request for SecureSocial&lt;/a&gt;.
&lt;p id=&quot;securesocial&quot;&gt;&lt;strong&gt;SecureSocial with Play Scala&lt;/strong&gt;&lt;br/&gt;
From SecureSocial&apos;s &lt;a href=&quot;https://github.com/jaliss/securesocial&quot;&gt;README&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&quot;quote&quot; style=&quot;margin-left: 0; margin-bottom: 10px&quot;&gt;
&lt;p&gt;SecureSocial allows you to add an authentication UI to your app that works with services based on OAuth1, OAuth2, OpenID and OpenID+OAuth hybrid protocols.
&lt;/p&gt;
&lt;p&gt;
It also provides a Username and Password mechanism for users that do not wish to use existing accounts in other networks.
&lt;/p&gt;
&lt;p&gt;
The following services are supported in this release:
&lt;/p&gt;
&lt;ul style=&quot;margin-bottom: 0&quot;&gt;
&lt;li&gt;Twitter (OAuth1)&lt;/li&gt;
	&lt;li&gt;Facebook (OAuth2)&lt;/li&gt;
	&lt;li&gt;Google (OpenID + OAuth Hybrid)&lt;/li&gt;
	&lt;li&gt;Yahoo (OpenID + OAuth Hybrid)&lt;/li&gt;
	&lt;li&gt;LinkedIn (OAuth1)&lt;/li&gt;
	&lt;li&gt;Foursquare (OAuth2)&lt;/li&gt;
	&lt;li&gt;MyOpenID (OpenID)&lt;/li&gt;
	&lt;li&gt;Wordpress (OpenID)&lt;/li&gt;
	&lt;li&gt;Username and Password&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;In other words, it sounded like a dream come true and I resolved to try it once I found the time. That time found me last Monday evening and I sent a direct message to &lt;a href=&quot;http://twitter.com/jaliss&quot;&gt;@jaliss&lt;/a&gt; (the module&apos;s author) via Twitter.
&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
Does Secure Social work with Play Scala? I&apos;d like to use it in my Play More! project.
&lt;/p&gt;
&lt;p&gt;Jorge responded 16 minutes later saying that he hadn&apos;t used Play Scala and he&apos;d need to do some research. At 8 o&apos;clock that night (1.5 hours after my original DM), Jorge had a sample working and emailed it to me. 10 minutes later I was adding a Secure trait to my project.
&lt;/p&gt;
&lt;pre class=&quot;brush: scala&quot;&gt;
package controllers

import play.mvc._
import controllers.securesocial.SecureSocial

/*
 * @author Jorge Aliss &amp;lt;jaliss@gmail.com&gt; of Secure Social fame.
 */
trait Secure {
  self: Controller =&gt;

  @Before def checkAccess() {
    SecureSocial.DeadboltHelper.beforeRoleCheck()
  }

  def currentUser = {
    SecureSocial.getCurrentUser
  }
}
&lt;/pre&gt;
&lt;p&gt;I configured Twitter and Username + Password as my providers by adding the following to &lt;em&gt;conf/application.conf&lt;/em&gt;.
&lt;/p&gt;
&lt;pre&gt;
securesocial.providers=twitter,userpass
&lt;/pre&gt;
&lt;p&gt;I also had to configure a number of securesocial.twitter.* properties. Next, I made sure my routes were aware of SecureSocial by adding the following to the top of &lt;em&gt;conf/routes&lt;/em&gt;:
&lt;pre&gt;
  *       /auth               module:securesocial
&lt;/pre&gt;
&lt;p&gt;Then I specified it as a dependency in &lt;em&gt;conf/dependencies.yml&lt;/em&gt; and ran &quot;play deps&quot;.
&lt;/p&gt;
&lt;pre&gt;
    - play -&gt; securesocial 0.2.4
&lt;/pre&gt;
&lt;p&gt;After adding &quot;with Secure&quot; to my Profile.scala controller, I tried to access its route and was prompted to login. Right off the bat, I was shown an error about a missing jQuery 1.5.2 file in my &quot;javascripts&quot; folder, so I added it and rejoiced when I was presented with a login screen. I had to add the app on Twitter to use its OAuth servers, but I was pumped when both username/password authentication worked (complete with signup!) as well as Twitter. 
&lt;/p&gt;
&lt;p&gt;
The only issue I ran into with SecureSocial was that it didn&apos;t find the default implementation of SecureSocial&apos;s UserService.Service when running in prod mode. I was able to workaround this by adding a SecureService.scala implementation to my project and coding it to talk to my Athlete model. I didn&apos;t bother to hook in creating a new user when they logged in from Twitter, but that&apos;s something I&apos;ll want to do in the future. I was also pleased to find out customizing SecureSocial&apos;s views was a breeze. I simply copied them from the module into my app&apos;s views and &lt;em&gt;voila!&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;brush: scala&quot;&gt;
package services

import play.db.anorm.NotAssigned
import play.libs.Codec
import collection.mutable.{SynchronizedMap, HashMap}
import models.Athlete
import securesocial.provider.{ProviderType, UserService, SocialUser, UserId}

class SecureService extends UserService.Service {
  val activations = new HashMap[String, SocialUser] with SynchronizedMap[String, SocialUser]

  def find(userId: UserId): SocialUser = {
    val user = Athlete.find(&quot;email={email}&quot;).on(&quot;email&quot; -&gt; userId.id).first()

    user match {
      case Some(user) =&gt; {
        val socialUser = new SocialUser
        socialUser.id = userId
        socialUser.displayName = user.firstName
        socialUser.email = user.email
        socialUser.isEmailVerified = true
        socialUser.password = user.password
        socialUser
      }
      case None =&gt; {
        if (!userId.provider.eq(ProviderType.userpass)) {
          var socialUser = new SocialUser
          socialUser.id = userId
          socialUser
        } else {
          null
        }
      }
    }
  }

  def save(user: SocialUser) {
    if (find(user.id) == null) {
      val firstName = user.displayName
      val lastName = user.displayName
      Athlete.create(Athlete(NotAssigned, user.email, user.password, firstName, lastName))
    }
  }

  def createActivation(user: SocialUser): String = {
    val uuid: String = Codec.UUID()
    activations.put(uuid, user)
    uuid
  }

  def activate(uuid: String): Boolean = {
    val user: SocialUser = activations.get(uuid).asInstanceOf[SocialUser]
    var result = false

    if (user != null) {
      user.isEmailVerified = true
      save(user)
      activations.remove(uuid)
      result = true
    }

    result
  }

  def deletePendingActivations() {
    activations.clear()
  }
}
&lt;/pre&gt;
&lt;p&gt;Jorge was a great help in getting my authentication needs met and he even wrote a BasicAuth.scala trait to implement Basic Authentication on my JSON services.
&lt;/p&gt;
&lt;pre class=&quot;brush: scala&quot;&gt;
package controllers

import _root_.securesocial.provider.{UserService, ProviderType, UserId}
import play._
import play.mvc._
import play.libs.Crypto

import controllers.securesocial.SecureSocial

/*
 * @author Jorge Aliss &amp;lt;jaliss@gmail.com&gt; of Secure Social fame.
 */
trait BasicAuth {
  self: Controller =&gt;

  @Before def checkAccess = {
    if (currentUser != null) {
      // this allows SecureSocial.getCurrentUser() to work.
      renderArgs.put(&quot;user&quot;, currentUser)
      Continue
    }

    val realm =
      Play.configuration.getProperty(&quot;securesocial.basicAuth.realm&quot;, &quot;Unauthorized&quot;)

    if (request.user == null || request.password == null) {
      Unauthorized(realm)
    } else {
      val userId = new UserId
      userId.id = request.user
      userId.provider = ProviderType.userpass
      val user = UserService.find(userId)

      if (user == null ||
        !Crypto.passwordHash(request.password).equals(user.password)) {
        Unauthorized(realm)
      } else {
        // this allows SecureSocial.getCurrentUser() to work.
        renderArgs.put(&quot;user&quot;, user)
        Continue
      }
    }
  }

  def currentUser = {
    SecureSocial.getCurrentUser()
  }
}
&lt;/pre&gt;
&lt;p id=&quot;summary&quot;&gt;
&lt;strong&gt;Summary&lt;/strong&gt;&lt;br/&gt;
My latest pass at developing with Scala and leveraging Play to build my app was a lot of fun. While there were issues with class reloading every-so-often and &lt;a href=&quot;http://groups.google.com/group/scalate/browse_thread/thread/ddf455ec8676abf1&quot;&gt;Scala versions with Scalate&lt;/a&gt;, I was able to add the features I wanted. I wasn&apos;t able to upgrade to Play 2.0, but I didn&apos;t try that hard and figured it&apos;s best to wait until its upgrade guide has been published. 
&lt;/p&gt;
&lt;p&gt;
I&apos;m excited to describe my latest experience to the developers at Jfokus this week. In addition, the conference has talks on &lt;a href=&quot;http://www.jfokus.se/jfokus/talks.jsp#Play%20Framework%202.0&quot;&gt;Play 2.0&lt;/a&gt;, &lt;a href=&quot;http://www.jfokus.se/jfokus/talks.jsp#CoffeeScript%3A%20JavaScript%20without%20the%20Fail&quot;&gt;CoffeeScript&lt;/a&gt;, &lt;a href=&quot;http://www.jfokus.se/jfokus/talks.jsp#Client-side%20Storage%3A%20When%20%26%20How&quot;&gt;HTML5&lt;/a&gt;, &lt;a href=&quot;http://www.jfokus.se/jfokus/talks.jsp#Scala%20in%20Action&quot;&gt;Scala&lt;/a&gt; and &lt;a href=&quot;http://www.jfokus.se/jfokus/talks.jsp#Introducing%20Scalate%2C%20the%20Scala%20Template%20Engine&quot;&gt;Scalate&lt;/a&gt;. I hope to attend many of these and learn some new tricks to improve my skills and my app. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The Delving developers have written an article on &lt;a href=&quot;http://delving.eu/node/27&quot;&gt;Migration to Play 2&lt;/a&gt;. While it doesn&apos;t provide specific details on what they needed to change, it does have good information on how long it took and things to watch for.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/ajax_framework_analysis_results</id>
        <title type="html">Ajax Framework Analysis Results</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/ajax_framework_analysis_results"/>
        <published>2009-04-23T20:34:44-06:00</published>
        <updated>2014-05-08T19:47:19-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="ajax" scheme="http://roller.apache.org/ns/tags/" />
        <category term="gxt" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jquery" scheme="http://roller.apache.org/ns/tags/" />
        <category term="smartgwt" scheme="http://roller.apache.org/ns/tags/" />
        <category term="dojo" scheme="http://roller.apache.org/ns/tags/" />
        <category term="yui" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="gwt" scheme="http://roller.apache.org/ns/tags/" />
        <category term="extjs" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">Way back in January, I wrote about how my colleagues and I were &lt;a href=&quot;http://raibledesigns.com/rd/entry/choosing_an_ajax_framework&quot;&gt;evaluating Ajax frameworks&lt;/a&gt; to build a SOFEA-style architecture. To make our choice, we used the following process:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Choose a short list of frameworks to prototype with.&lt;/li&gt;
&lt;li&gt;Create an application prototype with each framework.&lt;/li&gt;
&lt;li&gt;Document findings and create a matrix with important criteria.&lt;/li&gt;
&lt;li&gt;Create presentation to summarize document.&lt;/li&gt;
&lt;li&gt;Deliver document, presentation and recommendation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When I wrote that entry, we had just finished step 2 and were starting step 3. I first wrote this blog post a week later, when we delivered step 5. Here is the comparison and conclusion sections of the analysis document we composed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Framework Comparison&lt;/strong&gt;&lt;br/&gt;
In order to evaluate the different frameworks against important criteria, we created a matrix with weights and ranks for each framework. This matrix shows how our weighting and rankings lead us to the winner for our project.  You can &lt;a href=&quot;http://spreadsheets.google.com/ccc?key=p2SLd279MTmShLQdCjfi0OQ&amp;hl=en&quot;&gt;view this matrix online&lt;/a&gt; or see below for a summary.
&lt;/p&gt;

&lt;iframe width=&apos;520&apos; height=&apos;500&apos; frameborder=&apos;0&apos; src=&apos;http://spreadsheets.google.com/pub?key=p2SLd279MTmShLQdCjfi0OQ&amp;output=html&amp;gid=0&amp;single=true&amp;widget=true&apos; style=&apos;margin: 0 auto&apos;&gt;&lt;/iframe&gt;

&lt;p style=&quot;text-align: left&quot;&gt;
&lt;strong&gt;Note:&lt;/strong&gt; Criteria whose values were identical across all candidates were weighted at zero. 
Charting capability was weighted at zero b/c we decided to use Flash for this.
&lt;/p&gt;

&lt;p&gt;This matrix indicates that &lt;strong&gt;GWT&lt;/strong&gt; is the best candidate for our team to develop SOFEA-style applications with.
In addition to the matrix, below are graphs that illustrate interesting (and possibly meaningless) statistics about each project. 
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;img src=&quot;//spreadsheets.google.com/pub?key=p2SLd279MTmShLQdCjfi0OQ&amp;amp;oid=1&amp;amp;output=image&quot; width=&quot;320&quot; alt=&quot;Number of Committers&quot;/&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;!--img src=&quot;//spreadsheets.google.com/pub?key=p2SLd279MTmShLQdCjfi0OQ&amp;amp;oid=2&amp;amp;output=image&quot; width=&quot;320&quot; alt=&quot;Mailing List Traffic&quot;/&gt;
&lt;br/&gt;&lt;br/--&gt;
&lt;img src=&quot;//spreadsheets.google.com/pub?key=p2SLd279MTmShLQdCjfi0OQ&amp;amp;oid=3&amp;amp;output=image&quot; width=&quot;320&quot; alt=&quot;Books on Amazon&quot;/&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br/&gt;

After working with the various frameworks, we believe that all the frameworks were very good and could be used to write applications with. If all weights are equal, these frameworks were almost even when compared against our evaluation criteria. The graph below illustrates this. 
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;img src=&quot;//spreadsheets.google.com/pub?key=p2SLd279MTmShLQdCjfi0OQ&amp;amp;oid=4&amp;amp;output=image&quot; width=&quot;320&quot; alt=&quot;Ranking with equal criteria weights&quot;/&gt;
&lt;/p&gt;
&lt;p&gt;Even after applying the weighted criteria, the evenness doesn&apos;t change a whole lot. &lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;img src=&quot;//spreadsheets.google.com/pub?key=p2SLd279MTmShLQdCjfi0OQ&amp;amp;oid=5&amp;amp;output=image&quot; width=&quot;320&quot; alt=&quot;Ranking with weighted criteria&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;
Without considering the even or weighted criteria, we believe the decision all comes down to what the developers on the project feel they will be most comfortable with. If you&apos;re developing with Dojo or YUI, chances are you&apos;re &lt;em&gt;dressing up&lt;/em&gt; existing HTML and possibly using &lt;a href=&quot;http://www.alistapart.com/articles/understandingprogressiveenhancement&quot;&gt;progressive enhancement&lt;/a&gt; to add more rich functionality. On the other hand, Ext JS and GWT are similar to Swing programming where you build the UI with code (JavaScript for Ext JS, Java for GWT).
&lt;/p&gt;
&lt;p&gt;
The tools available for JavaScript development have gotten increasingly better in recent years. IntelliJ IDEA has a &lt;a href=&quot;http://www.jetbrains.com/idea/features/javascript_editor.html&quot;&gt;JavaScript Editor&lt;/a&gt; that provides many of the same features as its Java editor. &lt;a href=&quot;http://www.aptana.com/studio&quot;&gt;Aptana Studio&lt;/a&gt; also has excellent support for authoring and debugging JavaScript. However, we believe the Java debugging and authoring support in IDEs is much better. Furthermore, we are more familiar with organizing code in Java projects and feel more comfortable in this development environment. 
&lt;/p&gt;
&lt;p&gt;
Based on this evaluation, we believe that GWT is the best framework for our team to develop SOFEA-style applications with. 

&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flash Forward to Today...&lt;/strong&gt;&lt;br/&gt;
The core GWT library from Google doesn&apos;t have a whole lot of widgets, nor do they look
good out-of-the-box.  So early on, we experimented with two alternative implementations
that continue to leverage GWT concepts and tools:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://extjs.com/products/gxt&quot;&gt;GXT&lt;/a&gt;: a GWT version of Ext JS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/smartgwt&quot;&gt;SmartGWT&lt;/a&gt;: a GWT version of SmartClient&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Unfortunately, over the past few months, we&apos;ve found that both of these implementations are too heavy for our requirements, mostly because of the file size of the generated JavaScript code. For example, a feature I wrote generated a 275K *.cache.html file using GXT. After determining that was too slow to give users the initial &quot;pop&quot;, I re-wrote it &lt;em&gt;without&lt;/em&gt; GXT. After a day, we had an application with *.cache.html files of 133K. Yes, that&apos;s over a 50% reduction in size!&lt;a href=&quot;http://raibledesigns.com/rd/entry/ajax_framework_analysis_results#footnote-gxtmvc&quot;&gt;*&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
Because of these findings, we are proceeding with the core GWT library from Google and adding in new components as needed.
It is cool to know you can make a UI &quot;pop&quot; with GWT, as long as you stick to the core - close-to-the-metal - components. For those applications that can afford an initial &quot;loading...&quot; state, I&apos;d definitely recommend looking at GXT and SmartGWT.
&lt;/p&gt;
&lt;p style=&quot;font-size: 90%&quot;&gt;&lt;a name=&quot;footnote-gxtmvc&quot;&gt;*&lt;/a&gt; To make refactoring easier, I copied &lt;a href=&quot;http://raibledesigns.com/rd/entry/gxt_s_mvc_framework&quot;&gt;GXT MVC&lt;/a&gt; into our source tree and modified all imports.&lt;/p&gt;
&lt;p&gt;















</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/maven_2_archetypes_get_a</id>
        <title type="html">Maven 2 Archetypes get a much needed improvement</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/maven_2_archetypes_get_a"/>
        <published>2008-02-09T15:20:00-07:00</published>
        <updated>2008-02-10T00:23:02-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="maven" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">Yesterday, a &lt;a href=&quot;http://markmail.org/message/ivskpgvts6kvhjh3&quot;&gt;new version of the Maven Archetype Plugin was released&lt;/a&gt;. This release incorporates many of the improvements that were developed in a different project - code named &quot;Archetype NG&quot;. The two major improvements are 1) you only have to use &quot;mvn archetype:create&quot; now and 2) you can create archetypes from existing projects.&lt;/p&gt;
&lt;p&gt;I haven&apos;t tried #2, but #1 seems to work pretty well (especially since AppFuse archetypes are the first 9 &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;).&lt;br/&gt;&lt;br/&gt;</summary>
        <content type="html">Yesterday, a &lt;a href=&quot;http://markmail.org/message/ivskpgvts6kvhjh3&quot;&gt;new version of the Maven Archetype Plugin was released&lt;/a&gt;. This release incorporates many of the improvements that were developed in a different project - code named &quot;Archetype NG&quot;. The two major improvements are 1) you only have to use &quot;mvn archetype:create&quot; now and 2) you can create archetypes from existing projects.&lt;/p&gt;
&lt;p&gt;I haven&apos;t tried #2, but #1 seems to work pretty well (especially since AppFuse archetypes are the first 9 &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;).&lt;/p&gt;
&lt;pre&gt;
powers:~ mraible$ mvn archetype:create
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: &apos;archetype&apos;.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [archetype:create] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] Preparing archetype:create
[INFO] No goals needed for project - skipping
[INFO] Setting property: classpath.resource.loader.class =&gt; &apos;org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader&apos;.
[INFO] Setting property: velocimacro.messages.on =&gt; &apos;false&apos;.
[INFO] Setting property: resource.loader =&gt; &apos;classpath&apos;.
[INFO] Setting property: resource.manager.logwhenfound =&gt; &apos;false&apos;.
[INFO] [archetype:create]
Choose archetype:
1: internal -&gt; appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF)
2: internal -&gt; appfuse-basic-spring (AppFuse archetype for creating a web application with Hibernate, Spring and Spring MVC)
3: internal -&gt; appfuse-basic-struts (AppFuse archetype for creating a web application with Hibernate, Spring and Struts 2)
4: internal -&gt; appfuse-basic-tapestry (AppFuse archetype for creating a web application with Hibernate, Spring and Tapestry 4)
5: internal -&gt; appfuse-core (AppFuse archetype for creating a jar application with Hibernate and Spring and XFire)
6: internal -&gt; appfuse-modular-jsf (AppFuse archetype for creating a modular application with Hibernate, Spring and JSF)
7: internal -&gt; appfuse-modular-spring (AppFuse archetype for creating a modular application with Hibernate, Spring and Spring MVC)
8: internal -&gt; appfuse-modular-struts (AppFuse archetype for creating a modular application with Hibernate, Spring and Struts 2)
9: internal -&gt; appfuse-modular-tapestry (AppFuse archetype for creating a modular application with Hibernate, Spring and Tapestry 4)
10: internal -&gt; maven-archetype-j2ee-simple (A simple J2EE Java application)
11: internal -&gt; maven-archetype-marmalade-mojo (A Maven plugin development project using marmalade)
12: internal -&gt; maven-archetype-mojo (A Maven Java plugin development project)
13: internal -&gt; maven-archetype-portlet (A simple portlet application)
14: internal -&gt; maven-archetype-profiles ()
15: internal -&gt; maven-archetype-quickstart ()
16: internal -&gt; maven-archetype-site-simple (A simple site generation project)
17: internal -&gt; maven-archetype-site (A more complex site project)
18: internal -&gt; maven-archetype-webapp (A simple Java web application)
19: internal -&gt; struts2-archetype-starter (A starter Struts 2 application with Sitemesh, DWR, and Spring)
20: internal -&gt; struts2-archetype-blank (A minimal Struts 2 application)
21: internal -&gt; struts2-archetype-portlet (A minimal Struts 2 application that can be deployed as a portlet)
22: internal -&gt; struts2-archetype-dbportlet (A starter Struts 2 portlet that demonstrates a simple CRUD interface with db backing)
23: internal -&gt; struts2-archetype-plugin (A Struts 2 plugin)
24: internal -&gt; shale-archetype-blank (A blank Shale web application with JSF)
25: internal -&gt; maven-adf-archetype (Archetype to ease the burden of creating a new application based with ADF)
26: internal -&gt; data-app (A new Databinder application with sources and resources.)
27: internal -&gt; jini-service-archetype (Archetype for Jini service project creation)
28: internal -&gt; softeu-archetype-seam (JSF+Facelets+Seam Archetype)
29: internal -&gt; softeu-archetype-seam-simple (JSF+Facelets+Seam (no persistence) Archetype)
30: internal -&gt; softeu-archetype-jsf (JSF+Facelets Archetype)
31: internal -&gt; jpa-maven-archetype (JPA application)
32: internal -&gt; spring-osgi-bundle-archetype (Spring-OSGi archetype)
33: internal -&gt; confluence-plugin-archetype (Atlassian Confluence plugin archetype)
34: internal -&gt; maven-archetype-har (Hibernate Archive)
35: internal -&gt; maven-archetype-sar (JBoss Service Archive)
36: internal -&gt; wicket-archetype-quickstart (A simple Apache Wicket project)
Choose a number:  (1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36): 3
Downloading: http://static.appfuse.org/releases/org/appfuse/archetypes/appfuse-basic-struts/2.0/appfuse-basic-struts-2.0.jar
71K downloaded
Define value for groupId: : com.company
Define value for artifactId: : myapp
Define value for version: : 1.0-SNAPSHOT
Define value for package: : war
Confirm properties configuration:
groupId: com.company
artifactId: myapp
version: 1.0-SNAPSHOT
package: war
 Y: : Y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating OldArchetype: appfuse-basic-struts:2.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.company
[INFO] Parameter: packageName, Value: war
[INFO] Parameter: basedir, Value: /Users/mraible
[INFO] Parameter: package, Value: war
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: artifactId, Value: myapp
...{suppressed hundreds of Velocity warnings}...
[INFO] OldArchetype created in dir: /Users/mraible/myapp
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 43 seconds
[INFO] Finished at: Sat Feb 09 14:39:11 MST 2008
[INFO] Final Memory: 7M/511M
[INFO] ------------------------------------------------------------------------
powers:~ mraible$
&lt;/pre&gt;
&lt;p&gt;There&apos;s some typos (duplicate colons) in the prompts, but this is an alpha release, so I don&apos;t see any problem with that. I wonder where this list of archetypes is stored? We need to change the default version of AppFuse from 2.0 to 2.0.1.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/don_brown_makes_maven_2</id>
        <title type="html">Don Brown Makes Maven 2 Not Suck</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/don_brown_makes_maven_2"/>
        <published>2008-01-28T09:28:09-07:00</published>
        <updated>2012-11-11T02:00:40-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="maven2" scheme="http://roller.apache.org/ns/tags/" />
        <category term="donbrown" scheme="http://roller.apache.org/ns/tags/" />
        <category term="appfuse" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">Don Brown spent some time over the weekend &lt;a href=&quot;http://www.jroller.com/mrdon/entry/making_maven_2_not_suck&quot;&gt;Making Maven 2 not suck&lt;/a&gt;:&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
While there are a few (very important, I might add) things &lt;a href=&quot;http://maven.apache.org&quot;&gt;Maven 2&lt;/a&gt; gets right, there are a bunch that just suck, yet I use it at my day job (&lt;a href=&quot;http://atlassian.com&quot;&gt;Atlassian&lt;/a&gt;) and in Open Source work, so in true Open Source tradition, rather than continue bitching, I&apos;m doing something about it. I&apos;m embarking on a quest to fix all the bits of Maven 2 that really annoy me and waste my time. I hope to get most, if not all, of the changes back into the codebase, but my personal deliverable is a build of Maven 2 that doesn&apos;t suck.
&lt;/p&gt;
&lt;p&gt;On his blog, Don lists a number of improvements he hopes to make. This weekend, he implemented the first three, which concentrates on speeding up remote repository access and downloading of artifacts.
&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
First up, tasks #1-3. I implemented these changes in a bored Sunday afternoon and saw a example build (Struts 2 core) go from 3 minutes, 26 seconds to 2 minutes even, so a little over 40% performance improvement.
&lt;/p&gt;
&lt;p&gt;Interested, I decided to try Don&apos;s improvements on &lt;a href=&quot;http://appfuse.org&quot;&gt;AppFuse&lt;/a&gt;. Since it fetches seemingly hundreds of artifacts from Maven&apos;s central repository, it seemed like a good testing ground. With a clean repository (&lt;code&gt;rm -r ~/.m2/repository&lt;/code&gt;), a 8 MB/sec internet connection and &quot;mvn -Dmaven.test.skip&quot;, I achieved the following results with the stock version of Maven 2.0.8:&lt;/p&gt;
&lt;pre style=&quot;margin-left: 20px; margin-right: 30px; padding: 5px; background: #ffd; border: 1px solid silver; font-family: Courier, &quot;Courier New&quot;, monospace&quot;&gt;[INFO] Total time: 7 minutes 40 seconds
[INFO] Finished at: Mon Jan 28 09:02:11 MST 2008
[INFO] Final Memory: 55M/508M
&lt;/pre&gt;
&lt;p&gt;With Don&apos;s improved uber-jar, I received the following results:&lt;/p&gt;
&lt;pre style=&quot;margin-left: 20px; margin-right: 30px; padding: 5px; background: #ffd; border: 1px solid silver; font-family: Courier, &quot;Courier New&quot;, monospace&quot;&gt;[INFO] Total time: 5 minutes 17 seconds
[INFO] Finished at: Mon Jan 28 09:10:56 MST 2008
[INFO] Final Memory: 56M/508M
&lt;/pre&gt;
&lt;p&gt;460 vs. 317 seconds = a &lt;strong&gt;31.1%&lt;/strong&gt; improvement -- &lt;em&gt;Nice work Don!&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
When he implements #4 (Should support artifacts checked into the SCM in the lib/ directory so no external repository needed), I&apos;ll be a much happier Maven consumer. I&apos;ve always wanted the ability to bundle all of AppFuse&apos;s dependencies for offline use like we did in 1.9.x. 
&lt;/p&gt;
&lt;p&gt;
Don - I&apos;ll buy you numerous beverages in &lt;a href=&quot;http://raibledesigns.com/rd/entry/java_web_framework_smackdown_at&quot;&gt;Vegas&lt;/a&gt; if you add the ability to run a Maven command to put all a project&apos;s dependencies in its lib directory too. &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/oslo_in_september</id>
        <title type="html">Oslo in September</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/oslo_in_september"/>
        <published>2007-09-14T06:34:31-06:00</published>
        <updated>2014-05-08T19:47:19-06:00</updated> 
        <category term="/General" label="General" />
        <category term="oslo" scheme="http://roller.apache.org/ns/tags/" />
        <category term="norway" scheme="http://roller.apache.org/ns/tags/" />
        <category term="travel" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;a href=&quot;http://tinyurl.com/3ytdmq&quot;&gt;&lt;img src=&quot;//static.raibledesigns.com/repository/images/stevebloom-eagle.jpg&quot; alt=&quot;Steve Bloom&quot; width=&quot;144&quot; height=&quot;94&quot; class=&quot;picture&quot; /&gt;&lt;/a&gt;
Wednesday we had a nice relaxing day in Oslo. After breakfast, we went on a 2-hour boat tour of the local &lt;a href=&quot;http://en.wikipedia.org/wiki/Fjord&quot;&gt;fjord&lt;/a&gt;. The boat lulled me to sleep for most of the trip, but my mom kept elbowing me to keep me awake so I did see manage to see some things. Many islands were so small they could only fit a single house. They all looked like very enjoyable locations to spend the summer months. 
&lt;/p&gt;
&lt;p&gt;
After the boat trip, we browsed through an outdoor exhibit by &lt;a href=&quot;http://www.stevebloom.com/&quot;&gt;Steve Bloom&lt;/a&gt;. The exhibit had some amazing photographs of wildlife - I may have to buy some to fill up my empty walls. After that, we had a bottle of wine on the docks and then headed back to check in to our hotel. 
&lt;/p&gt;
&lt;p&gt;At the hotel, I had my most expensive cocktail ever - paying $26 for a Whiskey and Coke. We had a very nice dinner on Wednesday night and retired fairly early. It&apos;s nice traveling with my parents because you get a good night&apos;s sleep every night.
&lt;/p&gt;
&lt;p&gt;On Thursday, I had my talk at 11:45. I was speaking in &quot;Gate 1&quot;, which has a stage in the middle of the room - which audiences on both sides. It was a bit difficult to talk to one audience without turning your back on the other one, but I think I did OK. I told folks I would post a link to my slides after my talk. Rather than continually linking to the individual PDF, I&apos;ve created a &lt;a href=&quot;http://raibledesigns.com/rd/page/publications&quot;&gt;Presentations&lt;/a&gt; page that will list my presentations from various conferences and such. The direct link to my JavaZone talk is &lt;a href=&quot;http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks-JavaZone2007.pdf&quot;&gt;here&lt;/a&gt;. One of the highlights of the show (for me) was meeting &lt;a href=&quot;http://blog.aslakhellesoy.com/&quot;&gt;Aslak Helles&#248;y&lt;/a&gt;. I&apos;ve always admired Aslak for all his contributions to open source.
&lt;/p&gt;
&lt;p class=&quot;smokey&quot;&gt;
&lt;strong&gt;WARNING:&lt;/strong&gt; Please remember these slides that are merely a backdrop for my presentation. During the talk, I do say that some things are innacurate or have been fixed with recent (or future) releases. The slides don&apos;t really mean anything without the accompanying talk. 
&lt;/p&gt;
&lt;p&gt;After JavaZone, my parents and I went to see the &lt;a href=&quot;http://www.fram.museum.no/en/&quot;&gt;Fram Museum&lt;/a&gt; and then to &lt;a href=&quot;http://en.wikipedia.org/wiki/Vigeland_Park&quot;&gt;Vigeland Park&lt;/a&gt;. The sculptures at Vigeland were pretty incredible, especially since we were there while the Sun was setting.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;http://www.flickr.com/photos/mraible/1379131499/&quot; title=&quot;Vigeland Park&quot;&gt;&lt;img src=&quot;//farm2.static.flickr.com/1019/1379131499_1a8be167df_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;Vigeland Park&quot; style=&quot;border: 1px solid black&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;This morning, we hopped out of bed, had some breakfast and headed for the airport. After making it all the way to the gate, our flight was cancelled at the last minute. The reason is mechanical and apparently parts need to be flown in from London. Currently, it&apos;s 2:30pm and they have no idea if it will be a 4-hour or 48-hour delay. They bussed us over to the nearby Clarion Hotel, fed us lunch and gave us rooms. There&apos;s no seats available on other flights, so everyone on our flight is pretty much stuck. Hopefully we&apos;ll get out of here sometime tomorrow.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Looks like we&apos;ll be on a flight tomorrow morning at 7:00 AM. They&apos;ve given me no indication that I&apos;m confirmed through Denver, so tomorrow night could be spent in Newark.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/do_we_even_need_web</id>
        <title type="html">Do we even need web frameworks?</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/do_we_even_need_web"/>
        <published>2007-08-09T08:49:33-06:00</published>
        <updated>2012-11-08T14:39:45-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="section508" scheme="http://roller.apache.org/ns/tags/" />
        <category term="webframeworks" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">On the Struts mailing list, &lt;a href=&quot;http://www.nabble.com/Struts-list-regeneration-problem-tf4231271.html#a12071494&quot;&gt;Ted Husted&lt;/a&gt; writes:
&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
IMHO, if we had today&apos;s JavaScript/CSS/HTML environment available to
us in 1998, then JSP, ASP, JSF, PHP, and all the rest of it, would not
exist. We did all these things to make up for the shortcomings of the
client-side environment, and, since then, the key shortcomings have
been addressed. 
&lt;/p&gt;
&lt;p&gt;I believe Ted has a good point. However, today&apos;s Ajax development toolkits don&apos;t help those applications that require &lt;a href=&quot;http://www.section508.gov/index.cfm?FuseAction=Content&amp;amp;ID=12#Web&quot;&gt;Section 508&lt;/a&gt; compliance. Of course, if your toolkit embraces 508 compliance, I&apos;d love to hear about it.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/appfuse_2_0_status2</id>
        <title type="html">AppFuse 2.0 Status</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/appfuse_2_0_status2"/>
        <published>2007-01-06T01:18:38-07:00</published>
        <updated>2014-05-08T19:47:19-06:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">&lt;a href=&quot;http://farm1.static.flickr.com/130/347400033_c4e2981ad1_b.jpg&quot; title=&quot;AppFuse: Better than Tots&quot; rel=&quot;lightbox&quot;&gt;&lt;img src=&quot;//farm1.static.flickr.com/130/347400033_c4e2981ad1_m.jpg&quot; width=&quot;240&quot; height=&quot;150&quot; alt=&quot;Better than Tots&quot; class=&quot;picture&quot; /&gt;&lt;/a&gt;
We&apos;re working hard on AppFuse 2.0.  The good news is things are coming along really nicely. There&apos;s quite a few developers working on the project now and they&apos;ve been a tremendous help. If I knew the move to Maven 2 would&apos;ve inspired so much help, I would&apos;ve done it a long time ago! We&apos;ve got most of the archetypes created and we just need to work on documentation for the 2.0 release M1 release. As far as the &lt;a href=&quot;http://raibledesigns.com/wiki/AppFuseRoadmap.html&quot;&gt;roadmap&lt;/a&gt; is concerned, we&apos;ve finished most of the code for an M2 release, but we still need to do documentation. I&apos;m hoping to release 2.0 M1 on Thursday of next week.
&lt;br/&gt;&lt;br/&gt;
If you want to try it, you can checkout the &lt;a href=&quot;http://static.appfuse.org/movies/2.0/helloworld.mov&quot;&gt;Hello World with AppFuse 2.0 video&lt;/a&gt;. After that, feel free to take it for a test drive using the &lt;a href=&quot;http://dev.appfuse.org/display/APF/QuickStart+Guide&quot;&gt;QuickStart Guide&lt;/a&gt;.
&lt;br/&gt;&lt;br/&gt;
New features in AppFuse 2.0:
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;Maven 2 Integration&lt;/li&gt;
&lt;li&gt;Upgraded WebWork to Struts 2&lt;/li&gt;
&lt;li&gt;JDK 5, Annotations, JSP 2.0, Servlet 2.4&lt;/li&gt;
&lt;li&gt;JPA Support
&lt;li&gt;Generic CRUD backend&lt;/li&gt;
&lt;li&gt;Full Eclipse, IDEA and NetBeans support&lt;/li&gt;
&lt;li&gt;Fast startup and no deploy with Maven Jetty Plugin&lt;/li&gt;
&lt;li&gt;Testable on multiple appservers with Cargo and profiles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Speaking of goodies, I uploaded a bunch of &lt;a href=&quot;http://www.flickr.com/photos/mraible/sets/72157594462258916/&quot;&gt;AppFuse desktop backgrounds&lt;/a&gt; to Flickr. Thanks to Max Hays of &lt;a href=&quot;http://timberlinegroup.com/&quot;&gt;Timberline Group&lt;/a&gt; for creating these.
&lt;br/&gt;&lt;br/&gt;
Only 26 days left until the AppFuse 2.0 Release Party! Location TBD. &lt;img src=&quot;https://raibledesigns.com/images/smileys/grin.gif&quot; class=&quot;smiley&quot; alt=&quot;:-D&quot; title=&quot;:-D&quot; /&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/appfuse_2_0_status</id>
        <title type="html">AppFuse 2.0 Status</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/appfuse_2_0_status"/>
        <published>2006-08-18T15:17:31-06:00</published>
        <updated>2007-02-10T20:07:57-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">I managed to get most of AppFuse&apos;s code moved over to a Maven 2 structure
this week.  I have tests working in the hibernate/ibatis projects, as
well as the service project, but not in the web tier projects yet.  I
do have everything compiling though. &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;
&lt;/p&gt;
&lt;pre&gt;
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] AppFuse ............................................... SUCCESS [2.228s]
[INFO] AppFuse Common Data Module ............................ SUCCESS [1.681s]
[INFO] AppFuse Hibernate Module .............................. SUCCESS [0.809s]
[INFO] AppFuse iBATIS Module ................................. SUCCESS [0.630s]
[INFO] AppFuse Data Modules .................................. SUCCESS [0.008s]
[INFO] AppFuse Service Module ................................ SUCCESS [0.696s]
[INFO] AppFuse Common Web Module ............................. SUCCESS [2.817s]
[INFO] AppFuse JSF Module .................................... SUCCESS [4.410s]
[INFO] AppFuse Spring MVC Module ............................. SUCCESS [4.038s]
[INFO] AppFuse Struts 2 Module ............................... SUCCESS [4.954s]
[INFO] AppFuse Tapestry Module ............................... SUCCESS [4.042s]
[INFO] AppFuse Web Modules ................................... SUCCESS [0.007s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26 seconds
[INFO] Finished at: Fri Aug 18 15:06:54 MDT 2006
[INFO] Final Memory: 11M/26M
[INFO] ------------------------------------------------------------------------
&lt;/pre&gt;
&lt;p&gt;
If you&apos;d like to review any of the work done thus far, I&apos;ve uploaded
my latest work to:
&lt;/p&gt;
&lt;p style=&quot;margin-left: 10px&quot;&gt;
&lt;a href=&quot;http://static.appfuse.org/downloads/appfuse2-20060817.zip&quot;&gt;http://static.appfuse.org/downloads/appfuse2-20060817.zip&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
The major issue I&apos;ve encountered to date can be reviewed on the &lt;a href=&quot;http://www.nabble.com/Re%3A-Converting-AppFuse-to-a-Maven-2-Project-p5870757.html&quot;&gt;Maven user mailing list&lt;/a&gt;. If you happen to try things out, the best thing to do is &lt;a href=&quot;http://www.nabble.com/AppFuse-2.0-Status-tf2129607s2369.html&quot;&gt;post feedback to the dev list&lt;/a&gt;.  I&apos;m considering another &lt;a href=&quot;http://raibledesigns.com/page/rd?entry=a_device_free_weekend&quot;&gt;device-free weekend&lt;/a&gt;, so I may not respond until Monday.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/comparing_open_source_application_servers</id>
        <title type="html">Comparing Open Source Application Servers</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/comparing_open_source_application_servers"/>
        <published>2006-08-15T10:00:56-06:00</published>
        <updated>2007-02-10T20:07:57-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">With all the &lt;a href=&quot;http://www.infoq.com/news/Glassfish-update&quot;&gt;recent&lt;/a&gt; &lt;a href=&quot;http://www.theserverside.com/news/thread.tss?thread_id=41748&quot;&gt;hubbub&lt;/a&gt; about GlassFish, I decided to do a quick performance test this morning. I downloaded all the most recent versions of the various open source application servers, deployed AppFuse 1.9.3 (Struts version) on them, and ran &quot;ant test-canoo&quot; to see if any of them were faster than the other.  This was by no means a scientific, isolated test. It also didn&apos;t take into account any performance tuning you should do on these servers, I just used the out-of-the-box settings.
&lt;br/&gt;&lt;br/&gt;
I ran these tests on my MacBook Pro (2.16 GHz Intel Core Duo, 2 GB DDR2 SDRAM) with my JAVA_OPTS set to:&lt;/p&gt;
&lt;pre&gt;
-Xms768M -Xmx768M -XX:MaxPermSize=512m -Djava.awt.headless=true
&lt;/pre&gt;
&lt;p&gt;When typing &quot;java -version&quot; at the command line, I got:&lt;/p&gt;
&lt;pre&gt;
java version &quot;1.5.0_06&quot;
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-103)
Java HotSpot(TM) Client VM (build 1.5.0_06-57, mixed mode, sharing)
&lt;/pre&gt;
&lt;p&gt;Servers tested (in no particular order):&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;JBoss 4.0.4&lt;/li&gt;
&lt;li&gt;GlassFish B48&lt;/li&gt;
&lt;li&gt;JOnAS 4.7.6&lt;/li&gt;
&lt;li&gt;Resin 3.0.21&lt;/li&gt;
&lt;li&gt;Geronimo 1.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&apos;m pleased to note that all servers allowed me to deploy appfuse.war without using a console or command-line tool.  They all support dropping the WAR in some sort of auto-deploy directory. &lt;em&gt;Very cool!&lt;/em&gt; Secondly, I was able to successfully deploy AppFuse on all of them with &lt;em&gt;no changes to AppFuse nor the server&lt;/em&gt;.  Quite impressive.
&lt;/p&gt;
&lt;p&gt;My test consisted of the following:&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;Copying appfuse.war into the appropriate directory&lt;/li&gt;
&lt;li&gt;Starting the server&lt;/li&gt;
&lt;li&gt;Running &quot;ant test-canoo&quot; from my $APPFUSE_HOME directory once&lt;/li&gt;
&lt;li&gt;Running &quot;ant test-canoo&quot; 3 times, recording the numbers for each run&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&apos;s what I found:&lt;/p&gt;
&lt;table class=&quot;comparison&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Server Name&lt;/th&gt;&lt;th&gt;1st run (seconds)&lt;/th&gt;&lt;th&gt;2nd run&lt;/th&gt;&lt;th&gt;3rd run&lt;/th&gt;&lt;th&gt;Average&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;JBoss 4.0.4&lt;/th&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;23.33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;GlassFish B48&lt;/th&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;24.33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;JOnAS 4.7.6&lt;/th&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;25.66&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;Resin 3.0.21&lt;/th&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;Geronimo 1.1&lt;/th&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;24.66&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Since I know you&apos;re going to ask about Jetty and Tomcat (the two main servlet-only containers), I ran the numbers on those too.  First off, I tried Jetty 6 RC0.  No dice - I got the following error when trying to start the server.&lt;/p&gt;
&lt;pre&gt;
java.lang.IllegalStateException: Cannot initialize context because there is already a root application 
context present - check whether you have multiple ContextLoader* definitions in your web.xml!
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:173)
&lt;/pre&gt;
&lt;p&gt;Since AppFuse deploys on all the above app servers, as well as Jetty 5.1.x, I&apos;ll chalk this up to a bug in Jetty 6. I used Jetty 5.1.11 for this test because I already had it installed on my machine.&lt;/p&gt;
&lt;table class=&quot;comparison&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Server Name&lt;/th&gt;&lt;th&gt;1st run (seconds)&lt;/th&gt;&lt;th&gt;2nd run&lt;/th&gt;&lt;th&gt;3rd run&lt;/th&gt;&lt;th&gt;Average&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;Jetty 5.1.11&lt;/th&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;24.33&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;Tomcat 5.5.17&lt;/th&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;22.66&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I don&apos;t know that these numbers mean anything, but it was a fun experiment. For those of you who think these numbers might mean something, here&apos;s the rankings:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tomcat 5.5.17&lt;/li&gt;
&lt;li&gt;Resin 3.0.21&lt;/li&gt;
&lt;li&gt;JBoss 4.0.4&lt;/li&gt;
&lt;li&gt;Jetty 5.1.11/GlassFish B48 (tie)&lt;/li&gt;
&lt;li&gt;Geronimo 1.1&lt;/li&gt;
&lt;li&gt;JOnAS 4.7.6&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Of course, the better test would be hammering each server with 1000 concurrent users (or a number higher than that) and comparing how each server holds up.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/better_client_side_validation_with</id>
        <title type="html">Better client-side validation with Prototype</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/better_client_side_validation_with"/>
        <published>2006-05-09T14:59:29-06:00</published>
        <updated>2007-02-10T20:07:57-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">I&apos;d love to see something like &lt;a href=&quot;http://tetlaw.id.au/view/blog/really-easy-field-validation-with-prototype/&quot;&gt;Really easy field validation with Prototype&lt;/a&gt; integrated into Commons Validator and other web frameworks&apos; validation engine.  The only hard part would be looping through form elements and adding classes with the validation information. Other than that, it doesn&apos;t seem like it&apos;d be too hard to implement. Hat tip to &lt;a href=&quot;http://ajaxian.com/archives/really-easy-field-validation-with-prototype&quot;&gt;Ajaxian.com&lt;/a&gt;.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/carpal_tunnel1</id>
        <title type="html">Carpal Tunnel</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/carpal_tunnel1"/>
        <published>2006-03-28T21:25:53-07:00</published>
        <updated>2014-05-08T19:47:19-06:00</updated> 
        <category term="/General" label="General" />
        <content type="html">&lt;a href=&quot;http://familydoctor.org/023.xml&quot;&gt;&lt;img src=&quot;//familydoctor.org/Images/023a.gif&quot; alt=&quot;Anatomy of the Hand&quot; width=&quot;216&quot; height=&quot;220&quot; class=&quot;picture&quot; style=&quot;border: 0&quot; /&gt;&lt;/a&gt;
Every month or so, after working a long-ass week, my left arm usually starts hurting as if I have &lt;a href=&quot;http://familydoctor.org/023.xml&quot;&gt;carpal tunnel&lt;/a&gt;.  Usually, I go get a massage and it feels better the next day, or a few days shortly after. The Massage Therapist always asks me if I&apos;ve been diagnosed with carpal tunnel, to which I reply &quot;No.&quot;  They also ask me if I have tingling in my hands or forearms, and I always tell them &quot;No, I just get a dull pain in my forearms when I work a long week.&quot; So I&apos;ve never &lt;em&gt;really&lt;/em&gt; had carpal tunnel AFAIK, just symptoms every month or so.
&lt;br/&gt;&lt;br/&gt;
That all changed this week.  I started noticing the dull pain in my left forearm at TSSJS, and I started noticing the tingling in my left hand yesterday. I&apos;ve never had tingling before. Furthermore, last week was a pretty light typing week (but I might&apos;ve played cards too much &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;). So now I&apos;m worried; I&apos;ll probably get a massage this week and I have a chiropractor appointment next week. The only think I can think of that might be causing the tingling is: 1) riding my bike to work, or 2) the cheap-ass crappy keyboard I have at work. 
&lt;br/&gt;&lt;br/&gt;
I went to the Apple Store and CompUSA to get an ergonomic keyboard tonight, but had no luck.  The Apple Store only sell the standard Apple keyboard and CompUSA only sells black Microsoft keyboards. The M$ keyboard&apos;s will work, but it seems wrong to hookup a Microsoft keyboard to a MacBook Pro with a cinema display. I have a meeting in South Denver tomorrow morning, so I&apos;m going to stop by &lt;a href=&quot;http://www.microcenter.com/at_the_stores/denver.html&quot;&gt;Micro Center&lt;/a&gt;.  Hopefully they&apos;ll have something good.
&lt;br/&gt;&lt;br/&gt;
Carpal Tunnel is a scary thing as a programming professional.  It&apos;s one of the few things that can put you out of commission as a programmer. It looks like I&apos;d better start taking it seriously if I want to keep slingin&apos; code for the next 10 years.&lt;br/&gt;&lt;br/&gt;
&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href=&quot;http://raibledesigns.com/page/rd?entry=carpal_tunnel&quot;&gt;Carpal Tunnel&lt;/a&gt; in May 2004.&lt;br/&gt;&lt;br/&gt;
&lt;strong&gt;A Week Later:&lt;/strong&gt; I went to a repetitive motion specialist yesterday.  They said that hand surgeons hate them b/c they can solve most issues.  They worked my left arm and hand, and expect everything to be better with a couple more treatments.  It already feels a lot better, but I&apos;m also doing stretches every hour - which helps a lot too.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/struts_is_far_and_away</id>
        <title type="html">Struts is (far and away) most popular web framework deployed on JBoss</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/struts_is_far_and_away"/>
        <published>2006-03-10T07:02:29-07:00</published>
        <updated>2012-11-08T14:44:24-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">From this month&apos;s JBoss Newsletter:&lt;/p&gt;
&lt;div class=&quot;quote&quot; style=&quot;margin-bottom: 10px&quot;&gt;
&lt;p&gt;
Here are the results of last month&apos;s poll that asked: What web application framework(s) do you use for your applications deployed on JBoss? (Multiple answers allowed)&lt;/p&gt;
          &lt;ul class=&quot;glassList&quot;&gt;
	  &lt;li&gt; Apache Struts  - 59% &lt;/li&gt;
          &lt;li&gt; JavaServer Faces- 34% &lt;/li&gt;

          &lt;li&gt; Spring - 26% &lt;/li&gt;
          &lt;li&gt; Other - 13% &lt;/li&gt;
          &lt;li&gt; Tapestry - 6% &lt;/li&gt;
          &lt;li&gt; WebWork - 5% &lt;/li&gt;
          &lt;li&gt; Wicket - 1% &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;These results are certainly interesting.  My guess is most &quot;Other&quot; frameworks are ones developed in-house.
&lt;br/&gt;&lt;br/&gt;
Does this means I shouldn&apos;t ditch Struts 1.x support in AppFuse 2.0? Possibly, but since AppFuse works best for starting &lt;em&gt;new&lt;/em&gt; applications - it makes sense to say &quot;use the good stuff or you&apos;re on your own.&quot; &lt;img src=&quot;https://raibledesigns.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/pennies_in_the_radio</id>
        <title type="html">Pennies in the Radio</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/pennies_in_the_radio"/>
        <published>2005-10-22T15:20:32-06:00</published>
        <updated>2014-05-08T19:47:19-06:00</updated> 
        <category term="/General" label="General" />
        <content type="html">Julie took her car in to the stereo shop today b/c the radio was cutting out every once in a while.  Actually, it was better than that - it&apos;d quit working when she&apos;d drive over a bump, and then start working again when she hit the next bump.  The stereo shop called a few minutes ago to tell us what the problem was: &lt;em&gt;someone&lt;/em&gt; has stuffed pennies into the radio, and they&apos;d somehow fallen down and were shorting out the wiring below.  I wonder who that &lt;em&gt;someone&lt;/em&gt; was?
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;http://www.flickr.com/photos/mraible/54961386/&quot; title=&quot;Photo Sharing&quot;&gt;&lt;img src=&quot;//static.flickr.com/33/54961386_5af604d7f4_m.jpg&quot; width=&quot;160&quot; height=&quot;240&quot; alt=&quot;Our Little Cowgirl&quot; style=&quot;border: 1px solid black&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;If you have a good &quot;my life as a parent&quot; story, I&apos;d love to hear it.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/appfuse_videos</id>
        <title type="html">AppFuse Videos</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/appfuse_videos"/>
        <published>2005-05-04T09:48:40-06:00</published>
        <updated>2007-02-10T20:07:56-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">I know I &lt;a href=&quot;http://raibledesigns.com/page/rd?anchor=appfuse_startup_video&quot;&gt;said I&apos;d never do an AppFuse video&lt;/a&gt;, but after having many requests - I decided to go ahead and make a couple. The first one
is a demo of creating a new project and then installing and browsing
that project in your browser - to see all the out-of-the-box features.
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;
&lt;a href=&quot;http://demo.appfuse.org/setup.html&quot;&gt;http://demo.appfuse.org/setup.html&lt;/a&gt;&lt;/li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The 2nd one basically all the stuff that&apos;s done in the &lt;a href=&quot;http://raibledesigns.com/appfuse/tutorials&quot;&gt;tutorials&lt;/a&gt; -
using Spring MVC for the web framework.  I create a Person.java object
and then use &lt;a href=&quot;http://raibledesigns.com/wiki/Wiki.jsp?page=AppGen&quot;&gt;AppGen&lt;/a&gt; to generate all the code for it.  In this one, I
make a number of mistakes (but solve them all).  I thought about going
fully happy-path, but then decided it was important to show some
gotchas that might occur.
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;
&lt;a href=&quot;http://demo.appfuse.org/appgen.html&quot;&gt;http://demo.appfuse.org/appgen.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I used the trial version of &lt;a href=&quot;http://www.techsmith.com/products/studio/default.asp&quot;&gt;Camtasia Studio&lt;/a&gt; to create these videos. Thanks to Keith at &lt;a href=&quot;http://www.kgbinternet.com&quot;&gt;KGB Internet&lt;/a&gt; for hosting the
&lt;a href=&quot;http://demo.appfuse.org&quot;&gt;demo site&lt;/a&gt; for AppFuse.  If you need Tomcat hosting, Keith offers an
excellent service at a very good price.
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Update:&lt;/strong&gt; You can also &lt;a href=&quot;https://appfuse.dev.java.net/files/documents/1397/14148/appfuse-videos.zip&quot;&gt;download these videos&lt;/a&gt; for off-line use.
&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; I &lt;a href=&quot;http://raibledesigns.com/page/rd?entry=appfuse_videos_updated_for_1&quot;&gt;updated these videos for AppFuse 1.9.3&lt;/a&gt;.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/brrrrrrrr</id>
        <title type="html">Brrrrrrrr</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/brrrrrrrr"/>
        <published>2005-02-10T00:14:04-07:00</published>
        <updated>2007-02-10T20:07:56-07:00</updated> 
        <category term="/General" label="General" />
        <content type="html">I attended the Java User Group meeting tonight and managed to document a good portion of it.  I hope to post it in the morning when I wake up.  After the meeting, a number of us headed to the local brewery and enjoyed some brewskis together.  We left around 11:20 and I made it home (riding my bike) at midnight.  While it was 19&amp;deg;F when I rode to work this morning, the 26&amp;deg;F on the way home seemed a lot colder.  Maybe it was the beer.  Anyway, it&apos;s good to be home.  Let&apos;s hope it warms up before I ride back in in 5 hours.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/resin_slower_than_tomcat_fails</id>
        <title type="html">Resin slower than Tomcat, fails the AppFuse Test</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/resin_slower_than_tomcat_fails"/>
        <published>2004-10-07T19:13:09-06:00</published>
        <updated>2007-10-18T15:58:13-06:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">As part of AppFuse 1.6, I was hoping to supply the option to use Resin instead of Tomcat.  In reality, hardly anyone has asked for this on the mailing list - but since so many folks say that &quot;Resin is better&quot; - I figured I&apos;d give it a whirl.  I hate to be the guy that spoils all the Resin users mantra, but it seems like Tomcat is the better server. Why?  Speed, compliance and shit works. Here are some things I found:
&lt;/p&gt;
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;Server startup time when AppFuse is only app installed (deleted work directories before starting):
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;Resin: 25 seconds&lt;/li&gt;
&lt;li&gt;Tomcat: 14 seconds&lt;/li&gt;
&lt;/ul&gt;
I also found that Resin loads my StartupListener twice b/c it&apos;s defined in web.xml and XDoclet puts it in the generated TLD.  I think the best solution is to add a flag to XDoclet to allow you to exclude listeners from the TLD when it&apos;s generated.  I commented out the entry in web.xml for this test.&lt;/li&gt;
&lt;li&gt;Running &quot;ant test-canoo&quot; which runs through all the JSPs using Canoo&apos;s WebTest (server already started):
&lt;ul class=&quot;glassList&quot;&gt;
&lt;li&gt;Resin: 1st run (no compiled JSPs) - 53 seconds, 2nd run (compiled JSPs) - 24 seconds.&lt;/li&gt;
&lt;li&gt;Tomcat: 1st run (no compiled JSPs) - 49 seconds, 2nd run (compiled JSPs) - 14 seconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I did have to hack a number of things to even run the tests (which verifies titles, success messages, etc.) on Resin.  First of all, SiteMesh seems to puke with if you &lt;a href=&quot;http://jira.opensymphony.com/browse/SIM-143&quot;&gt;try to use &amp;lt;dispatcher&amp;gt;FORWARD&amp;lt;/dispatcher&amp;gt;&lt;/a&gt; on the filter-mapping.  I had to comment this out, resulting in a lots of HTML Tidy errors during the tests ( Error: &amp;lt;content&gt; is not recognized!).  I also had to turn off Resin&apos;s fast-jstl to bypass &lt;a href=&quot;http://www.caucho.com/quercus/bugtrack/view.xtp?bugreport_id=2286&quot;&gt;this bug&lt;/a&gt;.  Finally, I had to revert the displaytag to using the non-EL version (which required changing titleKey -&gt; title and name=&quot;${listName}&quot; -&gt; name=&quot;listName&quot;).  It seems that Resin enables EL even if you&apos;re using a 2.3 DTD.  With Tomcat, and I believe the spec says this, EL is only enabled if you use a 2.4 XSD.&lt;/p&gt;
&lt;p&gt;So there you have it folks, not only is Resin 3.0.9 slower than Tomcat 5.0.28 (JDK 1.4.2, Windows XP), but it&apos;s not standards compliant.  Of course, the speed could be due to my using the open source version (with performance enhancements turned off) - but I&apos;d think the other (albeit minor) stuff should be easy to fix.  Everytime I try to use Resin, I end up finding bugs and going back to Tomcat.  I guess this is another one of those days.  I don&apos;t think I&apos;ll include a Resin installer as part of 1.6, but I might distribute one later if I can get these issues solved.  I wonder if I should give Orion a run for its money?
&lt;br /&gt;&lt;br /&gt;
P.S.  Since I know people are going to ask: Tomcat 5.5.3 with JDK 5.0 took 9 seconds to startup.  Running &quot;test-canoo&quot;?  First run: 37 seconds, second: 14 seconds.  Looks like the new compiler is quite a bit faster.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/tom_mcqueeney_s_blog</id>
        <title type="html">Tom McQueeney&apos;s Blog</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/tom_mcqueeney_s_blog"/>
        <published>2004-08-13T12:52:50-06:00</published>
        <updated>2007-02-10T20:07:56-07:00</updated> 
        <category term="/Roller" label="Roller" />
        <content type="html">What happen&apos;s when you&apos;re a Java Developer and your wife is a kick-ass designer?  You end up with a &lt;a href=&quot;http://www.mcqueeney.com/roller/page/tom&quot;&gt;rockin&apos; Roller theme&lt;/a&gt;.  Tom McQueeney is DJUG&apos;s President and his wife, Renee, is an awesome designer.  Not only that, she&apos;s a &lt;a href=&quot;http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&amp;f=26&amp;amp;t=003279&quot;&gt;Sun Certified Enterprise Architect&lt;/a&gt;.  Tom and Renee, this site looks &lt;em&gt;&lt;b&gt;incredible&lt;/b&gt;&lt;/em&gt; - I especially like how the &quot;blog&quot; part of it is just another page and it looks so seemless.  Tom&apos;s personal site looks a lot better than many corporate sites I&apos;ve seen.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/make_your_junit_tests_run</id>
        <title type="html">Make your JUnit Tests run faster when using Spring</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/make_your_junit_tests_run"/>
        <published>2004-04-08T01:22:14-06:00</published>
        <updated>2007-02-10T20:07:56-07:00</updated> 
        <category term="/Java" label="Java" />
        <content type="html">&lt;em&gt;&lt;a href=&quot;http://jroller.com/page/raible&quot;&gt;JRoller&lt;/a&gt; is down, and has been down for an hour or so - so I&apos;ve decided to post this Spring Live entry here.&lt;/em&gt;
&lt;br /&gt;&lt;br /&gt;
I discovered an interesting thing today about Spring and my JUnit tests.  I noticed  that the VelocityEngine I was setting on my 
PositionManager was getting initialized once for each test* method in my Test.  This means that 
since my PositionManagerTest has 10 test methods - it would load the context 10 times.
&lt;br /&gt;&lt;br /&gt;
Loading the context so many times was because the following code was in my Test&apos;s parent&apos;s 
constructor:
&lt;/p&gt;
&lt;pre&gt;    ctx = new ClassPathXmlApplicationContext(&quot;/applicationContext.xml&quot;);&lt;/pre&gt;
&lt;p&gt;I suppose I expected any constructor-iniatialized variables to be initialized &lt;em&gt;once and only 
once&lt;/em&gt;.  So I figured out a solution to make my JUnit tests run faster.  By making the &lt;code&gt;ctx&lt;/code&gt; variable static, and loading the file in the member variables definition, I 
greatly reduced the amount of time needed to run tests.  Below is the new code I&apos;m using:&lt;/p&gt;
&lt;pre&gt;    protected static ApplicationContext ctx = 
    	new ClassPathXmlApplicationContext(&quot;/applicationContext.xml&quot;);&lt;/pre&gt;
&lt;p&gt;By doing this, the ApplicationContext is only set once, and my tests run much faster.  Here&apos;s 
some performance comparisons from &lt;a href=&quot;http://raibledesigns.com/wiki/Wiki.jsp?page=StrutsResume&quot;&gt;Struts Resume&lt;/a&gt;:
&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;Average time to run &quot;ant test-dao&quot;: 36 seconds&lt;br /&gt;
Average time to run &quot;ant test-dao&quot; after this change: &lt;strong&gt;26 seconds&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A 10 second improvement - that&apos;s &lt;em&gt;crazy talk&lt;/em&gt; dontcha think?!  I&apos;ve tried it on single tests, as well as suites - and it seems to improve performance by approximately 30% across the board. 
&lt;br /&gt;&lt;br /&gt;
Because of this experience, I have to recommend that when you write JUnit tests that use Spring - &lt;strong&gt;you should initialize your ApplicationContext in a static member variable&lt;/strong&gt;.  It seems to be the best performing and logical choice.  Of course, if I&apos;m off my rocker - please let me know.
&lt;br /&gt;&lt;br /&gt;
&lt;em&gt;On a sidenote, it would be cool if Roller allowed me to turn off comments for a single post.  I like how &lt;a href=&quot;http://www.simongbrown.com&quot;&gt;Simon&lt;/a&gt; posts stuff on java.net and then aggregates it to his personal weblog.&lt;/em&gt;</content>
    </entry>
</feed>

