<?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">
    <title type="html">Raible Designs</title>
    <subtitle type="html">Raible Designs is an Enterprise Open Source Consulting company. We specialize in UI and Full Stack Architectures using HTML5, CSS, JavaScript and Java. We love HTML5, Angular, Bootstrap, Spring Boot, and especially JHipster.</subtitle>
    <id>https://raibledesigns.com/rd/feed/entries/atom</id>
            <link rel="self" type="application/atom+xml" href="https://raibledesigns.com/rd/feed/entries/atom?tags=jhipster" />
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/" />
        <updated>2026-05-25T13:53:18-06:00</updated>
    <generator uri="http://roller.apache.org" version="5.0.3 (1388864191739:dave)">Apache Roller (incubating)</generator>
        <entry>
        <id>https://raibledesigns.com/rd/entry/my_marvelous_road_trip_to</id>
        <title type="html">My Marvelous Road Trip to the Utah JUG</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/my_marvelous_road_trip_to"/>
        <published>2024-05-22T09:35:09-06:00</published>
        <updated>2024-05-22T10:01:45-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="skiing" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="utahjug" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;I have many fond memories from speaking at the &lt;a href=&quot;https://ujug.org/&quot;&gt;Utah JUG&lt;/a&gt; over the years. I fell in love
    with Utah when I worked at Overstock in 2011 and experienced the &lt;a href=&quot;https://raibledesigns.com/rd/entry/the_greatest_snow_on_earth&quot;&gt;greatest snow on earth&lt;/a&gt;. It&apos;s wild
    to &lt;a href=&quot;https://raibledesigns.com/rd/entry/farewell_to_the_2017_18&quot;&gt;reminisce about 2018&lt;/a&gt; too. I spoke at the
    Denver JUG on Wednesday, then woke up early on Thursday and drove eight hours (through multiple snow storms) and
    made it 15 minutes before my talk. I lost a windshield wiper in the process and didn&apos;t have time to replace it, so
    it permanently etched a line in the vehicle&apos;s windshield. In &lt;a href=&quot;https://raibledesigns.com/rd/entry/a_fantastically_fun_february_at&quot;&gt;February 2020&lt;/a&gt;, I did a Rocky
    Mountain JUG tour with &lt;a href=&quot;https://saturnism.me/&quot;&gt;Ray Tsang&lt;/a&gt;. That&apos;s when I learned that Ray is &lt;em&gt;really
        good&lt;/em&gt; at pool.
&lt;/p&gt;
&lt;p&gt;Because of these experiences, I always jump at the opportunity when I&apos;m invited back. This year, I decided
    to take my time and do a road trip in my trusty VW Vanagon (Stout) to Utah. I planned to mountain bike in Fruita and
    Moab along the way, then ski at a couple Utah resorts before returning home.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737179534_fefec577e8_c.jpg&quot; title=&quot;Since I have the time, I&apos;m road-tripping to speak at the Utah JUG on Thursday. I hope to find some nice powder and singletrack along the way. Wish me luck! #FunEmployment #StoutTheSyncro&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737179534/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737179534_fefec577e8.jpg&quot; width=&quot;500&quot; alt=&quot;Since I have the time, I&apos;m road-tripping to speak at the Utah JUG on Thursday. I hope to find some nice powder and singletrack along the way. Wish me luck! #FunEmployment #StoutTheSyncro&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;I was pleasantly surprised when I saw a storm coming the night before my departure on April 16th. I quickly altered
    my plans and fell into an 18&quot; powder day at Copper Mountain on Tuesday morning.&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;I have many fond memories from speaking at the &lt;a href=&quot;https://ujug.org/&quot;&gt;Utah JUG&lt;/a&gt; over the years. I fell in love
    with Utah when I worked at Overstock in 2011 and experienced the &lt;a href=&quot;https://raibledesigns.com/rd/entry/the_greatest_snow_on_earth&quot;&gt;greatest snow on earth&lt;/a&gt;. It&apos;s wild
    to &lt;a href=&quot;https://raibledesigns.com/rd/entry/farewell_to_the_2017_18&quot;&gt;reminisce about 2018&lt;/a&gt; too. I spoke at the
    Denver JUG on Wednesday, then woke up early on Thursday and drove eight hours (through multiple snow storms) and
    made it 15 minutes before my talk. I lost a windshield wiper in the process and didn&apos;t have time to replace it, so
    it permanently etched a line in the vehicle&apos;s windshield. In &lt;a href=&quot;https://raibledesigns.com/rd/entry/a_fantastically_fun_february_at&quot;&gt;February 2020&lt;/a&gt;, I did a Rocky
    Mountain JUG tour with &lt;a href=&quot;https://saturnism.me/&quot;&gt;Ray Tsang&lt;/a&gt;. That&apos;s when I learned that Ray is &lt;em&gt;really
        good&lt;/em&gt; at pool.
&lt;/p&gt;
&lt;p&gt;Because of these experiences, I always jump at the opportunity when I&apos;m invited back. This year, I decided
    to take my time and do a road trip in my trusty VW Vanagon (Stout) to Utah. I planned to mountain bike in Fruita and
    Moab along the way, then ski at a couple Utah resorts before returning home.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737179534_fefec577e8_c.jpg&quot; title=&quot;Since I have the time, I&apos;m road-tripping to speak at the Utah JUG on Thursday. I hope to find some nice powder and singletrack along the way. Wish me luck! #FunEmployment #StoutTheSyncro&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737179534/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737179534_fefec577e8.jpg&quot; width=&quot;500&quot; alt=&quot;Since I have the time, I&apos;m road-tripping to speak at the Utah JUG on Thursday. I hope to find some nice powder and singletrack along the way. Wish me luck! #FunEmployment #StoutTheSyncro&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;I was pleasantly surprised when I saw a storm coming the night before my departure on April 16th. I quickly altered
    my plans and fell into an 18&quot; powder day at Copper Mountain on Tuesday morning.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53735916152_ed708809c2_c.jpg&quot; title=&quot;Found 18&amp;quot; (46cm) freshies at Copper this morning! &amp;#x2603;&amp;#xFE0F;&amp;#x1F606;&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735916152/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735916152_ed708809c2_q.jpg&quot; width=&quot;150&quot; alt=&quot;Found 18&amp;quot; (46cm) freshies at Copper this morning! &quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53736844836_281321d21a_c.jpg&quot; title=&quot;Found 18&amp;quot; (46cm) freshies at Copper this morning! &amp;#x2603;&amp;#xFE0F;&amp;#x1F606;&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53736844836/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53736844836_281321d21a_q.jpg&quot; width=&quot;150&quot; alt=&quot;Found 18&amp;quot; (46cm) freshies at Copper this morning! &quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53735915657_c7d78dd388_c.jpg&quot; title=&quot;Found 18&amp;quot; (46cm) freshies at Copper this morning! &amp;#x2603;&amp;#xFE0F;&amp;#x1F606;&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735915657/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735915657_c7d78dd388_q.jpg&quot; width=&quot;150&quot; alt=&quot;Found 18&amp;quot; (46cm) freshies at Copper this morning! &quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    That afternoon, I drove to &lt;a href=&quot;https://www.tetongravity.com/story/ski/locals-guide-to-fruita-colorado&quot;&gt;Fruita&lt;/a&gt; and went for a mountain bike ride on 18 Road. There are not many places where it&apos;s possible to have an epic powder
    day &lt;em&gt;and&lt;/em&gt; do an awesome mountain bike ride in the same day. I love Colorado!
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53735915677_5d35ab3794_c.jpg&quot; title=&quot;Skiing and mountain biking in the same day? Yes please!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735915677/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735915677_5d35ab3794_m.jpg&quot; width=&quot;240&quot; alt=&quot;Skiing and mountain biking in the same day? Yes please!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53735915737_df65eae60f_c.jpg&quot; title=&quot;New Trail at Fruita&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735915737/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735915737_df65eae60f_m.jpg&quot; width=&quot;240&quot; alt=&quot;New Trail at Fruita&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/53737267230_e0088e393b_c.jpg&quot; title=&quot;Sweet singletrack in Fruita named Joe&apos;s Ridge. You have to work for it, but it&apos;s spectacular on the way down!  #RoadTrip #FunEmployment&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737267230/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737267230_e0088e393b.jpg&quot; width=&quot;500&quot; alt=&quot;Sweet singletrack in Fruita named Joe&apos;s Ridge. You have to work for it, but it&apos;s spectacular on the way down!  #RoadTrip #FunEmployment&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    I camped in Stout that night and woke up to a beautiful desert morning. After some coffee and oatmeal with
    raspberries and walnuts, I headed for Moab.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737041293_20df1cf20c_c.jpg&quot; title=&quot;#StoutTheSyncro and I camped far away from everyone&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737041293/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737041293_20df1cf20c_m.jpg&quot; width=&quot;240&quot; alt=&quot;#StoutTheSyncro and I camped far away from everyone&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53735914117_ddc578d146_c.jpg&quot; title=&quot;I love waking up in the desert!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735914117/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735914117_ddc578d146_m.jpg&quot; width=&quot;240&quot; alt=&quot;I love waking up in the desert!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    I stopped at &lt;a href=&quot;https://www.blm.gov/visit/klondike-bluffs-trail-system&quot;&gt;Klondike Bluffs&lt;/a&gt; for a 16.2 mile ride that took me 3&#189; hours. I was gassed at the top but
    thoroughly enjoyed the views.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53735913967_625d708ab0_c.jpg&quot; title=&quot;Dino-Flow at Klondike Bluffs&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735913967/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735913967_625d708ab0_q.jpg&quot; width=&quot;150&quot; alt=&quot;Dino-Flow at Klondike Bluffs&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737265470_c7bb3fa589_c.jpg&quot; title=&quot;Top of Alaska trail at Klondike Bluffs&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737265470/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737265470_c7bb3fa589_q.jpg&quot; width=&quot;150&quot; alt=&quot;Top of Alaska trail at Klondike Bluffs&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737040593_7382b9115f_c.jpg&quot; title=&quot;Homer trail at Klondike Bluffs&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737040593/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737040593_7382b9115f_q.jpg&quot; width=&quot;150&quot; alt=&quot;Homer trail at Klondike Bluffs&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/53737175664_2a6bfdf95e_c.jpg&quot; title=&quot;My Trusty Steed&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737175664/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737175664_2a6bfdf95e_m.jpg&quot; width=&quot;240&quot; alt=&quot;My Trusty Steed&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737039568_1d65bf3e64_c.jpg&quot; title=&quot;Gorgeous view from the top!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737039568/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737039568_1d65bf3e64_m.jpg&quot; width=&quot;240&quot; alt=&quot;Gorgeous view from the top!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    I finished driving to Salt Lake City on Wednesday afternoon. I&apos;m always impressed with how close, and gorgeous, the
    mountains are to the city.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53735910637_afacddc510_c.jpg&quot; title=&quot;The mountains driving into Salt Lake City are spectacular!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735910637/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735910637_afacddc510.jpg&quot; width=&quot;500&quot; alt=&quot;The mountains driving into Salt Lake City are spectacular!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    On Thursday morning, I released a new version of the &lt;a href=&quot;https://x.com/mraible/status/1780962784391442783&quot;&gt;Micronaut
    blueprint for JHipster&lt;/a&gt;, then hit the slopes at Snowbird. The weather was fantastic for spring skiing.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737037573_8f5db25ee6_c.jpg&quot; title=&quot;Cruisin&apos; blues &amp;#x26F7;&amp;#xFE0F; at Snowbird the Utah JUG meetup&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737037573/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737037573_8f5db25ee6_m.jpg&quot; width=&quot;240&quot; alt=&quot;Cruisin&apos; blues &amp;#x26F7;&amp;#xFE0F; at Snowbird the Utah JUG meetup&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53736838686_f6980ff92f_c.jpg&quot; title=&quot;Cruisin&apos; blues &amp;#x26F7;&amp;#xFE0F; at Snowbird the Utah JUG meetup&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53736838686/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53736838686_f6980ff92f_m.jpg&quot; width=&quot;240&quot; alt=&quot;Cruisin&apos; blues &amp;#x26F7;&amp;#xFE0F; at Snowbird the Utah JUG meetup&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    I made sure to get some runs in at Alta too.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737036168_337172b213_c.jpg&quot; title=&quot;I took a few runs at Alta too!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737036168/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737036168_337172b213_m.jpg&quot; width=&quot;240&quot; alt=&quot;I took a few runs at Alta too!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737172059_4f58f6c2f9_c.jpg&quot; title=&quot;More Alta views&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737172059/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737172059_4f58f6c2f9_m.jpg&quot; width=&quot;240&quot; alt=&quot;More Alta views&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    I dressed up as an old-fashioned Java developer on Thursday evening and headed to the Utah JUG meetup at &lt;a href=&quot;https://lucid.co/&quot;&gt;Lucid&apos;s Global HQ&lt;/a&gt;. I was pleasantly surprised to see a &lt;a href=&quot;https://x.com/UtahJava/status/1781121167207903459&quot;&gt;full room&lt;/a&gt; of Java enthusiasts. Before my talk, Jason Porter announced
    that it was &lt;a href=&quot;https://www.linkedin.com/feed/update/urn:li:activity:7186929266918395905/&quot;&gt;his last meeting as
    President of UJUG&lt;/a&gt;. He served in this role for 11.5 years and was amazing at it. Congratulations on your
    retirement, Jason!
&lt;/p&gt;
&lt;p&gt;I spoke about Micro Frontends for Java Microservices and used &lt;a href=&quot;https://www.jhipster.tech&quot;&gt;JHipster&lt;/a&gt; to
    demonstrate how it all worked.&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;Kudos to all the fabulous developers who attended the &lt;a
            href=&quot;https://twitter.com/UtahJava?ref_src=twsrc%5Etfw&quot;&gt;@UtahJava&lt;/a&gt; meetup tonight and listened to me
        ramble on about micro frontends and &lt;a href=&quot;https://twitter.com/jhipster?ref_src=twsrc%5Etfw&quot;&gt;@jhipster&lt;/a&gt;.
        You can find my slides on &lt;a
                href=&quot;https://twitter.com/speakerdeck?ref_src=twsrc%5Etfw&quot;&gt;@speakerdeck&lt;/a&gt;:&lt;br&gt;&lt;br&gt;&amp;#x1F3D4;&amp;#xFE0F;?
        &lt;a href=&quot;https://t.co/Kp19jjOG8E&quot;&gt;https://t.co/Kp19jjOG8E&lt;/a&gt;&lt;a
                href=&quot;https://twitter.com/hashtag/microfrontends?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#microfrontends&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/react?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#react&lt;/a&gt; &lt;a
                href=&quot;https://twitter.com/hashtag/modulefederation?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#modulefederation&lt;/a&gt;
        &lt;a href=&quot;https://t.co/W7tF7pUxpt&quot;&gt;pic.twitter.com/W7tF7pUxpt&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a
            href=&quot;https://twitter.com/mraible/status/1781157464861192555?ref_src=twsrc%5Etfw&quot;&gt;April 19, 2024&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;
    My &lt;a href=&quot;https://speakerdeck.com/mraible/micro-frontends-for-java-microservices-utah-jug-2024&quot;&gt;slide deck&lt;/a&gt; was
    similar to the one I delivered at &lt;a href=&quot;https://raibledesigns.com/rd/entry/a_delightful_trip_to_devnexus&quot;&gt;Devnexus&lt;/a&gt;
    the previous week, with minor enhancements.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style=&quot;max-width: 600px; margin: 0 auto&quot;&gt;
    &lt;iframe class=&quot;speakerdeck-iframe&quot; frameborder=&quot;0&quot; src=&quot;https://speakerdeck.com/player/936d59aabe034a12b3e7cbe496c6bfc0&quot; title=&quot;Micro Frontends for Java Microservices - Utah JUG 2024&quot; allowfullscreen=&quot;true&quot; style=&quot;border: 0px; background: padding-box padding-box rgba(0, 0, 0, 0.1); margin: 0px; padding: 0px; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px; width: 100%; height: auto; aspect-ratio: 560 / 315;&quot; data-ratio=&quot;1.7777777777777777&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;I received a lot of positive feedback on LinkedIn after my talk, particularly from college students that Jason had
    invited from his alma mater. This put a smile of satisfaction on my face well into the evening.&lt;/p&gt;
&lt;p&gt;
    On Friday, I woke up early to get a start on my road trip home. I was originally planning to ski another mountain in
    Utah, but realized I could make it to Steamboat by noon, and chose that route instead. Stout&apos;s red-blinky-light
    alerted me that something was wrong when I stopped at the gas station. Two quarts of oil fixed things and I was on
    my way. The open road with minimal traffic was wonderful.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53736836406_e81e4cbee7_c.jpg&quot; title=&quot;I love the open road in Colorado!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53736836406/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53736836406_e81e4cbee7.jpg&quot; width=&quot;500&quot; alt=&quot;I love the open road in Colorado!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    I arrived at Steamboat around noon, just in time for spring skiing in a t-shirt.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53736836766_5c30bba68d_c.jpg&quot; title=&quot;#StoutTheSyncro made it to Steamboat!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53736836766/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53736836766_5c30bba68d_m.jpg&quot; width=&quot;240&quot; alt=&quot;#StoutTheSyncro made it to Steamboat!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53735907937_4681b308f6_c.jpg&quot; title=&quot;Spring skiing at Steamboat&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735907937/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735907937_4681b308f6_m.jpg&quot; width=&quot;240&quot; alt=&quot;Spring skiing at Steamboat&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/53735907787_500f72a950_c.jpg&quot; title=&quot;It&apos;s t-shirt weather at #Steamboat today! &amp;#x1F603;&amp;#x26F7;&amp;#xFE0F;&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53735907787/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53735907787_500f72a950_m.jpg&quot; width=&quot;240&quot; alt=&quot;It&apos;s t-shirt weather at #Steamboat today! &amp;#x1F603;&amp;#x26F7;&amp;#xFE0F;&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53736835366_439222887d_c.jpg&quot; title=&quot;Mmmmm, beer &amp;#x1F37B;&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53736835366/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53736835366_439222887d_m.jpg&quot; width=&quot;240&quot; alt=&quot;Mmmmm, beer &amp;#x1F37B;&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    After Steamboat, I headed to our Ski Chalet in Winter Park for the weekend. Friends joined us for an
    end-of-ski-season celebration in Mary Jane&apos;s Challenger lot on Saturday morning.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737170364_7cc4a9a328_c.jpg&quot; title=&quot;Early bird gets a prime parking spot! #SpringSkiing #MaryJane #GoNuggets&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737170364/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737170364_7cc4a9a328_m.jpg&quot; width=&quot;240&quot; alt=&quot;Early bird gets a prime parking spot! #SpringSkiing #MaryJane #GoNuggets&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53736835131_a97f7a9ab0_c.jpg&quot; title=&quot;Spring skiing party crew! &amp;#x2764;&amp;#xFE0F;&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53736835131/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53736835131_a97f7a9ab0_m.jpg&quot; width=&quot;240&quot; alt=&quot;Spring skiing party crew! &amp;#x2764;&amp;#xFE0F;&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/53739140223_128b57db93_c.jpg&quot; title=&quot;We ended up with quite the crew!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53739140223/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53739140223_128b57db93_c.jpg&quot; width=&quot;500&quot; alt=&quot;We ended up with quite the crew!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    Sunday was a sunny, bluebird day. The kids and I ended our ski season with a final run down Trestle and a stop at
    the treehouse.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53737033543_ffd6a5a15f_c.jpg&quot; title=&quot;Bluebird day on the last day of our ski season!&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53737033543/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53737033543_ffd6a5a15f_m.jpg&quot; width=&quot;240&quot; alt=&quot;Bluebird day on the last day of our ski season!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://live.staticflickr.com/65535/53736834656_f04f38463e_c.jpg&quot; title=&quot;Happy Kids at Trestle&quot; rel=&quot;lightbox[utahjug2024]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/53736834656/in/album-72177720317166395/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53736834656_f04f38463e_m.jpg&quot; width=&quot;240&quot; alt=&quot;Happy Kids at Trestle&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;rarr; &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72177720317166395&quot;&gt;Road Trip to
    Utah JUG 2024&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
    I arrived home late Sunday night. I&apos;m proud of Stout for successfully completing the trip. Now I have even more fond
    memories of speaking at the Utah JUG. Thanks to Jason Porter, Don Bogardus, and Jonathan Bronson for the opportunity! &amp;#x1F60A;
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/a_delightful_trip_to_devnexus</id>
        <title type="html">A Delightful Trip to Devnexus</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/a_delightful_trip_to_devnexus"/>
        <published>2024-05-11T10:27:21-06:00</published>
        <updated>2024-05-11T16:59:34-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="community" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devnexus" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;&lt;a href=&quot;https://devnexus.com/&quot;&gt;Devnexus&lt;/a&gt; is one of my favorite conferences in the world. I have many fond memories of attending over the years and some awkward ones, too. My first memory is when &lt;a href=&quot;https://afitnerd.com/&quot;&gt;Micah Silverman&lt;/a&gt; and I worked at a Stormpath booth there in February 2017. Okta had just acquihired us and we weren&apos;t allowed to talk about it. We encouraged folks to sign up for our service even though we knew signups would shut down at the end of the week.&lt;/p&gt;
&lt;p&gt;It&apos;s funny how life comes full circle. &lt;a href=&quot;https://raibledesigns.com/rd/entry/funemployment_2024&quot;&gt;My employment with Okta officially ended&lt;/a&gt; the week before this year&apos;s Devnexus. I tried to cancel my talk when I first got the news, but &lt;a href=&quot;https://twitter.com/vincentmayers&quot;&gt;Vincent&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/prpatel&quot;&gt;Pratik&lt;/a&gt; convinced me to go, and I knew it would be good for networking. I&apos;m glad I did because I had a blast! It all started on Monday, April 8th.&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 &lt;a href=&quot;https://twitter.com/devnexus?ref_src=twsrc%5Etfw&quot;&gt;@devnexus&lt;/a&gt; adventure begins! &lt;a href=&quot;https://t.co/J3bfOQrh8k&quot;&gt;pic.twitter.com/J3bfOQrh8k&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1777354136201126385?ref_src=twsrc%5Etfw&quot;&gt;April 8, 2024&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;</summary>
        <content type="html">&lt;p&gt;&lt;a href=&quot;https://devnexus.com/&quot;&gt;Devnexus&lt;/a&gt; is one of my favorite conferences in the world. I have many fond memories of attending over the years and some awkward ones, too. My first memory is when &lt;a href=&quot;https://afitnerd.com/&quot;&gt;Micah Silverman&lt;/a&gt; and I worked at a Stormpath booth there in February 2017. Okta had just acquihired us and we weren&apos;t allowed to talk about it. We encouraged folks to sign up for our service even though we knew signups would shut down at the end of the week.&lt;/p&gt;
&lt;p&gt;It&apos;s funny how life comes full circle. &lt;a href=&quot;https://raibledesigns.com/rd/entry/funemployment_2024&quot;&gt;My employment with Okta officially ended&lt;/a&gt; the week before this year&apos;s Devnexus. I tried to cancel my talk when I first got the news, but &lt;a href=&quot;https://twitter.com/vincentmayers&quot;&gt;Vincent&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/prpatel&quot;&gt;Pratik&lt;/a&gt; convinced me to go, and I knew it would be good for networking. I&apos;m glad I did because I had a blast! It all started on Monday, April 8th.&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 &lt;a href=&quot;https://twitter.com/devnexus?ref_src=twsrc%5Etfw&quot;&gt;@devnexus&lt;/a&gt; adventure begins! &lt;a href=&quot;https://t.co/J3bfOQrh8k&quot;&gt;pic.twitter.com/J3bfOQrh8k&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1777354136201126385?ref_src=twsrc%5Etfw&quot;&gt;April 8, 2024&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 was in a tremendously good mood when I took this photo. I was sporting a new DU hat in anticipation of their &lt;a href=&quot;https://denverpioneers.com/news/2024/4/13/mens-ice-hockey-perfect-10-denver-wins-record-breaking-10th-national-championship.aspx&quot;&gt;NCAA Frozen Four victory&lt;/a&gt; the following weekend. And I was on my way to what seemed like a college reunion. I&apos;ve been a part of the Java community for over 20 years, and many of the speakers are old friends whom I&apos;ve made a lot of memories with.&lt;/p&gt;
&lt;h3&gt;Tuesday, April 9&lt;/h3&gt;
&lt;p&gt;The first day started off with a &lt;a href=&quot;https://jugleaderssummit.com/&quot;&gt;JUG Leaders Summit&lt;/a&gt;. The two presentations I really enjoyed were from &lt;a href=&quot;https://twitter.com/cajasmota&quot;&gt;Jorge Cajas&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/ariwaller&quot;&gt;Ari Waller&lt;/a&gt;. Jorges talked about getting students and younger people involved in JUGs (Java User Groups) and encouraged beginner talks. 
&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;Advice from &lt;a href=&quot;https://twitter.com/cajasmota?ref_src=twsrc%5Etfw&quot;&gt;@cajasmota&lt;/a&gt; for getting students involved with JUGs:&lt;br&gt;&lt;br&gt;- Offer beginner topics&lt;br&gt;- Organize meetups oriented to students&lt;br&gt;- Keep in touch with professors &lt;br&gt;- Don&amp;#39;t forget that they are kids&lt;a href=&quot;https://twitter.com/hashtag/devnexus?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#devnexus&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/jugleaders?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#jugleaders&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;a href=&quot;https://t.co/Bg76D8goGb&quot;&gt;pic.twitter.com/Bg76D8goGb&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1777692344076156988?ref_src=twsrc%5Etfw&quot;&gt;April 9, 2024&lt;/a&gt;&lt;/blockquote&gt; 
&lt;/div&gt;
&lt;p&gt;The Denver JUG used to have two talks at every meeting. The first was a basic concepts talk, and the second was more advanced. Over the years, we did away with the first talk in favor of one main talk and more networking afterward. Jorges pointed out we often expect developers to know Java frameworks when many of the younger developers have never used them.&lt;/p&gt;
&lt;p&gt;Ari talked about an AJUG initiative to support qualified global JUGs by providing a paid Meetup Pro account. This is also part of an effort to bring visibility to the greater Java community and it will be called the Devnexus Java Community Meetup Pro Network.  I&apos;ll update this post when I have more information.&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;That afternoon, we had a Java Champions Summit. We discussed many topics, and we&apos;ve since scheduled more time to talk virtually later this month. The photo below from &lt;a href=&quot;https://twitter.com/omniprof&quot;&gt;Ken Fogel&lt;/a&gt; captures that we had a lot of Java leaders in attendance!&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://www.flickr.com/photos/mraible/53692860576/in/album-72177720316633407/&quot; title=&quot;#Java leaders Summit team photo at Devnexus 2024. Credit: Ken Fogel&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53692860576_a3966de850_z.jpg&quot; width=&quot;640&quot; style=&quot;border: 1px solid black&quot; alt=&quot;#Java leaders Summit team photo at Devnexus 2024. Credit: Ken Fogel&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;h3&gt;Wednesday, April 10&lt;/h3&gt;
&lt;p&gt;Pratik and Vincent kicked off the &amp;lt;dev/&gt;olution on Wednesday morning. Amazingly, they&apos;ve been doing it &lt;a href=&quot;https://www.infoq.com/news/2024/04/devnexus-2024/&quot;&gt;for 20 years&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://www.flickr.com/photos/mraible/53693214299/in/album-72177720316633407/&quot; title=&quot;The &amp;lt;dev/&amp;gt;olution begins with Pratik and Vincent!&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/53693214299_bb216e1d27.jpg&quot; width=&quot;500&quot; style=&quot;border: 1px solid black&quot; alt=&quot;The &amp;lt;dev/&amp;gt;olution begins with Pratik and Vincent!&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;I did an interview with &lt;a href=&quot;https://twitter.com/jbaruch&quot;&gt;Baruch Sadogursky&lt;/a&gt; at Gradle&apos;s Build Propulsion Lab after the opening keynote. We talked about developer productivity, open source, &lt;a href=&quot;https://gradle.com/develocity/&quot;&gt;Develocity&lt;/a&gt;, and &lt;a href=&quot;https://www.jhipster.tech/&quot;&gt;JHipster&lt;/a&gt;.&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/lZVgMpXsQyU?si=YNVV3PG9bb3F3ZUY&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; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;I also did an interview with Melissa McKay at the DevOps Speakeasy. We talked about my session, Micro Frontends for Java Microservices.&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/AXKRe5okdFo?si=6jQigo5X3zhGo5-g&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; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;That afternoon, &lt;a href=&quot;https://twitter.com/Sharat_Chander&quot;&gt;Sharat Chander&lt;/a&gt;&apos;s keynote about moving Java forward together contained wisdom he learned from his father.&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;&amp;quot;Speed, at a certain point, becomes harm. Instead, move thoughtfully and build things.&amp;quot; -- &lt;a href=&quot;https://twitter.com/Sharat_Chander?ref_src=twsrc%5Etfw&quot;&gt;@Sharat_Chander&lt;/a&gt; at &lt;a href=&quot;https://twitter.com/hashtag/Devnexus?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#Devnexus&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;a href=&quot;https://t.co/fYatiUX5cu&quot;&gt;pic.twitter.com/fYatiUX5cu&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1778117887883968895?ref_src=twsrc%5Etfw&quot;&gt;April 10, 2024&lt;/a&gt;&lt;/blockquote&gt; 
&lt;/div&gt;
&lt;p&gt;
&lt;p&gt;I talked with &lt;a href=&quot;https://twitter.com/SeanMiPhillips&quot;&gt;Sean Phillips&lt;/a&gt; the night before. He dazzled me with his enthusiasm for fighting back against bad actors with his &lt;a href=&quot;https://github.com/Birdasaur/Trinity&quot;&gt;Trinity project&lt;/a&gt;. I was not disappointed during his talk and thoroughly enjoyed all my conversations with him and his lovely wife.&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;This was an awesomely energetic talk by &lt;a href=&quot;https://twitter.com/SeanMiPhillips?ref_src=twsrc%5Etfw&quot;&gt;@SeanMiPhillips&lt;/a&gt;! I enjoyed it immensely. Check out his Trinity project which can detect AI-generated audio in minutes. Built with JavaFX.&lt;a href=&quot;https://t.co/X9EuhNEmIg&quot;&gt;https://t.co/X9EuhNEmIg&lt;/a&gt;&lt;br&gt;&lt;br&gt;Release for &lt;a href=&quot;https://twitter.com/devnexus?ref_src=twsrc%5Etfw&quot;&gt;@devnexus&lt;/a&gt;: &lt;a href=&quot;https://t.co/cHnChwLUIY&quot;&gt;https://t.co/cHnChwLUIY&lt;/a&gt; &lt;a href=&quot;https://t.co/yiBEEx06aV&quot;&gt;https://t.co/yiBEEx06aV&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1778156667764408768?ref_src=twsrc%5Etfw&quot;&gt;April 10, 2024&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Seeing so many old friends at the conference before the social activities that evening was awesome.&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;A lot of good friends and &lt;a href=&quot;https://twitter.com/hashtag/usualsuspects?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#usualsuspects&lt;/a&gt; are at &lt;a href=&quot;https://twitter.com/hashtag/Devnexus?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#Devnexus&lt;/a&gt; this year! &amp;#x2764;&amp;#xFE0F; &lt;a href=&quot;https://t.co/7poa8ARQh2&quot;&gt;pic.twitter.com/7poa8ARQh2&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1778205643817816337?ref_src=twsrc%5Etfw&quot;&gt;April 10, 2024&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;h3&gt;Thursday, April 11&lt;/h3&gt;
&lt;p&gt; I prepped for my talk Thursday morning, practiced my demo, and dressed up as an old-fashioned Java developer. My talk had a full room and I finished right on time. The &lt;a href=&quot;https://github.com/mraible/jhipster-micro-frontends/blob/main/demo.adoc&quot;&gt;demo&lt;/a&gt; worked flawlessly, so I was quite pleased. You can &lt;a href=&quot;https://speakerdeck.com/mraible/micro-frontends-for-java-microservices-devnexus-2024&quot;&gt;find my presentation on Speaker Deck&lt;/a&gt;. 
&lt;div style=&quot;max-width: 600px; margin: 0 auto&quot;&gt;
&lt;iframe class=&quot;speakerdeck-iframe&quot; frameborder=&quot;0&quot; src=&quot;https://speakerdeck.com/player/7cc4d9e318c84037b665a770559964bd&quot; title=&quot;Micro Frontends for Java Microservices - Devnexus 2024&quot; allowfullscreen=&quot;true&quot; style=&quot;border: 0px; background: padding-box rgba(0, 0, 0, 0.1); margin: 0px; padding: 0px; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px; width: 100%; height: auto; aspect-ratio: 560 / 315;&quot; data-ratio=&quot;1.7777777777777777&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;That afternoon, I hung out with &lt;a href=&quot;https://twitter.com/starbuxman&quot;&gt;Josh Long&lt;/a&gt; and met &lt;a href=&quot;https://www.linkedin.com/in/bonochris&quot;&gt;Chris Bono&lt;/a&gt;. We had cocktails at &lt;a href=&quot;https://www.whiteoakkitchen.com/&quot;&gt;White Oak&lt;/a&gt; and had a fun time talking about Spring, life, and our fantastic children. From there, I reunited with former colleagues &lt;a href=&quot;https://twitter.com/briandemers&quot;&gt;Brian Demers&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/rdegges&quot;&gt;Randall Degges&lt;/a&gt;, Micah Silverman, and others at &lt;a href=&quot;https://www.cutsatlanta.com/downtown&quot;&gt;Cuts Steakhouse&lt;/a&gt;. I sat next to &lt;a href=&quot;https://www.linkedin.com/in/jonkschneider&quot;&gt;Jonathan Schneider&lt;/a&gt; from &lt;a href=&quot;https://github.com/openrewrite&quot;&gt;OpenRewrite&lt;/a&gt; and learned a lot. I was impressed to learn that OpenRewrite is used to upgrade applications between major releases, and some folks have used it to migrate from one Java framework to another. 
&lt;/p&gt;
&lt;h3&gt;Friday, April 12&lt;/h3&gt;
&lt;p&gt;The conference ended on Thursday, and Friday was a designated Speaker Day. We gathered at Cabbagetown Park for a few hours of volleyball, reminiscing, and recovering from the week of intense social activities. That evening, we headed to &lt;a href=&quot;https://www.thepaintedduckatl.com/&quot;&gt;The Painted Duck&lt;/a&gt; for some duckpin bowling. It was a lot harder than regular bowling, yet fun was had by all.&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;Fun times duckpin bowling with &lt;a href=&quot;https://twitter.com/devnexus?ref_src=twsrc%5Etfw&quot;&gt;@devnexus&lt;/a&gt; speakers! &amp;#x1F986;&lt;a href=&quot;https://t.co/JMz2zChMST&quot;&gt;pic.twitter.com/JMz2zChMST&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1778928398397489350?ref_src=twsrc%5Etfw&quot;&gt;April 12, 2024&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;If you ever get a chance to attend or speak at Devnexus, I highly recommend it. It&apos;s a well-run show, and the community vibe is wonderful. Thank you, Pratik, Vincent, and the Atlanta JUG team!</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/the_jhipster_mini_book_v7</id>
        <title type="html">The JHipster Mini-Book v7.0 Released!</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/the_jhipster_mini_book_v7"/>
        <published>2023-03-07T15:43:37-07:00</published>
        <updated>2023-03-08T16:43:30-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="infoq" scheme="http://roller.apache.org/ns/tags/" />
        <category term="writing" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster-mini-book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="book" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;The JHipster Mini-Book v7.0 is &lt;a href=&quot;https://www.infoq.com/minibooks/jhipster-mini-book-7&quot;&gt;now available as a free download from InfoQ&lt;/a&gt;. Get it while it&apos;s hot! &amp;#128293; You can read more about this release on the &lt;a href=&quot;https://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-v7&quot;&gt;JHipster Mini-Book blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://live.staticflickr.com/65535/52733117829_c47b74d73f_b.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/52733117829/&quot; title=&quot;JHipster Mini-Book v7.0 Cover&quot; rel=&quot;lightbox[jmb7]&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52733117829_c47b74d73f.jpg&quot; width=&quot;500&quot; alt=&quot;JHipster Mini-Book v5.0 Cover&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The source code for the application developed in the book (21-Points Health) is &lt;a href=&quot;https://github.com/mraible/21-points&quot;&gt;available on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to the &lt;a href=&quot;http://www.infoq.com&quot;&gt;InfoQ&lt;/a&gt; publishing team, &lt;a href=&quot;https://twitter.com/jeetgajjarr&quot;&gt;Jeet Gajjar&lt;/a&gt; for tech editing, Maureen Spencer for copy editing, and Ana Ciobotaru for publishing it to production.&lt;/p&gt;
&lt;p&gt;And most of all, thank you &lt;a href=&quot;http://asciidoctor.org/&quot;&gt;Asciidoctor&lt;/a&gt; for making the publishing process so easy!&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/questions_about_jhipster_jhipster_lite</id>
        <title type="html">Questions about JHipster, JHipster Lite, and Spring Boot 3</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/questions_about_jhipster_jhipster_lite"/>
        <published>2022-12-14T08:07:27-07:00</published>
        <updated>2022-12-14T14:07:28-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="jhipsterlite" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="springboot3" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">I&apos;m a big fan of &lt;a href=&quot;https://www.linkedin.com&quot;&gt;LinkedIn&lt;/a&gt;. I&apos;m biased because I worked there from 2007-8, have alumni privileges like a free pro account, and learned how to unsubscribe from all their emails over a decade ago. 
&lt;/p&gt;
&lt;p&gt;
I communicate with a lot of developers via LinkedIn. I recently received a message from &lt;a href=&quot;https://www.linkedin.com/in/raymond-meester-475b79147/&quot;&gt;Raymond Meester&lt;/a&gt; about the &lt;a href=&quot;https://www.jhipster.tech&quot;&gt;JHipster&lt;/a&gt; project. Raymond asked many poignant questions, and I thought it&apos;d be helpful to share my responses with y&apos;all. Of course, I got permission from Raymond before posting this. You can find &lt;a href=&quot;https://raymondmeester.medium.com/&quot;&gt;his blog on Medium&lt;/a&gt;.
&lt;/p&gt;</summary>
        <content type="html">I&apos;m a big fan of &lt;a href=&quot;https://www.linkedin.com&quot;&gt;LinkedIn&lt;/a&gt;. I&apos;m biased because I worked there from 2007-8, have alumni privileges like a free pro account, and learned how to unsubscribe from all their emails over a decade ago. 
&lt;/p&gt;
&lt;p&gt;
I communicate with a lot of developers via LinkedIn. I recently received a message from &lt;a href=&quot;https://www.linkedin.com/in/raymond-meester-475b79147/&quot;&gt;Raymond Meester&lt;/a&gt; about the &lt;a href=&quot;https://www.jhipster.tech&quot;&gt;JHipster&lt;/a&gt; project. Raymond asked many poignant questions, and I thought it&apos;d be helpful to share my responses with y&apos;all. Of course, I got permission from Raymond before posting this. You can find &lt;a href=&quot;https://raymondmeester.medium.com/&quot;&gt;his blog on Medium&lt;/a&gt;.
&lt;/p&gt;
&lt;p class=&quot;smokey&quot;&gt;
Hi Matt,
&lt;br/&gt;&lt;br/&gt;
I was reading through some threads on the dev mailing list:
&lt;br/&gt;&lt;br/&gt;
&lt;a href=&quot;https://groups.google.com/g/jhipster-dev&quot;&gt;https://groups.google.com/g/jhipster-dev&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
I&apos;m not part of the dev team, but I thought I just share some of my thoughts with you. &lt;img src=&quot;https://raibledesigns.com/images/smileys/smile.gif&quot; class=&quot;smiley&quot; alt=&quot;:)&quot; title=&quot;:)&quot; /&gt;
&lt;br/&gt;&lt;br/&gt;
On the mailing list, there is an interesting discussion about JHipster vs JHipster Lite. Personally, I don&apos;t fully understand the debate. In my opinion, there could be one base that could be used for several kinds of generators. Say:
&lt;br/&gt;&lt;br/&gt;
- Catered (default)&lt;br/&gt;
- A la carte (lite)
&lt;br/&gt;&lt;br/&gt;
As far as I can see (at least that&apos;s the case for myself), I have more use cases for the first than the second. Just a generator with a few questions on what type of application and then the frameworks to choose (like Spring/Quarkus/Micronaut for the backend and Angular/React/Vue for the frontend) is enough in most cases.
&lt;br/&gt;&lt;br/&gt;
Now that I am more experienced, I definitely want to use lite as well. It&apos;s an exciting project with some smart choices, but I don&apos;t think that it will become the majority of the users.
&lt;br/&gt;&lt;br/&gt;
I do think JHL can be a new base for the normal JHipster as well. Only the generator (whether it&apos;s the CLI or GUI) on top of it will be different.
&lt;br/&gt;&lt;br/&gt;
JHL could also provide a simple generator where I have the top three choices for a specific technology. Of course, when the architecture of JHipster Lite is set up well, it will be easy to add other choices (by blueprints) or change the default top 3 when popularity of a frameworks changes.
&lt;br/&gt;&lt;br/&gt;
Currently, as far as I can see, there are two separate teams improving both JHipster and JHipster Lite. Good to try out different directions, but in the end, a waste of resources.
&lt;br/&gt;&lt;br/&gt;
What I currently miss in JHipster (the main project) is regular updates. As an end user, I just want the latest versions when generating a new application, but lately there are huge gaps of three months between releases.
&lt;br/&gt;&lt;br/&gt;
I really would like to see a monthly minor version with just dependencies updates (I understand that there is more to be done for major versions like the transition to Spring Boot 3. But even when nothing big changes it is good to have the latest libraries).
&lt;br/&gt;&lt;br/&gt;
I agree with how Julien originally set up JHipster as simple as possible for end-users. But currently, Deepu seems one of the few that still stresses this point.
&lt;br/&gt;&lt;br/&gt;
JHipster as it evolved is not only practicable to try out different frameworks, but also as a base for further development. Contrary to what seems to be the current belief about JHipster, it&apos;s not the speed, ease of use or the choices of generation that is the most important feature, but more that for the generated application the architecture is sound, a lot of best practices are used and the code is clean. This saves so much time for me as developer later on.
&lt;br/&gt;&lt;br/&gt;
I also have a question about JHipster Native now that Spring Boot 3 has arrived. Spring removed the Spring Native library, which is not part of the framework itself. What does this mean for JHipster Native?
&lt;br/&gt;&lt;br/&gt;
Keep up the good work!
&lt;/p&gt;
&lt;p&gt;This was a heavy message to receive early on a Tuesday morning. It was heavy because Raymond&apos;s questions were exact, and I thought they deserved a similar response.&lt;/p&gt;
&lt;p class=&quot;smokey&quot; style=&quot;background-color: #ffd&quot;&gt;
&lt;strong&gt;&gt; Currently, as far as I can see, two separate teams are improving both JHipster and JHipster Lite. Good to try out different directions, but in the end, a waste of resources.&lt;/strong&gt;
&lt;br/&gt;&lt;br/&gt;
Possibly, but as far as I can tell, the same people aren&apos;t working on the same project. I believe that JHipster Lite was created because Pascal and others understand Java better than JavaScript, and they were lost in the JHipster codebase and wanted a Java version. JHL also emphasizes DDD and is not interested in CRUD, AFAICT.
&lt;br/&gt;&lt;br/&gt;
In reality, I think many of the contributors have had difficulty figuring out how things work. However, we&apos;ve always had JavaScript heroes to bail us out. In the beginning, Julien knew everything, so he could fix things quickly. Then, it was Deepu - who has admitted to me he rewrote the JHipster core a few times when he was super active. Now it&apos;s Marcelo, and I think he&apos;s doing a great job.
&lt;br/&gt;&lt;br/&gt;
I don&apos;t really look at the JHipster Lite project. I haven&apos;t even watched &lt;a href=&quot;https://www.youtube.com/watch?v=RnLGnY-vzLI&quot;&gt;Julien&apos;s video from Devoxx&lt;/a&gt;, though I&apos;ve been meaning to.
&lt;br/&gt;&lt;br/&gt;
Marcelo, myself, and many others have done a lot with JHipster in 2022. I&apos;ve focused on getting popular blueprints in good shape rather than the core. We&apos;ve released the Spring Native blueprint this year and updates for Ionic and React Native. There&apos;s also been quite a bit of work done on the Quarkus and Micronaut blueprints, and I believe those are just a few hours away from new releases.
&lt;br/&gt;&lt;br/&gt;
&lt;strong&gt;&gt; What I currently miss in JHipster (the main project) is regular updates. As an end user, I just want the latest versions when generating a new application, but lately, there are huge gaps of three months between releases.
&lt;/strong&gt;
&lt;br/&gt;&lt;br/&gt;
Three months between releases seems pretty good to me! If you&apos;re just looking for dependency updates, you should be able to do some of those in your project w/o relying on a new version of JHipster. 
&lt;br/&gt;&lt;br/&gt;
I started updating the JHipster Mini-Book in March of this year, and the current 7.9.3 version is the first version that&apos;s bug-free enough for me to complete the updates.
&lt;br/&gt;&lt;br/&gt;
&lt;strong&gt;&gt; What does this mean for JHipster Native?&lt;/strong&gt;
&lt;br/&gt;&lt;br/&gt;
It means it&apos;s only necessary for JHipster apps with Spring Boot 2.x. JHipster 8 apps will have native support by default since it&apos;s built-in to Spring Boot 3. Related to Spring Boot 3: we started upgrading in late September, and I believe we&apos;ve made great progress. In the past, it&apos;s taken us six months to a year to upgrade between major Spring versions. I &lt;a href=&quot;https://twitter.com/mraible/status/1597248481596706816&quot;&gt;tweeted our current status&lt;/a&gt; recently.
&lt;/p&gt;
&lt;p&gt;Raymond and I had a bit of back and forth regarding upgrades.&lt;/p&gt;
&lt;p class=&quot;smokey&quot;&gt;
I also think you missed my point on upgrading JHipster on a regular basis (say, a monthly interval).
&lt;br/&gt;&lt;br/&gt;
My idea behind this is as follows:
&lt;br/&gt;&lt;br/&gt;
1. Creating/Generating a new project happens only once, while upgrading happens dozens of times over the lifecycle of the software.&lt;br/&gt;
2. Applications (and also JHipster-generated apps) have a lot of dependencies. I rather don&apos;t want to manage those dependencies by hand (even with stuff like Dependabot).&lt;br/&gt;
3. It&apos;s important to be on the latest version for security, fixes, and to make dependencies work with modern frameworks (say JDK17).&lt;br/&gt;
4. Dependencies must work together well, and this must be tested.
&lt;br/&gt;&lt;br/&gt;
I work mostly alone on my open source projects. It&apos;s my goal to work as much as I can on the &apos;business code/specific use cases and not be bothered too much about technologies and dependencies.
&lt;br/&gt;&lt;br/&gt;
That&apos;s why I think it&apos;s so critical to start a project with the latest available dependencies when starting a new project, but also for using the latest versions when upgrading.
&lt;br/&gt;&lt;br/&gt;
I let JHipster upgrade hundreds of dependencies for me. By this I am ensured that they work together and are safe to use, while I only need to focus on upgrading JHipster, instead of single dependencies.
&lt;br/&gt;&lt;br/&gt;
Upgrading JHipster is btw not always that easy. Though I developed some scripts for it now. That&apos;s also why I discussed this topic at the beginning of the year on the discussion board of JHipster Lite:
&lt;br/&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/jhipster/jhipster-lite/discussions/512&quot;&gt;https://github.com/jhipster/jhipster-lite/discussions/512&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
For now, both JH and JHL focus on generating new projects and not so much on upgrading projects made with older versions. That&apos;s fair, but I believe there is still a gap in the market here, just as significant as JHipster once filled for generating projects.
&lt;br/&gt;&lt;br/&gt;
For me, the monthly releases could be just patch releases with only upgrades of minor dependencies (so nothing fancy like a major upgrade to Spring Framework 6/Spring Boot 3). Those major or even minor upgrades (with some added functionality and fixes) could be every three months (minor) or yearly (major).
&lt;br/&gt;&lt;br/&gt;
I know JHipster is a community project, but I think that, for example the predictability of a release every six months with LTS releases is very nice.
&lt;/p&gt;
&lt;p&gt;I agreed that making upgrades seamless is not our strong suit. I&apos;ve struggled many times when trying to upgrade &lt;a href=&quot;https://www.21-points.com&quot;&gt;21-Points Health&lt;/a&gt; with &lt;code&gt;npx jhipster upgrade&lt;/code&gt;. Sometimes, it works. Often, it does not. I think this is difficult to test because it can only be done after releases have happened. I wish I had a better answer. I suggested Raymond use some of his learnings to improve our upgrade sub-generator.&lt;/p&gt;
&lt;p&gt;My responses are my opinions. I wanted to see what the &lt;a href=&quot;https://www.jhipster.tech/team/&quot;&gt;JHipster project leads&lt;/a&gt; thought of my perspective, so I sent them a draft of this blog post. Pascal Grimaud responded with several excellent points.&lt;/p&gt;
&lt;p class=&quot;smokey&quot; style=&quot;background-color: #cfc&quot;&gt;
&lt;strong&gt;&gt; Possibly, but as far as I can tell, the same people aren&apos;t working on the same project. I believe that JHipster Lite
was created because Pascal and others understand Java better than JavaScript, and they were lost in the JHipster codebase and
wanted a Java version. JHL also emphasizes DDD and is not interested in CRUD, AFAICT.&lt;/strong&gt;
&lt;br/&gt;&lt;br/&gt;
Sorry Matt, but it&apos;s wrong.
I didn&apos;t start JHLite because of technologies, Java or Javascript. It&apos;s the same; I don&apos;t care.
I started JHLite to solve &lt;a href=&quot;https://docs.google.com/presentation/d/1i0LOJ0GSWNG2-x0zY220IbQc0PVQ2pndQWEuQKGu8n0&quot;&gt;these problems I mentioned more than one year ago&lt;/a&gt;.
&lt;br/&gt;&lt;br/&gt;
Problem #1: too many generated files.&lt;br/&gt;
Problem #2: hard to customize. Only a few users (less than 10) in the world maintain a blueprint. I know dozens of companies using JHipster (generator-jhipster). And none of them uses a blueprint.&lt;br/&gt;
Problem #3: too many options, too hard to maintain, so no new contributors for months. For an open source project, it&apos;s really sad.&lt;br/&gt;
Problem #4: complex templates.&lt;br/&gt;
&lt;br/&gt;
A real story between a dev and me:&lt;br/&gt;
- dev: I found a bug in the SecurityConfiguration class. There is a missing line of code --&gt; &quot;xxxxx&quot;.&lt;br/&gt;
- me: Nice! We should apply it to our projects. Can you contribute back to generator-jhipster, too, please?&lt;br/&gt;
- dev: Good idea, it will be my first contribution to an open-source project! Let me try.&lt;br/&gt;
(hours later ...)&lt;br/&gt;
- dev: I don&apos;t understand. What&apos;s this f*cking &lt;a href=&quot;https://github.com/jhipster/generator-jhipster/blob/main/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs&quot;&gt;SecurityConfiguration.java.ejs&lt;/a&gt; file?&lt;br/&gt;
- me: It&apos;s the template for managing security configuration for all existing options.&lt;br/&gt;
- dev: Should I apply it for JWT, too? for Session? Should I apply it for reactive too? Should I apply it for microservice?&lt;br/&gt;
- me: Yes, and you should test each config, please.&lt;br/&gt;
- dev: I don&apos;t care about these options, and as it&apos;s too complex, I gave up. As you&apos;re in the core team, you can do it yourself.&lt;br/&gt;
- me: OK, let&apos;s apply it only to our projects.&lt;br/&gt;
&lt;br/&gt;
Problem #5: Too many projects, resulting in complex releases.&lt;br/&gt;
Problem #6: Yeoman, maintained only by Marcelo.&lt;br/&gt;
&lt;br/&gt;
I started JHLite because:&lt;br/&gt;
- I don&apos;t use generator-jhipster anymore for my real projects, for real customers, because it doesn&apos;t fit.&lt;br/&gt;
- JHLite allows me to design my applications around BUSINESS instead of infrastructure.&lt;br/&gt;
- Modular approach, so it fits my needs.&lt;br/&gt;
- The quality of code, as each module is small, it&apos;s easy to have the best quality possible.&lt;br/&gt;
&lt;br/&gt;
&lt;strong&gt;&gt; In reality, I think many of the contributors have had difficulty figuring out how things work. However, we&apos;ve always had
JavaScript heroes to bail us out. In the beginning, Julien knew everything, so he could fix things quickly. Then, it was Deepu -
who has admitted to me he rewrote the JHipster core a few times when he was super active. Now it&apos;s Marcelo, and I think he&apos;s
doing a great job.&lt;/strong&gt;
&lt;br/&gt;&lt;br/&gt;
It&apos;s a big single point of failure!
A big open source project like JHipster needs a community + contributors, not a hero.
&lt;/p&gt;
&lt;p&gt;Related to JHipster, I recently &lt;a href=&quot;https://twitter.com/mraible/status/1599156653785780224&quot;&gt;asked&lt;/a&gt; &lt;a href=&quot;https://chat.openai.com/chat&quot;&gt;ChatGPT&lt;/a&gt; to write a poem about it.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://www.flickr.com/photos/mraible/52558039836/in/dateposted-public/&quot; title=&quot;JHipster Poem&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52558039836_7395e9ff4e_z.jpg&quot; width=&quot;400&quot; alt=&quot;JHipster Poem&quot; style=&quot;border: 1px solid silver&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I also asked it to compare JHipster versus JHipster Lite.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://www.flickr.com/photos/mraible/52558334644/in/dateposted-public/&quot; title=&quot;JHipster vs JHipster Lite&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/52558334644_a63a53cf25_z.jpg&quot; width=&quot;640&quot; alt=&quot;JHipster vs JHipster Lite&quot; style=&quot;border: 1px solid silver&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Wow, I&apos;m impressed with both answers! &amp;#x1F929;&lt;/p&gt;
&lt;p&gt;If you have additional questions about JHipster, hit me up on &lt;a href=&quot;https://www.linkedin.com/in/mraible/&quot;&gt;LinkedIn&lt;/a&gt; or ask your question on Stack Overflow with a &lt;a href=&quot;https://stackoverflow.com/questions/tagged/jhipster&quot;&gt;jhipster&lt;/a&gt; tag.&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/a_fantastically_fun_february_at</id>
        <title type="html">A Fantastically Fun February at Jfokus 2020 and the Rocky Mountain JUGs</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/a_fantastically_fun_february_at"/>
        <published>2020-03-15T14:24:25-06:00</published>
        <updated>2020-03-16T18:20:47-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="utahjug" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jfokus2020" scheme="http://roller.apache.org/ns/tags/" />
        <category term="denverjug" scheme="http://roller.apache.org/ns/tags/" />
        <category term="bouderjug" scheme="http://roller.apache.org/ns/tags/" />
        <category term="skiing" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jfokus" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;Jfokus is one of my favorite conferences in the world. It takes place in Stockholm, Sweden, during one of the coldest months of the year. As a native Montanan, I love the winter season and skiing. It was with great pleasure that I returned to Jfokus as a speaker this year, after skipping the last couple of years.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662000118_bf765664e4_c.jpg&quot; title=&quot;Made it to Stockholm!&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662000118/in/album-72157713496655132/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662000118_bf765664e4.jpg&quot; width=&quot;500&quot; alt=&quot;Made it to Stockholm!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;True story: the last time I was at Jfokus was 2017, and Okta had just acquired Stormpath. I negotiated my Okta employment terms in the Radisson Blu lobby!&lt;/p&gt;

&lt;p&gt;I gave three talks this year: two on the main stage during Jfokus and one at Jforum Stockholm on Tuesday evening.
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;Jfokus is one of my favorite conferences in the world. It takes place in Stockholm, Sweden, during one of the coldest months of the year. As a native Montanan, I love the winter season and skiing. It was with great pleasure that I returned to Jfokus as a speaker this year, after skipping the last couple of years.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662000118_bf765664e4_c.jpg&quot; title=&quot;Made it to Stockholm!&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662000118/in/album-72157713496655132/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662000118_bf765664e4.jpg&quot; width=&quot;500&quot; alt=&quot;Made it to Stockholm!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;True story: the last time I was at Jfokus was 2017, and Okta had just acquired Stormpath. I negotiated my Okta employment terms in the Radisson Blu lobby!&lt;/p&gt;

&lt;p&gt;I gave three talks this year: two on the main stage during Jfokus and one at Jforum Stockholm on Tuesday evening.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662828892_27e1eed875_c.jpg&quot; title=&quot;The Main Stage&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662828892/in/album-72157713496655132/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662828892_27e1eed875_m.jpg&quot; width=&quot;240&quot; alt=&quot;The Main Stage&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662550446_2a6a6d2fbf_c.jpg&quot; title=&quot;Crowd at JForum (Stockholm JUG)&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662550446/in/album-72157713496655132/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662550446_2a6a6d2fbf_m.jpg&quot; width=&quot;240&quot; alt=&quot;Crowd at JForum (Stockholm JUG)&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  You can find my presentations below.&lt;/p&gt;
&lt;table style=&quot;margin: 0 auto&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;0b32783ee80c4ad69075affe48551383&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;
    &lt;/td&gt;
    &lt;td&gt;
      &lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;1f40e53acdf7441895e526dc19468ae1&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td colspan=&quot;2&quot;&gt;
      &lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;7bed076e8b6e46c1950decd07fcba13c&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
  Jfokus also published recordings of my main-stage sessions on YouTube.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&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/DLQqJg393wM&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 style=&quot;text-align: center&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/CCf0224_XBI&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;After Jfokus, the organizers planned a speaker&apos;s conference at &lt;a href=&quot;https://www.skistar.com/en/ski-destinations/trysil/ski-area/&quot;&gt;Trysil Ski Area&lt;/a&gt;. There wasn&apos;t a ton of snow, but the groomers were fast, and they had a 45&#176; double black!&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662014628_42965e5213_c.jpg&quot; title=&quot;Trysil Ski Resort&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662014628/in/album-72157713496655132/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662014628_42965e5213_q.jpg&quot; width=&quot;150&quot; alt=&quot;Trysil Ski Resort&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662835872_9a9a41638f_c.jpg&quot; title=&quot;The Jfokus 2020 Ski Team!&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662835872/in/album-72157713496655132/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662835872_9a9a41638f_q.jpg&quot; width=&quot;150&quot; alt=&quot;The Jfokus 2020 Ski Team!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662836782_1f3aec2f11_c.jpg&quot; title=&quot;The 45&#176; ??&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662836782/in/album-72157713496655132/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662836782_1f3aec2f11_q.jpg&quot; width=&quot;150&quot; alt=&quot;The 45&#176; ??&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I had my GoPro and shot some footage of the fun. &lt;/p&gt;

&lt;div style=&quot;text-align: center&quot;&gt;
  &lt;iframe src=&quot;https://player.vimeo.com/video/397652628&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;p&gt;The beer tasting and dinner that evening at Kveik Restaurant &amp;amp; Brewpub was excellent!&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;no&quot; dir=&quot;ltr&quot;&gt;Beer tasting at Kveik Restaurant &amp;amp; Brewpub in Trysil, Norway. ?? &lt;a href=&quot;https://twitter.com/hashtag/jfokus?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#jfokus&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/speakerconf?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#speakerconf&lt;/a&gt; &lt;a href=&quot;https://t.co/CR8t2fjmR6&quot;&gt;pic.twitter.com/CR8t2fjmR6&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1225507738677063680?ref_src=twsrc%5Etfw&quot;&gt;February 6, 2020&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;
  Friday was a gorgeous day on the slopes, and Saturday was the opposite.
&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;Yesterday versus today. &lt;a href=&quot;https://twitter.com/hashtag/whiteout?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#whiteout&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/skiing?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#skiing&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/jfokus?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#jfokus&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/speakerconf?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#speakerconf&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/day15?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#day15&lt;/a&gt; &lt;a href=&quot;https://t.co/L7ynGv0Umt&quot;&gt;pic.twitter.com/L7ynGv0Umt&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1226062130316599296?ref_src=twsrc%5Etfw&quot;&gt;February 8, 2020&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 had a marvelous time at &lt;a href=&quot;https://jfokus.se&quot;&gt;Jfokus&lt;/a&gt; 2020! Thanks to
  &lt;a href=&quot;https://twitter.com/matkar&quot;&gt;Mattias Karlsson&lt;/a&gt; and crew for a exquisite experience! &amp;#x1F44C;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662551551_9cf7cae2fa_c.jpg&quot; title=&quot;Dressed up with Mattias for the Jfokus party!&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662551551/in/album-72157713496655132/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662551551_9cf7cae2fa.jpg&quot; width=&quot;500&quot; alt=&quot;Dressed up with Mattias for the Jfokus party!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div style=&quot;font-size: .9em;font-style: italic;text-align: right;margin-top: -15px !important;width: 500px;margin: 0 auto;&quot;&gt;For more photos see my &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157713496655132&quot;&gt;Jfokus 2020 album&lt;/a&gt;&lt;/div&gt;
&lt;h3 id=&quot;rocky-mountain-jug-tour&quot;&gt;Rocky Mountain JUG Tour with Ray Tsang&lt;/h3&gt;
&lt;p&gt;
  I flew back to Denver on Sunday, February 9th. The next day, I woke up early for a &lt;a href=&quot;https://www.meetup.com/dev-ski-days/events/267834183/&quot;&gt;Developer Ski Day at Eldora&lt;/a&gt;. Stout the Syncro was not a big supporter of the event.
&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;Doh! Just when I thought my Syncro Westy was doing great, something breaks. Loud thump like I&amp;#39;d run over something, then a knocking while driving. I&amp;#39;m guessing it&amp;#39;s a ball joint in the front.&lt;br&gt;&lt;br&gt;Currently waiting for a tow from AAA.&lt;br&gt;&lt;br&gt;Heckuva start to &lt;a href=&quot;https://twitter.com/hashtag/DevSkiDay?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#DevSkiDay&lt;/a&gt;! &lt;a href=&quot;https://twitter.com/hashtag/VanLife?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#VanLife&lt;/a&gt; &lt;a href=&quot;https://t.co/2KMUZSTdtX&quot;&gt;pic.twitter.com/2KMUZSTdtX&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/1226878533714292738?ref_src=twsrc%5Etfw&quot;&gt;February 10, 2020&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;
  Once I made it on the slopes, we had a ball with Christina, Ben, Robert, and Joel.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49521529932_d9623d5318_c.jpg&quot; title=&quot;The inaugural crew!&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49521529932/in/album-72157713068403413/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49521529932_d9623d5318_m.jpg&quot; width=&quot;240&quot; alt=&quot;The inaugural crew!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49526258492_1697766cf4_c.jpg&quot; title=&quot;Ray, Christina, and Ben&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49526258492/in/album-72157713068403413/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49526258492_1697766cf4_m.jpg&quot; width=&quot;240&quot; alt=&quot;Ray, Christina, and Ben&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div style=&quot;font-size: .9em;font-style: italic;text-align: right;margin-top: -15px !important;width: 500px;margin: 0 auto;&quot;&gt;&lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157713068403413&quot;&gt;More photos &amp;#x2192;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
  On Tuesday, Ray and I prepared for our Rocky Mountain JUG Tour consisting of stops in Boulder, Denver, and Salt Lake City. I met him at a Google Boulder office and delighted in the VW decorations.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662120773_4d38d18c2d_c.jpg&quot; title=&quot;Lunch at Google in Boulder with Ray Tsang. I dig the VW Bus in the lobby!&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662120773/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662120773_4d38d18c2d.jpg&quot; width=&quot;500&quot; alt=&quot;Lunch at Google in Boulder with Ray Tsang. I dig the VW Bus in the lobby!&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/49662941707_4f3fedf91e_c.jpg&quot; title=&quot;A great quote with VW parts on the wall at Google  Boulder.&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662941707/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662941707_4f3fedf91e.jpg&quot; width=&quot;500&quot; alt=&quot;A great quote with VW parts on the wall at Google  Boulder.&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Our talk was titled &lt;b&gt;Choose Your Own Adventure with JHipster and Kubernetes&lt;/b&gt;. We used JHipster to build and deploy whatever technologies the audience chose. We let them choose the database, the build tool, the JVM language, the web framework, and the architecture (monolith vs microservices). After we created the apps, I showed them running, and made them work with Okta. Ray took it from there and used JHipster&apos;s Kubernetes generator to add (or exclude) Istio and deploy everything to Google Cloud. When all worked on the first try at the Denver JUG, &lt;a href=&quot;https://youtu.be/SolTvAXhaVc?t=4337&quot;&gt;we were pretty pumped&lt;/a&gt;! &amp;#x1F64C;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662122783_135d871c02_c.jpg&quot; title=&quot;Stop 1: Boulder JUG&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662122783/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662122783_135d871c02_q.jpg&quot; width=&quot;150&quot; alt=&quot;Stop 1: Boulder JUG&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662944032_f06872ba97_c.jpg&quot; title=&quot;Stop 2: Denver JUG&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662944032/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662944032_f06872ba97_q.jpg&quot; width=&quot;150&quot; alt=&quot;Stop 2: Denver JUG&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
  &lt;a href=&quot;https://live.staticflickr.com/65535/49662664076_e174fa7882_c.jpg&quot; title=&quot;Stop 3: Utah JUG&quot; rel=&quot;lightbox[jfokus2020]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/49662664076/&quot;&gt;&lt;img src=&quot;https://live.staticflickr.com/65535/49662664076_e174fa7882_q.jpg&quot; width=&quot;150&quot; alt=&quot;Stop 3: Utah JUG&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
  Interesting trends: we had a lot of enthusiasm for Grails in Colorado and all audiences chose microservices. You can skim through our presentation below.&lt;/p&gt;
&lt;p style=&quot;text-align: center; padding: 20px&quot;&gt;
  &lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;e19bd9dc6911471a9bdaf2d2c6654987&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;
  On Friday, we hit the slopes for &lt;a href=&quot;https://www.meetup.com/dev-ski-days/events/267834234/&quot;&gt;another developer ski day&lt;/a&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-captioned data-instgrm-permalink=&quot;https://www.instagram.com/p/B8jsREGF3PZ/?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/B8jsREGF3PZ/?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&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/B8jsREGF3PZ/?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;?It&amp;#39;s a #HappyFriday at @snowbird with @saturnism2 and @brettgpalmer! ?#DevSkiDay&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;2020-02-14T18:40:07+00:00&quot;&gt;Feb 14, 2020 at 10:40am 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;

&lt;p&gt;Thanks to all the fine folks who joined our ski days and came to the JUG meetups! We loved the energy and community vibe from each location. &amp;#x2764;&amp;#xFE0F;&amp;#x1F603;&lt;/p&gt;

&lt;p&gt;Ray and I had a Rocky Mountain adventure with JHipster, and you can too! From the comfort of your own home, you can install &lt;a href=&quot;https://jhipster.tech&quot;&gt;JHipster&lt;/a&gt; and choose your own adventure. Good luck, and please let us know if you have any questions. &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/the_jhipster_mini_book_v5</id>
        <title type="html">The JHipster Mini-Book v5.0 Released!</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/the_jhipster_mini_book_v5"/>
        <published>2018-11-14T09:48:11-07:00</published>
        <updated>2019-01-09T03:08:57-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="infoq" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster-mini-book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="writing" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;The JHipster Mini-Book v5.0 is &lt;a href=&quot;https://www.infoq.com/minibooks/jhipster-mini-book-5&quot;&gt;now available as a free download from InfoQ&lt;/a&gt;. Get it while it&apos;s &amp;#128293;! You can also &lt;a href=&quot;http://www.lulu.com/shop/matt-raible/the-jhipster-mini-book/paperback/product-23871310.html&quot;&gt;buy a print copy from Lulu&lt;/a&gt;. You can read more about this release on the &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-v5-now-available&quot;&gt;JHipster Mini-Book blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://farm5.staticflickr.com/4904/32008028858_0be121f1b5_b.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/32008028858/&quot; title=&quot;JHipster Mini-Book v5.0 Cover&quot; rel=&quot;lightbox[jmb5]&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4904/32008028858_0be121f1b5.jpg&quot; width=&quot;500&quot; alt=&quot;JHipster Mini-Book v5.0 Cover&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The source code for the application developed in the book (21-Points Health) is &lt;a href=&quot;https://github.com/mraible/21-points&quot;&gt;available on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to the &lt;a href=&quot;http://www.infoq.com&quot;&gt;InfoQ&lt;/a&gt; publishing team, &lt;a href=&quot;https://twitter.com/sharpedennis&quot;&gt;Dennis Sharpe&lt;/a&gt;/&lt;a href=&quot;https://twitter.com/jeetgajjarr&quot;&gt;Jeet Gajjar&lt;/a&gt; for tech editing, and Lawrence Nyveen for copy editing. And most of all, thank you &lt;a href=&quot;http://asciidoctor.org/&quot;&gt;Asciidoctor&lt;/a&gt; for making the publishing process so easy!&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/jhipsterconf_2018_summer_solstice_in</id>
        <title type="html">JHipster Conf 2018: Summer Solstice in Paris</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/jhipsterconf_2018_summer_solstice_in"/>
        <published>2018-06-28T10:13:27-06:00</published>
        <updated>2018-06-28T16:15:28-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="angular" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipsterconf2018" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring" scheme="http://roller.apache.org/ns/tags/" />
        <category term="paris" scheme="http://roller.apache.org/ns/tags/" />
        <category term="ippon" scheme="http://roller.apache.org/ns/tags/" />
        <category term="react" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipsterconf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring-boot" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;
Last week, I journeyed to Paris with my son, Jack. It was his first time in Europe and I brought him along for good reason. I&#8217;d been invited to the first ever JHipster Conf, and I was eager to attend. We were both pretty excited when we left Denver last Monday.
&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/BkLwcPPHvGt/&quot; data-instgrm-version=&quot;8&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:37.5% 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/BkLwcPPHvGt/&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;Our adventure to Paris begins! #jhipsterconf&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/&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-06-18T23:01:22+00:00&quot;&gt;Jun 18, 2018 at 4:01pm PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;script async defer src=&quot;//www.instagram.com/embed.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;h3 id=&quot;background&quot;&gt;My Background with JHipster&lt;/h3&gt;
&lt;p&gt;
I&#8217;ve been a part of the &lt;a href=&quot;https://www.jhipster.tech&quot;&gt;JHipster&lt;/a&gt; community for a few years now. I joined by accident, really. I was trying to market myself as an independent consultant by spouting my knowledge of Spring Boot and Angular with an InfoQ mini-book. Since JHipster leveraged both to jumpstart app development, it seemed like a perfect fit. I&#8217;ve been a long-time fan of app jumpstarts, having developed my own called AppFuse in days long gone.
&lt;/p&gt;
&lt;p&gt;
Through the process of writing the mini-book, finding issues, and submitting pull requests, I eventually found myself to be a member of the JHipster development team. Through my relationship with JHipster, and it&#8217;s 3.0 release, I found myself intrigued my microservices and how to develop them with Spring Boot, Spring Cloud, all through the generation expertise of JHipster.
&lt;/p&gt;
&lt;p&gt;
I&#8217;ve learned a ton by being part of the project and trying to figure out how all of its options work.
&lt;/p&gt;
&lt;p&gt;
    When I found myself with a &lt;a href=&quot;//raibledesigns.com/rd/entry/life_update_a_summer_to&quot;&gt;full-time job at Stormpath&lt;/a&gt;, I did my best to create a Stormpath module for JHipster. When Okta acquired Stormpath, I added a similar module to my list of things I wanted to write.
&lt;/p&gt;
&lt;p&gt;
When it came time to implement an Okta module, I discovered JHipster&#8217;s OAuth support only worked internally, not with an external OAuth provider, also known as an Identity Provider, or IdP. I mentioned to the JHipster team I thought we could do better and add support for external providers instead. They agreed, and I went to work.
&lt;/p&gt;
&lt;p&gt;
    In hindsight, it was a great decision and not terribly difficult to implement thanks to Spring Security, Keycloak, and Docker. We had a ton of help from the community along the way, and as of last October, &lt;a href=&quot;https://developer.okta.com/blog/2017/10/20/oidc-with-jhipster&quot;&gt;JHipster added support for single sign-on with OIDC&lt;/a&gt; (tested with Keycloak and Okta).
&lt;/p&gt;
&lt;h3 id=&quot;jhipster5&quot;&gt;JHipster 5.0: Spring Boot 2.0, Angular 6, and React&lt;/h3&gt;
&lt;p&gt;It&#8217;s been a fabulous adventure on the JHipster train and it&#8217;s still going strong. We just &lt;a href=&quot;https://www.jhipster.tech/2018/06/20/jhipster-release-5.0.0.html&quot;&gt;released version 5.0&lt;/a&gt; with React and Spring Boot 2.0 support, there&#8217;s client generators for &lt;a href=&quot;https://github.com/oktadeveloper/generator-jhipster-ionic&quot;&gt;Ionic&lt;/a&gt; and &lt;a href=&quot;https://github.com/oktadeveloper/generator-jhipster-ionic&quot;&gt;React Native&lt;/a&gt;, and &lt;a href=&quot;https://jhipster-conf.github.io/&quot;&gt;we just hosted a kick-ass conference about JHipster in Paris&lt;/a&gt;.
&lt;/p&gt;
&lt;h3 id=&quot;jhipsterconf-2018&quot;&gt;JHipster Conf 2018&lt;/h3&gt;
&lt;p&gt;
The conference featured members of the core team, the well-dressed and fit &lt;a href=&quot;https://twitter.com/codefinger&quot;&gt;Joe Kutner&lt;/a&gt; from Heroku, as well as Java celebrities like &lt;a href=&quot;https://twitter.com/saturnism&quot;&gt;Ray Tsang&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/starbuxman&quot;&gt;Josh Long&lt;/a&gt;. You can &lt;a href=&quot;https://blog.ippon.tech/jhipster-conf-2018/&quot;&gt;read about the festivities and presentations from JHipster&apos;s founder&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/juliendubois&quot;&gt;Julien Dubois&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    The conference was a little over 24 hours long, starting with a speaker&#8217;s dinner on Wednesday evening. Before attending, Jack and I spent the day strolling around Versailles. Versailles is a special place in my life since &lt;a href=&quot;https://raibledesigns.com/rd/entry/our_engaging_trip_to_paris&quot;&gt;I proposed to my double rainbow there&lt;/a&gt; after Devoxx Belgium in 2011.
&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/BkQLlMnnsJo/&quot; data-instgrm-version=&quot;8&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:50% 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/BkQLlMnnsJo/&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;?? Versailles #working #jhipsterconf&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/&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-06-20T16:15:29+00:00&quot;&gt;Jun 20, 2018 at 9:15am PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;The conference kicked off with &lt;a href=&quot;https://www.slideshare.net/julien.dubois/jhipster-conf-2018-keynote&quot;&gt;a keynote by the JHipster&apos;s co-leads: Julien and Deepu&lt;/a&gt;. 
&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;Full house at &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://twitter.com/java_hipster?ref_src=twsrc%5Etfw&quot;&gt;@java_hipster&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/paris?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#paris&lt;/a&gt; &lt;a href=&quot;https://t.co/nnZ6JmlXrW&quot;&gt;pic.twitter.com/nnZ6JmlXrW&lt;/a&gt;&lt;/p&gt;&amp;mdash; Deepu K Sasidharan (@deepu105) &lt;a href=&quot;https://twitter.com/deepu105/status/1009729525071187969?ref_src=twsrc%5Etfw&quot;&gt;June 21, 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;div style=&quot;margin: 0 auto; max-width: 500px&quot;&gt;
&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/wdZWHmGx3zJHnK&quot; width=&quot;500&quot; height=&quot;319&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen&gt; &lt;/iframe&gt; &lt;div style=&quot;margin-bottom:5px&quot;&gt; &lt;strong&gt; &lt;a href=&quot;//www.slideshare.net/julien.dubois/jhipster-conf-2018-keynote&quot; title=&quot;JHipster Conf 2018 keynote&quot; target=&quot;_blank&quot;&gt;JHipster Conf 2018 keynote&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/julien.dubois&quot; target=&quot;_blank&quot;&gt;Julien Dubois&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
During my talk, I had Jack join me on stage for an intro, and tried to give him a taste of public speaking in front of hundreds.
&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/BkTWAN2HhU-/&quot; data-instgrm-version=&quot;8&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:50% 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/BkTWAN2HhU-/&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;After a fabulous day at #JHipsterConf and a fun rooftop party at @ippon_technologies , Jack and I enjoyed a romantic dinner and a bit of F&#234;te de la Musique. ??&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/&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-06-21T21:44:16+00:00&quot;&gt;Jun 21, 2018 at 2:44pm PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;
My talk went well, with some successful and some failed demos. Hopefully people got the point that it&#8217;s cool to store your users outside of JHipster so you can share them between apps. I also tried to show that &lt;a href=&quot;https://developer.okta.com/books/api-security/&quot;&gt;OAuth and OIDC are excellent for securing APIs&lt;/a&gt;. You can &lt;a href=&quot;https://speakerdeck.com/mraible/add-sso-to-your-jhipster-apps-with-oidc-jhipsterconf-2018&quot;&gt;download my presentation from Add JHipster to Your JHipster Apps with OIDC&lt;/a&gt; or view it below.
&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 600px&quot;&gt;
&lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;255494c7d9024d99a5ca260cd65085b2&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;I created a tutorial of the app I showed in my talk and published it to the Okta developer blog: &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;. If you like React and OAuth, you&apos;re gonna love this guide!
&lt;/p&gt;
&lt;p&gt;
Jack and I had a day in Paris after the conference, so we made the most of it. We hit the Eiffel Tower, hiked the stairs, and marveled at the view. After, we waited in a long line for The Catacombs and walked among the dead.
&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;h3 id=&quot;kudos&quot;&gt;Kudos to the JHipster Community!&lt;/h3&gt;
&lt;p&gt;
What a trip! It&#8217;s so much fun to be a part of JHipster&#8217;s thriving open source community. It&#8217;s not just the project itself; it&#8217;s all the projects we build upon, from Java to TypeScript to Spring Boot to Spring Data to Spring Security to Angular to React to webpack to Bootstrap. It&#8217;s a conglomeration of all of my favorite tools and open source developers encompassed in several awesome projects!
&lt;/p&gt;
&lt;p&gt;
Life as an open source developer is pretty fun. I encourage you to get involved in open source too! I started way back in the early 2000s with Struts and Ant, and it&#8217;s done wonders for my career.
&lt;/p&gt;
&lt;p&gt;
    &lt;em&gt;Viva La Open Source!&lt;/em&gt;
&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/spring_break_2018_sun_fun</id>
        <title type="html">Spring Break 2018: Sun, Fun, and Disney World!</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/spring_break_2018_sun_fun"/>
        <published>2018-04-06T15:04:31-06:00</published>
        <updated>2018-04-06T21:20:45-06:00</updated> 
        <category term="/General" label="General" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="springbreak" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster-mini-book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="vacation" scheme="http://roller.apache.org/ns/tags/" />
        <category term="disneyworld" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;I love Spring break. Who doesn&apos;t?! When I was a student, it was a nice break between quarters and led to many adventures with friends in college. As an adult, I love taking a Spring break holiday and spending it with my family. In a recent blog post on the &lt;a href=&quot;https://twitter.com&quot;&gt;@oktadev&lt;/a&gt; blog, I wrote:
&lt;/p&gt;
&lt;blockquote class=&quot;quote&quot;&gt;
    &lt;p style=&quot;margin-top: 0&quot;&gt;I work hard, and I play hard. My family loves to do ski weekends, road trips, and whitewater raft trips. I&#8217;m lucky to work at a company like Okta that has an unlimited vacation policy. I&#8217;ve heard that most unlimited vacation policies don&#8217;t work for people because they tend to work more, and take fewer vacations.&lt;/p&gt;
    &lt;p&gt;
        I take full advantage of our unlimited vacation policy and make sure to take a week of vacation during every other six-week plan.
    &lt;/p&gt;
    &lt;p style=&quot;text-align: right; font-style: italic; margin-bottom: 0&quot;&gt;
        &amp;mdash; &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;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Last week, my family and I spent Spring break 2018 with Trish&apos;s parents in Naples, Florida. We saw some incredible cars, enjoyed a day at Magic Kingdom in Disney World, played some golf, took in a couple of sunsets, and relaxed a bunch. I think some pictures describe it best.&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=&quot;&quot; data-instgrm-permalink=&quot;https://www.instagram.com/p/Bg1ZhR3lbtY/&quot; data-instgrm-version=&quot;8&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:50% 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/Bg1ZhR3lbtY/&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;Wow! Most impressive car collection I&#8217;ve ever seen. Many of them have won races and are virtually priceless! #springbreak #vacation #revsinstitute&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/&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-03-27T17:03:36+00:00&quot;&gt;Mar 27, 2018 at 10:03am PDT&lt;/time&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;script async=&quot;&quot; defer=&quot;&quot; src=&quot;//www.instagram.com/embed.js&quot;&gt;&lt;/script&gt;
&lt;/div&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/891/40381326675_3059ab257f_c.jpg&quot; title=&quot;An hour into the two hour wait for #splashmountain.&quot; rel=&quot;lightbox[springbreak2018]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/40381326675/in/album-72157667508590818/&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/891/40381326675_3059ab257f_m.jpg&quot; width=&quot;240&quot; alt=&quot;An hour into the two hour wait for #splashmountain.&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/818/40381338155_d1afdcd9cf_c.jpg&quot; title=&quot;Watch out - Jack is driving!&quot; rel=&quot;lightbox[springbreak2018]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/40381338155/in/album-72157667508590818/&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/818/40381338155_d1afdcd9cf_m.jpg&quot; width=&quot;240&quot; alt=&quot;Watch out - Jack is driving!&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://farm1.staticflickr.com/810/26408506757_ba6e81542e_c.jpg&quot; title=&quot;Disney Fireworks!&quot; rel=&quot;lightbox[springbreak2018]&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 style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/815/27405293318_7541861bcd_c.jpg&quot; title=&quot;Naples Sunset&quot; rel=&quot;lightbox[springbreak2018]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/27405293318/in/album-72157667508590818/&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/815/27405293318_7541861bcd.jpg&quot; width=&quot;500&quot; alt=&quot;Naples Sunset&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://farm1.staticflickr.com/799/39468310990_c0a6bd505d_c.jpg&quot; title=&quot;Awww, they really do ?? each other!&quot; rel=&quot;lightbox[springbreak2018]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/39468310990/in/album-72157667508590818/&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/799/39468310990_c0a6bd505d.jpg&quot; width=&quot;500&quot; alt=&quot;Awww, they really do ?? each other!&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://farm1.staticflickr.com/816/41234414162_1546d972de_c.jpg&quot; title=&quot;Happy Easter!&quot; rel=&quot;lightbox[springbreak2018]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/41234414162/in/album-72157667508590818/&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/816/41234414162_1546d972de.jpg&quot; width=&quot;500&quot; alt=&quot;Happy Easter!&quot; style=&quot;border: 1px solid black;&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 on Flickr &amp;rarr; &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157667508590818&quot;&gt;Spring Break 2018&lt;/a&gt;
&lt;/div&gt;

&lt;h3&gt;Q1 Technical Blog Posts&lt;/h3&gt;
&lt;p&gt;In case you&apos;re here looking for technical blog posts, I&apos;m still writing about Java, Spring Boot, Angular, React, and JHipster quite a bit. However, I&apos;m doing it mostly on the &lt;a href=&quot;https://developer.okta.com/blog&quot;&gt;Okta Developer Blog&lt;/a&gt;. Here&apos;s a list of my blog posts from Q1 2018:&lt;/p&gt;
&lt;ul&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&#8217;s Data Securely&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/01/30/jhipster-ionic-with-oidc-authentication&quot;&gt;Use Ionic for JHipster to Create Mobile Apps with OIDC Authentication&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/02/13/secure-spring-microservices-with-oauth&quot;&gt;Secure a Spring Microservices Architecture with Spring Security and OAuth 2.0&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&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;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/03/06/okta-open-source-samples-and-quickstarts&quot;&gt;Open Source Framework Samples and Quickstarts for Okta&apos;s Developer APIs&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2018/03/16/build-react-native-authentication-oauth-2.0&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/03/19/how-to-be-productive-at-work&quot;&gt;How to Achieve Massive Productivity at Work&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;JHipster Mini-Book v4.5 Released!&lt;/h3&gt;
&lt;p&gt;
    In related writing news, &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-v4x-released&quot;&gt;version 4.5 of the JHipster Mini-Book is now available&lt;/a&gt;! Please let me know if you find any issues, or would like clarification on any topics.
&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;Version 4.5 of the &lt;a href=&quot;https://twitter.com/java_hipster?ref_src=twsrc%5Etfw&quot;&gt;@java_hipster&lt;/a&gt; mini-book is now available! ??&lt;br&gt;&lt;br&gt;This version has a brand new chapter on building microservices and deploying them to &lt;a href=&quot;https://twitter.com/heroku?ref_src=twsrc%5Etfw&quot;&gt;@heroku&lt;/a&gt;. Learn more on the book&#8217;s blog: &lt;a href=&quot;https://t.co/nTv6nqvzBH&quot;&gt;https://t.co/nTv6nqvzBH&lt;/a&gt;&lt;br&gt;&lt;br&gt;You can ?? it for free from &lt;a href=&quot;https://twitter.com/InfoQ?ref_src=twsrc%5Etfw&quot;&gt;@InfoQ&lt;/a&gt; ? &lt;a href=&quot;https://t.co/YVnIhUFRV5&quot;&gt;https://t.co/YVnIhUFRV5&lt;/a&gt; &lt;a href=&quot;https://t.co/fbLygNDeWp&quot;&gt;pic.twitter.com/fbLygNDeWp&lt;/a&gt;&lt;/p&gt;&#8212; JHipster Book (@jhipster_book) &lt;a href=&quot;https://twitter.com/jhipster_book/status/982345289112535040?ref_src=twsrc%5Etfw&quot;&gt;April 6, 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;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/a_stressful_but_rewarding_trip</id>
        <title type="html">A Stressful, but Rewarding, Trip to Devoxx Belgium and Morocco</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/a_stressful_but_rewarding_trip"/>
        <published>2017-11-27T08:37:50-07:00</published>
        <updated>2017-11-27T18:23:21-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="speaking" scheme="http://roller.apache.org/ns/tags/" />
        <category term="ionic" scheme="http://roller.apache.org/ns/tags/" />
        <category term="belgium" scheme="http://roller.apache.org/ns/tags/" />
        <category term="okta" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxx" scheme="http://roller.apache.org/ns/tags/" />
        <category term="pwa" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="travel" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxxma" scheme="http://roller.apache.org/ns/tags/" />
        <category term="cloudnative" scheme="http://roller.apache.org/ns/tags/" />
        <category term="springboot" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxxbe" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angular" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;
    One of my favorite conferences in the world is &lt;a href=&quot;https://devoxx.be&quot;&gt;Devoxx Belgium&lt;/a&gt;. First of all, it tends to have one of the most enthusiastic audiences I&apos;ve ever seen. Secondly, its organizers are super awesome and challenge you to give great talks. Third, it was the &lt;a href=&quot;//raibledesigns.com/rd/entry/an_awesome_trip_to_amsterdam&quot;&gt;first conference I ever took my Trish to&lt;/a&gt;.
    In 2011, I took her a second time and &lt;a href=&quot;//raibledesigns.com/rd/entry/our_engaging_trip_to_paris&quot;&gt;proposed to
    her in Paris afterward&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    This year, I traveled to Devoxx Belgium for the first time without Trish. It was stressful because I didn&apos;t prepare well beforehand. However, it was also gratifying because I was able to make everything work, even it all happened at the last minute. Furthermore, I did the majority of my talks with good friends, which is always a
    pleasant experience.
&lt;/p&gt;
&lt;p&gt;The purpose of this blog post is to document my experience this year, so I can look back and say WTF was I
    thinking?! &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;
    I left Denver on Monday (November 6) afternoon and flew to Brussels, Belgium. My flight landed in Brussels at 9 am and Josh and my (three hour) talk was at 1:30 pm. I made it in time, but it was one of the first times we didn&#8217;t have a lot of time to prepare face-to-face beforehand. I learned that getting t-shirts printed in the US to save $500 is a good idea, but having to take two suitcases to carry them all is a bad idea.
&lt;/p&gt;
&lt;p&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4532/37700216965_c12dbbb856_c.jpg&quot; title=&quot;Cloud Native PWAs with Josh Long at Devoxx Belgium&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700216965/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4532/37700216965_c12dbbb856_q.jpg&quot; width=&quot;150&quot; class=&quot;picture&quot; alt=&quot;Cloud Native PWAs with Josh Long at Devoxx Belgium&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    We did our usual talk and I used Okta&apos;s new &lt;a href=&quot;https://www.npmjs.com/package/@okta%2Fokta-angular&quot;&gt;Angular SDK&lt;/a&gt;
    instead of the Sign-In Widget to showcase authentication. Even
    though the crucial step I needed was contained in my notes, I failed. One simple line to add an &lt;code&gt;HttpInterceptor&lt;/code&gt; and
    I missed it!
&lt;/p&gt;
&lt;p&gt;
    I think I followed up well with a tweet that showed how to fix it. But who knows how many people use Twitter. One things for sure, people tweet more at Devoxx Belgium than any other conference I&#8217;ve ever been too! In fact, the
    #Devoxx hashtag got &lt;a href=&quot;https://www.linkedin.com/pulse/twitter-spam-bots-from-russia-stephan-janssen/&quot;&gt;hijacked by some porn sites&lt;/a&gt; and their tweets started showing up on the Twitter wall. &#157;&#157;
&lt;/p&gt;
&lt;p&gt;
    I tweeted about what I forgot to do after our talk.
&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;Thanks to everyone who attended &lt;a href=&quot;https://twitter.com/starbuxman?ref_src=twsrc%5Etfw&quot;&gt;@starbuxman&lt;/a&gt; and my session on Cloud Native PWAs at &lt;a href=&quot;https://twitter.com/Devoxx?ref_src=twsrc%5Etfw&quot;&gt;@Devoxx&lt;/a&gt;! &lt;br&gt;&lt;br&gt;Slides: &lt;a href=&quot;https://t.co/3uyn4KUbm2&quot;&gt;https://t.co/3uyn4KUbm2&lt;/a&gt;&lt;br&gt;&lt;br&gt;Source code: &lt;a href=&quot;https://t.co/6deOtoHeeg&quot;&gt;https://t.co/6deOtoHeeg&lt;/a&gt;&lt;br&gt;&lt;br&gt;FWIW, I figured out why my &lt;a href=&quot;https://twitter.com/okta?ref_src=twsrc%5Etfw&quot;&gt;@okta&lt;/a&gt; demo failed. I forgot to add the AuthInterceptor as a provider. Doh! &lt;a href=&quot;https://twitter.com/hashtag/Devoxx?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#Devoxx&lt;/a&gt; &lt;a href=&quot;https://t.co/HxdYp6CetZ&quot;&gt;pic.twitter.com/HxdYp6CetZ&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/928194420910051328?ref_src=twsrc%5Etfw&quot;&gt;November 8, 2017&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;
    Josh and my talk was &lt;a href=&quot;https://youtu.be/tCyLDzhz_mg&quot;&gt;published on YouTube&lt;/a&gt; the very next day, which is awesome.
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;
    One of my favorite conferences in the world is &lt;a href=&quot;https://devoxx.be&quot;&gt;Devoxx Belgium&lt;/a&gt;. First of all, it tends to have one of the most enthusiastic audiences I&apos;ve ever seen. Secondly, its organizers are super awesome and challenge you to give great talks. Third, it was the &lt;a href=&quot;//raibledesigns.com/rd/entry/an_awesome_trip_to_amsterdam&quot;&gt;first conference I ever took my Trish to&lt;/a&gt;.
    In 2011, I took her a second time and &lt;a href=&quot;//raibledesigns.com/rd/entry/our_engaging_trip_to_paris&quot;&gt;proposed to
    her in Paris afterward&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    This year, I traveled to Devoxx Belgium for the first time without Trish. It was stressful because I didn&apos;t prepare well beforehand. However, it was also gratifying because I was able to make everything work, even it all happened at the last minute. Furthermore, I did the majority of my talks with good friends, which is always a
    pleasant experience.
&lt;/p&gt;
&lt;p&gt;The purpose of this blog post is to document my experience this year, so I can look back and say WTF was I
    thinking?! &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;
    I left Denver on Monday (November 6) afternoon and flew to Brussels, Belgium. My flight landed in Brussels at 9 am and Josh and my (three hour) talk was at 1:30 pm. I made it in time, but it was one of the first times we didn&#8217;t have a lot of time to prepare face-to-face beforehand. I learned that getting t-shirts printed in the US to save $500 is a good idea, but having to take two suitcases to carry them all is a bad idea.
&lt;/p&gt;
&lt;p&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4532/37700216965_c12dbbb856_c.jpg&quot; title=&quot;Cloud Native PWAs with Josh Long at Devoxx Belgium&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700216965/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4532/37700216965_c12dbbb856_q.jpg&quot; width=&quot;150&quot; class=&quot;picture&quot; alt=&quot;Cloud Native PWAs with Josh Long at Devoxx Belgium&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    We did our usual talk and I used Okta&apos;s new &lt;a href=&quot;https://www.npmjs.com/package/@okta%2Fokta-angular&quot;&gt;Angular SDK&lt;/a&gt;
    instead of the Sign-In Widget to showcase authentication. Even
    though the crucial step I needed was contained in my notes, I failed. One simple line to add an &lt;code&gt;HttpInterceptor&lt;/code&gt; and
    I missed it!
&lt;/p&gt;
&lt;p&gt;
    I think I followed up well with a tweet that showed how to fix it. But who knows how many people use Twitter. One things for sure, people tweet more at Devoxx Belgium than any other conference I&#8217;ve ever been too! In fact, the
    #Devoxx hashtag got &lt;a href=&quot;https://www.linkedin.com/pulse/twitter-spam-bots-from-russia-stephan-janssen/&quot;&gt;hijacked by some porn sites&lt;/a&gt; and their tweets started showing up on the Twitter wall. ??
&lt;/p&gt;
&lt;p&gt;
    I tweeted about what I forgot to do after our talk.
&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;Thanks to everyone who attended &lt;a href=&quot;https://twitter.com/starbuxman?ref_src=twsrc%5Etfw&quot;&gt;@starbuxman&lt;/a&gt; and my session on Cloud Native PWAs at &lt;a href=&quot;https://twitter.com/Devoxx?ref_src=twsrc%5Etfw&quot;&gt;@Devoxx&lt;/a&gt;! &lt;br&gt;&lt;br&gt;Slides: &lt;a href=&quot;https://t.co/3uyn4KUbm2&quot;&gt;https://t.co/3uyn4KUbm2&lt;/a&gt;&lt;br&gt;&lt;br&gt;Source code: &lt;a href=&quot;https://t.co/6deOtoHeeg&quot;&gt;https://t.co/6deOtoHeeg&lt;/a&gt;&lt;br&gt;&lt;br&gt;FWIW, I figured out why my &lt;a href=&quot;https://twitter.com/okta?ref_src=twsrc%5Etfw&quot;&gt;@okta&lt;/a&gt; demo failed. I forgot to add the AuthInterceptor as a provider. Doh! &lt;a href=&quot;https://twitter.com/hashtag/Devoxx?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#Devoxx&lt;/a&gt; &lt;a href=&quot;https://t.co/HxdYp6CetZ&quot;&gt;pic.twitter.com/HxdYp6CetZ&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/928194420910051328?ref_src=twsrc%5Etfw&quot;&gt;November 8, 2017&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;
    Josh and my talk was &lt;a href=&quot;https://youtu.be/tCyLDzhz_mg&quot;&gt;published on YouTube&lt;/a&gt; the very next day, which is awesome.
&lt;/p&gt;
&lt;p&gt;
    Tuesday night was the speaker&#8217;s reception, so I attended that and turned in around 10 pm. I worked on my next presentation (Angular vs. React) for a few hours after getting back to my hotel.
&lt;/p&gt;
&lt;p&gt;
    On Wednesday, I worked all day with my co-speaker (&lt;a href=&quot;https://twitter.com/deepu105&quot;&gt;Deepu&lt;/a&gt;, co-lead of
    JHipster) on our Angular vs. React presentation. We worked for eight hours at the conference venue that day and
    parted ways around 6 pm.
&lt;/p&gt;
&lt;p&gt;
    On Wednesday night, I attended a dinner with Ray Tsang (Google Cloud Advocate). We were invited (along with Josh) to a dinner with JDriven. Josh couldn&#8217;t make it, but Ray and I attended and &lt;a href=&quot;https://twitter.com/mraible/status/928397708049739777&quot;&gt;had a great time&lt;/a&gt;. I got home at 10 pm that night and worked on my next day&#8217;s
    presentation until 3 am.
&lt;/p&gt;
&lt;p&gt;
    Thursday, I worked with Deepu for a couple hours to polish and practice our presentation and we delivered it that
    afternoon. We also advertised &lt;a href=&quot;https://twitter.com/mraible/status/928574165380198402&quot;&gt;the t-shirts we brought&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4543/26811844159_1b82a326bf_c.jpg&quot; title=&quot;Angular vs React Smackdown with Deepu&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/26811844159/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4543/26811844159_1b82a326bf.jpg&quot; width=&quot;500&quot; alt=&quot;Angular vs React Smackdown with Deepu&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    There were lots of tweets about our talk, but I think &lt;a href=&quot;https://twitter.com/danielbryantuk/status/928660651785850880&quot;&gt;
    this from Daniel Bryant&lt;/a&gt; with our recommendations for Angular vs React was one of my favorites.
&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 results of the web framework smackdown are in...&lt;br&gt;&lt;br&gt;via &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/deepu105?ref_src=twsrc%5Etfw&quot;&gt;@deepu105&lt;/a&gt; at &lt;a href=&quot;https://twitter.com/hashtag/Devoxx?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#Devoxx&lt;/a&gt; &lt;a href=&quot;https://t.co/MBYfZ2Fli4&quot;&gt;pic.twitter.com/MBYfZ2Fli4&lt;/a&gt;&lt;/p&gt;&#8212; Daniel Bryant (@danielbryantuk) &lt;a href=&quot;https://twitter.com/danielbryantuk/status/928660651785850880?ref_src=twsrc%5Etfw&quot;&gt;November 9, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;
    Our session went well, even thought it wasn&#8217;t super technical, and it was published to YouTube.
&lt;/p&gt;
&lt;div style=&quot;max-width: 560px; margin: 0 auto&quot;&gt;
    &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/qYEEuiI4l10&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;I also &lt;a href=&quot;https://speakerdeck.com/mraible/angular-vs-react-smackdown-devoxx-be-2017&quot;&gt;published our slides on Speaker Deck&lt;/a&gt;.
&lt;/p&gt;

&lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;3e7a2bbd5eed40518bf4cb6cf3822c6c&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;

&lt;p&gt;
    We had the JHipster BOF late that night (during the conference movie) and only had three people show up. With five
    committers there, we still had a great time, and it was fun to give Julien the Duke&#8217;s Choice Award trophy since he
    started the project.
&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;&lt;a href=&quot;https://twitter.com/java_hipster?ref_src=twsrc%5Etfw&quot;&gt;@java_hipster&lt;/a&gt; team rocking &lt;a href=&quot;https://twitter.com/Devoxx?ref_src=twsrc%5Etfw&quot;&gt;@Devoxx&lt;/a&gt; &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/juliendubois?ref_src=twsrc%5Etfw&quot;&gt;@juliendubois&lt;/a&gt; &lt;a href=&quot;https://twitter.com/sendilkumarn?ref_src=twsrc%5Etfw&quot;&gt;@sendilkumarn&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/DukesChoiceAward?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#DukesChoiceAward&lt;/a&gt; &lt;a href=&quot;https://t.co/gaNpnJtBYR&quot;&gt;pic.twitter.com/gaNpnJtBYR&lt;/a&gt;&lt;/p&gt;&#8212; Deepu K Sasidharan (@deepu105) &lt;a href=&quot;https://twitter.com/deepu105/status/928679012343402498?ref_src=twsrc%5Etfw&quot;&gt;November 9, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;p&gt;Duke might&apos;ve had a little too much to drink during our BOF. :D&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4572/37700211975_2be2fc9bf4_c.jpg&quot; title=&quot;Duke at the JHipster BOF&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700211975/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4572/37700211975_2be2fc9bf4.jpg&quot; width=&quot;500&quot; alt=&quot;Duke at the JHipster BOF&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    I thought our ratings (~4.2) for the two sessions were &#8220;good enough&#8221; to call the conference a success. Thanks to the conference organizers for delivering such an awesome experience once again.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4536/37700221155_9aa2e516d9_c.jpg&quot; title=&quot;The Devoxx Belgium Team&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700221155/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4536/37700221155_9aa2e516d9.jpg&quot; width=&quot;500&quot; alt=&quot;The Devoxx Belgium Team&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&quot;devoxx-morocco&quot;&gt;Devoxx Morocco&lt;/h3&gt;
&lt;p&gt;
    I spent the weekend in Bruges and had a lovely time staying at an Airbnb and visiting some local breweries.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4524/37700211025_17406959ff_c.jpg&quot; title=&quot;Brugge&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700211025/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4524/37700211025_17406959ff_q.jpg&quot; width=&quot;150&quot;  alt=&quot;Brugge&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4524/24716006538_7acb95faa4_c.jpg&quot; title=&quot;Brugge&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/24716006538/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4524/24716006538_7acb95faa4_q.jpg&quot; width=&quot;150&quot; alt=&quot;Brugge&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4551/37700207885_d3b0c87135_c.jpg&quot; title=&quot;Kwak in Brugge&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700207885/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4551/37700207885_d3b0c87135_q.jpg&quot; width=&quot;150&quot; alt=&quot;Kwak in Brugge&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/4521/24716004808_d9c6eb8986_c.jpg&quot; title=&quot;Brugge by night&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/24716004808/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4521/24716004808_d9c6eb8986_m.jpg&quot; width=&quot;240&quot; alt=&quot;Brugge by night&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4580/37700206205_fab269d774_c.jpg&quot; title=&quot;The streets of Brugge&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700206205/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4580/37700206205_fab269d774_m.jpg&quot; width=&quot;240&quot; alt=&quot;The streets of Brugge&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/4568/24716003048_8af41b6f48_c.jpg&quot; title=&quot;Life is good in Bruges, and it just got a little bit better.&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/24716003048/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4568/24716003048_8af41b6f48_z.jpg&quot; width=&quot;480&quot; alt=&quot;Life is good in Bruges, and it just got a little bit better.&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    On Saturday night, I worked for several hours on the Ionic module for JHipster that I needed for my talk at Devoxx Morocco. That&#8217;s where the (self-inflicted) drama began. Here&#8217;s the timeline of events that I
    documented in my presentation after my talk:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;After Devoxx Belgium, tried to finish Ionic module over the weekend.&lt;/li&gt;
    &lt;li&gt;Late night of hacking, couldn&#8217;t figure out why what worked last week didn&#8217;t work this week.&lt;/li&gt;
    &lt;li&gt;Discovered Ionic &#8220;super&#8221; starter was upgraded to Angular 5 in the last week.&lt;/li&gt;
    &lt;li&gt;Realized I needed to version the starter or write my own.&lt;/li&gt;
    &lt;li&gt;Tried to make OAuth work, because Okta.&lt;/li&gt;
    &lt;li&gt;Discovered OAuth wouldn&#8217;t work, because JHipster implementation uses cookies, and Cordova&#8217;s web view won&#8217;t work
        with cookies.
    &lt;/li&gt;
    &lt;li&gt;Sunday evening (my talk was on Wednesday morning): refactored everything into an Ionic starter.&lt;/li&gt;
    &lt;li&gt; Monday: finished starter, couldn&#8217;t get it to work in iOS emulator because CORS.&lt;/li&gt;
    &lt;li&gt;Found bugs about CORS doesn&#8217;t work over http. Spent hours trying to make it work over https. Couldn&#8217;t get a local certificate to be trusted, couldn&#8217;t deploy a JHipster app to the cloud (b/c of slow wifi). Even tried cloud-to-cloud, but
        ran into frontend-maven-plugin on Linux issues.
    &lt;/li&gt;
    &lt;li&gt;Monday afternoon: discovered real issue was that emulator runs on port 8080. Changed JHipster/Spring Boot&#8217;s port to 9000, and it worked!
    &lt;/li&gt;&lt;li&gt;Tuesday: delivered talk on Cloud Native PWAs with Josh Long.
    (https://twitter.com/mraible/status/930477708022337536)
&lt;/li&gt;
    &lt;li&gt;Tuesday after dinner: started working on entity generator for Ionic.&lt;/li&gt;
    &lt;li&gt;Wednesday 4am: Got it working!&lt;/li&gt;
    &lt;li&gt;Wednesday 8-11:25am: wrote presentation.&lt;/li&gt;
    &lt;li&gt;Wednesday 11:30am: delivered talk, showed demo that worked!!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    I &lt;a href=&quot;https://speakerdeck.com/mraible/developing-pwas-and-mobile-apps-with-ionic-angular-and-jhipster-devoxx-morocco-2017&quot;&gt;published the slides&lt;/a&gt; from &quot;Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster&quot; to Speaker Deck.
&lt;/p&gt;
&lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;92b706a743634ccdbfea67e441726b13&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;
    I also &lt;a href=&quot;https://www.youtube.com/watch?v=B7TjR_rJVeU&quot;&gt;made a 5 minute video&lt;/a&gt;, because I recorded a lot of my development experience along the way.
&lt;/p&gt;
&lt;div style=&quot;max-width: 560px; margin: 0 auto&quot;&gt;
    &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/B7TjR_rJVeU&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;
    Phew! It was an exhausting couple of weeks. I learned something I already knew - you should have your presentation finished before you leave for the conference, especially when traveling overseas!
&lt;/p&gt;
&lt;p&gt;
    Nevertheless, I had a great time. At Devoxx Belgium, it was announced that Josh and I both won Devoxx Champion awards. This award is given to speakers that attend all the Devoxx conferences in a year. Unfortunately, they never told either of us that we got it, so we missed it in the keynote. Luckily, &lt;a href=&quot;https://youtu.be/6ethbpVl4eo?t=12m52s&quot;&gt;it was recorded&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    At Devoxx Morocco, they notified me five minutes before the keynote that &#8220;I should come&#8221; and that they had a
    surprise for me. I was in the midst of my last-minute scramble to get code working and write my presentation, but I
    went anyway. I&#8217;m glad I did because it was a very cool opening keynote and I was honored to receive a Devoxx Champion award.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4537/26811841789_85bc9ea4a8_c.jpg&quot; title=&quot;Devoxx Morocco Keynote&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/26811841789/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4537/26811841789_85bc9ea4a8_m.jpg&quot; width=&quot;240&quot; alt=&quot;Devoxx Morocco Keynote&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4545/37700212615_a544f02282_c.jpg&quot; title=&quot;Devoxx Morocco Keynote&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700212615/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4545/37700212615_a544f02282_m.jpg&quot; width=&quot;240&quot; alt=&quot;Devoxx Morocco Keynote&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/4562/37700212995_9b7bf52f74_c.jpg&quot; title=&quot;Devoxx Champion!&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/37700212995/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4562/37700212995_9b7bf52f74.jpg&quot; width=&quot;500&quot; alt=&quot;Devoxx Champion!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I made sure to get my picture with Josh, and his girlfriend Tammie, after lunch.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm5.staticflickr.com/4528/26811841249_2cf6c7ab1b_c.jpg&quot; title=&quot;Devoxx Champions!&quot; rel=&quot;lightbox[devoxx2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/26811841249/in/album-72157690880978696/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4528/26811841249_2cf6c7ab1b.jpg&quot; width=&quot;500&quot; alt=&quot;Devoxx Champions!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    There are two new Okta open source projects as part of my efforts, but they&#8217;ll require some polishing before they&#8217;re ready for general consumption. I hope to do that before the end of the year, but the end of January is probably more realistic.
    Below are links to their repos on GitHub:
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/oktadeveloper/ionic-jhipster-starter&quot;&gt;https://github.com/oktadeveloper/ionic-jhipster-starter&lt;/a&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/oktadeveloper/generator-jhipster-ionic&quot;&gt;https://github.com/oktadeveloper/generator-jhipster-ionic&lt;/a&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more photos from these events, see &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157690880978696&quot;&gt;my album on Flickr&lt;/a&gt;.
    Devoxx Belgium posted their photos to &lt;a href=&quot;https://www.flickr.com/photos/bejug/albums/72157688379343341&quot;&gt;a Devoxx2017 album&lt;/a&gt;, as well
    as albums for each day: &lt;a href=&quot;https://www.flickr.com/photos/bejug/albums/72157688133612441&quot;&gt;day 1&lt;/a&gt;, &lt;a href=&quot;https://www.flickr.com/photos/bejug/albums/72157687122938352&quot;&gt;day 2&lt;/a&gt;, &lt;a href=&quot;https://www.flickr.com/photos/bejug/albums/72157688224388621&quot;&gt;day 3&lt;/a&gt;,
    &lt;a href=&quot;https://www.flickr.com/photos/bejug/albums/72157687279078222&quot;&gt;day 4&lt;/a&gt;, and &lt;a href=&quot;https://www.flickr.com/photos/bejug/albums/72157690510945366&quot;&gt;day 5&lt;/a&gt;. Devoxx Morocco posted all of their photos in three separate albums: &lt;a href=&quot;https://www.flickr.com/photos/127834083@N04/albums/72157690630170846&quot;&gt;day 1&lt;/a&gt;, &lt;a href=&quot;https://www.flickr.com/photos/127834083@N04/albums/72157687428585142&quot;&gt;day 2&lt;/a&gt;, and &lt;a href=&quot;https://www.flickr.com/photos/127834083@N04/albums/72157689733960115&quot;&gt;day 3&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    I want to thank the organizers from Devoxx Belgium and Devoxx Morocco for accepting my talks and allow me to fulfill one of my goals for the year: becoming a Devoxx Champion. In 2018, I plan to slow down a bit and speak more in the US,
    concentrating on Java User Groups.
&lt;/p&gt;
&lt;p&gt;
    However, 2017 isn&apos;t over! I&apos;ll be speaking at &lt;a href=&quot;https://springoneplatform.io/&quot;&gt;SpringOne&lt;/a&gt; and
    &lt;a href=&quot;https://therichwebexperience.com/conference/clearwater/2017/12/home&quot;&gt;The Rich Web Experience&lt;/a&gt; next week.
    We&apos;re also planning a &lt;a href=&quot;https://www.meetup.com/Devoxx4Kids-Denver/events/245437411/&quot;&gt;Devoxx4Kids Denver&lt;/a&gt; meetup in December and
    a &lt;a href=&quot;https://www.meetup.com/DenverJavaUsersGroup/events/gbcxxmywqbrb/&quot;&gt;Denver JUG Holiday Party&lt;/a&gt; as well.
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/life_as_an_open_source1</id>
        <title type="html">Life as an Open Source Developer, One Year Later</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/life_as_an_open_source1"/>
        <published>2017-11-06T08:33:17-07:00</published>
        <updated>2017-11-06T14:35:06-07:00</updated> 
        <category term="/Open Source" label="Open Source" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="github" scheme="http://roller.apache.org/ns/tags/" />
        <category term="okta" scheme="http://roller.apache.org/ns/tags/" />
        <category term="springboot" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;It&apos;s been a little over a year since 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;. I&apos;m happy to say I &lt;em&gt;still&lt;/em&gt; haven&apos;t written a single line of proprietary code. Of course, things have changed a lot in the last year. I thought going full-time would bring stability to my career. Instead, six months into it &lt;a href=&quot;https://www.okta.com/blog/2017/03/stormpath-welcome-to-Okta/&quot;&gt;we joined forces with Okta&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;The transition was rough at first. At Stormpath, we had full-featured SDKs and a great relationship with developers that used our service. We were able to port many of our SDKs to work with Okta, but we discovered that Okta didn&apos;t have a great relationship with developers. In fact, their developer blog hadn&apos;t been updated in over a year when we arrived.
&lt;/p&gt;
&lt;p&gt;On the upside, Okta&apos;s API supported standards like SAML, OAuth, and OpenID Connect. Open standards made it possible to use other frameworks and not have to rely on our own. I was pumped to find that &lt;a href=&quot;https://github.com/spring-projects/spring-security&quot;&gt;Spring Security&lt;/a&gt; made it easy to integrate with &lt;a href=&quot;https://developer.okta.com/blog/2017/03/16/spring-boot-saml&quot;&gt;SAML&lt;/a&gt; and &lt;a href=&quot;https://developer.okta.com/blog/2017/03/21/spring-boot-oauth&quot;&gt;OAuth&lt;/a&gt;. In fact, I was able to leverage these standards to &lt;a href=&quot;https://developer.okta.com/blog/2017/10/20/oidc-with-jhipster&quot;&gt;add OIDC support to JHipster&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Okta&apos;s &lt;a href=&quot;https://developer.okta.com/blog/2017/09/25/all-new-developer-console&quot;&gt;new developer console&lt;/a&gt; and &lt;a href=&quot;https://developer.okta.com/pricing/&quot;&gt;open pricing&lt;/a&gt; are just a couple examples of improved happenings since we arrived. The &lt;a href=&quot;https://github.com/okta/okta-spring-boot&quot;&gt;Okta Spring Boot Starter&lt;/a&gt; and &lt;a href=&quot;https://github.com/okta/okta-oidc-js&quot;&gt;JavaScript libraries for Node.js, Angular, and React&lt;/a&gt; are also pretty awesome.
&lt;/p&gt;
&lt;p&gt;I&apos;m happy to say my contributions on GitHub almost doubled in the last year!
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://github.com/mraible&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4509/24348308388_fc2c35d111_z.jpg&quot; width=&quot;640&quot; alt=&quot;GitHub Contributions 2017&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;As far as stress is concerned, that hasn&apos;t changed much. I&apos;ve learned that the stress I feel from work is still causing me to have high blood pressure. When I measure it in the mornings, or at night, it&apos;s fine. When I measure it during the day, it&apos;s elevated. I believe my high blood pressure is caused by doing too much. Sure, it&apos;s great to be productive and accomplish a lot for my company, but it&apos;s killing me.
&lt;/p&gt;
&lt;p&gt;Therein lies the rub. I get to create my job. All I&apos;m asked to do is write a blog post per week and speak at a conference (or meetup) once a month. Yet I&apos;m doing &lt;em&gt;way&lt;/em&gt; more than that. Since this time last year, I&apos;ve delivered 33 presentations, in 13 different cities. I keep a page on this blog updated with &lt;a href=&quot;//raibledesigns.com/rd/page/publications&quot;&gt;all my presentations&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;  
Next year, I still plan to speak a lot, but I plan on toning things down a bit. I&apos;ll be concentrating on US cities, with large Java user groups, and I&apos;ll be limiting my travel overseas. &lt;/p&gt;
&lt;p&gt;
  &lt;a data-href=&quot;https://www.flickr.com/photos/mraible/37491517464/&quot; rel=&quot;lightbox[ossdev1year]&quot; href=&quot;https://farm5.staticflickr.com/4547/37491517464_14d37e8eda_c.jpg&quot; title=&quot;Matt the Hipster&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4547/37491517464_14d37e8eda_q.jpg&quot; width=&quot;150&quot; class=&quot;picture&quot; alt=&quot;Matt the Hipster&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
  Outside of my health concerns, I&apos;m still loving my job. The fact that I get paid to speak at great conferences, write example applications, and discover new ways to do things is awesome. It&apos;s also pretty sweet that I was able to &lt;a href=&quot;//raibledesigns.com/rd/entry/the_jhipster_mini_book_v4&quot;&gt;update the JHipster Mini-Book&lt;/a&gt; and &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/upgrading-21-points-health-from-v1-to-v4&quot;&gt;upgrade 21-Points Health&lt;/a&gt; during work hours. The fact that I got &lt;a href=&quot;https://www.okta.com/blog/2017/09/developer-dna-a-day-in-the-life-of-matt-raible/&quot;&gt;featured on the main Okta blog&lt;/a&gt; was pretty cool too.
&lt;/p&gt;
&lt;p&gt;The good news is my overseas travel isn&apos;t done this year. Today, I leave for &lt;a href=&quot;http://devoxx.be/&quot;&gt;Devoxx Belgium&lt;/a&gt;, one of my favorite conferences. It&apos;ll be my first time in Antwerp without Trish. However, I&apos;m speaking with friends &lt;a href=&quot;https://twitter.com/starbuxman&quot;&gt;Josh Long&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/deepu105&quot;&gt;Deepu Sasidharan&lt;/a&gt;, so it&apos;s sure to be a good time. Traveling to &lt;a href=&quot;https://devoxx.ma/&quot;&gt;Devoxx Morocco&lt;/a&gt; should be fun too. I&apos;ve never been to Casablanca before.&lt;/p&gt;
&lt;p&gt;In December, you can catch me at &lt;a href=&quot;https://springoneplatform.io/speakers/matt-raible&quot;&gt;SpringOne&lt;/a&gt; and &lt;a href=&quot;https://therichwebexperience.com/conference/clearwater/2017/12/speakers/matt_raible&quot;&gt;The Rich Web Experience&lt;/a&gt;. Next year, I&apos;ll be speaking at &lt;a href=&quot;https://www.meetup.com/DenverMicroservices/events/244459192/&quot;&gt;Denver Microservices meetup&lt;/a&gt;, &lt;a href=&quot;http://ujug.org/event/matt-raible/&quot;&gt;Utah JUG&lt;/a&gt;, &lt;a href=&quot;https://www.meetup.com/seajug/&quot;&gt;Seattle JUG&lt;/a&gt;, and &lt;a href=&quot;http://jazzcon.tech/&quot;&gt;JazzCon&lt;/a&gt;. I plan to do a JUG tour in the northeast US too.
&lt;/p&gt;
&lt;p&gt;You might&apos;ve noticed I don&apos;t write a lot of technical content here anymore. That&apos;s because I&apos;m doing most of my writing on &lt;a href=&quot;https://developer.okta.com/blog/&quot;&gt;developer.okta.com/blog&lt;/a&gt;. I&apos;m still writing for &lt;a href=&quot;https://www.infoq.com&quot;&gt;InfoQ&lt;/a&gt; as well. I really enjoyed attending the JavaOne keynotes and writing up what I saw.
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infoq.com/news/2017/10/javaone-opening&quot;&gt;Oracle Announced Plans to Open Source All Features of Their JDK and Address Shortcomings in Java EE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infoq.com/news/2017/10/javaone-keynote&quot;&gt;JavaOne Keynote: Oracle Talks Blockchain, Bots and Serverless&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.infoq.com/news/2017/10/javaone-community-keynote&quot;&gt;JavaOne Keynote: IBM on OpenJ9 and Open Liberty; Java Community in The Matrix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&apos;ll leave you with this, a project I&apos;m working on actively and plan to finish before Devoxx Morocco.&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;Had a good hacking session today w/ &lt;a href=&quot;https://twitter.com/java_hipster?ref_src=twsrc%5Etfw&quot;&gt;@java_hipster&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://twitter.com/Ionicframework?ref_src=twsrc%5Etfw&quot;&gt;@Ionicframework&lt;/a&gt;. Creating a JHipster-enabled Ionic client works! &lt;a href=&quot;https://t.co/5biHQDO941&quot;&gt;https://t.co/5biHQDO941&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/926251064843583488?ref_src=twsrc%5Etfw&quot;&gt;November 3, 2017&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;Viva la Open Source!&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/the_jhipster_mini_book_v4</id>
        <title type="html">The JHipster Mini-Book v4.0 Now Available for Download!</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/the_jhipster_mini_book_v4"/>
        <published>2017-09-22T08:22:04-06:00</published>
        <updated>2017-09-22T14:26:25-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="writing" scheme="http://roller.apache.org/ns/tags/" />
        <category term="infoq" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster-mini-book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;The JHipster Mini-Book v4.0 is &lt;a href=&quot;https://www.infoq.com/minibooks/jhipster-4-mini-book&quot;&gt;now available as a free download from InfoQ&lt;/a&gt;. Get it while it&apos;s hot! You&apos;ll also be able to buy a print version in a week or two. You can read all about what&#8217;s changed since v2.0 on the &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-v4-released&quot;&gt;JHipster Mini-Book blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;The source code for the application developed in the book (21-Points Health) is &lt;a href=&quot;https://github.com/mraible/21-points&quot;&gt;available on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to the &lt;a href=&quot;http://www.infoq.com&quot;&gt;InfoQ&lt;/a&gt; publishing team, &lt;a href=&quot;https://twitter.com/sharpedennis&quot;&gt;Dennis Sharpe&lt;/a&gt; for tech editing, and Lawrence Nyveen for copy editing. And most of all, thank you &lt;a href=&quot;http://asciidoctor.org/&quot;&gt;Asciidoctor&lt;/a&gt; for making the publishing process so easy! &lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/devoxx_poland_a_huge_conference</id>
        <title type="html">Devoxx Poland: A Huge Conference in a Beautiful City</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/devoxx_poland_a_huge_conference"/>
        <published>2017-06-27T08:44:31-06:00</published>
        <updated>2017-06-27T14:52:09-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="krakow" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxx" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxxpl" scheme="http://roller.apache.org/ns/tags/" />
        <category term="ionic" scheme="http://roller.apache.org/ns/tags/" />
        <category term="okta" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angular" scheme="http://roller.apache.org/ns/tags/" />
        <category term="poland" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring-boot" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;It&apos;s been a little over six years since I &lt;a href=&quot;//raibledesigns.com/rd/entry/two_opening_days_with_a&quot;&gt;
    first ventured to Krak&#243;w, Poland&lt;/a&gt;. I have fond memories of that trip,
    mostly because Trish was with me and we explored lots of sites. Last month,
    I &lt;a href=&quot;//raibledesigns.com/rd/entry/speaking_adventures_at_j_spring&quot;&gt;
        visited Krak&#243;w for GeeCON&lt;/a&gt;, but only stayed for one night.
&lt;/p&gt;
&lt;p&gt;Last week, I had the pleasure of visiting a third time for my first
    &lt;a href=&quot;http://devoxx.pl&quot;&gt;Devoxx Poland&lt;/a&gt;. I was excited to travel
    internationally again with my favorite travel shirt on. This caused a &lt;a href=&quot;https://twitter.com/mraible/status/877295134294945792&quot;&gt;funny conversation with TSA&lt;/a&gt; just
    before my departure.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c1.staticflickr.com/5/4230/35389832432_51e0fe03fb_c.jpg&quot; title=&quot;Heading to the airport in my favorite travel shirt&quot; rel=&quot;lightbox[devoxxpoland2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/35389832432/in/album-72157685455292516/&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/5/4230/35389832432_51e0fe03fb_n.jpg&quot; width=&quot;320&quot; alt=&quot;Heading to the airport in my favorite travel shirt&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
    I arrived in Krakow on a beautiful day and took an Ub&#235;r to my hotel next to the &lt;a href=&quot;http://www.icekrakow.com/&quot;&gt;venue&lt;/a&gt;.
    I took a stroll along the Vistula River to enjoy the sunshine.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c1.staticflickr.com/5/4213/34716670334_4dc1e72a8c_c.jpg&quot; title=&quot;A beautiful day in Krakow&quot; rel=&quot;lightbox[devoxxpoland2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/34716670334/in/album-72157685455292516/&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/5/4213/34716670334_4dc1e72a8c.jpg&quot; width=&quot;500&quot; alt=&quot;A beautiful day in Krakow&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;It&apos;s been a little over six years since I &lt;a href=&quot;//raibledesigns.com/rd/entry/two_opening_days_with_a&quot;&gt;
    first ventured to Krak&#243;w, Poland&lt;/a&gt;. I have fond memories of that trip,
    mostly because Trish was with me and we explored lots of sites. Last month,
    I &lt;a href=&quot;//raibledesigns.com/rd/entry/speaking_adventures_at_j_spring&quot;&gt;
        visited Krak&#243;w for GeeCON&lt;/a&gt;, but only stayed for one night.
&lt;/p&gt;
&lt;p&gt;Last week, I had the pleasure of visiting a third time for my first
    &lt;a href=&quot;http://devoxx.pl&quot;&gt;Devoxx Poland&lt;/a&gt;. I was excited to travel
    internationally again with my favorite travel shirt on. This caused a &lt;a href=&quot;https://twitter.com/mraible/status/877295134294945792&quot;&gt;funny conversation with TSA&lt;/a&gt; just
    before my departure.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c1.staticflickr.com/5/4230/35389832432_51e0fe03fb_c.jpg&quot; title=&quot;Heading to the airport in my favorite travel shirt&quot; rel=&quot;lightbox[devoxxpoland2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/35389832432/in/album-72157685455292516/&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/5/4230/35389832432_51e0fe03fb_n.jpg&quot; width=&quot;320&quot; alt=&quot;Heading to the airport in my favorite travel shirt&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
    I arrived in Krakow on a beautiful day and took an Ub&#235;r to my hotel next to the &lt;a href=&quot;http://www.icekrakow.com/&quot;&gt;venue&lt;/a&gt;.
    I took a stroll along the Vistula River to enjoy the sunshine.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c1.staticflickr.com/5/4241/34748919143_9672c64024_c.jpg&quot; title=&quot;Along the Vistula River&quot; rel=&quot;lightbox[devoxxpoland2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/34748919143/in/album-72157685455292516/&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/5/4241/34748919143_9672c64024_m.jpg&quot; width=&quot;240&quot; alt=&quot;Along the Vistula River&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://c1.staticflickr.com/5/4235/35389825542_fba39c9668_c.jpg&quot; title=&quot;Gorgeous day for a stroll in Krakow&quot; rel=&quot;lightbox[devoxxpoland2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/35389825542/in/album-72157685455292516/&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/5/4235/35389825542_fba39c9668_m.jpg&quot; width=&quot;240&quot; alt=&quot;Gorgeous day for a stroll in Krakow&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://c1.staticflickr.com/5/4213/34716670334_4dc1e72a8c_c.jpg&quot; title=&quot;A beautiful day in Krakow&quot; rel=&quot;lightbox[devoxxpoland2017]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/34716670334/in/album-72157685455292516/&quot;&gt;&lt;img src=&quot;https://c1.staticflickr.com/5/4213/34716670334_4dc1e72a8c.jpg&quot; width=&quot;500&quot; alt=&quot;A beautiful day in Krakow&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    I attended the conference happy hour that evening, then journeyed to a local restaurant for some delicious food and
   fun conversations. There&apos;s a chance one of those conversations inspires
    &lt;a href=&quot;https://twitter.com/mraible/status/879148355837808640&quot;&gt;a speaking tour in South Africa next year&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    On Thursday, I attended a couple sessions on application and microservices security, and delivered my talk on PWAs
    with Ionic, Angular, and Spring Boot. You can check out my presentation below or &lt;a href=&quot;https://speakerdeck.com/mraible/pwas-with-ionic-angular-and-spring-boot-devoxx-poland-2017&quot;&gt;on Speaker
    Deck&lt;/a&gt;. 
&lt;/p&gt;
&lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;e37f9244883b4319a2650633446313a9&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;
I was amazed at the sheer size of Devoxx Poland! Not only was the venue massive, but its 2500 attendees filled it up quickly.
    Thursday evening was the speaker&apos;s dinner, on a boat no less! It was a great location, with lots of familiar faces.
&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;&lt;a href=&quot;https://twitter.com/hashtag/DevoxxPL?src=hash&quot;&gt;#DevoxxPL&lt;/a&gt; Speakers and Heroes &lt;a href=&quot;https://t.co/nat8xCS27F&quot;&gt;pic.twitter.com/nat8xCS27F&lt;/a&gt;&lt;/p&gt;&#8212; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/878004406049832961&quot;&gt;June 22, 2017&lt;/a&gt;&lt;/blockquote&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;&lt;a href=&quot;https://twitter.com/hashtag/DevoxxPL?src=hash&quot;&gt;#DevoxxPL&lt;/a&gt; Speakers and Heroes, Part II &lt;a href=&quot;https://t.co/5wNpoFweeZ&quot;&gt;pic.twitter.com/5wNpoFweeZ&lt;/a&gt;&lt;/p&gt;&#8212; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/878005090208014338&quot;&gt;June 22, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;
    Friday, I spoke about &lt;a href=&quot;https://speakerdeck.com/mraible/whats-new-in-jhipsterland-devoxx-poland-2017&quot;&gt;What&apos;s
    New in JHipsterLand&lt;/a&gt;. My presentation can be viewed below or &lt;a href=&quot;https://speakerdeck.com/mraible/whats-new-in-jhipsterland-devoxx-poland-2017&quot;&gt;on Speaker Deck&lt;/a&gt;.
    You can &lt;a href=&quot;https://speakerd.s3.amazonaws.com/presentations/ead4ec7cb572489ab67865f61767fa7c/What_s_New_in_JHipsterLand_-_Devoxx_Poland_2017.pdf&quot;&gt;download the PDF from Speaker Deck&lt;/a&gt; for clickable links.
&lt;/p&gt;
&lt;script async class=&quot;speakerdeck-embed&quot; data-id=&quot;ead4ec7cb572489ab67865f61767fa7c&quot; data-ratio=&quot;1.77777777777778&quot; src=&quot;//speakerdeck.com/assets/embed.js&quot;&gt;&lt;/script&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;Thanks &lt;a href=&quot;https://twitter.com/hashtag/DevoxxPL?src=hash&quot;&gt;#DevoxxPL&lt;/a&gt; - I had a blast! &lt;a href=&quot;https://t.co/Iho4HqTBYE&quot;&gt;pic.twitter.com/Iho4HqTBYE&lt;/a&gt;&lt;/p&gt;&amp;mdash; Matt Raible (@mraible) &lt;a href=&quot;https://twitter.com/mraible/status/878213036523126785&quot;&gt;June 23, 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;
    In other news, I&apos;ve been busy writing blog posts for the &lt;a href=&quot;https://twitter.com/oktadev&quot;&gt;@OktaDev&lt;/a&gt; blog.
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2017/06/13/add-authentication-angular-pwa&quot;&gt;Add Authentication to Your
        Angular PWA&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2017/06/15/build-microservices-architecture-spring-boot&quot;&gt;Build a
        Microservices Architecture for Microbrews with Spring Boot&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2017/06/20/develop-microservices-with-jhipster&quot;&gt;Develop and Deploy
        Microservices with JHipster&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://developer.okta.com/blog/2017/06/21/what-the-heck-is-oauth&quot;&gt;What the Heck is OAuth?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also wrote an article for &lt;a href=&quot;https://scotch.io&quot;&gt;scotch.io&lt;/a&gt; titled &quot;&lt;a href=&quot;https://scotch.io/tutorials/the-ultimate-guide-to-progressive-web-applications&quot;&gt;The Ultimate Guide to
    Progressive Web Applications&lt;/a&gt;.&quot;&lt;/p&gt;
&lt;p&gt;For the next couple of weeks, I&apos;ll be on vacation in Montana. Then it&apos;s time for
    &lt;a href=&quot;https://uberconf.com/conference/denver/2017/07/home&quot;&gt;&#220;berConf&lt;/a&gt;, &lt;a href=&quot;https://virtualjug.com/&quot;&gt;vJUG&lt;/a&gt; (with &lt;a href=&quot;https://twitter.com/starbuxman&quot;&gt;Josh Long&lt;/a&gt;!), and
    &lt;a href=&quot;https://www.okta.com/oktane17/&quot;&gt;Oktane17&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If I don&apos;t see you on the rivers in Montana or at an upcoming conference, I hope you have a great summer!
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/life_as_an_open_source</id>
        <title type="html">Life as an Open Source Developer</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/life_as_an_open_source"/>
        <published>2016-11-03T16:29:01-06:00</published>
        <updated>2016-11-03T22:30:05-06:00</updated> 
        <category term="/Open Source" label="Open Source" />
        <category term="angularjs" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angular2" scheme="http://roller.apache.org/ns/tags/" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="javascript" scheme="http://roller.apache.org/ns/tags/" />
        <category term="stormpath" scheme="http://roller.apache.org/ns/tags/" />
        <category term="springboot" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="github" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;
It&apos;s been a little over a month since I started my &lt;a href=&quot;https://raibledesigns.com/rd/entry/life_update_a_summer_to&quot;&gt;
new gig at Stormpath&lt;/a&gt;. I gotta say, life is great as an open source developer! Yes, I did start working for them as a consultant in April, so it&apos;s not a huge change for me.
However, I only recently realized I haven&apos;t written a &lt;em&gt;single line&lt;/em&gt; of proprietary code the entire time.
My &lt;a href=&quot;https://github.com/mraible&quot;&gt;GitHub contributions&lt;/a&gt; look pretty good this year. They&apos;re nothing like &lt;a href=&quot;https://github.com/mojavelinux&quot;&gt;@mojavelinux&lt;/a&gt;, 
or &lt;a href=&quot;https://github.com/dsyer&quot;&gt;@dsyer&lt;/a&gt;, but I&apos;ll get there. &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://github.com/mraible&quot; title=&quot;GitHub Profile - November 3, 2016&quot;&gt;
    &lt;img src=&quot;https://c7.staticflickr.com/6/5703/30128917414_8e7c7a8e57_z.jpg&quot; width=&quot;640&quot; alt=&quot;GitHub Profile - November 3, 2016&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;It&apos;s also been a bit more stress than I&apos;m used to. I think this comes from a couple things: 1) turning my hobby into my job and 2)
    I&apos;ve set a lot of high expectations for myself. As a developer evangelist, I get to create my own job. That means I can
    speak at the conferences I want to, write the code I want to, create the blog posts I want to, and everything else in between.
&lt;/p&gt;
&lt;p&gt;At the end of September, I finished &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/book-updated-for-jhipster-3-and-jhipster-gets-dirty&quot;&gt;updating the 
JHipster Mini-Book for JHipster 3.x&lt;/a&gt;. It&apos;s gone through tech editing and it&apos;s being copy-edited right now. I hope to release it within a week. 
&lt;/p&gt;
&lt;p&gt;In early October, I said I&apos;d commit to writing one blog post per week, develop a JHipster module for Stormpath, and help get their 
    Angular 2 support good enough for an alpha release. I&apos;m happy to report I&apos;ve been able to accomplish most of these and I hope to show off
    our Angular 2 support soon.&lt;/p&gt;
&lt;p&gt;
I then channeled my efforts into integrating Stormpath&apos;s Java SDK with their AngularJS directives. You can read about how I did that in
&lt;a href=&quot;https://stormpath.com/blog/angularjs-spring-boot-tutorial&quot;&gt;Get Started with AngularJS, Spring Boot, and Stormpath&lt;/a&gt;.
Unlike &lt;a href=&quot;https://raibledesigns.com/rd/entry/getting_started_with_angularjs&quot;&gt;my previous AngularJS tutorial&lt;/a&gt;, this one connects to a 
backend and shows how to communicate with Spring Boot cross-domain.
&lt;/p&gt;
&lt;p&gt;If you like to read code more than words, you can look at the &lt;a href=&quot;https://github.com/stormpath/angularjs-spring-boot-stormpath-example&quot;&gt;example project&apos;s commits
on GitHub&lt;/a&gt;.
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create an AngularJS UI: &lt;a href=&quot;https://github.com/stormpath/angularjs-spring-boot-stormpath-example/commit/652ee29d9a002f5d437d356481809fe74114fe7e&quot;&gt;search&lt;/a&gt; and &lt;a href=&quot;https://github.com/stormpath/angularjs-spring-boot-stormpath-example/commit/9a06e9071d5db9710c3a8555c0dfe81c752f2242&quot;&gt;edit&lt;/a&gt; features&lt;/li&gt;
&lt;li&gt;Create a Spring Boot app with Stormpath: &lt;a href=&quot;https://github.com/stormpath/angularjs-spring-boot-stormpath-example/commit/740ed84ccb16c94bfb6451c453c325b7f86fa870&quot;&gt;app from start.stormpath.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Develop an API to CRUD people with Spring Data REST: &lt;a href=&quot;https://github.com/stormpath/angularjs-spring-boot-stormpath-example/commit/f223f26dba108e864cec271b32b856423bc12d74&quot;&gt;/api/people&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Integrate AngularJS and Spring Boot apps: &lt;a href=&quot;https://github.com/stormpath/angularjs-spring-boot-stormpath-example/commit/88f43da9fc14bb59e6d1b7f36f658730029b4bd7&quot;&gt;cross-domain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Integrate Stormpath into AngularJS for login, registration and forgot password: &lt;a href=&quot;https://github.com/stormpath/angularjs-spring-boot-stormpath-example/commit/2eee2b677237f793bf4ff25b6705d9c72efc984d&quot;&gt;Stormpath Angular SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Last week, I released a &lt;a href=&quot;https://jhipster.github.io/modules/marketplace/#/details/generator-jhipster-stormpath&quot;&gt;JHipster module
 that integrates Stormpath&lt;/a&gt;. This exercise was good because I was able to identify some gaps in Stormpath&apos;s SDKs &lt;em&gt;and&lt;/em&gt; fix them.
Getting something to work made me feel good; having the ability to improve the developer experience
was even better! Of course, &lt;a href=&quot;https://stormpath.com/blog/stormpath-jhipster-application&quot;&gt;I blogged about what I learned&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
This week, I edited and code reviewed some posts from Karl Penzhorn on &lt;a href=&quot;https://stormpath.com/blog/crud-application-react-spring-boot-user-authentication&quot;&gt;
React with Spring Boot&lt;/a&gt; and using &lt;a href=&quot;https://stormpath.com/blog/optimize-react-webpack&quot;&gt;webpack with React&lt;/a&gt;. I also got to &lt;a href=&quot;https://github.com/mattlewis92/generator-angular-library/issues/14&quot;&gt;
bang my head against the wall&lt;/a&gt; writing Angular 2 tests. If you&apos;re writing a module for Angular 2, &lt;a href=&quot;https://www.npmjs.com/package/generator-angular2-module&quot;&gt;
generator-angular2-module&lt;/a&gt; provides a nice starting point.&lt;/p&gt;
&lt;p&gt;Last, but certainly not least, I&apos;ll be speaking at a few events about Microservices, JHipster, Angular 2 and Stormpath in the near feature. &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://nofluffjuststuff.com/conference/denver/2016/11/session?id=38028&quot;&gt;Rocky Mountain Software Symposium&lt;/a&gt;, November 19&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://therichwebexperience.com/conference/clearwater/2016/12/speakers/matt_raible&quot;&gt;The Rich Web Experience&lt;/a&gt;, December 9&lt;/li&gt;
    &lt;li&gt;A joint talk at &lt;a href=&quot;http://www.meetup.com/DenverJavaUsersGroup/events/231602438/&quot;&gt;Denver JUG&lt;/a&gt; with the infamous &lt;a href=&quot;https://twitter.com/starbuxman&quot;&gt;Josh Long&lt;/a&gt;, December 14&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any questions about developer evangelism, the technologies I mentioned in this post, or Stormpath, please let me know. Otherwise, I hope to see you on the road soon!
    &lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/a_delightful_trip_to_devoxx</id>
        <title type="html">A Delightful Trip to Devoxx UK and GeekOut 2016</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/a_delightful_trip_to_devoxx"/>
        <published>2016-06-12T11:13:17-06:00</published>
        <updated>2016-06-20T22:26:30-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="travel" scheme="http://roller.apache.org/ns/tags/" />
        <category term="london" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxxuk" scheme="http://roller.apache.org/ns/tags/" />
        <category term="tallinn" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="mom" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angular2" scheme="http://roller.apache.org/ns/tags/" />
        <category term="geekoutee" scheme="http://roller.apache.org/ns/tags/" />
        <category term="speaking" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;
    &lt;a data-href=&quot;https://www.flickr.com/photos/mraible/27617751605/in/album-72157666992992284/&quot; class=&quot;picture&quot; href=&quot;https://c2.staticflickr.com/8/7396/27617746825_9ff773434e_c.jpg&quot; title=&quot;We found a pub!&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot;&gt;&lt;img src=&quot;https://c2.staticflickr.com/8/7396/27617746825_9ff773434e_t.jpg&quot; width=&quot;100&quot; alt=&quot;We found a pub!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    I had the pleasure of traveling to London, England and Tallin, Estonia this past week. In London, I spoke at
    &lt;a href=&quot;http://www.devoxx.co.uk/&quot;&gt;Devoxx UK&lt;/a&gt;. In Tallin, I spoke at &lt;a href=&quot;http://2016.geekout.ee/&quot;&gt;GeekOut&lt;/a&gt;.
    I took my mom (or mum, if you
    prefer)
    and we explored the sights, enjoyed local cuisines and savored a few beverages. Our trip started with a direct
    flight from Denver to London. We arrived on Tuesday, June 7, around noon.
&lt;/p&gt;
&lt;p&gt;We were only in London for two nights, but it was enough time for us to savor excellent Indian food, fancy a walk
    through
    London, and order a bow tie. I forgot the bow tie for my &lt;a href=&quot;http://jhipster.github.io&quot;&gt;JHipster&lt;/a&gt; outfit. Luckily, I found &lt;a href=&quot;http://www.dobell.co.uk/heritage-blue-knitted-bow-tie/&quot;&gt;
        a good replacement&lt;/a&gt; and was able to order it for next-day delivery. I had to order it by 5pm and the site
    declined both my credit cards with time running out. I ended up using PayPal and got my order placed in the nick of
    time: 16:59:51.
&lt;/p&gt;

&lt;p&gt;The big news announced at Devoxx UK is that Devoxx is &lt;a href=&quot;https://devoxx.us&quot;&gt;coming to the United States in
    2017&lt;/a&gt;! I&apos;m on the program committee for this conference, so I look forward to helping make it spectacular.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c6.staticflickr.com/8/7402/27617748525_d75d56ec06_c.jpg&quot; title=&quot;Devoxx coming to US in 2017!&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/27617748525/in/album-72157666992992284/&quot;&gt;&lt;img src=&quot;https://c6.staticflickr.com/8/7402/27617748525_d75d56ec06.jpg&quot; width=&quot;500&quot; alt=&quot;Devoxx coming to US in 2017!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&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;The first ever &lt;a href=&quot;https://twitter.com/hashtag/DevoxxUS?src=hash&quot;&gt;#DevoxxUS&lt;/a&gt; is happening March 21-23, 2017 in San Jose, CA!
    &lt;a href=&quot;https://t.co/jtQe95LNOL&quot;&gt;https://t.co/jtQe95LNOL&lt;/a&gt;&lt;/p&gt;&#8212; Devoxx US (@devoxxus) &lt;a href=&quot;https://twitter.com/devoxxus/status/740466417703616512&quot;&gt;June 8, 2016&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;</summary>
        <content type="html">&lt;p&gt;
    &lt;a data-href=&quot;https://www.flickr.com/photos/mraible/27617751605/in/album-72157666992992284/&quot; class=&quot;picture&quot; href=&quot;https://c2.staticflickr.com/8/7396/27617746825_9ff773434e_c.jpg&quot; title=&quot;We found a pub!&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot;&gt;&lt;img src=&quot;https://c2.staticflickr.com/8/7396/27617746825_9ff773434e_t.jpg&quot; width=&quot;100&quot; alt=&quot;We found a pub!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    I had the pleasure of traveling to London, England and Tallin, Estonia this past week. In London, I spoke at
    &lt;a href=&quot;http://www.devoxx.co.uk/&quot;&gt;Devoxx UK&lt;/a&gt;. In Tallin, I spoke at &lt;a href=&quot;http://2016.geekout.ee/&quot;&gt;GeekOut&lt;/a&gt;.
    I took my mom (or mum, if you
    prefer)
    and we explored the sights, enjoyed local cuisines and savored a few beverages. Our trip started with a direct
    flight from Denver to London. We arrived on Tuesday, June 7, around noon.
&lt;/p&gt;
&lt;p&gt;We were only in London for two nights, but it was enough time for us to savor excellent Indian food, fancy a walk
    through
    London, and order a bow tie. I forgot the bow tie for my &lt;a href=&quot;http://jhipster.github.io&quot;&gt;JHipster&lt;/a&gt; outfit. Luckily, I found &lt;a href=&quot;http://www.dobell.co.uk/heritage-blue-knitted-bow-tie/&quot;&gt;
        a good replacement&lt;/a&gt; and was able to order it for next-day delivery. I had to order it by 5pm and the site
    declined both my credit cards with time running out. I ended up using PayPal and got my order placed in the nick of
    time:
    16:59:51.
&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[devoxxuk-geekout-2016]&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.jpg&quot; width=&quot;500&quot; alt=&quot;St. Paul&apos;s Cathedral&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://c6.staticflickr.com/8/7455/27617751605_8f634559e4_c.jpg&quot; title=&quot;River Thames&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/27617751605/in/album-72157666992992284/&quot;&gt;&lt;img src=&quot;https://c6.staticflickr.com/8/7455/27617751605_8f634559e4_m.jpg&quot; width=&quot;240&quot; alt=&quot;River Thames&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;


    &lt;a href=&quot;https://c2.staticflickr.com/8/7311/27008343553_edcb7f6ea9_c.jpg&quot; title=&quot;Sphynx&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/27008343553/in/album-72157666992992284/&quot;&gt;&lt;img src=&quot;https://c2.staticflickr.com/8/7311/27008343553_edcb7f6ea9_m.jpg&quot; width=&quot;240&quot; alt=&quot;Sphynx&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;

&lt;p&gt;The big news announced at Devoxx UK is that Devoxx is &lt;a href=&quot;https://devoxx.us&quot;&gt;coming to the United States in
    2017&lt;/a&gt;! I&apos;m on the program committee for this conference, so I look forward to helping make it spectacular.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c6.staticflickr.com/8/7402/27617748525_d75d56ec06_c.jpg&quot; title=&quot;Devoxx coming to US in 2017!&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/27617748525/in/album-72157666992992284/&quot;&gt;&lt;img src=&quot;https://c6.staticflickr.com/8/7402/27617748525_d75d56ec06.jpg&quot; width=&quot;500&quot; alt=&quot;Devoxx coming to US in 2017!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&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;The first ever &lt;a href=&quot;https://twitter.com/hashtag/DevoxxUS?src=hash&quot;&gt;#DevoxxUS&lt;/a&gt; is happening March 21-23, 2017 in San Jose, CA!
    &lt;a href=&quot;https://t.co/jtQe95LNOL&quot;&gt;https://t.co/jtQe95LNOL&lt;/a&gt;&lt;/p&gt;&#8212; Devoxx US (@devoxxus) &lt;a href=&quot;https://twitter.com/devoxxus/status/740466417703616512&quot;&gt;June 8, 2016&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;//platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;I thought both my talks went well, but I did have some issues during my Angular 2 talk. I used
    &lt;a href=&quot;https://github.com/angular/angular-cli&quot;&gt;Angular CLI&lt;/a&gt; to do the demo and IDEA kept indexing,
    which caused my live templates to fail. I later learned from an attendee (thanks!) that excluding the
    &lt;code&gt;dist&lt;/code&gt; and &lt;code&gt;tmp&lt;/code&gt;
    directories helps prevents this. You can find the &lt;a href=&quot;https://github.com/mraible/ng2-demo&quot;&gt;source code for my
        demo on GitHub&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;You can &lt;a href=&quot;www.slideshare.net/mraible/the-art-of-angular-in-2016-devoxx-uk-2016&quot;&gt;view my &quot;Art of Angular in 2016&quot; presentation on SlideShare&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=T4zsanOnKtk&quot;&gt;watch it on YouTube&lt;/a&gt;, or just click through it below.
&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;
    &lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/4Axcf5U5cJiJev&quot; width=&quot;595&quot; height=&quot;373&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;
    I also did a &lt;a href=&quot;http://www.slideshare.net/mraible/get-hip-with-jhipster-spring-boot-angularjs-bootstrap-devoxx-uk-2016&quot;&gt;presentation
    on JHipster&lt;/a&gt;, leveraging &lt;a href=&quot;https://jhipster.github.io/jdl-studio/&quot;&gt;JDL Studio&lt;/a&gt; heavily. You can
    &lt;a href=&quot;https://gist.github.com/mraible/8640fa406f32cb0f18e1aa7d73ab8022&quot;&gt;click here to see the JDL&lt;/a&gt; I used
    for my blog demo. A &lt;a href=&quot;https://www.youtube.com/watch?v=UKMn5UNaUM4&quot;&gt;video of this session is on YouTube&lt;/a&gt;.
&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;
    &lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/ztvafuoJSA4y9t&quot; width=&quot;595&quot; height=&quot;373&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;We closed out our visit to London with a fun speaker&apos;s dinner and an early morning flight to Helsinki, then Tallinn.
&lt;/p&gt;
&lt;p&gt;
    In Tallinn, we wandered through its Old Town, had some great meals and marveled at how late the sun set. We stopped
    in at the GeekOut conference&apos;s party on Thursday night. The &lt;a href=&quot;https://zeroturnaround.com/&quot;&gt;ZeroTurnaround&lt;/a&gt;
    guys did a heckuva job planning this conference.
    I loved how both the party and the conference were in large, industrial-but-modern buildings with great sound
    systems.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://c5.staticflickr.com/8/7387/27340321980_2438e8585b_c.jpg&quot; title=&quot;Tallin, Estonia&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&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.jpg&quot; width=&quot;500&quot; alt=&quot;Tallin, Estonia&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/8/7285/27340323510_94f77f5374_c.jpg&quot; title=&quot;GeekOut Party&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/27340323510/in/album-72157666992992284/&quot;&gt;&lt;img src=&quot;https://c7.staticflickr.com/8/7285/27340323510_94f77f5374_m.jpg&quot; width=&quot;240&quot; alt=&quot;GeekOut Party&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://c3.staticflickr.com/8/7366/27518144042_3335da602d_c.jpg&quot; title=&quot;Tallin Sunset&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/27518144042/in/album-72157666992992284/&quot;&gt;&lt;img src=&quot;https://c3.staticflickr.com/8/7366/27518144042_3335da602d_m.jpg&quot; width=&quot;240&quot; alt=&quot;Tallin Sunset&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    My JHipster talk went well on Friday (&lt;a href=&quot;http://www.slideshare.net/mraible/get-hip-with-jhipster-geekout-2016&quot;&gt;slides here&lt;/a&gt;)
    and my mom and I celebrated at &lt;a href=&quot;http://rataskaevu16.ee/&quot;&gt;Rataskaevu 16&lt;/a&gt; that
    evening. Then we shared laughs and
    learned how to play &lt;a href=&quot;http://jackbox.tv/&quot;&gt;jackbox.tv&lt;/a&gt; at ZeroTurnaround&apos;s post-conference party.
&lt;/p&gt;
&lt;p&gt;
    Our last night was spent in Helsinki, a 20-minute flight from Tallinn. Since my grandparents are Finnish, my mom
    delighted in hearing words from her youth along the streets. We both took advantage and relaxed in our hotel&apos;s roof
    top saunas too. We indulged in a food/wine-paired dinner over three hours that evening.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a data-href=&quot;https://www.flickr.com/photos/mraible/27518153982/in/album-72157666992992284/&quot; href=&quot;//c7.staticflickr.com/8/7342/27518153982_3ae4a9f774_c.jpg&quot; title=&quot;Homeward bound with a stop for a sauna and dinner in Helsinki&quot; rel=&quot;lightbox[devoxxuk-geekout-2016]&quot;&gt;&lt;img src=&quot;//c7.staticflickr.com/8/7342/27518153982_3ae4a9f774_n.jpg&quot; width=&quot;320&quot; alt=&quot;Homeward bound with a stop for a sauna and dinner in Helsinki&quot; style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Thanks to the organizers and good friends from Devoxx UK and GeekOut. We had a great time and are still smiling about
    &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157666992992284&quot;&gt;all our new memories&lt;/a&gt;.&lt;/p&gt;
&lt;/p&gt;&lt;strong&gt;Update on June 20, 2016:&lt;/strong&gt; Devoxx UK has posted &lt;a href=&quot;https://www.youtube.com/channel/UCxIamwHotqAAdmecaKT9WpA&quot;&gt;a channel on YouTube&lt;/a&gt; with all of its sessions. You can view my &lt;a href=&quot;https://www.youtube.com/watch?v=T4zsanOnKtk&quot;&gt;Art of Angular&lt;/a&gt; talk or &lt;a href=&quot;https://www.youtube.com/watch?v=UKMn5UNaUM4&quot;&gt;Get Hip with JHipster&lt;/a&gt;.</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/moving_appfuse_into_the_attic</id>
        <title type="html">Moving AppFuse into the Attic</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/moving_appfuse_into_the_attic"/>
        <published>2016-04-28T15:40:16-06:00</published>
        <updated>2016-04-29T13:12:19-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="opensource" scheme="http://roller.apache.org/ns/tags/" />
        <category term="appfuse" scheme="http://roller.apache.org/ns/tags/" />
        <category term="attic" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;&lt;img src=&quot;http://static.appfuse.org/images/appfuse-icon.gif&quot; class=&quot;picture&quot; style=&quot;border: 0; margin-top: -25px&quot;&gt;
In mid-February, I decided to stop working on &lt;a href=&quot;https://github.com/appfuse/appfuse&quot;&gt;AppFuse&lt;/a&gt;. My reason was simple: I was no longer getting any value from my contributions to the project. I sent &lt;a href=&quot;http://appfuse.547863.n4.nabble.com/New-version-of-AppFuse-td4657900.html&quot;&gt;a message&lt;/a&gt; to the developers mailing list the next day:&lt;/p&gt;
&lt;blockquote class=&quot;quote&quot; style=&quot;margin-left: 20px&quot;&gt;
&lt;p style=&quot;margin-top: 0&quot;&gt;Hello everyone, &lt;/p&gt;
&lt;p&gt;
Last night, I started working on AppFuse 4.0, with the following features from the roadmap: &lt;/p&gt;
&lt;ul&gt;
       &lt;li&gt;Remove XML wherever possible&lt;/li&gt;
       &lt;li&gt;Java 8&lt;/li&gt;
       &lt;li&gt;Spring Boot&lt;/li&gt;
       &lt;li&gt;Spring Data&lt;/li&gt;
       &lt;li&gt;JSR 303 (might require removing or developing client-side support)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
As I started removing XML and integrating Spring Boot and Spring Data, it quickly became apparent that it&#8217;d be a lot of work to make all of these changes. My guess is it&#8217;d take over 100 hours of my time to do everything. This is time I&#8217;d be taking away from my family and personal time. 
&lt;/p&gt;
&lt;p&gt;
At the end of last year, I wanted to make AppFuse 4.0 happen because I thought it&#8217;d help me stay up-to-date with Java technologies and learn some things along the way. As I dug into the codebase last night, I realized it&#8217;d be more of a headache than a learning experience. It seems there would be little reward for all the work. 
&lt;/p&gt;
&lt;p&gt;
Because there&#8217;s little-to-no activity on the mailing list these days, it seems like it&#8217;s the right time to shutdown the project and dedicate my free time to other open source endeavors. As you might know, I&#8217;m a big fan of JHipster (&lt;a href=&quot;http://jhipster.github.io/&quot;&gt;http://jhipster.github.io/&lt;/a&gt;). It combines AngularJS and Spring Boot and has all the features that AppFuse has - but with a more modern technology stack. 
&lt;/p&gt;
&lt;p&gt;
If we had everything hosted on GitHub, I think it&#8217;d make sense to add a line to the README that says &#8220;This project is no longer maintained&#8221;. However, since there&#8217;s a lot hosted on appfuse.org (with Confluence), it might not be that easy. Maybe it&#8217;s possible to export everything from Confluence to static HTML pages and host them somewhere with the same URLs so there&#8217;s not a bunch of 404s from shutting down the project. 
&lt;/p&gt;
&lt;p&gt;
Thank you for your contributions over the years. AppFuse was pretty cool back in the day, but now there&#8217;s better solutions. 
&lt;/p&gt;
&lt;p&gt;
Cheers, 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0&quot;&gt;
Matt&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The good news is I&apos;ve worked out a deal with &lt;a href=&quot;http://contegix.com&quot;&gt;Contegix&lt;/a&gt; to keep appfuse.org up and running for the next year. 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 be available until April 30, 2017. Bamboo and FishEye will be discontinued in the next week since they&apos;re too memory intensive for a smaller server. I&apos;d love to figure out a way to export all the documentation from Confluence to Asciidoctor so everything can be on GitHub for years to come. However, there&apos;s something to be said for just letting a project fade away rather than holding onto nostalgic artifacts.&lt;/p&gt;
&lt;p&gt;On a related note, &lt;a href=&quot;https://community.oracle.com/community/java/javanet-forge-sunset&quot;&gt;Java.net will be closing in a year from today&lt;/a&gt;. AppFuse started &lt;a href=&quot;https://sourceforge.net/projects/struts/files/appfuse/&quot;&gt;on SourceForge&lt;/a&gt;, but moved to &lt;a href=&quot;http://appfuse.java.net&quot;&gt;appfuse.java.net&lt;/a&gt; shortly after. Today, the only thing left on java.net are AppFuse&apos;s mailing lists. I suppose it makes sense that both projects will cease to exist around the same time. &lt;/p&gt;
&lt;p&gt;AppFuse&apos;s &lt;a href=&quot;https://github.com/appfuse&quot;&gt;source code will remain on GitHub&lt;/a&gt;. I have no plans to delete it.&lt;/p&gt;
&lt;p&gt;Thanks to everyone that used and contributed to AppFuse over the years. It was a pretty wild and crazy ride from 2003-2007! &lt;img src=&quot;https://raibledesigns.com/images/smileys/smile.gif&quot; class=&quot;smiley&quot; alt=&quot;:)&quot; title=&quot;:)&quot; /&gt;&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/devoxx_france_2016_springtime_in</id>
        <title type="html">Devoxx France 2016: Springtime in Paris</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/devoxx_france_2016_springtime_in"/>
        <published>2016-04-26T07:13:18-06:00</published>
        <updated>2016-04-26T13:13:18-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="infoq" scheme="http://roller.apache.org/ns/tags/" />
        <category term="javascript" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxxfr" scheme="http://roller.apache.org/ns/tags/" />
        <category term="paris" scheme="http://roller.apache.org/ns/tags/" />
        <category term="asciidoctor" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxx" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="travel" scheme="http://roller.apache.org/ns/tags/" />
        <category term="france" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angular2" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angularjs" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;I had the good fortune to visit Paris last week for &lt;a href=&quot;http://www.devoxx.fr/&quot;&gt;Devoxx France&lt;/a&gt;. When traveling
    to conferences in exotic locations,
    I like to bring a travel partner. This time, I asked my daughter, Abbie, to join me. She gladly accepted. Springtime
    in Paris can be a beautiful event. The grass is green, the flowers are blooming and the sun&apos;s rays blanket the city.
&lt;/p&gt;
&lt;p&gt;We arrived in Paris on Tuesday, April 19 and quickly found our way to our &lt;a href=&quot;http://www.lemeridienetoile.com/&quot;&gt;hotel&lt;/a&gt;.
    Its location was ideal: across the street from Le Palais des Congr&#232;s de Paris convention center and mall. Since the
    conference
    was at the convention center, it made logistics for my talks very convenient. We grabbed a quick bite after settling
    in,
    then took a 15-minute stroll to the Arc de Triomphe.
&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[devoxxfr2016]&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[devoxxfr2016]&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&gt;
    That evening, we joined Ippon developers and friends at a
    &lt;a href=&quot;http://blog.ippon.fr/2016/04/07/le-before-du-devoxx-avec-matt-raible/&quot;&gt;special event for Java Hipsters&lt;/a&gt;.
    Their
    &lt;a href=&quot;http://rooftop-work.paris/&quot;&gt;rooftop location&lt;/a&gt; had great views, cold &quot;Java&quot; beer and I met a lot of
    enthusiastic
    developers. I especially enjoyed talking with the original Java Hipster and founder of
    &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt;, &lt;a href=&quot;http://www.julien-dubois.com/&quot;&gt;Julien Dubois&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1697/26046785153_7fdd931724_c.jpg&quot; title=&quot;Java Beer!&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046785153/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1697/26046785153_7fdd931724_q.jpg&quot; width=&quot;150&quot; alt=&quot;Java Beer!&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1718/26046789653_ac527f73ec_c.jpg&quot;
       title=&quot;The original Java Hipster, Julien Dubious&quot; rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046789653/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1718/26046789653_ac527f73ec_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;The original Java Hipster, Julien Dubious&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1588/26046794363_3a057b8e6e_c.jpg&quot; title=&quot;Fun event!&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046794363/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1588/26046794363_3a057b8e6e_q.jpg&quot; width=&quot;150&quot; alt=&quot;Fun event!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The sunset over Paris provided a splendid backdrop for the festivities.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1591/26046797633_60beba62be_c.jpg&quot; title=&quot;Sunset over Paris&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046797633/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1591/26046797633_60beba62be.jpg&quot; width=&quot;500&quot; alt=&quot;Sunset over Paris&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;I had the good fortune to visit Paris last week for &lt;a href=&quot;http://www.devoxx.fr/&quot;&gt;Devoxx France&lt;/a&gt;. When traveling
    to conferences in exotic locations,
    I like to bring a travel partner. This time, I asked my daughter, Abbie, to join me. She gladly accepted. Springtime
    in Paris can be a beautiful event. The grass is green, the flowers are blooming and the sun&apos;s rays blanket the city.
&lt;/p&gt;
&lt;p&gt;We arrived in Paris on Tuesday, April 19 and quickly found our way to our &lt;a href=&quot;http://www.lemeridienetoile.com/&quot;&gt;hotel&lt;/a&gt;.
    Its location was ideal: across the street from Le Palais des Congr&#232;s de Paris convention center and mall. Since the
    conference
    was at the convention center, it made logistics for my talks very convenient. We grabbed a quick bite after settling
    in,
    then took a 15-minute stroll to the Arc de Triomphe.
&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[devoxxfr2016]&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[devoxxfr2016]&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/1634/26046780663_83b2de9696_c.jpg&quot; title=&quot;The Arc is massive!&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046780663/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1634/26046780663_83b2de9696.jpg&quot; width=&quot;500&quot; alt=&quot;The Arc is massive!&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    That evening, we joined Ippon developers and friends at a
    &lt;a href=&quot;http://blog.ippon.fr/2016/04/07/le-before-du-devoxx-avec-matt-raible/&quot;&gt;special event for Java Hipsters&lt;/a&gt;.
    Their
    &lt;a href=&quot;http://rooftop-work.paris/&quot;&gt;rooftop location&lt;/a&gt; had great views, cold &quot;Java&quot; beer and I met a lot of
    enthusiastic
    developers. I especially enjoyed talking with the original Java Hipster and founder of
    &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt;, &lt;a href=&quot;http://www.julien-dubois.com/&quot;&gt;Julien Dubois&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1697/26046785153_7fdd931724_c.jpg&quot; title=&quot;Java Beer!&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046785153/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1697/26046785153_7fdd931724_q.jpg&quot; width=&quot;150&quot; alt=&quot;Java Beer!&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1718/26046789653_ac527f73ec_c.jpg&quot;
       title=&quot;The original Java Hipster, Julien Dubious&quot; rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046789653/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1718/26046789653_ac527f73ec_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;The original Java Hipster, Julien Dubious&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1588/26046794363_3a057b8e6e_c.jpg&quot; title=&quot;Fun event!&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046794363/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1588/26046794363_3a057b8e6e_q.jpg&quot; width=&quot;150&quot; alt=&quot;Fun event!&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The sunset over Paris provided a splendid backdrop for the festivities.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1591/26046797633_60beba62be_c.jpg&quot; title=&quot;Sunset over Paris&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046797633/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1591/26046797633_60beba62be.jpg&quot; width=&quot;500&quot; alt=&quot;Sunset over Paris&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;On Wednesday, Abbie and I got up early and headed to Versailles. We toured Ch&#226;teau de Versailles, the Gardens and
    &lt;a href=&quot;http://en.chateauversailles.fr/marie-antoinettes-estate&quot;&gt;Marie-Antoinette&apos;s estate&lt;/a&gt;. I&apos;d never visited
    this
    area of Versailles and never realized what I was missing. We rented a boat and practiced rowing on the Grand Canal
    to get
    ready for rafting season.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1592/26046801963_95dafdd5b7_c.jpg&quot; title=&quot;Abbie and Louis&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26046801963/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1592/26046801963_95dafdd5b7_n.jpg&quot; width=&quot;240&quot; alt=&quot;Abbie and Louis&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1717/26584955241_4b69591dea_c.jpg&quot; title=&quot;Lots of gold at Versailles!&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26584955241/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1717/26584955241_4b69591dea_n.jpg&quot; width=&quot;240&quot;
        alt=&quot;Lots of gold at Versailles!&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/1583/26584961021_29d12506dd_c.jpg&quot; title=&quot;The Gardens&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26584961021/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1583/26584961021_29d12506dd.jpg&quot; width=&quot;500&quot; alt=&quot;The Gardens&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://farm2.staticflickr.com/1490/26044647774_97f6749313_c.jpg&quot; title=&quot;Spring in Paris is beautiful!&quot;
       rel=&quot;lightbox[devoxxfr2016]&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 style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1531/26377129570_b72406b68e_c.jpg&quot; title=&quot;Hameau de la Reine&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26377129570/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1531/26377129570_b72406b68e_q.jpg&quot; width=&quot;150&quot; alt=&quot;Hameau de la Reine&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1441/26377132120_90c70026c8_c.jpg&quot;
       title=&quot;The Queen&apos;s house and billiard room&quot; rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26377132120/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1441/26377132120_90c70026c8_q.jpg&quot; width=&quot;150&quot;
        alt=&quot;The Queen&apos;s house and billiard room&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1644/26624011386_06b02e4cee_c.jpg&quot; title=&quot;The Apollo Fountain&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26624011386/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1644/26624011386_06b02e4cee_q.jpg&quot; width=&quot;150&quot; alt=&quot;The Apollo Fountain&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    That evening, we stopped by the &lt;a href=&quot;http://uk.le-sud-restaurant.com/&quot;&gt;Restaurant Le Sud&lt;/a&gt; for the speaker&apos;s
    dinner. It was
    fun seeing familiar faces and meeting new folks.
&lt;/p&gt;
&lt;p&gt;Thursday was my first talk, but we had the morning free to explore. We headed for the Eiffel Tower and rode its north
    elevator
    straight to the top. The views where spectacular and Abbie got goosebumps from the gentle sway.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1445/26650599775_547452b330_c.jpg&quot; title=&quot;Great view from the top&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26650599775/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1445/26650599775_547452b330_m.jpg&quot; width=&quot;240&quot; alt=&quot;Great view from the top&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1588/26650603845_9df85f8e47_c.jpg&quot; title=&quot;It&apos;s a long way down&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26650603845/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1588/26650603845_9df85f8e47_m.jpg&quot; width=&quot;240&quot; alt=&quot;It&apos;s a long way down&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/1441/26650605665_a3a0a2e5a9_c.jpg&quot; title=&quot;Happiness in Paris&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26650605665/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1441/26650605665_a3a0a2e5a9_m.jpg&quot; width=&quot;240&quot; alt=&quot;Happiness in Paris&quot;
        style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1710/26624042686_d3004caf1d_c.jpg&quot; title=&quot;Tour Eiffel&quot;
       rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26624042686/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1710/26624042686_d3004caf1d_m.jpg&quot; width=&quot;240&quot; alt=&quot;Tour Eiffel&quot;
        style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    I transformed from an old-fashioned, whiskey-drinking Java developer to a Java Hipster
    &lt;a href=&quot;https://cfp.devoxx.fr/2016/talk/OJD-3590/Get_Hip_with_JHipster:_Spring_Boot_+_AngularJS_+_Bootstrap&quot;&gt;a few
        hours later&lt;/a&gt;. You can see
    the slides from my &quot;Get Hip with JHipster&quot; presentation below, or &lt;a
    href=&quot;http://www.slideshare.net/mraible/get-hip-with-jhipster-spring-boot-angularjs-bootstrap-devoxx-france-2016&quot;&gt;on
    SlideShare&lt;/a&gt;.
&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;
&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/DICuqemFX1Sjx7&quot; width=&quot;595&quot; height=&quot;373&quot; frameborder=&quot;0&quot;
        marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;
        style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;We wanted to see the &lt;a href=&quot;https://en.wikipedia.org/wiki/Catacombs_of_Paris&quot;&gt;Catacombs of Paris&lt;/a&gt; that night,
    and made it just minutes before it closed. Seeing the remains of millions of people&apos;s bones stacked on top of each other
    frightened Abbie more than standing on the glass floor in the Eiffel Tower. I experienced more heebie jeebies from
    the floor.
    We popped out of the Catacombs near the excellent
    &lt;a href=&quot;https://www.tripadvisor.com/Restaurant_Review-g187147-d5562763-Reviews-Thai_paragon-Paris_Ile_de_France.html&quot;&gt;Thai
        Paragon&lt;/a&gt; and stopped for a delicious meal.
    Abbie tried duck for the first time and loved it.
&lt;/p&gt;
&lt;p&gt;
    I had two talks on Friday, a quickie on &lt;a
    href=&quot;https://cfp.devoxx.fr/2016/talk/PGF-2414/Writing_an_InfoQ_Mini_Book_with_Asciidoctor&quot;&gt;how to write an InfoQ
    Mini-Book with Asciidoctor&lt;/a&gt;
    and a 45-minute session on &lt;a href=&quot;https://cfp.devoxx.fr/2016/talk/LUI-4351/The_Art_of_Angular_in_2016&quot;&gt;The Art of
    Angular in 2016&lt;/a&gt;.
    I wrote the InfoQ Mini-Book presentation using &lt;a href=&quot;https://github.com/opendevise/bespoke-emulating-shower&quot;&gt;Asciidoctor&apos;s
    Bespoke support&lt;/a&gt; and really enjoyed
    the experience. Thanks to &lt;a href=&quot;https://twitter.com/mojavelinux&quot;&gt;Dan Allen&lt;/a&gt; for assembling this easy to use
    starter template!
    Dan was also a great help in getting the JHipster Book printed for the first time and I was pumped to have a copy
    with me to show off.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1485/26046771893_34ea82fccc_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/26046771893/in/album-72157667022214770/&quot; title=&quot;JHipster Book in print!&quot; rel=&quot;lightbox[devoxxfr2016]&quot;&gt;
        &lt;img src=&quot;https://farm2.staticflickr.com/1485/26046771893_34ea82fccc_n.jpg&quot; width=&quot;240&quot; alt=&quot;JHipster Book in print!&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1584/26046773243_b3c3a8f4b2_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/26046773243/in/album-72157667022214770/&quot; title=&quot;heroku deploy:jar&quot; rel=&quot;lightbox[devoxxfr2016]&quot;&gt;
        &lt;img src=&quot;https://farm2.staticflickr.com/1584/26046773243_b3c3a8f4b2_n.jpg&quot; width=&quot;240&quot; alt=&quot;heroku deploy:jar&quot; style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
    You can &lt;a href=&quot;http://mraible.github.io/infoq-mini-book-presentation/&quot;&gt;view the presentation online&lt;/a&gt; and
    checkout
    &lt;a href=&quot;https://github.com/mraible/infoq-mini-book-presentation&quot;&gt;its repository on GitHub&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;For my Angular presentation, I invited Abbie to kick things off, so she could experience what it&apos;s like to speak at a
    conference.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm2.staticflickr.com/1619/26044723184_ee99bd81d9_c.jpg&quot;
       title=&quot;Moments before Abbie and I spoke about the Art of #Angular in 2016.&quot; rel=&quot;lightbox[devoxxfr2016]&quot;
       data-href=&quot;https://www.flickr.com/photos/mraible/26044723184/in/album-72157667022214770/&quot;&gt;&lt;img
        src=&quot;https://farm2.staticflickr.com/1619/26044723184_ee99bd81d9.jpg&quot; width=&quot;500&quot;
        alt=&quot;Moments before Abbie and I spoke about the Art of #Angular in 2016.&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;She did great and I followed her intro with my presentation on working with Angular 2. You can see my presentation
    below or &lt;a href=&quot;http://www.slideshare.net/mraible/the-art-of-angular-in-2016-devoxx-france-2016&quot;&gt;check it out on
        SlideShare&lt;/a&gt;.
&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;
&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/f4qsdZ0gkbnbKN&quot; width=&quot;595&quot; height=&quot;373&quot; frameborder=&quot;0&quot;
        marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;
        style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;
    At the end of the conference, we attended the &lt;a href=&quot;https://lescastcodeurs.com/&quot;&gt;Les Cast Codeurs Podcast&lt;/a&gt;. It
    was all in French, but you
    could tell everyone was having a good time from the smiles and laughter in the audience. During the session, the
    Devoxx Crew surprised me
    with a &lt;a href=&quot;https://java-champions.java.net/&quot;&gt;Java Champion&lt;/a&gt; award. I was very &lt;a href=&quot;https://twitter.com/mraible/status/723565855821443072&quot;&gt;surprised and humbled to
    receive this recognition&lt;/a&gt;. It
    was pretty cool having Abbie with me for such an honor.
&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[devoxxfr2016]&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&amp;#x27;m a Java Champion! :)&quot; rel=&quot;lightbox[devoxxfr2016]&quot;&gt;
        &lt;img src=&quot;https://farm2.staticflickr.com/1465/26044729304_080e658df0_m.jpg&quot; width=&quot;240&quot; alt=&quot;I&amp;#x27;m a Java Champion! :)&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 on Flickr &amp;rarr; &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157667022214770&quot;&gt;Devoxx France 2016&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
    Thanks to Devoxx France and Ippon Technologies for providing us with the opportunity for such a fun adventure. We
    had a blast!&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/devoxx_2015_a_java_hipster</id>
        <title type="html">Devoxx 2015: A Java Hipster Visits Belgium</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/devoxx_2015_a_java_hipster"/>
        <published>2015-11-17T00:09:43-07:00</published>
        <updated>2015-11-17T06:21:03-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="mcginityphoto" scheme="http://roller.apache.org/ns/tags/" />
        <category term="springboot" scheme="http://roller.apache.org/ns/tags/" />
        <category term="devoxx" scheme="http://roller.apache.org/ns/tags/" />
        <category term="beer" scheme="http://roller.apache.org/ns/tags/" />
        <category term="belgium" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angularjs" scheme="http://roller.apache.org/ns/tags/" />
        <category term="bootstrap" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;
    I&apos;ve been excited to show people &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt; and what it can do ever since I
    &lt;a href=&quot;//raibledesigns.com/rd/entry/getting_started_with_jhipster_on&quot;&gt;started
        using it in September 2014&lt;/a&gt;. I&apos;ve been using its core frameworks (AngularJS,
    Bootstrap and Spring Boot) for a few years and believe they do a great job to
    simplify web development. Especially for Java developers.
&lt;/p&gt;
&lt;p&gt;
    When my JHipster talk was accepted for &lt;a href=&quot;http://www.devoxx.be/&quot;&gt;Devoxx Belgium&lt;/a&gt;, I told Trish we were
    headed back to Belgium. She smiled from ear-to-ear. Belgium is one of our favorite countries
    to visit. In an effort to live healthier prior to Devoxx, I stopped drinking beer a month beforehand. I mentioned
    this to friends the week prior.
&lt;/p&gt;

&lt;blockquote class=&quot;quote&quot;&gt;
    &lt;p style=&quot;margin-top: 0&quot;&gt;One month ago, I stopped drinking beer. I hoped it&apos;d help me with &lt;a href=&quot;http://www.21-points.com&quot;&gt;www.21-points.com&lt;/a&gt;
        and weight loss. Unfortunately, it did not.&lt;/p&gt;

    &lt;p style=&quot;margin-bottom: 0&quot;&gt;
        I told myself I&apos;d start drinking beer again when 1) The Bus was finished or 2) Trish and I arrived in Belgium
        for Devoxx. Looks like #2 will win (we land on Tuesday).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We arrived in Brussels late Tuesday morning and hopped aboard a train to Antwerp. After
    arriving, we were hungry so we stopped at &lt;a href=&quot;http://www.biercentral.eu/&quot;&gt;Bier Central&lt;/a&gt; for lunch. The
    mussels and
    beer were splendid.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm6.staticflickr.com/5814/23079344391_a2c964d0df_c.jpg&quot; title=&quot;First beer in over a month, so good!&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/23079344391/&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5814/23079344391_a2c964d0df.jpg&quot; width=&quot;500&quot; alt=&quot;First beer in over a month, so good!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;
    I&apos;ve been excited to show people &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt; and what it can do ever since I
    &lt;a href=&quot;//raibledesigns.com/rd/entry/getting_started_with_jhipster_on&quot;&gt;started
        using it in September 2014&lt;/a&gt;. I&apos;ve been using its core frameworks (AngularJS,
    Bootstrap and Spring Boot) for a few years and believe they do a great job to
    simplify web development. Especially for Java developers.
&lt;/p&gt;
&lt;p&gt;
    When my JHipster talk was accepted for &lt;a href=&quot;http://www.devoxx.be/&quot;&gt;Devoxx Belgium&lt;/a&gt;, I told Trish we were
    headed back to Belgium. She smiled from ear-to-ear. Belgium is one of our favorite countries
    to visit. In an effort to live healthier prior to Devoxx, I stopped drinking beer a month beforehand. I mentioned
    this to friends the week prior.
&lt;/p&gt;

&lt;blockquote class=&quot;quote&quot;&gt;
    &lt;p style=&quot;margin-top: 0&quot;&gt;One month ago, I stopped drinking beer. I hoped it&apos;d help me with &lt;a href=&quot;http://www.21-points.com&quot;&gt;www.21-points.com&lt;/a&gt;
        and weight loss. Unfortunately, it did not.&lt;/p&gt;

    &lt;p style=&quot;margin-bottom: 0&quot;&gt;
        I told myself I&apos;d start drinking beer again when 1) The Bus was finished or 2) Trish and I arrived in Belgium
        for Devoxx. Looks like #2 will win (we land on Tuesday).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We arrived in Brussels late Tuesday morning and hopped aboard a train to Antwerp. After
    arriving, we were hungry so we stopped at &lt;a href=&quot;http://www.biercentral.eu/&quot;&gt;Bier Central&lt;/a&gt; for lunch. The
    mussels and
    beer were splendid.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm6.staticflickr.com/5814/23079344391_a2c964d0df_c.jpg&quot; title=&quot;First beer in over a month, so good!&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/23079344391/&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5814/23079344391_a2c964d0df.jpg&quot; width=&quot;500&quot; alt=&quot;First beer in over a month, so good!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    &lt;a href=&quot;https://farm6.staticflickr.com/5809/22446966053_48f252f787_c.jpg&quot; title=&quot;Breakfast at Bernardin&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/22446966053/in/dateposted-public/&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5809/22446966053_48f252f787_t.jpg&quot; width=&quot;100&quot; class=&quot;picture&quot; alt=&quot;Breakfast at Bernardin&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    We walked to our accommodations afterward, the &lt;a href=&quot;http://www.bernardin-antwerpen.be/&quot;&gt;Gernardin Guesthouse&lt;/a&gt;.
    We loved the small space, steep stairs and the nice use of space for the restroom in the upstairs closet. The
    breakfast was delightful too.
&lt;/p&gt;

&lt;p&gt;Wednesday afternoon we found ourselves strolling on a city walk around Antwerp. It was overcast, but not chilly
    and we had a fabulous lunch at &lt;a href=&quot;http://www.monantwerp.com/&quot;&gt;M&#243;n&lt;/a&gt; after taking some pictures from the top
    of the &lt;a href=&quot;http://www.mas.be/&quot; title=&quot;Museum aan de Stroom&quot;&gt;MAS&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm6.staticflickr.com/5720/23054582742_393f044782_c.jpg&quot; title=&quot;Groenplaats, Anterp, Belgium&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/23054582742&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5720/23054582742_393f044782_q.jpg&quot; width=&quot;150&quot; alt=&quot;Groenplaats, Anterp, Belgium&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/681/22446999753_d096a6c46e_c.jpg&quot; title=&quot;From the top of Mas Museum Aan De Stroom&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/22446999753&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/681/22446999753_d096a6c46e_q.jpg&quot; width=&quot;150&quot; alt=&quot;From the top of Mas Museum Aan De Stroom&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/742/22447021683_d2e0c2a5dc_c.jpg&quot; title=&quot;Lunch at M&#243;n&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/22447021683&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/742/22447021683_d2e0c2a5dc_q.jpg&quot; width=&quot;150&quot; alt=&quot;Lunch at M&#243;n&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Wednesday evening, we journeyed to the Devoxx venue to deliver my presentation. The performance went well and I heard
    lots of positive feedback almost immediately. This is one of the things I love about Devoxx: the audience tweets
    like mad and
    feedback is immediate. I also like that the presentation displays are like developers monitors; &lt;em&gt;huge!&lt;/em&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/580/23056246016_087f330f4f_c.jpg&quot; title=&quot;Scotch&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/23056246016&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/580/23056246016_087f330f4f_m.jpg&quot; width=&quot;240&quot; alt=&quot;Scotch&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://farm1.staticflickr.com/589/23082331485_995b0a29de_c.jpg&quot; title=&quot;An Old Fashioned Java Developer&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/23082331485&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/589/23082331485_995b0a29de_m.jpg&quot; width=&quot;240&quot; alt=&quot;DSC_7788.jpg&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://farm1.staticflickr.com/679/22663956718_a82441bd93_c.jpg&quot; title=&quot;JHipster!&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/22663956718&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/679/22663956718_a82441bd93_m.jpg&quot; width=&quot;240&quot; alt=&quot;JHipster!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/744/23093573791_07d2e3a9ac_c.jpg&quot; title=&quot;Immediate Feedback&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/23093573791&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/744/23093573791_07d2e3a9ac_m.jpg&quot; width=&quot;240&quot; alt=&quot;Immediate Feedback&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Devoxx made an excellent move this year: they uploaded recordings of talks to the &lt;a href=&quot;https://www.youtube.com/channel/UCCBVCTuk6uJrN3iFV_3vurg&quot;&gt;Devoxx 2015 channel on YouTube&lt;/a&gt;. Amazingly, they
    did it
    within hours for each talk! Because of this modern miracle, you can see &lt;a href=&quot;https://www.youtube.com/watch?v=baVOGuFIe9M&quot;&gt;Get Hip with
        JHipster on YouTube&lt;/a&gt; or watch it below.
&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/baVOGuFIe9M&quot; frameborder=&quot;0&quot; style=&quot;border: 1px solid black&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;http://www.slideshare.net/mraible/get-hip-with-jhipster-spring-boot-angularjs-bootstrap-devoxx-2015&quot;&gt;SlideShare&lt;/a&gt;
    |
    &lt;a href=&quot;http://static.raibledesigns.com/repository/presentations/Get_Hip_with_JHipster_Devoxx2015.pdf&quot;&gt;Download
        PDF&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
    Near the end of my presentation, I announced &lt;a href=&quot;https://twitter.com/mraible/status/664498478920388608&quot;&gt;
    the source code for 21-Points Health is available on GitHub&lt;/a&gt;. I&apos;ve had quite a few people ask for it as part of
    the &lt;a href=&quot;http://www.infoq.com/minibooks/jhipster-mini-book&quot;&gt;JHipster Mini-Book&lt;/a&gt; and it seemed like the right
    thing to do. We celebrated that night with &lt;a href=&quot;https://twitter.com/starbuxman&quot;&gt;Josh Long&lt;/a&gt; and other new friends at Bier Central.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://farm1.staticflickr.com/595/22445469834_21210403fb_c.jpg&quot; title=&quot;Java Hipsters!&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/22445469834&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/595/22445469834_21210403fb_t.jpg&quot; width=&quot;100&quot; alt=&quot;Java Hipsters!&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a data-flickr-embed=&quot;true&quot; href=&quot;https://farm1.staticflickr.com/579/23042227126_7e05081502_c.jpg&quot; title=&quot;More Cowbell!&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/23042227126&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/579/23042227126_7e05081502_t.jpg&quot; width=&quot;100&quot; alt=&quot;More Cowbell!&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://farm6.staticflickr.com/5748/22445489504_d700abc8a8_c.jpg&quot; title=&quot;New Friends at Bier Central&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/22445489504&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5748/22445489504_d700abc8a8_t.jpg&quot; width=&quot;100&quot; alt=&quot;New Friends at Bier Central&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://farm1.staticflickr.com/757/22675994129_aa9b7cfb79_c.jpg&quot; title=&quot;Cheers!&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/22675994129&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/757/22675994129_aa9b7cfb79_t.jpg&quot; width=&quot;100&quot; alt=&quot;Cheers!&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot;&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
    Thursday we visited Bruges and had a wonderful time strolling around &lt;a href=&quot;https://bezoekers.Bruges.be/en/minnewaterpark&quot;&gt;Minnewater&lt;/a&gt;,
    marveling at the buildings near the main square and taking a clip-clop tour through
    town. We barely made it to the &lt;a href=&quot;http://www.brugesbeermuseum.com/&quot;&gt;Bruges Beer Museum&lt;/a&gt; before it
    closed and had a delicious
    meal at &lt;a href=&quot;http://www.cambrinus.eu/&quot;&gt;Cambrinus&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm1.staticflickr.com/730/22461168593_40d5063088_c.jpg&quot; title=&quot;Minnewater Brugge Belgium&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/22461168593&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/730/22461168593_40d5063088.jpg&quot; width=&quot;500&quot; alt=&quot;Minnewater Brugge Belgium&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://farm6.staticflickr.com/5725/22459600664_cf3df2638f_c.jpg&quot; title=&quot;Sint-Janshospitaal Brugge West-Vlaanderen&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/22459600664&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5725/22459600664_cf3df2638f_m.jpg&quot; width=&quot;240&quot; alt=&quot;Sint-Janshospitaal Brugge West-Vlaanderen&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;

    &lt;a href=&quot;https://farm1.staticflickr.com/688/22690129029_e3da2e47a0_c.jpg&quot; title=&quot;View from Mariastraat Brugge Belgium&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/22690129029&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/688/22690129029_e3da2e47a0_m.jpg&quot; width=&quot;240&quot; alt=&quot;View from Mariastraat Brugge Belgium&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://farm6.staticflickr.com/5752/22690142739_24b443fc6a_c.jpg&quot; title=&quot;Stadhuis Brugge Belgium&quot; rel=&quot;lightbox[devoxx2015]&quot; data-href=&quot;https://www.flickr.com/photos/mcginityphoto/22690142739&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5752/22690142739_24b443fc6a.jpg&quot; width=&quot;500&quot; alt=&quot;Stadhuis Brugge Belgium&quot; style=&quot;border: 1px solid black;&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 on Flickr &amp;rarr; My &lt;a href=&quot;https://www.flickr.com/photos/mraible/albums/72157660511719478&quot;&gt;Devoxx 2015
    Album&lt;/a&gt; and Trish&apos;s &lt;a href=&quot;https://www.flickr.com/photos/mcginityphoto/albums/72157661317992265&quot;&gt;Belgium
    November 2015 Album&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
    Thanks to the Devoxx crew for a fun conference and great venue. Thanks to Belgium:
    for being so beautiful, for making savory chocolate, brewing delicious beer and
    for your wonderful people. And to the Java community: thanks
    for being so enthusiastic and fun to talk to. We love creating lasting memories
    with you! &amp;#127867;&amp;#128522;
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/the_jhipster_mini_book_how</id>
        <title type="html">The JHipster Mini-Book: How We Did It and What&apos;s Next</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/the_jhipster_mini_book_how"/>
        <published>2015-11-03T10:13:40-07:00</published>
        <updated>2015-11-03T18:28:01-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="html5" scheme="http://roller.apache.org/ns/tags/" />
        <category term="infoq" scheme="http://roller.apache.org/ns/tags/" />
        <category term="epub" scheme="http://roller.apache.org/ns/tags/" />
        <category term="book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="pdf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="asciidoctor" scheme="http://roller.apache.org/ns/tags/" />
        <category term="gradle" scheme="http://roller.apache.org/ns/tags/" />
        <category term="browsersync" scheme="http://roller.apache.org/ns/tags/" />
        <category term="mobi" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;
&lt;a href=&quot;http://www.infoq.com/minibooks/jhipster-mini-book&quot;&gt;
&lt;img src=&quot;http://www.infoq.com/resource/minibooks/jhipster-mini-book/en/cover/Cover.jpg&quot; alt=&quot;The JHipster Mini-Book&quot; width=&quot;150&quot; class=&quot;picture&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
Last Friday, the &lt;a href=&quot;http://www.infoq.com/minibooks/jhipster-mini-book&quot;&gt;JHipster Mini-Book was published on
    InfoQ&lt;/a&gt;. I wrote about this milestone on the &lt;a
    href=&quot;http://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-released&quot;&gt;book&apos;s blog&lt;/a&gt;. I&apos;m
    pumped to see this release happen, and I&apos;d like to give you a behind-the-scenes peak at how it went from idea to production.
&lt;/p&gt;
&lt;p id=&quot;the-idea&quot;&gt;&lt;strong&gt;The Idea&lt;/strong&gt;&lt;br&gt;
    At the end of last year, I wrote down my goals for 2015:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;21 Point Fitness App&lt;/li&gt;
    &lt;li&gt;JHipster Mini Book (InfoQ)&lt;/li&gt;
    &lt;li&gt;Finish Bus&lt;/li&gt;
    &lt;li&gt;New House&lt;/li&gt;
    &lt;li&gt;Good Blood Pressure&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My reason for wanting to write a JHipster Mini-Book was simple: I knew AngularJS, Bootstrap and Spring Boot quite
    well. I&apos;d used them on several projects and I really liked how &lt;a href=&quot;http://jhipster.org&quot;&gt;JHipster&lt;/a&gt; married them all together. I often ran into
    people that used these technologies, but hadn&apos;t heard of JHipster. I was hoping to make more people aware of the
    project and market my development skills at the same time.
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;
&lt;a href=&quot;http://www.infoq.com/minibooks/jhipster-mini-book&quot;&gt;
&lt;img src=&quot;http://www.infoq.com/resource/minibooks/jhipster-mini-book/en/cover/Cover.jpg&quot; alt=&quot;The JHipster Mini-Book&quot; width=&quot;150&quot; class=&quot;picture&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
Last Friday, the &lt;a href=&quot;http://www.infoq.com/minibooks/jhipster-mini-book&quot;&gt;JHipster Mini-Book was published on
    InfoQ&lt;/a&gt;. I wrote about this milestone on the &lt;a
    href=&quot;http://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-released&quot;&gt;book&apos;s blog&lt;/a&gt;. I&apos;m
    pumped to see this release happen, and I&apos;d like to give you a behind-the-scenes peak at how it went from idea to production.
&lt;/p&gt;
&lt;p id=&quot;the-idea&quot;&gt;&lt;strong&gt;The Idea&lt;/strong&gt;&lt;br&gt;
    At the end of last year, I wrote down my goals for 2015:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;21 Point Fitness App&lt;/li&gt;
    &lt;li&gt;JHipster Mini Book (InfoQ)&lt;/li&gt;
    &lt;li&gt;Finish Bus&lt;/li&gt;
    &lt;li&gt;New House&lt;/li&gt;
    &lt;li&gt;Good Blood Pressure&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My reason for wanting to write a JHipster Mini-Book was simple: I knew AngularJS, Bootstrap and Spring Boot quite
    well. I&apos;d used them on several projects and I really liked how &lt;a href=&quot;http://jhipster.org&quot;&gt;JHipster&lt;/a&gt; married them all together. I often ran into
    people that used these technologies, but hadn&apos;t heard of JHipster. I was hoping to make more people aware of the
    project and market my development skills at the same time.
&lt;/p&gt;
&lt;p&gt;The first step to accomplishing a goal is writing it down. After writing it down and sharing with friends, I sent
    an email to &lt;a href=&quot;http://www.infoq.com/author/Charles-Humble&quot;&gt;Charles Humble&lt;/a&gt;, InfoQ&apos;s Head of Editorial, in
    early January. Charles directed me to InfoQ&apos;s internal mini-book guide and recommended I create an outline and talk to the
    project owners. It took me six weeks before I created an outline and sent it to
    &lt;a href=&quot;http://www.julien-dubois.com/&quot;&gt;Julien Dubois&lt;/a&gt;. We went back-and-forth on the outline for a while and
    finalized it around the beginning of April.
&lt;/p&gt;
&lt;p&gt;
    On April 8, I delivered a &lt;a href=&quot;//raibledesigns.com/rd/entry/getting_hip_with_jhipster_at&quot;&gt;talk on JHipster&lt;/a&gt;
    at Denver&apos;s Java Users Group and announced I was writing the book.
&lt;/p&gt;

&lt;p id=&quot;asciidoctor&quot;&gt;&lt;strong&gt;The Development Process&lt;/strong&gt;&lt;br&gt;
    Early on, I&apos;d decided I wanted to write the book with AsciiDoc and build it with &lt;a href=&quot;http://asciidoctor.org/&quot;&gt;Asciidoctor&lt;/a&gt;.
    I did receive some slight push back (to use Google Docs) from InfoQ, but they were mostly supportive. Their biggest
    concern was getting it into a desktop publishing program and formatting it to fit their style. I have an email that
    says &quot;this is going to be the most expensive book we&#8217;ve ever produced!&quot;.
&lt;/p&gt;
&lt;p&gt;
    I chose Asciidoctor because I wanted to run the book development and publishing process like an open source project.
    I also found its ability to import source code quite handy. I used the &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-gradle-examples&quot;&gt;
    asciidoctor-gradle-examples project&lt;/a&gt; as a starting point, specifically the &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-gradle-examples/tree/master/asciidoc-to-all-example&quot;&gt;
    asciidoctor-to-all-example&lt;/a&gt;. I hadn&apos;t used Gradle on a project before, so I was motivated to learn it. Now that I think of it,
    I never even bothered to research how to use Asciidoctor with Maven. &lt;/p&gt;
&lt;p&gt;
    I used JIRA in the cloud ($20/month) to create tasks, organize sprints and track my progress. I broke things down by chapter,
    starting with the &lt;em&gt;UI components&lt;/em&gt; section, followed by &lt;em&gt;Building an app&lt;/em&gt;, and &lt;em&gt;API building blocks&lt;/em&gt;.
    I used the outline of the book to create my tasks. I gave myself a couple weeks for each chapter, but it ended up
    taking about a month each. I wrote the preface, introduction and everything else after the main content had been
    tech edited and was being copy edited.
&lt;/p&gt;
&lt;p&gt;
    I created a private repository on &lt;a href=&quot;https://bitbucket.org/&quot;&gt;Bitbucket&lt;/a&gt; to host the book&apos;s source control in Git.
    The only reason I chose Bitbucket over GitHub was because Bitbucket offers free private repositories. It&apos;s a shame
    they have &lt;a href=&quot;https://bitbucket.org/site/master/issues/7132/render-asciidoc-files-bb-1913#comment-22554834&quot;&gt;
    no plans to build a custom renderer for AsciiDoc&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
    I wrote the book using IntelliJ IDEA and used a combination of &lt;code&gt;./gradlew watch&lt;/code&gt; and Grunt with
    &lt;a href=&quot;http://browsersync.io&quot;&gt;Browsersync&lt;/a&gt; to refresh my browser when changes were made.
&lt;/p&gt;
&lt;p id=&quot;tech-editing&quot;&gt;&lt;strong&gt;Tech Editing&lt;/strong&gt;&lt;br&gt;
    I sent my tech editors, &lt;a href=&quot;https://twitter.com/sharpedennis&quot;&gt;Dennis Sharpe&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/kileniklawski&quot;&gt;Kile Niklawski&lt;/a&gt;,
    emails when I finished with a chapter. I gave them access to the book&apos;s repo, as well as the sample application&apos;s repo, and
    detailed how to access them. I made sure and documented how to build both projects in their README files. I asked
    Dennis and Kile to enter issues, or create branches and pull requests when they found problems. They entered a few issues on the first
    chapter, but responded via email after that. They didn&apos;t find many issues, so this process was good enough for me.
&lt;/p&gt;

&lt;p id=&quot;copy-editing&quot;&gt;&lt;strong&gt;Copy Editing&lt;/strong&gt;&lt;br&gt;
    Lawrence Nyveen copy-edited the book and was gracious enough to try my recommended process:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Checkout the source code of the book from Git.&lt;/li&gt;
    &lt;li&gt;Create a branch, make changes.&lt;/li&gt;
    &lt;li&gt;Publish the branch, create a pull request.&lt;/li&gt;
    &lt;li&gt;Have a conversation about the changes on the pull request, make more changes, merge pull request.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
This process seemed to work very well and Laurie quickly learned how to work with Git. We both
used &lt;a href=&quot;http://asciidocfx.com/&quot;&gt;AsciidocFX&lt;/a&gt; to edit and make changes. We used comments in the book&apos;s
code to ask questions to each other. AsciidocFX worked quite well, though we did find we needed to add
&lt;code&gt;:imagesdir: images&lt;/code&gt; to chapter headers to get them to render images. Having problems with image
rendering was not new, I had to create a symlink in the &lt;em&gt;chapters&lt;/em&gt; directory to the images directory
above it to get images to render in EPUB.
&lt;/p&gt;
&lt;p&gt;From the time Laurie started copy editing until he was finished was only a couple weeks.
&lt;/p&gt;

&lt;p id=&quot;publishing&quot;&gt;&lt;strong&gt;Publishing&lt;/strong&gt;&lt;br&gt;
    As I mentioned earlier, making the output look like InfoQ&apos;s mini-books was one of the biggest concerns with this book.
    InfoQ wanted to take the HTML (or PDF) version of the book, feed it into their desktop publishing program, and
    publish from there. I expressed my concerns in an email:
&lt;/p&gt;
&lt;blockquote class=&quot;quote&quot;&gt;
    The JHipster project moves pretty fast, so it&apos;ll probably be a lot of work to pump out releases as quickly as they do. 
    It&apos;s probably better to do a release per quarter with updated material. If you&apos;re going to reformat it every time we do a
    release, that could create a lot of work.
&lt;/blockquote&gt;
&lt;p&gt;They agreed and mentioned the output from Asciidoctor was looking pretty good. They asked if I could make it match
the standard InfoQ look and feel. I did some research, found out it
    &lt;a href=&quot;//raibledesigns.com/rd/entry/customizing_an_asciidoctor_pdf_so&quot;&gt;might be possible&lt;/a&gt;, and
    &lt;a href=&quot;//raibledesigns.com/rd/entry/re_customizing_an_asciidoctor_pdf&quot;&gt;went to work&lt;/a&gt;. It took me a week of
    research and a week of trial-and-error to produce the &lt;a href=&quot;http://www.infoq.com/minibooks/jhipster-mini-book&quot;&gt;
    final product&lt;/a&gt;.
&lt;/p&gt;

&lt;p id=&quot;next&quot;&gt;&lt;strong&gt;What&apos;s Next?&lt;/strong&gt;&lt;br&gt;
    The good news is the first (1.0) version of the book is in production. I have not published
    &lt;a href=&quot;http://www.21-points.com/&quot;&gt;21-Points Health&lt;/a&gt; (the example application
    for the book) as an open source project, but I may in the future. For now, I hope to do my best to keep the book (and the app) 
    up-to-date with JHipster releases. That may prove difficult, but we&apos;ll see.
&lt;/p&gt;
&lt;p&gt;
    One of the things I recommend in the book is to follow &lt;a href=&quot;https://github.com/johnpapa/angular-styleguide&quot;&gt;John Papa&apos;s Angular Style Guide&lt;/a&gt;.
    A recent &lt;a href=&quot;https://github.com/jhipster/generator-jhipster/pull/2256&quot;&gt;pull request&lt;/a&gt; does this for JHipster. I think this is an
    excellent enhancement, but it&apos;d also require me to rewrite many of the JavaScript sections of the book. It sounds like a daunting task,
    but at least it&apos;s a mini-book!
&lt;/p&gt;
&lt;p&gt;
    If you have any questions, comments or suggestions about writing with Asciidoctor or publishing with InfoQ, send them my way.
    My fastest responses will likely come from Twitter (&lt;a href=&quot;https://twitter.com/jhipster-book&quot;&gt;@jhipster_book&lt;/a&gt; or
    &lt;a href=&quot;https://twitter.com/mraible&quot;&gt;@mraible&lt;/a&gt;). You can also leave a comment here, on &lt;a href=&quot;http://www.jhipster-book.com&quot;&gt;jhipster-book.com&lt;/a&gt;,
    or post a question on Stack Overflow with the &quot;jhipster-mini-book&quot; tag.
&lt;/p&gt;
&lt;p&gt;P.S. If you live in Denver, there&apos;s a &lt;a href=&quot;http://www.meetup.com/DOSUG1/events/221213046/&quot;&gt;presentation on Asciidoctor&lt;/a&gt; by
    &lt;a href=&quot;https://twitter.com/tlberglund&quot;&gt;Tim Berglund&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/cojorado&quot;&gt;Cara Jo Miller&lt;/a&gt; tonight. I&apos;ll also be talking about
    &lt;a href=&quot;http://cfp.devoxx.be/2015/talk/KGX-5093/Get_Hip_with_JHipster:_Spring_Boot_+_AngularJS_+_Bootstrap&quot;&gt;JHipster at Devoxx&lt;/a&gt; next Wednesday.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/re_customizing_an_asciidoctor_pdf</id>
        <title type="html">RE: Customizing an Asciidoctor PDF so it looks like an InfoQ Mini-Book</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/re_customizing_an_asciidoctor_pdf"/>
        <published>2015-10-28T10:41:38-06:00</published>
        <updated>2015-11-03T04:23:49-07:00</updated> 
        <category term="/Open Source" label="Open Source" />
        <category term="infoq" scheme="http://roller.apache.org/ns/tags/" />
        <category term="mini-book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="pdf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="asciidoctor" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Last week, I wrote about &lt;a href=&quot;//raibledesigns.com/rd/entry/customizing_an_asciidoctor_pdf_so&quot;&gt;customizing an Asciidoctor PDF so it looks like an InfoQ Mini-Book&lt;/a&gt;. Shortly after writing that blog post, &lt;a href=&quot;https://twitter.com/mojavelinux&quot;&gt;Dan Allen&lt;/a&gt; responded to &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-pdf/issues/337&quot;&gt;my questions&lt;/a&gt; and &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-pdf/issues/337#issuecomment-150385192&quot;&gt;showed me how to customize Asciidoctor&apos;s PDF generation&lt;/a&gt;. I ended up using both techniques he described: creating a custom theme and using Ruby to override methods. To recap, here are the changes I was hoping to make:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The colophon is not aligned to the bottom of the page.&lt;/li&gt;
&lt;li&gt;The title page (first one after the cover) and colophon pages should be merged.&lt;/li&gt;
&lt;li&gt;The dedication and acknowledgement headers are not center-aligned and underlined like InfoQ&apos;s format.&lt;/li&gt;
&lt;li&gt;The main sections don&apos;t have whole-page delimiters.&lt;/li&gt;
&lt;li&gt;The table of contents comes right after the title page, rather than after the dedication and acknowledgement.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&apos;m happy to report that I was able to fix most these issues, except for the second one and last one. There is a &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-pdf/pull/278&quot;&gt;pull request to allow changing the location of the table of contents&lt;/a&gt;, but I was unable to make it work. I spent a good hour building the asciidoctor-pdf gem and trying to modify &lt;a href=&quot;https://github.com/asciidoctor/asciidoctorj&quot;&gt;AsciidoctorJ&lt;/a&gt; to use it. In the end, I decided to mark this as a bug in the &lt;a href=&quot;http://www.jhipster-book.com&quot;&gt;JHipster book&lt;/a&gt; and we&apos;ll fix it when Asciidoctor supports moving the table of contents. 
&lt;/p&gt;
&lt;p&gt;To customize the output, I created an &lt;code&gt;src/main/ruby/asciidoctor-pdf-extensions.rb&lt;/code&gt; file and added the following code to it:&lt;/p&gt;
&lt;pre class=&quot;brush: ruby&quot;&gt;
require &apos;asciidoctor-pdf&apos; unless defined? ::Asciidoctor::Pdf

module AsciidoctorPdfExtensions

  def layout_title_page doc
      # no title page
  end

  def layout_chapter_title node, title
    if node.id == &quot;dedication&quot; || node.id == &quot;acknowledgements&quot;
      layout_heading_custom title, align: :center
    elsif node.id.include? &quot;mini-book&quot; # colophon
      move_down 470
      layout_heading title, size: @theme.base_font_size
    elsif node.id.include? &quot;jhipster&quot; #chapters
      puts &apos;Processing &apos; + node.id + &apos;...&apos;
      move_down 120
      # set Akkurat font for all custom headings
      font &apos;Akkurat&apos;
      layout_heading &apos;PART&apos;, align: :right, size: 120, color: [91, 54, 8, 13], style: :normal
      move_up 40

      part_number = &quot;ONE&quot;
      if node.id.include? &quot;ui-components&quot;
        part_number = &quot;TWO&quot;
      elsif node.id.include? &quot;api&quot;
        part_number = &quot;THREE&quot;
      end

      layout_heading part_number, align: :right, size: 120, color: [42, 1, 83, 1], style: :bold
      layout_heading title, align: :right, color: [42, 1, 83, 1], style: :normal, size: 30
      move_up 30
      start_new_page
    else
       # delegate to default implementation
       super
    end
  end

  def layout_heading_custom string, opts = {}
      move_down 100
      typeset_text string, calc_line_metrics((opts.delete :line_height) || @theme.heading_line_height), {
          inline_format: true
      }.merge(opts)
      move_up 5
      $i = 0
      underline = &apos;&apos;
      while $i &lt; string.length do
          if string == &apos;Dedication&apos;
            underline += &apos;/////&apos;
          else
            underline += &apos;//////&apos;
          end
          $i += 1
      end
      if string == &apos;Dedication&apos;
          underline += &apos;////&apos;
      end
      typeset_text underline, calc_line_metrics((opts.delete :line_height) || @theme.heading_line_height), {
            inline_format: true, color: &apos;B0B0B0&apos;, size: 8, style: :italic
      }.merge(opts)
      move_down 20
  end

end

Asciidoctor::Pdf::Converter.prepend AsciidoctorPdfExtensions
&lt;/pre&gt;
&lt;p&gt;Then I modified &lt;code&gt;build.gradle&lt;/code&gt; to use this file.&lt;/p&gt;
&lt;pre class=&quot;brush: groovy&quot;&gt;
asciidoctor {
    backends &apos;html5&apos;, &apos;pdf&apos;, &apos;epub3&apos;
    attributes &apos;sourcedir&apos;: &apos;../../../main/webapp&apos;,
            &apos;source-highlighter&apos;: &apos;coderay&apos;,
            &apos;imagesdir&apos;: &apos;./images&apos;,
             toc: &apos;left&apos;,
             icons: &apos;font&apos;,
             linkattrs: true,
             encoding: &apos;utf-8&apos;,
            &apos;setanchors&apos;: true,
            &apos;idprefix&apos;: &apos;&apos;,
            &apos;idseparator&apos;: &apos;-&apos;,
            &apos;docinfo1&apos;: &apos;true&apos;
    requires file(&apos;src/main/ruby/asciidoctor-pdf-extensions.rb&apos;)
}
&lt;/pre&gt;
&lt;p&gt;After getting this to work, we&apos;re &lt;em&gt;very&lt;/em&gt; close to publishing the JHipster Mini-Book! Thanks to Dan for creating Asciidoctor and supporting this great open source project. It&apos;s been a pleasure to write with it and the editing process with Git and pull requests has been wonderful.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The JHipster Mini-Book &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/jhipster-mini-book-released&quot;&gt;has been released&lt;/a&gt;!&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/customizing_an_asciidoctor_pdf_so</id>
        <title type="html">Customizing an Asciidoctor PDF so it looks like an InfoQ Mini-Book</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/customizing_an_asciidoctor_pdf_so"/>
        <published>2015-10-22T14:15:21-06:00</published>
        <updated>2015-10-22T20:15:21-06:00</updated> 
        <category term="/Open Source" label="Open Source" />
        <category term="mini-book" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="infoq" scheme="http://roller.apache.org/ns/tags/" />
        <category term="pdf" scheme="http://roller.apache.org/ns/tags/" />
        <category term="asciidoctor" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;
&lt;a href=&quot;http://www.jhipster-book.com/&quot; title=&quot;The JHipster Mini-Book&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5780/21769951394_ea1f880674_m.jpg&quot; width=&quot;170&quot; style=&quot;border: 1px solid black&quot; alt=&quot;The JHipster Mini-Book&quot; class=&quot;picture&quot;&gt;&lt;/a&gt;
Earlier this month, &lt;a href=&quot;http://www.jhipster-book.com/#!/news/entry/rough-draft-is-finished&quot;&gt;I finished the rough draft of the JHipster Mini-Book&lt;/a&gt;. Since then,
I&apos;ve been working with editors to get it ready for production. I&apos;ve also been working with InfoQ to try and make the generated PDF look like their current &lt;a href=&quot;http://www.infoq.com/minibooks/&quot;&gt;mini-books&lt;/a&gt;. 
I wrote the book using &lt;a href=&quot;http://asciidoctor.org/&quot;&gt;Asciidoctor&lt;/a&gt; and I&apos;m using &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-gradle-examples&quot;&gt;Gradle&lt;/a&gt;
to generate HTML5, PDF and EPUB versions.
&lt;/p&gt;
&lt;p&gt;
After doing some research on &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc&quot;&gt;Asciidoctor PDF themes&lt;/a&gt; I 
&lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-pdf/issues/337&quot;&gt;created an issue&lt;/a&gt; in the asciidoctor-pdf project. My reason for was to see
if it was possible to customize certain sections of the generated PDF. The main issues I&apos;ve had in making the PDF look like an InfoQ mini-book are the following:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The colophon is not aligned to the bottom of the page.&lt;/li&gt;
&lt;li&gt;The title page (first one after the cover) and colophon pages should be merged.&lt;/li&gt;
&lt;li&gt;The dedication and acknowledgement headers are not center-aligned and underlined like InfoQ&apos;s format.&lt;/li&gt;
&lt;li&gt;The main sections don&apos;t have whole-page delimiters.&lt;/li&gt;
&lt;li&gt;The table of contents comes right after the title page, rather than after the dedication and acknowledgement.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
After thinking about this a bit more, I thought of a few possible workarounds.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I could add a number of line breaks at the beginning of the page to push everything down to the bottom.&lt;/li&gt;
&lt;li&gt;We could delete the title page (with Preview on a Mac or another PDF editor).&lt;/li&gt;
&lt;li&gt;We could create new PDF pages that have InfoQ&apos;s headers and my content. Then, using a PDF editor, we could delete pages and put the new ones in their place.&lt;/li&gt;
&lt;li&gt;There might be a way to have no text in a section&apos;s title (so it doesn&apos;t show up at the top of a page) and do the same copy/paste of an InfoQ section-delimiting page (with large Part One text) before the section. The hard part here might be lining up the table of contents with page numbers.&lt;/li&gt;
&lt;li&gt;Move pages around in the PDF and renumber pages using a PDF editor.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Even if all these workarounds are possible, this will only work for the PDF. InfoQ has asked me to make similar header customizations for the EPUB/MOBI versions.
&lt;p&gt;
&lt;p&gt;
I looked at the &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-pdf/blob/master/docs/theming-guide.adoc&quot;&gt;PDF theming guide&lt;/a&gt; and it looks like many things are customizable, but they&apos;re global customizations, not per-section customizations. Dedication, Acknowledgement, Preface, and Chapter Titles all live on the same level (level 2). I believe it&apos;s possible to customize how they all look, but I haven&apos;t figured out how to change an individual title. 
&lt;/p&gt;
&lt;p&gt;
The only thing I can think of beyond these workarounds are 1) hiring someone to create a custom theme for InfoQ or 2) forking the project and trying to make customizations to the source code myself.
&lt;/p&gt;
&lt;p&gt;
I haven&apos;t had any feedback from the Asciidoctor team, so I&apos;m posting this here to try and reach a wider audience. If you&apos;ve authored a book in Asciidoctor, did you customize the output to fit your publisher&apos;s desired format, or did you just take the out as-is and publish it?
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/angular_summit_2015</id>
        <title type="html">Angular Summit 2015</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/angular_summit_2015"/>
        <published>2015-10-01T10:29:31-06:00</published>
        <updated>2015-10-08T21:32:22-06:00</updated> 
        <category term="/The Web" label="The Web" />
        <category term="aurelia" scheme="http://roller.apache.org/ns/tags/" />
        <category term="javascript" scheme="http://roller.apache.org/ns/tags/" />
        <category term="bootstrap" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angular2" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angularjs" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring-boot" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="meteor" scheme="http://roller.apache.org/ns/tags/" />
        <category term="es6" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;
  I was in Boston this week, speaking and attending the very first &lt;a href=&quot;http://angularsummit.com&quot;&gt;Angular Summit&lt;/a&gt;. I had the privilege of delivering the opening keynote on Monday. I spoke about the Art of Angular
  and used a slide deck similar to &lt;a href=&quot;//raibledesigns.com/rd/entry/the_art_of_angularjs_in&quot;&gt;last time&lt;/a&gt;. I did
  update the presentation to show the astronomical growth of AngularJS in terms of candidate skills (on LinkedIn) and job opportunities (on Dice.com)&lt;sup&gt;1&lt;/sup&gt;.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://farm1.staticflickr.com/691/21198424124_e9b9b37afb_c.jpg&quot; title=&quot;LinkedIn Skills Growth for JavaScript MVC Frameworks&quot; rel=&quot;lightbox[angularsummit2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/21198424124/in/dateposted-public/&quot;&gt;&lt;img src=&quot;https://farm1.staticflickr.com/691/21198424124_e9b9b37afb_c.jpg&quot; width=&quot;300&quot; alt=&quot;LinkedIn Skills Growth for JavaScript MVC Frameworks&quot; style=&quot;border: 1px solid black;&quot;&gt;&lt;/a&gt;
&lt;a href=&quot;https://farm6.staticflickr.com/5808/21633143850_9aef93d361_c.jpg&quot; title=&quot;Dice.com Job Growth for JavaScript MVC Frameworks&quot; rel=&quot;lightbox[angularsummit2015]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/21633143850/in/dateposted-public/&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5808/21633143850_9aef93d361_c.jpg&quot; width=&quot;300&quot; alt=&quot;Dice.com Job Growth for JavaScript MVC Frameworks&quot; style=&quot;border: 1px solid black; margin-left: 15px&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I mentioned the recently announced &lt;a href=&quot;http://angularjs.blogspot.com/2015/08/angular-1-and-angular-2-coexistence.html&quot;&gt;good news for Angular 2&lt;/a&gt;:
  &lt;/p&gt;&lt;ul&gt;
  &lt;li&gt;We&apos;re enabling mixing of Angular 1 and Angular 2 in the same application.&lt;/li&gt;
  &lt;li&gt;You can mix Angular 1 and Angular 2 components in the same view.&lt;/li&gt;
  &lt;li&gt;Angular 1 and Angular 2 can inject services across frameworks.&lt;/li&gt;
  &lt;li&gt;Data binding works across frameworks.&lt;/li&gt;
  &lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;In related news, &lt;a href=&quot;https://twitter.com/cdoremus&quot;&gt;Craig Doremus&lt;/a&gt; recently posted a &lt;a href=&quot;https://github.com/cdoremus/state-geo-angular&quot;&gt;state-geo-angular&lt;/a&gt; project
  that shows how you can develop an Angular 1.x application that will be easy to upgrade to Angular 2.x.
  Thanks Craig!
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/vaTKWLA8oVDr8z&quot; width=&quot;600&quot; height=&quot;377&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen=&quot;&quot;&gt; &lt;/iframe&gt;
&lt;/p&gt;

&lt;div style=&quot;text-align: right; max-width: 600px; margin: -20px auto 10px auto&quot;&gt;
    &lt;a href=&quot;//raibledesigns.com/rd/page/publications&quot;&gt;Download&lt;/a&gt; | &lt;a href=&quot;//www.slideshare.net/mraible/the-art-of-angularjs-in-2015-angular-summit-2015&quot;&gt;SlideShare&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;After my keynote, I attended &lt;a href=&quot;https://twitter.com/prpatel&quot;&gt;Pratik Patel&lt;/a&gt;&apos;s session on &lt;a href=&quot;https://angularsummit.com/conference/boston/2015/09/session?id=34208&quot;&gt;High Performance JavaScript Web Apps&lt;/a&gt;.
  Pratik pointed out &lt;a href=&quot;http://mobitest.akamai.com&quot;&gt;mobitest.akamai.com&lt;/a&gt; for testing an app&apos;s performance and seeing its blocking resources. He also mentioned
  &lt;a href=&quot;http://speedgun.io/&quot;&gt;speedgun.io&lt;/a&gt; (currently unavailable) for capturing performance numbers as part of a continuous integration process. Finally,
  he recommended &lt;a href=&quot;http://addyosmani.com/blog/video-javascript-memory-management-masterclass/&quot;&gt;Addy Somani&apos;s JavaScript Memory Management Masterclass&lt;/a&gt;.
&lt;p&gt;
My second presentation was about &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt;. Near the end of the presentation,
I mentioned that I hope to finish the &lt;a href=&quot;http://www.jhipster-book.com/&quot;&gt;JHipster Book&lt;/a&gt; this month. Writing presentations for
&lt;a href=&quot;//raibledesigns.com/rd/entry/springone_2gx_2015_my_presentations&quot;&gt;SpringOne 2GX&lt;/a&gt; and the Angular Summit occupied a lot of my free time in September. Now that it&apos;s October, I&apos;ll be dedicating my free time to finishing the book. In fact, I think I can finish the rough draft this week!
&lt;/p&gt;&lt;p style=&quot;text-align: center&quot;&gt;
&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/769Ne9avDiEeWl&quot; width=&quot;600&quot; height=&quot;377&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen=&quot;&quot;&gt; &lt;/iframe&gt;
&lt;/p&gt;

&lt;div style=&quot;text-align: right; max-width: 600px; margin: -20px auto 10px auto&quot;&gt;
&lt;a href=&quot;//raibledesigns.com/rd/page/publications&quot;&gt;Download&lt;/a&gt; | &lt;a href=&quot;//www.slideshare.net/mraible/get-hip-with-jhipster-spring-boot-angularjs-bootstrap-angular-summit-2015&quot;&gt;SlideShare&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
  For the last session of the day, I attended &lt;a href=&quot;https://twitter.com/johnlindquist&quot;&gt;John Lindquist&apos;s&lt;/a&gt; session on &lt;a href=&quot;http://angularsummit.com/conference/boston/2015/09/session?id=34230&quot;&gt;Angular 2 Components&lt;/a&gt;. John showed us
  how &lt;em&gt;everything is a component in Angular 2&lt;/em&gt;. He also said &quot;now is the time to learn ES6&quot; and built an
  &lt;a href=&quot;https://github.com/johnlindquist/angular-2-quickstart&quot;&gt;Angular 2 ToDo App&lt;/a&gt; using ES6 and a bit of TypeScript. You might recognize John&apos;s name; he&apos;s the founder of &lt;a href=&quot;http://egghead.io/&quot;&gt;egghead.io&lt;/a&gt;, an excellent
  site for &lt;a href=&quot;https://egghead.io/playlists/new-to-angular-start-here&quot;&gt;learning Angular&lt;/a&gt; with bite-sized videos.
&lt;/p&gt;
&lt;p&gt;Tuesday morning started with a &lt;a href=&quot;http://angularsummit.com/conference/boston/2015/09/session?id=34187&quot;&gt;
  Angular 2.0 keynote&lt;/a&gt; from &lt;a href=&quot;https://twitter.com/ppavlovich&quot;&gt;Peter Pavlovich&lt;/a&gt;. I really enjoyed
  this session and received lots of good tips about getting ready for Angular 2. The tweet below from
  Ksenia Dmitrieva shows his advice.
&lt;/p&gt;
&lt;div style=&quot;margin: 0 auto; max-width: 500px;&quot;&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Best Practices for &lt;a href=&quot;https://twitter.com/hashtag/angularjs?src=hash&quot;&gt;#angularjs&lt;/a&gt; 1.X if you plan to switch to 2.0 by &lt;a href=&quot;https://twitter.com/ppavlovich&quot;&gt;@ppavlovich&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/AngularSummit?src=hash&quot;&gt;#AngularSummit&lt;/a&gt; &lt;a href=&quot;http://t.co/9nobqDc9G9&quot;&gt;pic.twitter.com/9nobqDc9G9&lt;/a&gt;&lt;/p&gt;&amp;mdash; Ksenia Dmitrieva (@KseniaDmitrieva) &lt;a href=&quot;https://twitter.com/KseniaDmitrieva/status/648865784152915968&quot;&gt;September 29, 2015&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;My biggest takeaway was to start following &lt;a href=&quot;https://github.com/johnpapa/angular-styleguide&quot;&gt;John Papa&apos;s Angular Style Guide&lt;/a&gt; &lt;abbr title=&quot;As Soon As Possible&quot;&gt;ASAP&lt;/abbr&gt;.
&lt;p&gt;The first session I attended on Tuesday was &lt;a href=&quot;https://twitter.com/JuddFlamm&quot;&gt;Judd Flamm&lt;/a&gt;&apos;s &lt;a href=&quot;https://angularsummit.com/conference/boston/2015/09/session?id=34298&quot;&gt;Google Material Design &amp;amp; Angular&lt;/a&gt;.
  I&apos;m using &lt;a href=&quot;https://fezvrasta.github.io/bootstrap-material-design/&quot;&gt;Material Design for Bootstrap&lt;/a&gt; on a side project, so I was interested in learning more about its inspiration.
  We learned that &lt;a href=&quot;https://design.google.com/&quot;&gt;Google Design&lt;/a&gt; has everything you need to know about why Material Design exists. We also
  learned about &lt;a href=&quot;https://material.angularjs.org&quot;&gt;Angular Material&lt;/a&gt; and spent most of the session looking at its components. Judd
  recommended &lt;a href=&quot;https://github.com/angular/material-start&quot;&gt;Angular Material-Start&lt;/a&gt; for those looking to get started quickly with both frameworks.
  Judd was a very entertaining speaker; I highly recommend you attend one of his talks if you get the opportunity.
&lt;/p&gt;
&lt;p&gt;After being dazzled by Peter&apos;s knowledge of Angular 2 in Tuesday&apos;s keynote, I attended two more of his talks: one on &lt;a href=&quot;https://www.meteor.com/&quot;&gt;Meteor&lt;/a&gt; and
  another on &lt;a href=&quot;http://aurelia.io/&quot;&gt;Aurelia&lt;/a&gt;. I&apos;ve known about Meteor for a while, but have become more intrigued by it lately with its
  &lt;a href=&quot;http://www.infoq.com/news/2015/09/meteor-12-ecmascript&quot;&gt;1.2 release&lt;/a&gt; and &lt;a href=&quot;http://info.meteor.com/blog/official-angular-support-with-angular-meteor-1.0.0&quot;&gt;Angular support&lt;/a&gt;. Meteor&apos;s
  command line tools that auto-inject CSS and JS demoed very well, as did it&apos;s installable features like a LESS support and Facebook authentication.
&lt;/p&gt;
&lt;p&gt;After hearing all the good things about Angular 2 from Peter, it was interesting to hear him downplay it in his Aurelia talk later that day. When he started showing code,
  it was pretty obvious that Aurelia is doing a great job of simplifying JavaScript MVC syntax for developers. You can develop components with almost half the
    code that Angular 2 requires, and it uses ES6, &lt;a href=&quot;http://jspm.io/&quot;&gt;jspm&lt;/a&gt; and &lt;a href=&quot;https://github.com/systemjs/systemjs&quot;&gt;SystemJS&lt;/a&gt;.
    If you&apos;re developing JavaScript, learning these tools will help prepare you for the future. It&apos;s cool that Aurelia encourages learning things you should learn anyway.
  &lt;/p&gt;
  &lt;p&gt;Aurelia and Angular 2 are both still in Alpha, so I&apos;m not sure it makes sense to use them on a project this year. However, I do think it&apos;s important to track
    them both. I especially think it&apos;s interesting that the founder of Aurelia, &lt;a href=&quot;http://twitter.com/EisenbergEffect&quot;&gt;Rob Eisenberg&lt;/a&gt;,
    &lt;a href=&quot;http://eisenbergeffect.bluespire.com/leaving-angular/&quot;&gt;left the Angular Team&lt;/a&gt; in November 2014 and &lt;a href=&quot;http://blog.durandal.io/2015/01/26/introducing-aurelia/&quot;&gt;
      announced Aurelia&lt;/a&gt; in January 2015 (&lt;a href=&quot;https://news.ycombinator.com/item?id=8948665&quot;&gt;Hacker News thread&lt;/a&gt;). Peter mentioned several times that Aurelia wants to help developers write apps,
      while AngularJS is more tied to helping Google write apps.
  &lt;/p&gt;
&lt;p&gt;
  There were around 400 people at Angular Summit, which I think is pretty good for a first-run conference. As with most No Fluff Just Stuff shows, it ran smoothly, had
    plenty of time between sessions and was filled with knowledgeable, entertaining speakers. It was fun doing my first keynote and I look forward to speaking again in November
    (at &lt;a href=&quot;http://www.devoxx.be/&quot;&gt;Devoxx&lt;/a&gt;) and December (at
    &lt;a href=&quot;http://www.therichwebexperience.com/conference/fort_lauderdale/2015/12/home&quot;&gt;The Rich Web Experience&lt;/a&gt;).
  &lt;/head&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: .9em&quot;&gt;1. I know Dice.com is probably not a great site, but it makes sense to use it since I&apos;ve
been tracking JavaScript MVC framework job stats on it since February 2014.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/grails_angular_vs_jhipster</id>
        <title type="html">Grails + Angular vs. JHipster</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/grails_angular_vs_jhipster"/>
        <published>2015-07-14T08:02:01-06:00</published>
        <updated>2015-07-14T14:02:01-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring-boot" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angularjs" scheme="http://roller.apache.org/ns/tags/" />
        <category term="grails" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;I recently received an email from a long time follower of my comparing web frameworks research and presentations. He asked some interesting questions:
&lt;/p&gt;
&lt;p class=&quot;quote&quot;&gt;
I am starting on a new venture to build a direct to consumer web application. I am planning to leverage Cloud services to build my CI/CD pipeline. I am very strong with Java Backend/middleware and learning Javascript Front-end frameworks. I love Spring and SOFEA. Having said that, I am wondering if I should use Grails + Angular or JHipster? My primary concern with JHipster is there is hardly any &#8216;community&apos;, there is Julien and whatever he says/thinks goes! Can you give me some pointers?
&lt;/a&gt;
&lt;p&gt;I imagine there&apos;s other JVM developers with similar questions, so I figured I&apos;d publish my response for all to see.&lt;/p&gt;
&lt;div class=&quot;quote&quot;&gt;
&lt;p style=&quot;margin-top: 0&quot;&gt;
JHipster may have a smaller community than Grails, but remember that it&apos;s built on Spring Boot and AngularJS. Both have huge communities. In fact, Grails 3 is built on Spring Boot, just like JHipster. 
&lt;/p&gt;
&lt;p&gt;
Even though JHipster generates your code in Java, there&apos;s nothing preventing you from writing your code in Groovy or Scala. I dig JHipster, but I&apos;ve also worked with AngularJS and Spring Boot for a couple years. The fact that someone put these technologies together and makes it easy to work with them is awesome. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0&quot;&gt;
I like JHipster so much, I decided to write a book on it. I hope to finish it in the next couple months and have it published in the fall. It&apos;ll be a free download from InfoQ. Learn more at &lt;a href=&quot;http://www.jhipster-book.com/&quot;&gt;http://www.jhipster-book.com&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Yes, I&apos;m probably a bit biased since I&apos;m writing a JHipster book. However, it&apos;s been easy for me to introduce and use Spring Boot at my last few clients. They were already using Spring, so the transition to using a Spring simplifier was a no-brainer. I haven&apos;t had as much luck getting clients to adopt Grails, even though I&apos;ve suggested it. That could change now that it&apos;s based on Spring Boot.&lt;/p&gt;
&lt;p&gt;What&apos;s your experience? Would you recommend Grails + Angular over JHipster? If so, why?</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/getting_hip_with_jhipster_at</id>
        <title type="html">Getting Hip with JHipster at Denver&apos;s Java User Group</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/getting_hip_with_jhipster_at"/>
        <published>2015-04-09T08:31:54-06:00</published>
        <updated>2015-04-09T19:20:43-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="angularjs" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring-boot" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="bootstrap" scheme="http://roller.apache.org/ns/tags/" />
        <category term="html5" scheme="http://roller.apache.org/ns/tags/" />
        <category term="yeoman" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;Last night, I had the pleasure of &lt;a href=&quot;http://www.meetup.com/DenverJavaUsersGroup/events/220309287/&quot;&gt;speaking at Denver&apos;s Java User Group Meetup about JHipster&lt;/a&gt;. I&apos;ve been a big fan of &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt; ever since I started using it last fall. I developed a quick prototype for a client and wrote about &lt;a href=&quot;//raibledesigns.com/rd/entry/getting_started_with_jhipster_on&quot;&gt;solving some issues I had with it on OS X&lt;/a&gt;. I like the project because it encapsulates the primary open source tools I&apos;ve been using for the last couple of years: &lt;a href=&quot;http://projects.spring.io/spring-boot/&quot;&gt;Spring Boot&lt;/a&gt;, &lt;a href=&quot;https://angularjs.org/&quot;&gt;AngularJS&lt;/a&gt; and &lt;a href=&quot;http://getbootstrap.com/&quot;&gt;Bootstrap&lt;/a&gt;. I also wrote about its &lt;a href=&quot;http://www.infoq.com/news/2015/01/jhipster-2.0&quot;&gt;2.0 release&lt;/a&gt; on InfoQ in January.
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;https://farm9.staticflickr.com/8820/16900780428_7093ff1754_c.jpg&quot; rel=&quot;lightbox[jhipsterdjug]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/16900780428&quot; title=&quot;My Hipster Getup by Matt Raible, on Flickr&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8820/16900780428_7093ff1754_t.jpg&quot; width=&quot;100&quot; height=&quot;67&quot; alt=&quot;My Hipster Getup&quot; class=&quot;picture&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/a&gt;
To add some humor to my talk, I showed up as a well-dressed Java Developer. Like a mature gentleman might do, I started the evening with a glass of scotch (Glenlivet 12). Throughout the talk I became more hip and adjusted my attire, and beverage, accordingly. As you might expect, my demos had failures. The initial project creation stalled during Bower&apos;s &lt;em&gt;download all JavaScript dependencies&lt;/em&gt;. Luckily, I had a backup and was able to proceed. Towards the end, when I tried to deploy to Heroku, I was presented with a lovely message that &quot;Heroku toolbelt updating, please try again later&quot;. I guess auto-updating has its downsides. &lt;/p&gt;
&lt;p&gt;After finishing the demo, I cracked open a cold PBR to ease my frustration.&lt;/p&gt;
&lt;p&gt;I did two live coding sessions during this presentation; standing on the shoulders of giants to do so. I modeled Josh Long&apos;s &lt;a href=&quot;http://www.joshlong.com/jl/blogPost/tech_tip_geting_started_with_spring_boot.html&quot;&gt;Getting Started with Spring Boot&lt;/a&gt; to create a quick introduction to Spring Boot. IntelliJ IDEA 14.1 has a &lt;a href=&quot;http://blog.jetbrains.com/idea/2015/03/develop-spring-boot-applications-more-productively-with-intellij-idea-14-1/&quot;&gt;nice way to create Spring Boot projects&lt;/a&gt;, so that came in handy.  For the JHipster portion, I created a blogging app and used relationships and business logic similar to what Julien Dubois did in his &lt;a href=&quot;https://spring.io/blog/2015/03/31/webinar-replay-jhipster-for-spring-boot&quot;&gt;JHipster for Spring Boot Webinar&lt;/a&gt;. Watching Josh and Julien&apos;s demos will give you a similar experience to what DJUG attendees experienced last night, without the download/deployment failures.
&lt;/p&gt;
&lt;p&gt;You can click through my presentation below, download it from &lt;a href=&quot;//raibledesigns.com/rd/page/publications&quot;&gt;my
    presentations page&lt;/a&gt;, or &lt;a href=&quot;http://www.slideshare.net/mraible/get-hip-with-jhipster&quot;&gt;view it on SlideShare&lt;/a&gt;.
&lt;/p&gt;
&lt;div style=&quot;text-align: center&quot;&gt;
&lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/46814366&quot; width=&quot;512&quot; height=&quot;325&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;You might notice my &lt;a href=&quot;http://www.slideshare.net/mraible/get-hip-with-jhipster/32&quot;&gt;announcement on slide #32&lt;/a&gt; that I&apos;ve signed up to write a book on JHipster.&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
&lt;a href=&quot;https://farm9.staticflickr.com/8825/17062597206_60a5bd6e19_c.jpg&quot; data-href=&quot;https://www.flickr.com/photos/mraible/17062597206&quot; rel=&quot;lightbox[jhipsterdjug]&quot; title=&quot;The JHipster Mini-Book by Matt Raible&quot;&gt;&lt;img src=&quot;https://farm9.staticflickr.com/8825/17062597206_60a5bd6e19.jpg&quot; width=&quot;500&quot; alt=&quot;The JHipster Mini-Book&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I haven&apos;t started writing the book yet, but I have been talking with &lt;a href=&quot;http://infoq.com&quot;&gt;InfoQ&lt;/a&gt; and other folks about it for several months. I plan to use &lt;a href=&quot;https://github.com/asciidoctor/asciidoctor-gradle-examples&quot;&gt;Asciidoctor and Gradle&lt;/a&gt; as my authoring tools. If you have experience writing a book with these tools, I&apos;d love to hear about it. If you&apos;ve developed an application with JHipster and have some experience in the trenches, I&apos;d love to hear your stories too. 
&lt;/p&gt;
&lt;p&gt;
As I told DJUG last night, I plan to be done with the book in a few months. However, if you&apos;ve been a reader of this blog, you&apos;ll know I&apos;ve been planning to be done with my &apos;66 VW Bus in &lt;em&gt;just a few more months&lt;/em&gt; for quite some time, so that phrase has an interesting meaning for me. &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/converting_an_application_to_jhipster</id>
        <title type="html">Converting an Application to JHipster</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/converting_an_application_to_jhipster"/>
        <published>2015-02-12T09:28:59-07:00</published>
        <updated>2015-02-12T15:29:50-07:00</updated> 
        <category term="/Java" label="Java" />
        <category term="groovy" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jpa" scheme="http://roller.apache.org/ns/tags/" />
        <category term="scala" scheme="http://roller.apache.org/ns/tags/" />
        <category term="springboot" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring" scheme="http://roller.apache.org/ns/tags/" />
        <category term="angularjs" scheme="http://roller.apache.org/ns/tags/" />
        <category term="java" scheme="http://roller.apache.org/ns/tags/" />
        <category term="dosug" scheme="http://roller.apache.org/ns/tags/" />
        <content type="html">&lt;p&gt;&lt;a href=&quot;http://jhipster.github.io/&quot;&gt;&lt;img src=&quot;http://jhipster.github.io/images/logo-jhipster.png&quot; class=&quot;picture&quot; width=&quot;94&quot;&gt;&lt;/a&gt;
I&apos;ve been intrigued by &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt; ever since I first tried it &lt;a href=&quot;http://raibledesigns.com/rd/entry/getting_started_with_jhipster_on&quot;&gt;last September&lt;/a&gt;. I&apos;d worked with AngularJS and Spring Boot quite a bit, and I liked the idea that someone had combined them, adding some nifty features along the way. When I &lt;a href=&quot;http://raibledesigns.com/rd/entry/the_art_of_angularjs_in&quot;&gt;spoke about AngularJS&lt;/a&gt; earlier this month, I included &lt;a href=&quot;http://www.slideshare.net/mraible/the-art-of-angularjs-in-2015/67&quot;&gt;a few slides on JHipster&lt;/a&gt; near the end of the presentation.&lt;/p&gt;
&lt;p&gt;This week, I received an email from someone who attended that presentation. &lt;/p&gt;
&lt;blockquote class=&quot;quote&quot;&gt;
&lt;p style=&quot;margin-top: 0&quot;&gt;Hey Matt,&lt;br&gt;
We met a few weeks back when you presented at DOSUG. You were talking about JHipster which I had been eyeing for a few months and wanted your quick .02 cents.&lt;/p&gt;
&lt;p&gt;
I have built a pretty heavy application over the last 6 months that is using mostly the same tech as JHipster. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;Spring&lt;/li&gt;
&lt;li&gt;JPA&lt;/li&gt;
&lt;li&gt;AngularJS&lt;/li&gt;
&lt;li&gt;Compass&lt;/li&gt;
&lt;li&gt;Grunt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
It&apos;s ridiculously close for most of the tech stack. So, I was debating rolling it over into a JHipster app to make it a more familiar stack for folks. My concern is that it I will spend months trying to shoehorn it in for not much ROI. Any thoughts on going down this path?
What are the biggest issues you&apos;ve seen in using JHipster?
It seems pretty straightforward except for the entity generators. I&apos;m concerned they are totally different than what I am using. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0&quot;&gt;
The main difference in what I&apos;m doing compared to JHipster is my almost complete use of groovy instead of old school Java in the app. I would have to be forced into going back to regular java beans...
Thoughts?&lt;/p&gt; 
&lt;/blockquote&gt;
&lt;p&gt;I replied with the following advice:&lt;/p&gt;
&lt;blockquote class=&quot;quote&quot;&gt;
&lt;p style=&quot;margin-top: 0&quot;&gt;
JHipster is great for starting a project, but I don&apos;t know that it buys you much value after the first few months. I would stick with your current setup and consider JHipster for your next project. I&apos;ve only prototyped with it, I haven&apos;t created any client apps or put anything in production. I have with Spring Boot and AngularJS though, so I like that JHipster combines them for me.
&lt;/p&gt;
&lt;p&gt;
JHipster doesn&apos;t generate Scala or Groovy code, but you could still use them in a project as long as you had Maven/Gradle configured properly. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0&quot;&gt;
You might try generating a new app with JHipster and examine how they&apos;re doing this. At the very least, it can be a good learning tool, even if you&apos;re not using it directly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Java Hipsters: Do you agree with this advice? Have you tried migrating an existing app to JHipster? Are any of you using Scala or Groovy in your JHipster projects?&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/developing_services_with_apache_camel3</id>
        <title type="html">Developing Services with Apache Camel - Part IV: Load Testing and Monitoring</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/developing_services_with_apache_camel3"/>
        <published>2014-10-15T10:04:01-06:00</published>
        <updated>2015-07-16T16:49:37-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="camel" scheme="http://roller.apache.org/ns/tags/" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="scala" scheme="http://roller.apache.org/ns/tags/" />
        <category term="apachecamel" scheme="http://roller.apache.org/ns/tags/" />
        <category term="gatling" scheme="http://roller.apache.org/ns/tags/" />
        <category term="hawtio" scheme="http://roller.apache.org/ns/tags/" />
        <category term="spring-boot" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;
&lt;a href=&quot;http://gatling.io&quot;&gt;&lt;img src=&quot;//raibledesigns.com/repository/images/gatling.png&quot; width=&quot;150&quot; class=&quot;picture&quot; alt=&quot;Gatling&quot;&gt;&lt;/a&gt;
    Welcome to the final article in a series on my experience developing services with
    &lt;a href=&quot;http://camel.apache.org&quot;&gt;Apache Camel&lt;/a&gt;. I learned how to implement CXF endpoints using its
    Java DSL, made sure everything worked with its testing framework and integrated Spring Boot
    for external configuration. For previous articles, please see the following:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://raibledesigns.com/rd/entry/developing_services_with_apache_camel
&quot;&gt;Part I: The Inspiration&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://raibledesigns.com/rd/entry/developing_services_with_apache_camel1
&quot;&gt;Part II: Creating and Testing Routes&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://raibledesigns.com/rd/entry/developing_services_with_apache_camel2
&quot;&gt;Part III: Integrating Spring 4 and Spring Boot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    This article focuses on load testing and tools for monitoring application performance. In late July, I was
    asked to look into load testing the new Camel-based services I&apos;d developed. My client&apos;s reason was simple:
    to make sure the new services were as fast as the old ones (powered by IBM Message Broker).
    I sent &lt;a href=&quot;http://camel.465427.n5.nabble.com/Load-Testing-Camel-Routes-td5754610.html&quot;&gt;an
    email&lt;/a&gt; to the Camel users mailing list asking for advice on load testing.
&lt;/p&gt;
&lt;div class=&quot;quote&quot;&gt;
    &lt;p style=&quot;margin-top: 0&quot;&gt;
        I&apos;m getting ready to put a Camel / CXF / Spring Boot application into production. Before I do, I want to load
        test and verify it has the same throughput as a the IBM Message Broker system it&apos;s replacing. Apparently, the
        old system can only do 6 concurrent connections because of remote database connectivity issues.
    &lt;/p&gt;

    &lt;p style=&quot;margin-bottom: 0&quot;&gt;
        I&apos;d like to write some tests that make simultaneous requests, with different data. Ideally, I could write them
        to point at the old system and find out when it falls over. Then I could point them at the new system and tune
        it accordingly. If I need to throttle because of remote connectivity issues, I&apos;d like to know before we go to
        production. Does JMeter or any Camel-related testing tools allow for this?
    &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
    In reply, I received suggestions for &lt;a href=&quot;http://httpd.apache.org/docs/2.2/programs/ab.html&quot;&gt;Apache&apos;s ab
    tool&lt;/a&gt;
    and &lt;a href=&quot;http://gatling.io/&quot;&gt;Gatling&lt;/a&gt;. I&apos;d heard of Gatling before, and decided to try it.
&lt;/p&gt;

&lt;h3 id=&quot;summary&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;This article shows how to use Gatling to load test a SOAP service and how to configure Log4j2 with Spring Boot. It
    also shows how hawtio can help monitor and configure a Camel application. I hope you enjoyed reading this series
    on what I learned about developing with Camel over the past several months. If you have stories about your experience with Camel (or similar integration frameworks), Gatling, hawtio or New Relic, I&apos;d love to hear them.
&lt;/p&gt;

&lt;p&gt;
It&apos;s been a great experience and I look forward to developing solid apps, built on open source, for my next client. I&apos;d like to
    get back into HTML5, AngularJS and mobile development. I&apos;ve had a good time with Spring Boot and JHipster this year
    and hope to use them again. I find myself using Java 8 more and more; my ideal next project would embrace it as a
    baseline. As for Scala and Groovy, I&apos;m still a big fan and believe I can develop great apps with them.
&lt;/p&gt;
&lt;p&gt;
    If you&apos;re looking for a UI/API Architect that can help accelerate your projects, please &lt;a href=&quot;http://raibledesigns.com/contact.jsp&quot;&gt;let me know&lt;/a&gt;! You can learn more about my extensive experience from &lt;a href=&quot;https://www.linkedin.com/in/mraible&quot;&gt;my LinkedIn profile&lt;/a&gt;.
&lt;/p&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function adjustWhereThingsAre() {
    var readMore = document.getElementById(&apos;readmore&apos;);
    document.getElementById(&apos;summary&apos;).insertAdjacentHTML(&apos;beforebegin&apos;, readMore.outerHTML);
    readMore.outerHTML = null;
}
window.setTimeout(adjustWhereThingsAre, 500);
&lt;/script&gt;
&lt;p id=&quot;readmore&quot;&gt;</summary>
        <content type="html">&lt;p&gt;
    Welcome to the final article in a series on my experience developing services with
    &lt;a href=&quot;http://camel.apache.org&quot;&gt;Apache Camel&lt;/a&gt;. I learned how to implement CXF endpoints using its
    Java DSL, made sure everything worked with its testing framework and integrated Spring Boot
    for external configuration. For previous articles, please see the following:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://raibledesigns.com/rd/entry/developing_services_with_apache_camel
&quot;&gt;Part I: The Inspiration&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://raibledesigns.com/rd/entry/developing_services_with_apache_camel1
&quot;&gt;Part II: Creating and Testing Routes&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://raibledesigns.com/rd/entry/developing_services_with_apache_camel2
&quot;&gt;Part III: Integrating Spring 4 and Spring Boot&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    This article focuses on load testing and tools for monitoring application performance. In late July, I was
    asked to look into load testing the new Camel-based services I&apos;d developed. My client&apos;s reason was simple:
    to make sure the new services were as fast as the old ones (powered by IBM Message Broker).
    I sent &lt;a href=&quot;http://camel.465427.n5.nabble.com/Load-Testing-Camel-Routes-td5754610.html&quot;&gt;an
    email&lt;/a&gt; to the Camel users mailing list asking for advice on load testing.
&lt;/p&gt;
&lt;div class=&quot;quote&quot;&gt;
    &lt;p style=&quot;margin-top: 0&quot;&gt;
        I&apos;m getting ready to put a Camel / CXF / Spring Boot application into production. Before I do, I want to load
        test and verify it has the same throughput as a the IBM Message Broker system it&apos;s replacing. Apparently, the
        old system can only do 6 concurrent connections because of remote database connectivity issues.
    &lt;/p&gt;

    &lt;p style=&quot;margin-bottom: 0&quot;&gt;
        I&apos;d like to write some tests that make simultaneous requests, with different data. Ideally, I could write them
        to point at the old system and find out when it falls over. Then I could point them at the new system and tune
        it accordingly. If I need to throttle because of remote connectivity issues, I&apos;d like to know before we go to
        production. Does JMeter or any Camel-related testing tools allow for this?
    &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
    In reply, I received suggestions for &lt;a href=&quot;http://httpd.apache.org/docs/2.2/programs/ab.html&quot;&gt;Apache&apos;s ab
    tool&lt;/a&gt;
    and &lt;a href=&quot;http://gatling.io/&quot;&gt;Gatling&lt;/a&gt;. I&apos;d heard of Gatling before, and decided to try it.
&lt;/p&gt;

&lt;h3 id=&quot;gatling&quot;&gt;Gatling&lt;/h3&gt;

&lt;p&gt;
&lt;a href=&quot;http://gatling.io&quot;&gt;&lt;img src=&quot;//raibledesigns.com/repository/images/gatling.png&quot; width=&quot;150&quot; class=&quot;picture&quot; alt=&quot;Gatling&quot;&gt;&lt;/a&gt;
    I don&apos;t remember where I first heard of Gatling, but I knew it had a Scala DSL and used
    &lt;a href=&quot;http://akka.io&quot;&gt;Akka&lt;/a&gt; under the covers.
    I generated a new project using a &lt;a href=&quot;https://github.com/gatling/gatling-highcharts-maven-archetype&quot;&gt;Maven
    archetype&lt;/a&gt; and went to work developing my first test.
    My approach involved three steps:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Write tests to run against current system. Find the number of concurrent requests that make it fall over.&lt;/li&gt;
    &lt;li&gt;Run tests against new system and tune accordingly.&lt;/li&gt;
    &lt;li&gt;Throttle requests if there are remote connectivity issues with 3rd parties. If I needed to throttle requests, I was planning to use Camel&apos;s
    &lt;a href=&quot;http://camel.apache.org/throttler.html&quot;&gt;Throttler&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
    To develop the first test, I started with Gatling&apos;s &lt;a href=&quot;http://gatling.io/docs/2.0.1/quickstart.html#using-the-recorder&quot;&gt;
    Recorder.&lt;/a&gt; I set it to listen on port 8000, changed my &lt;code&gt;DrugServiceITest&lt;/code&gt; to use the same port and
    ran the integration test. This was a great way to get started because it recorded my requests as XML files, and used
    clean and concise code.
&lt;/p&gt;

&lt;p&gt;I ended up creating a parent class for all simulations and named it &lt;code&gt;AbstractSimulation&lt;/code&gt;. This was handy
    because it allowed me to pass in parameters for all the values I wanted to change.&lt;/p&gt;

&lt;pre class=&quot;brush: scala&quot;&gt;import io.gatling.core.scenario.Simulation
import io.gatling.http.Predef._

/**
 * Base Simulation class that allows passing in parameters.
 */
class AbstractSimulation extends Simulation {

  val host = System.getProperty(&quot;host&quot;, &quot;localhost:8080&quot;)
  val serviceType = System.getProperty(&quot;service&quot;, &quot;modern&quot;)
  val nbUsers = Integer.getInteger(&quot;users&quot;, 10).toInt
  val rampRate = java.lang.Long.getLong(&quot;ramp&quot;, 30L).toLong

  val httpProtocol = http
    .baseURL(&quot;http://&quot; + host)
    .acceptHeader(&quot;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&quot;)
    .doNotTrackHeader(&quot;1&quot;)
    .acceptLanguageHeader(&quot;en-US,en;q=0.5&quot;)
    .acceptEncodingHeader(&quot;gzip, deflate&quot;)
    .userAgentHeader(&quot;Gatling 2.0&quot;)

  val headers = Map(
    &quot;&quot;&quot;Cache-Control&quot;&quot;&quot; -&amp;gt; &quot;&quot;&quot;no-cache&quot;&quot;&quot;,
    &quot;&quot;&quot;Content-Type&quot;&quot;&quot; -&amp;gt; &quot;&quot;&quot;application/soap+xml; charset=UTF-8&quot;&quot;&quot;,
    &quot;&quot;&quot;Pragma&quot;&quot;&quot; -&amp;gt; &quot;&quot;&quot;no-cache&quot;&quot;&quot;)
}
&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;DrugServiceSimulation.scala&lt;/code&gt; class posts a SOAP request over HTTP.&lt;/p&gt;
&lt;pre class=&quot;brush: scala&quot;&gt;import io.gatling.core.Predef._
import io.gatling.http.Predef._

import scala.concurrent.duration._

class DrugServiceSimulation extends AbstractSimulation {

  val service = if (&quot;modern&quot;.equals(serviceType)) &quot;/api/drugs&quot; else &quot;/axis2/services/DrugService&quot;

  val scn = scenario(&quot;Drug Service :: findGpiByNdc&quot;)
    .exec(http(host)
    .post(service)
    .headers(headers)
    .body(RawFileBody(&quot;DrugServiceSimulation_request.xml&quot;)))

  setUp(scn.inject(ramp(nbUsers users) over (rampRate seconds))).protocols(httpProtocol)
}
&lt;/pre&gt;
&lt;p&gt;
    To run tests against the legacy drug service with 100 users over 60 seconds, I used the following command:
&lt;/p&gt;
&lt;pre&gt;mvn test -Dhost=legacy.server:7802 -Dservice=legacy -Dusers=100 -Dramp=60
&lt;/pre&gt;
&lt;p&gt;The &lt;em&gt;service&lt;/em&gt; property&apos;s default is &quot;modern&quot; and determines the service&apos;s URL. To run against the local drug
    service with 100 users over 30 seconds, I could rely on more defaults.&lt;/p&gt;
&lt;pre&gt;mvn test -Dusers=100
&lt;/pre&gt;
&lt;p&gt;The name of the simulation to run is configured in pom.xml:&lt;/p&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;plugin&amp;gt;
    &amp;lt;groupId&amp;gt;io.gatling&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;gatling-maven-plugin&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${gatling.version}&amp;lt;/version&amp;gt;
    &amp;lt;configuration&amp;gt;
        &amp;lt;simulationsFolder&amp;gt;src/test/scala&amp;lt;/simulationsFolder&amp;gt;
        &amp;lt;simulationClass&amp;gt;com.company.app.${service.name}Simulation&amp;lt;/simulationClass&amp;gt;
    &amp;lt;/configuration&amp;gt;
    &amp;lt;executions&amp;gt;
        &amp;lt;execution&amp;gt;
            &amp;lt;phase&amp;gt;test&amp;lt;/phase&amp;gt;
            &amp;lt;goals&amp;gt;
                &amp;lt;goal&amp;gt;execute&amp;lt;/goal&amp;gt;
            &amp;lt;/goals&amp;gt;
        &amp;lt;/execution&amp;gt;
    &amp;lt;/executions&amp;gt;
&amp;lt;/plugin&amp;gt;
&lt;/pre&gt;
&lt;p&gt;When the simulations were done running, the console displayed a link to some pretty snazzy HTML reports. I ran
    simulations
    until things started falling over on the legacy server. That happened at around 400 requests per second (rps). When I ran
    them against
    a local instance on my fully-loaded 2013 MacBook Pro, errors started flying at 4000/rps while 3000/rps performed
    just fine.&lt;/p&gt;
&lt;h4 id=&quot;jenkins&quot;&gt;Jenkins&lt;/h4&gt;

&lt;p&gt;I configured simulations to run in Jenkins with the &lt;a href=&quot;https://wiki.jenkins-ci.org/display/JENKINS/Gatling+Plugin&quot;&gt;
    Gatling Plugin&lt;/a&gt;. It&apos;s a neat plugin that allows you to record and compare results over time. After initial
    setup, I found
    I didn&apos;t use it much. Instead, I created a Google Doc with my findings and created screenshots of results so my
    client had it in an easy-to-read format.
&lt;/p&gt;
&lt;h4 id=&quot;gatling-data-feeders&quot;&gt;Data Feeders&lt;/h4&gt;

&lt;p&gt;I knew the results of the simulations were likely skewed, since the same request was used for all users. I researched
    how to make dynamic requests with Gatling and found &lt;a href=&quot;http://gatling.io/docs/2.0.1/session/feeder.html&quot;&gt;Feeders&lt;/a&gt;.
    Using a JDBC Feeder I was able make all the requests contain unique data for each user. 
&lt;/p&gt;

&lt;p&gt;I added a feeder to &lt;code&gt;DrugServiceSimulation&lt;/code&gt;, added it to the scenario and changed to use an &lt;a href=&quot;http://stackoverflow.com/questions/21143077/gatling-2-mapping-values-to-template&quot;&gt;ELFileBody&lt;/a&gt; so
    the feeder would substitute a ${NDC} variable in the XML file.&lt;/p&gt;

&lt;pre class=&quot;brush: scala&quot;&gt;val feeder = jdbcFeeder(&quot;jdbc:db2://server:50002/database&quot;, &quot;username&quot;, &quot;password&quot;,
    &quot;SELECT NDC FROM GENERICS&quot;)

val scn = scenario(&quot;Drug Service&quot;)
        .feed(feeder)
        .exec(http(host)
        .post(service)
        .headers(headers)
        .body(ELFileBody(&quot;DrugServiceSimulation_request.xml&quot;)))
&lt;/pre&gt;
&lt;p&gt;I deployed the new services to a test server and ran simulations with 100 and 1000 users. &lt;/p&gt;

&lt;blockquote&gt;
    &lt;dl&gt;
        &lt;dt&gt;&lt;strong&gt;100 users over 30 seconds&lt;/strong&gt;&lt;/dt&gt;
        &lt;dd&gt;Neither service had any failures with 100 users. The max response time for the legacy service was 389 ms,
            while
            the new service was 172 ms. The mean response time was lower for the legacy services: 89 ms vs. 96 ms.
        &lt;/dd&gt;
        &lt;dt&gt;&lt;strong&gt;1000 users over 60 seconds&lt;/strong&gt;&lt;/dt&gt;
        &lt;dd&gt;
            When simulating 1000 users against the legacy services, 50% of the requests failed and the average response
            time was
            over 40 seconds. Against the new services, all requests succeeded and the mean response time was 100ms.
        &lt;/dd&gt;
    &lt;/dl&gt;
&lt;/blockquote&gt;
&lt;p&gt;I was pumped to see the new services didn&apos;t need any additional performance enhancements. These results were enough to convince my client that Apache Camel was going to be a performant replacement for IBM Message Broker.&lt;/p&gt;

&lt;p&gt;I wrote more simulations for another service I developed. In doing so, I discovered I missed implementing a couple
    custom routes for some clients. The dynamic feeders made me stumble onto this because they executed simulations
    for all clients. After developing the routes, the dynamic data helped me uncover a few more bugs. Using real
    data to load test with was very helpful in figuring out the edge-cases our routes needed to handle.
&lt;/p&gt;

&lt;p&gt;Next, I started configuring logging for our new Camel services.&lt;/p&gt;
&lt;h3 id=&quot;logging&quot;&gt;Logging with Log4j2&lt;/h3&gt;

&lt;p&gt;Log4j 2.0 had &lt;a href=&quot;http://www.infoq.com/news/2014/07/apache-log4j2&quot;&gt;just been released&lt;/a&gt; and my experience &lt;a href=&quot;https://github.com/appfuse/appfuse/pull/18&quot;&gt;integrating it in AppFuse&lt;/a&gt; motivated me to use it for this project. I configured Spring to use Log4j 2.0 by specifying the following dependencies. Note: Spring Boot 1.2+ has &lt;a href=&quot;http://docs.spring.io/spring-boot/docs/1.2.0.M2/reference/htmlsingle/#howto-configure-log4j-for-logging&quot;&gt;support for Log4j2&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;log4j.version&amp;gt;2.0&amp;lt;/log4j.version&amp;gt;
...

&amp;lt;!-- logging --&amp;gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.slf4j&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;slf4j-api&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.7.7&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;!-- Necessary to configure Spring logging with log4j2.xml --&amp;gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.apache.logging.log4j&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;log4j-jcl&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${log4j.version}&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.apache.logging.log4j&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;log4j-slf4j-impl&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${log4j.version}&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.apache.logging.log4j&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;log4j-web&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${log4j.version}&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/pre&gt;
&lt;p&gt;I created a &lt;code&gt;src/main/resources/log4j2.xml&lt;/code&gt; file and configured a general log, as well as one for each
    route. I configured
    each route to use &quot;log:com.company.app.route.input&quot; and &quot;log:com.company.app.route.output&quot; instead of &quot;log:input&quot;
    and &quot;log:output&quot;. This
    allowed the log-file-per-route configuration you see below.&lt;/p&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;Configuration&amp;gt;
    &amp;lt;Properties&amp;gt;
        &amp;lt;Property name=&quot;fileLogDir&quot;&amp;gt;/var/log/app-name&amp;lt;/Property&amp;gt;
        &amp;lt;Property name=&quot;fileLogPattern&quot;&amp;gt;%d %p %c: %m%n&amp;lt;/Property&amp;gt;
        &amp;lt;Property name=&quot;fileLogTriggerSize&quot;&amp;gt;1 MB&amp;lt;/Property&amp;gt;
        &amp;lt;Property name=&quot;fileLogRolloverMax&quot;&amp;gt;10&amp;lt;/Property&amp;gt;
    &amp;lt;/Properties&amp;gt;
    &amp;lt;Appenders&amp;gt;
        &amp;lt;Console name=&quot;Console&quot; target=&quot;SYSTEM_OUT&quot;&amp;gt;
            &amp;lt;PatternLayout pattern=&quot;%d [%-15.15t] %-5p %-30.30c{1} %m%n&quot;/&amp;gt;
        &amp;lt;/Console&amp;gt;
        &amp;lt;RollingFile name=&quot;File&quot; fileName=&quot;${fileLogDir}/all.log&quot;
                         filePattern=&quot;${fileLogDir}/all-%d{yyyy-MM-dd}-%i.log&quot;&amp;gt;
            &amp;lt;PatternLayout pattern=&quot;${fileLogPattern}&quot;/&amp;gt;
            &amp;lt;Policies&amp;gt;
                &amp;lt;SizeBasedTriggeringPolicy size=&quot;${fileLogTriggerSize}&quot;/&amp;gt;
            &amp;lt;/Policies&amp;gt;
            &amp;lt;DefaultRolloverStrategy max=&quot;${fileLogRolloverMax}&quot;/&amp;gt;
        &amp;lt;/RollingFile&amp;gt;
        &amp;lt;RollingFile name=&quot;DrugServiceFile&quot; fileName=&quot;${fileLogDir}/drug-service.log&quot;
                         filePattern=&quot;${fileLogDir}/drug-service-%d{yyyy-MM-dd}-%i.log&quot;&amp;gt;
            &amp;lt;PatternLayout pattern=&quot;${fileLogPattern}&quot;/&amp;gt;
            &amp;lt;Policies&amp;gt;
                &amp;lt;SizeBasedTriggeringPolicy size=&quot;${fileLogTriggerSize}&quot;/&amp;gt;
            &amp;lt;/Policies&amp;gt;
            &amp;lt;DefaultRolloverStrategy max=&quot;${fileLogRolloverMax}&quot;/&amp;gt;
        &amp;lt;/RollingFile&amp;gt;
        &amp;lt;!-- Add a RollingFile for each route --&amp;gt;
    &amp;lt;/Appenders&amp;gt;

    &amp;lt;Loggers&amp;gt;
        &amp;lt;Logger name=&quot;org.apache.camel&quot; level=&quot;info&quot;/&amp;gt;
        &amp;lt;Logger name=&quot;org.springframework&quot; level=&quot;error&quot;/&amp;gt;
        &amp;lt;Logger name=&quot;com.company.app&quot; level=&quot;info&quot;/&amp;gt;

        &amp;lt;Root level=&quot;error&quot;&amp;gt;
            &amp;lt;AppenderRef ref=&quot;Console&quot;/&amp;gt;
            &amp;lt;AppenderRef ref=&quot;File&quot;/&amp;gt;
        &amp;lt;/Root&amp;gt;

        &amp;lt;Logger name=&quot;com.company.app.drugs&quot; level=&quot;debug&quot;&amp;gt;
            &amp;lt;AppenderRef ref=&quot;DrugServiceFile&quot;/&amp;gt;
        &amp;lt;/Logger&amp;gt;
        &amp;lt;!-- Add a Logger for each route --&amp;gt;
    &amp;lt;/Loggers&amp;gt;
&amp;lt;/Configuration&amp;gt;
&lt;/pre&gt;
&lt;p&gt;I did run into some issues with this configuration:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;The &lt;code&gt;/var/log/app-name&lt;/code&gt; directory has to exist or
        there&apos;s a stacktrace on startup and no logs are written.
    &lt;/li&gt;
    &lt;li&gt;When deploy from Jenkins, I ran into permissions issues between deploys. To fix this, I &lt;em&gt;chowned&lt;/em&gt; the
        directory before restarting Tomcat.
&lt;pre&gt;chown -R tomcat /var/log/app-name
/etc/init.d/tomcat start&lt;/pre&gt;
    &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;monitoring&quot;&gt;Monitoring&lt;/h3&gt;

&lt;p&gt;
&lt;a href=&quot;http://hawt.io&quot;&gt;&lt;img src=&quot;//raibledesigns.com/repository/images/hawtio-logo.png&quot; width=&quot;150&quot; class=&quot;picture&quot; alt=&quot;hawtio&quot; style=&quot;margin-top: -20px&quot;&gt;&lt;/a&gt;
    While I was configuring the new services on our test server, I also installed &lt;a href=&quot;http://hawt.io&quot;&gt;hawtio&lt;/a&gt; at
    /console.
    I had previously configured it to run in Tomcat when running &quot;mvn tomcat7:run&quot;:
&lt;/p&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;&amp;lt;plugin&amp;gt;
    &amp;lt;groupId&amp;gt;org.apache.tomcat.maven&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;tomcat7-maven-plugin&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;2.2&amp;lt;/version&amp;gt;
    &amp;lt;configuration&amp;gt;
        &amp;lt;path&amp;gt;/&amp;lt;/path&amp;gt;
        &amp;lt;webapps&amp;gt;
            &amp;lt;webapp&amp;gt;
                &amp;lt;contextPath&amp;gt;/console&amp;lt;/contextPath&amp;gt;
                &amp;lt;groupId&amp;gt;io.hawt&amp;lt;/groupId&amp;gt;
                &amp;lt;artifactId&amp;gt;hawtio-web&amp;lt;/artifactId&amp;gt;
                &amp;lt;version&amp;gt;1.4.19&amp;lt;/version&amp;gt;
                &amp;lt;type&amp;gt;war&amp;lt;/type&amp;gt;
                &amp;lt;asWebapp&amp;gt;true&amp;lt;/asWebapp&amp;gt;
            &amp;lt;/webapp&amp;gt;
        &amp;lt;/webapps&amp;gt;
    &amp;lt;/configuration&amp;gt;
    ...
&amp;lt;/plugin&amp;gt;
&lt;/pre&gt;

&lt;p&gt;
    hawtio has a &lt;a href=&quot;http://hawt.io/plugins/camel/&quot;&gt;Camel plugin&lt;/a&gt; that&apos;s pretty slick. It shows all your routes
    and their runtime metrics; you can even edit the source code for routes. Even though I used a Java DSL, my routes are
    only editable as XML in hawtio. &lt;a href=&quot;http://www.davsclaus.com/2014/09/more-metrics-in-apache-camel-214.html&quot;&gt;Claus Ibsen has a good post&lt;/a&gt; on Camel&apos;s new &lt;a href=&quot;http://camel.apache.org/metrics-component.html&quot;&gt;Metrics Component&lt;/a&gt;. I&apos;d like to learn how to build a custom dashboard for hawtio - Claus&apos;s example looks pretty nice.
&lt;/p&gt;
&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm4.staticflickr.com/3929/15540039275_908787e992_c.jpg&quot; title=&quot;Route Metrics by Matt Raible, on Flickr&quot; rel=&quot;lightbox[camel4]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/15540039275&quot;&gt;&lt;img src=&quot;https://farm4.staticflickr.com/3929/15540039275_908787e992_q.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; alt=&quot;Route Metrics&quot; style=&quot;border: 1px solid silver&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm6.staticflickr.com/5613/15353416019_6d60d5a233_c.jpg&quot; title=&quot;Camel Dashboard by Matt Raible, on Flickr&quot; rel=&quot;lightbox[camel4]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/15353416019&quot;&gt;&lt;img src=&quot;https://farm6.staticflickr.com/5613/15353416019_6d60d5a233_q.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; alt=&quot;Camel Dashboard&quot; style=&quot;margin-left: 15px; border: 1px solid silver&quot;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;The Spring Boot plugin for hawtio is not nearly as graphic intensive. Instead, it just displays metrics and their values in a
    table format.&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;
    &lt;a href=&quot;https://farm6.staticflickr.com/5603/15353183979_00894810fb_c.jpg&quot; title=&quot;hawtio Spring Boot plugin by Matt Raible, on Flickr&quot; rel=&quot;lightbox[camel4]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/15353183979&quot;&gt;
        &lt;img src=&quot;https://farm6.staticflickr.com/5603/15353183979_00894810fb_n.jpg&quot; width=&quot;320&quot; alt=&quot;hawtio Spring Boot plugin&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;There&apos;s some good-looking Spring Boot Admin UIs out there, notably JHipster&apos;s and the one in
    &lt;a href=&quot;https://blog.codecentric.de/en/2014/09/spring-boot-admin-first-official-release/&quot;&gt;spring-boot-admin&lt;/a&gt;. I hope the hawtio Spring Boot plugin gets prettier as it matures.
&lt;/p&gt;

&lt;p style=&quot;text-align: center&quot;&gt;

    &lt;a href=&quot;https://farm4.staticflickr.com/3936/15516103636_c2218300d8_c.jpg&quot; title=&quot;JHipster Metrics by Matt Raible, on Flickr&quot; rel=&quot;lightbox[camel4]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/15516103636&quot;&gt;&lt;img src=&quot;https://farm4.staticflickr.com/3936/15516103636_c2218300d8_q.jpg&quot; width=&quot;150&quot; alt=&quot;JHipster Metrics&quot; style=&quot;border: 1px solid silver&quot;&gt;&lt;/a&gt;
    &lt;a href=&quot;https://farm4.staticflickr.com/3944/15354176680_4c8fd7902e_c.jpg&quot; title=&quot;Spring Boot Admin Metrics by Matt Raible, on Flickr&quot; rel=&quot;lightbox[camel4]&quot; data-href=&quot;https://www.flickr.com/photos/mraible/15354176680&quot;&gt;&lt;img src=&quot;https://farm4.staticflickr.com/3944/15354176680_4c8fd7902e_q.jpg&quot; width=&quot;150&quot; alt=&quot;Spring Boot Admin Metrics&quot; style=&quot;margin-left: 15px; border: 1px solid silver&quot;&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;I wanted more than just monitoring, I wanted alerts when something went wrong. For that, I installed &lt;a href=&quot;https://docs.newrelic.com/docs/agents/java-agent/getting-started/new-relic-java&quot;&gt;New Relic&lt;/a&gt; on our
    Tomcat server. I&apos;m fond of getting the Monday reports, but they only showed activity when I was load testing.
&lt;/p&gt;

&lt;p&gt;I believe all these monitoring tools will be very useful once the app is in production. My last day with this client
    is next Friday, October 24. I&apos;m trying to finish up the last couple of services this week and next. With any luck,
    their IBM Message Broker will be replaced this year.&lt;/p&gt;

&lt;h3 id=&quot;summary&quot;&gt;Summary&lt;/h3&gt;

&lt;p&gt;This article shows how to use Gatling to load test a SOAP service and how to configure Log4j2 with Spring Boot. It
    also shows how hawtio can help monitor and configure a Camel application. I hope you enjoyed reading this series
    on what I learned about developing with Camel over the past several months. If you have stories about your experience with Camel (or similar integration frameworks), Gatling, hawtio or New Relic, I&apos;d love to hear them.
&lt;/p&gt;

&lt;p&gt;
It&apos;s been a great experience and I look forward to developing solid apps, built on open source, for my next client. I&apos;d like to
    get back into HTML5, AngularJS and mobile development. I&apos;ve had a good time with Spring Boot and JHipster this year
    and hope to use them again. I find myself using Java 8 more and more; my ideal next project would embrace it as a
    baseline. As for Scala and Groovy, I&apos;m still a big fan and believe I can develop great apps with them.
&lt;/p&gt;
&lt;p&gt;
    If you&apos;re looking for a UI/API Architect that can help accelerate your projects, please &lt;a href=&quot;http://raibledesigns.com/contact.jsp&quot;&gt;let me know&lt;/a&gt;! You can learn more about my extensive experience from &lt;a href=&quot;https://www.linkedin.com/in/mraible&quot;&gt;my LinkedIn profile&lt;/a&gt;.
&lt;/p&gt;</content>
    </entry>
    <entry>
        <id>https://raibledesigns.com/rd/entry/getting_started_with_jhipster_on</id>
        <title type="html">Getting Started with JHipster on OS X</title>
        <author><name>Matt Raible</name></author>
        <link rel="alternate" type="text/html" href="https://raibledesigns.com/rd/entry/getting_started_with_jhipster_on"/>
        <published>2014-09-08T11:30:33-06:00</published>
        <updated>2014-10-30T14:30:12-06:00</updated> 
        <category term="/Java" label="Java" />
        <category term="jhipster" scheme="http://roller.apache.org/ns/tags/" />
        <category term="mac" scheme="http://roller.apache.org/ns/tags/" />
        <category term="nvm" scheme="http://roller.apache.org/ns/tags/" />
        <category term="docker" scheme="http://roller.apache.org/ns/tags/" />
        <category term="yeoman" scheme="http://roller.apache.org/ns/tags/" />
        <category term="npm" scheme="http://roller.apache.org/ns/tags/" />
        <category term="node" scheme="http://roller.apache.org/ns/tags/" />
        <category term="osx" scheme="http://roller.apache.org/ns/tags/" />
        <summary type="html">&lt;p&gt;
&lt;a href=&quot;http://jhipster.github.io/&quot;&gt;&lt;img src=&quot;http://jhipster.github.io/images/logo-jhipster2x.png&quot; class=&quot;picture&quot; width=&quot;187&quot;&gt;&lt;/a&gt;
    Last week I was tasked with developing a quick prototype that used AngularJS for its client and Spring MVC
    for its server. A colleague developed the same application using Backbone.js and Spring MVC.
    At first, I considered using my &lt;a href=&quot;https://github.com/mraible/boot-ionic&quot;&gt;boot-ionic&lt;/a&gt;
    project as a starting point. Then I realized I didn&apos;t need to develop a native mobile app, but rather a
    responsive web app.&lt;/p&gt;

&lt;p&gt;
    My colleague mentioned he was going to use &lt;a href=&quot;http://resthub.org/&quot;&gt;RESThub&lt;/a&gt; as his starting point, so I
    figured I&apos;d use &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt; as mine. We allocated a day to get our
    environments setup with the tools we needed, then timeboxed our first feature spike to four hours.
&lt;/p&gt;

&lt;p&gt;
    My first experience with JHipster failed the &lt;em&gt;10-minute test&lt;/em&gt;. I spent a lot of time
    flailing about with various &quot;npm&quot; and &quot;yo&quot; commands, getting permissions issues along the way. After getting
    thinks to work with some &lt;em&gt;sudo&lt;/em&gt; action, I figured I&apos;d try its &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;
    development environment. This experience was no better.
&lt;/p&gt;

&lt;p&gt;
    JHipster seems like a nice project, so I figured I&apos;d try to find the causes of my issues. This article is designed
    to save you the pain I had. If you&apos;d rather just see the steps to get up and running quickly, skip to the
    &lt;a href=&quot;http://raibledesigns.com/rd/entry/getting_started_with_jhipster_on#summary&quot;&gt;summary&lt;/a&gt;.
&lt;/p&gt;</summary>
        <content type="html">&lt;p&gt;
&lt;a href=&quot;http://jhipster.github.io/&quot;&gt;&lt;img src=&quot;http://jhipster.github.io/images/logo-jhipster2x.png&quot; class=&quot;picture&quot; width=&quot;187&quot;&gt;&lt;/a&gt;
    Last week I was tasked with developing a quick prototype that used AngularJS for its client and Spring MVC
    for its server. A colleague developed the same application using Backbone.js and Spring MVC.
    At first, I considered using my &lt;a href=&quot;https://github.com/mraible/boot-ionic&quot;&gt;boot-ionic&lt;/a&gt;
    project as a starting point. Then I realized I didn&apos;t need to develop a native mobile app, but rather a
    responsive web app.&lt;/p&gt;

&lt;p&gt;
    My colleague mentioned he was going to use &lt;a href=&quot;http://resthub.org/&quot;&gt;RESThub&lt;/a&gt; as his starting point, so I
    figured I&apos;d use &lt;a href=&quot;http://jhipster.github.io/&quot;&gt;JHipster&lt;/a&gt; as mine. We allocated a day to get our
    environments setup with the tools we needed, then timeboxed our first feature spike to four hours.
&lt;/p&gt;

&lt;p&gt;
    My first experience with JHipster failed the &lt;em&gt;10-minute test&lt;/em&gt;. I spent a lot of time
    flailing about with various &quot;npm&quot; and &quot;yo&quot; commands, getting permissions issues along the way. After getting
    thinks to work with some &lt;em&gt;sudo&lt;/em&gt; action, I figured I&apos;d try its &lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;
    development environment. This experience was no better.
&lt;/p&gt;

&lt;p&gt;
    JHipster seems like a nice project, so I figured I&apos;d try to find the causes of my issues. This article is designed
    to save you the pain I had. If you&apos;d rather just see the steps to get up and running quickly, skip to the
    &lt;a href=&quot;http://raibledesigns.com/rd/entry/getting_started_with_jhipster_on#summary&quot;&gt;summary&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
    The &quot;npm&quot; and &quot;yo&quot; issues I had seemed to be caused by a bad node/npm installation. To fix this, I
    &lt;a href=&quot;http://stackoverflow.com/questions/11177954/how-do-i-completely-uninstall-node-js-and-reinstall-from-beginning-mac-os-x&quot;&gt;removed
        node&lt;/a&gt; and installed &lt;a href=&quot;https://github.com/creationix/nvm&quot;&gt;nvm&lt;/a&gt;. Here&apos;s the commands I needed to
    remove node and npm:
&lt;/p&gt;
&lt;pre&gt;
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/include/node
sudo rm /usr/local/bin/node

sudo rm -rf /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm -rf /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
&lt;/pre&gt;
&lt;p&gt;Next, I ran &quot;brew doctor&quot; to make sure Homebrew was still happy. It told me some things were broken:&lt;/p&gt;
&lt;pre&gt;
$ brew doctor
Warning: Broken symlinks were found. Remove them with `brew prune`:
  /usr/local/bin/yo
  /usr/local/bin/ionic
  /usr/local/bin/grunt
  /usr/local/bin/bower
&lt;/pre&gt;
&lt;p&gt;I ran &lt;code&gt;brew update &amp;&amp; brew prune&lt;/code&gt;, followed by &lt;code&gt;brew install nvm&lt;/code&gt;. Next, I added the following
    to my ~/.profile:&lt;/p&gt;
&lt;pre&gt;
source $(brew --prefix nvm)/nvm.sh
&lt;/pre&gt;
&lt;p&gt;To install the latest version of node, I ran the commands below and set the latest version as the default:&lt;/p&gt;
&lt;pre&gt;
nvm ls-remote
nvm install v0.11.13
nvm alias default v0.11.13
&lt;/pre&gt;
&lt;p&gt;
    Once I had a fresh version of Node.js, I was able to run JHipster&apos;s &lt;a
        href=&quot;http://jhipster.github.io/installation.html&quot;&gt;local installation&lt;/a&gt;
    instructions.
&lt;/p&gt;
&lt;pre&gt;
npm install -g yo
npm install -g generator-jhipster
&lt;/pre&gt;
&lt;p&gt;Then I created my project:&lt;/p&gt;
&lt;pre&gt;yo jhipster&lt;/pre&gt;
&lt;p&gt;
    I was disappointed to find this created all the project files in my current directory, rather than in a
    subdirectory. I&apos;d recommend you do the following instead:
&lt;/p&gt;
&lt;pre&gt;
mkdir ~/projectname &amp;&amp; cd ~/projectname &amp;&amp; yo jhipster
&lt;/pre&gt;
&lt;p&gt;Before creating your project, JHipster asks you a number of questions. To see what they are, see its documentation on
    &lt;a href=&quot;http://jhipster.github.io/creating_an_app.html&quot;&gt;creating an application&lt;/a&gt;. Two things to be aware of:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Hot reloading Java code doesn&apos;t work well (yet) with Java 8&lt;/li&gt;
    &lt;li&gt;Its &lt;a href=&quot;https://github.com/jhipster/generator-jhipster/issues/490&quot;&gt;OAuth2 implementation doesn&apos;t work with
        WebSockets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In other words, I&apos;d recommend using Java 7 + (cookie-based authentication with websockets) or (oauth2 authentication
    w/o websockets).&lt;/p&gt;

&lt;p&gt;After creating my project, I was able to run it using &quot;mvn spring-boot:run&quot; and view it at &lt;a
        href=&quot;http://localhost:8080&quot;&gt;http://localhost:8080&lt;/a&gt;. To get hot-reloading for the client, I ran &quot;grunt
    server&quot;
    and opened my browser to &lt;a href=&quot;http://localhost:9000&quot;&gt;http://localhost:9000&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;docker&quot;&gt;&lt;/a&gt;JHipster + Docker on OS X&lt;/h3&gt;

&lt;p&gt;I had no luck getting the Docker instructions to work initially. I spent a couple hours on it, then gave up.
    A couple of days ago, I decided to give it another good ol&apos; &lt;em&gt;college-try&lt;/em&gt;. To make sure I figured out
    everything
    from scratch, I started by
    &lt;a href=&quot;http://therealmarv.com/blog/how-to-fully-uninstall-the-offical-docker-os-x-installation/&quot;&gt;removing
        Docker&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;I re-installed Docker and pulled the JHipster image using the following:&lt;/p&gt;
&lt;pre&gt;
sudo docker pull jdubois/jhipster-docker
&lt;/pre&gt;
&lt;p&gt;The error I got from this was the following:&lt;/p&gt;
&lt;pre&gt;
2014/09/05 19:43:38 Post http:///var/run/docker.sock/images/create?fromImage=jdubois%2Fjhipster-docker&amp;tag=:
dial unix /var/run/docker.sock: no such file or directory
&lt;/pre&gt;
&lt;p&gt;After doing some research, I learned I needed to run &lt;code&gt;boot2docker init&lt;/code&gt; first. Next I ran &lt;code&gt;boot2docker
    up&lt;/code&gt; to start the Docker daemon.
    Then I copied/pasted &quot;export DOCKER_HOST=tcp://192.168.59.103:2375&quot; into my console and tried to run &lt;code&gt;docker
        pull&lt;/code&gt; again.&lt;/p&gt;

&lt;p&gt;It failed with the same error. The solution was simpler than you might think: don&apos;t use &lt;code&gt;sudo&lt;/code&gt;.
&lt;/p&gt;

&lt;pre&gt;
$ docker pull jdubois/jhipster-docker
Pulling repository jdubois/jhipster-docker
01bdc74025db: Pulling dependent layers
511136ea3c5a: Download complete
...
&lt;/pre&gt;
&lt;p&gt;
    The next command that JHipster&apos;s documentation recommends is to run the Docker image, forward ports and share
    folders. When you run it, the terminal seems to hang and trying to ssh into it doesn&apos;t work. Others have
    &lt;a href=&quot;http://stackoverflow.com/questions/25559542/docker-hangs-when-starting-jdubois-jhipster-container-in-os-x/25582833&quot;&gt;recently
        reported a similar issue&lt;/a&gt;. I discovered the hanging is caused by a missing &quot;-d&quot; parameter and ssh doesn&apos;t
    work because you need to &lt;a href=&quot;http://stackoverflow.com/a/23021012/65681&quot;&gt;
    add a portmap to the VM to expose the port to your host&lt;/a&gt;. You can fix this by running the following:
&lt;/p&gt;
&lt;pre&gt;
boot2docker down
VBoxManage modifyvm &quot;boot2docker-vm&quot; --natpf1 &quot;containerssh,tcp,,4022,,4022&quot;
VBoxManage modifyvm &quot;boot2docker-vm&quot; --natpf1 &quot;containertomcat,tcp,,8080,,8080&quot;
VBoxManage modifyvm &quot;boot2docker-vm&quot; --natpf1 &quot;containergruntserver,tcp,,9000,,9000&quot;
VBoxManage modifyvm &quot;boot2docker-vm&quot; --natpf1 &quot;containergruntreload,tcp,,35729,,35729&quot;
boot2docker start
&lt;/pre&gt;
&lt;p&gt;After making these changes, I was able to start the image and ssh into it.&lt;/p&gt;
&lt;pre&gt;
docker run -d -v ~/jhipster:/jhipster -p 8080:8080 -p 9000:9000 -p 35729:35729 -p 4022:22 -t jdubois/jhipster-docker
ssh -p 4022 jhipster@localhost
&lt;/pre&gt;
&lt;p&gt;I tried creating a new project within the VM (&lt;code&gt;cd /jhipster &amp;&amp; yo jhipster&lt;/code&gt;), but it failed with the
    following error:&lt;/p&gt;
&lt;pre&gt;
/usr/lib/node_modules/generator-jhipster/node_modules/yeoman-generator/node_modules/mkdirp/index.js:89
                    throw err0;
                          ^
Error: EACCES, permission denied &apos;/jhipster/src&apos;
&lt;/pre&gt;
&lt;p&gt;The fix was giving the &quot;jhipster&quot; user ownership of the directory.&lt;/p&gt;
&lt;pre&gt;
sudo chown jhipster /jhipster
&lt;/pre&gt;
&lt;p&gt;After doing this, I was able to generate an app and run it using &quot;mvn spring-boot:run&quot; and access it from my Mac at
    &lt;a href=&quot;http://localhost:8080&quot;&gt;http://localhost:8080&lt;/a&gt;. I was also able to run &quot;grunt server&quot; and see it at
    &lt;a href=&quot;http://localhost:9000&quot;&gt;http://localhost:9000&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;However, I was puzzled to see that there was nothing in my ~/jhipster directory. After doing some searching, I
    found that the &lt;a href=&quot;https://github.com/docker/docker/issues/4023&quot;&gt;docker run -v /host/path:/container/path
        doesn&apos;t work on OS X&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;David Gageot&apos;s &lt;a href=&quot;http://blog.javabien.net/2014/06/05/a-better-boot2docker-on-osx/&quot;&gt;A Better Boot2Docker on OSX&lt;/a&gt;
led me to &lt;a href=&quot;https://github.com/SvenDowideit/dockerfiles/tree/master/samba&quot;&gt;svendowideit/samba&lt;/a&gt;, which solved this problem.
The specifics are documented in boot2docker&apos;s &lt;a href=&quot;https://github.com/boot2docker/boot2docker#folder-sharing&quot;&gt;folder
        sharing&lt;/a&gt; section.
&lt;/p&gt;
&lt;p&gt;I shutdown my docker container by running &quot;docker ps&quot;, grabbing the first two characters of the id and then running:
    &lt;/p&gt;
&lt;pre&gt;
docker stop [2chars]
&lt;/pre&gt;
&lt;p&gt;
    I started the JHipster container without the -v parameter, used &quot;docker ps&quot; to find its name
    (&lt;em&gt;backstabbing_galileo&lt;/em&gt; in this case), then used that to add samba support.
&lt;/p&gt;
&lt;pre&gt;
docker run -d -p 8080:8080 -p 9000:9000 -p 35729:35729 -p 4022:22 -t jdubois/jhipster-docker
docker run --rm -v /usr/local/bin/docker:/docker -v /var/run/docker.sock:/docker.sock svendowideit/samba backstabbing_galileo
&lt;/pre&gt;
&lt;p&gt;Then I was able to connect using Finder &gt; Go &gt; Connect to Server, using the following for the server address:
&lt;/p&gt;
&lt;pre&gt;cifs://192.168.59.103/jhipster&lt;/pre&gt;
&lt;p&gt;To make this volume appear in my regular development area, I created a symlink:&lt;/p&gt;
&lt;pre&gt;ln -s /Volumes/jhipster ~/dev/jhipster&lt;/pre&gt;
&lt;p&gt;After doing this, all the files
were marked as read-only. To fix, I ran &quot;chmod -R 777 .&quot; in the directory on the server. I noticed that this also worked
    if I ran it from my Mac&apos;s terminal, but it took quite a while to traverse all the files. I noticed a similar delay
    when loading the project into IntelliJ.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;summary&quot;&gt;&lt;/a&gt;Summary&lt;/h3&gt;
&lt;p&gt;Phew! That&apos;s a lot of information that can be condensed down into four JHipster + Docker on OS X tips.&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Make sure your npm installation doesn&apos;t require sudo rights. If it does, reinstall using nvm.&lt;/li&gt;
    &lt;li&gt;Add portmaps to your VM to expose ports 4022, 8080, 9000 and 35729 to your host.&lt;/li&gt;
    &lt;li&gt;Change ownership on the /jhipster in the Docker image: sudo chown jhipster /jhipster.&lt;/li&gt;
    &lt;li&gt;Use svendowideit/samba to share your VM&apos;s directories with OS X.&lt;/li&gt;
&lt;/ol&gt;</content>
    </entry>
</feed>

