Matt RaibleMatt Raible is a Web Architecture Consultant specializing in open source frameworks.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: AngularJS, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

A Jolly Good Time at Jfokus 2017

I like speaking at conferences. I don't enjoy the stress of creating a new talk and delivering it for the first time, but I do enjoy delivering talks, and I love the feeling after. It's even better when the conference provides an atmosphere that creates lasting memories.

I've been to many conferences in my career. A conference with a sense of community provides one of my favorite experiences. Not just for the people that attend, but for the people that speak. I've been to several conferences that provide this experience and I'm happy to say I just attended one of my favorites: Jfokus 2017.

I flew from Denver to Stockholm last Monday and performed my first talk on Testing Angular Applications just a few hours after I arrived on Tuesday. Usually, I take a day or two to recover from jet lag, but this time I figured I could clutch up and make it work. Going to sleep on the plane at 6pm Denver time certainly helped and I think the talk went well. For the live coding part of the presentation, I used the second half of my Angular and Angular CLI tutorial. I posted my slides for this talk to SlideShare and Speaker Deck. You can also view them below.

Tuesday night, there was a conference party. I met many new people and put some names to faces with a vibrant community of conference attendees and speakers.

[Read More]

Posted in Java at Feb 16 2017, 05:21:23 PM MST 2 Comments

2016 - A Year in Review

When I wrote my 2015 year in review blog post, I was certain my '66 VW Bus would finally be finished. AND IT IS! Do I need to even write this year's post? Yes, because I want to tell you how awesome it is to own this incredible-looking, awesomely-fast, mean machine. ;)

Hefe 2.0

But first, let's review the year using the following categories.

Professional

I had two different clients in 2016: CA Technologies and Stormpath. I worked full-time for CA in January and February, helping them adopt AngularJS. To help them learn about Angular 2, I rewrote my AngularJS getting started and testing tutorials for Angular 2. The first versions were published at Getting Started with Angular 2 and Testing Angular 2 Applications. I refactored both tutorials to use Angular CLI in August and published Getting Started + Testing with Angular CLI and Angular 2 (RC5). Since then, I've been maintaining an up-to-date version on GitHub.

In April, I started working half-time for CA and half-time for Stormpath. For Stormpath, I worked on their Java SDK and helped them launch their Java SDK 1.0. I really enjoyed working with the team at Stormpath. This led to me think about my priorities in life. I realized that I wanted to work remotely, get paid to speak at conferences, and get paid to work on open source. Stormpath provided me with all of these opportunities and I started working full-time for them on September 26, 2016.

In May, I joined the board of the Denver Java User Group. I've been helping organize meetups, find speakers, and secure location sponsors. If you're interested in speaking at DJUG in 2017, please let me know!

[Read More]

Posted in Roller at Feb 01 2017, 05:46:59 PM MST Add a Comment

Happy Birthday Abbie!

Abbie turns 14 today and she's celebrating in style. Her brave parents allowed her to have a slumber with all her friends. There's 11 teenage girls in our basement right now, screaming, giggling and making lots of loud noises.

I'm really proud of the young woman Abbie has become. She's a straight-A student and loves horseback riding and sleeping.

Trish and she bought a new horse a few weeks ago. His name is Tucker and they traveled to New Mexico to find him. He's a thoroughbred paint, with hunter jumper skills. We'd love to keep at the Raible Ranch, but we want to see what the winters are like first. For now, he's at Friends of Horses, which has an indoor arena. Next year, the girls plan to compete and hopefully bring home lots of trophies!

Happy 14th Birthday Abbie!

Happy 14th Abbie!

Abbie and Tucker Abbie and Tucker

Posted in General at Nov 05 2016, 07:04:52 PM MDT Add a Comment

Life as an Open Source Developer

It's been a little over a month since I started my new gig at Stormpath. 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's not a huge change for me. However, I only recently realized I haven't written a single line of proprietary code the entire time. My GitHub contributions look pretty good this year. They're nothing like @mojavelinux, or @dsyer, but I'll get there. ;)

GitHub Profile - November 3, 2016

It's also been a bit more stress than I'm used to. I think this comes from a couple things: 1) turning my hobby into my job and 2) I'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.

At the end of September, I finished updating the JHipster Mini-Book for JHipster 3.x. It's gone through tech editing and it's being copy-edited right now. I hope to release it within a week.

In early October, I said I'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'm happy to report I've been able to accomplish most of these and I hope to show off our Angular 2 support soon.

I then channeled my efforts into integrating Stormpath's Java SDK with their AngularJS directives. You can read about how I did that in Get Started with AngularJS, Spring Boot, and Stormpath. Unlike my previous AngularJS tutorial, this one connects to a backend and shows how to communicate with Spring Boot cross-domain.

If you like to read code more than words, you can look at the example project's commits on GitHub.

  1. Create an AngularJS UI: search and edit features
  2. Create a Spring Boot app with Stormpath: app from start.stormpath.io
  3. Develop an API to CRUD people with Spring Data REST: /api/people
  4. Integrate AngularJS and Spring Boot apps: cross-domain
  5. Integrate Stormpath into AngularJS for login, registration and forgot password: Stormpath Angular SDK

Last week, I released a JHipster module that integrates Stormpath. This exercise was good because I was able to identify some gaps in Stormpath's SDKs and fix them. Getting something to work made me feel good; having the ability to improve the developer experience was even better! Of course, I blogged about what I learned.

This week, I edited and code reviewed some posts from Karl Penzhorn on React with Spring Boot and using webpack with React. I also got to bang my head against the wall writing Angular 2 tests. If you're writing a module for Angular 2, generator-angular2-module provides a nice starting point.

Last, but certainly not least, I'll be speaking at a few events about Microservices, JHipster, Angular 2 and Stormpath in the near feature.

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!

Posted in Open Source at Nov 03 2016, 04:29:01 PM MDT 1 Comment

Life Update: A Summer to Remember, a New House, and a Sweet New Gig

TL;DR: I had a super fun summer traveling with my family, recently moved to a new house in the country, and I've joined Stormpath as a Developer Evangelist. Wahoo!

I've written several "life update" posts in the past, but there's been few as epic as this one. When I wrote my 2016 Goals, I listed "July in Montana" as one of them. And y'all know that "finish the bus" was #1. Since the bus is done, I wanted to show it off in my hometown 4th of July parade in Condon, Montana.

A path to these goals became clear in mid-June, shortly after visiting London and Tallinn with my Mom. It involved a lot of driving, but I was determined to make it happen. I was so excited about my plan that I sent an email to my best friend, Owen, on June 15.

[Read More]

Posted in General at Sep 26 2016, 07:29:24 AM MDT 1 Comment

Getting Started + Testing with Angular CLI and Angular 2 (RC5)

I started creating Angular 2 applications when it was in beta (back in March). To keep up with Angular 2's changes, I wrote a tutorial about developing with RC1 in June. Earlier this month, RC5 was released and many things changed once again. I think Scott Davis sums it up nicely in a tweet.

To keep up with the rapid pace of change in Angular 2, I decided to write another tutorial, this time using Angular CLI. The biggest change I found since writing the last tutorial is testing infrastructure changes. Since Angular's Testing documentation hasn't been updated recently, hopefully this tutorial will help.

[Read More]

Posted in The Web at Aug 23 2016, 05:18:41 PM MDT 6 Comments

Upcoming Events: Devoxx4Kids Denver, Testing Angular 2, DevoxxUS CFP and VJUG24

It's been awhile since I've posted anything on this here blog. That usually means one thing - I've been off having fun! That couldn't be more true this summer. The day after my last post, I began traveling and haven't stopped since. In fact, this weekend will be the first weekend I've been home since writing that post. Hawaii, Montana, Denver, Montana, Colorado Springs and Utah - it's been a fabulous summer. I'll write more about those adventures soon.

In the meantime, I wanted to mention some upcoming events you might be interested in:

  • September 10: Devoxx4Kids Denver has an upcoming workshop on Exploring JavaScript with the world famous Dr. Venkat Subramaniam. If you know Venkat, you know this is a session you shouldn't miss. Your kids will love it, you'll get a lot of good laughs and everyone is sure to have a good time. Make sure and RSVP soon so you get in before this baby fills up!
  • August 22: HTML5 Denver has a sessions on ES6 vs. Typescript and Testing Angular 2 Applications. The first session will be delivered by my good friend Geoffrey Filippi and I'll be performing the second act with the help of angular-cli.
  • Devoxx US September 1: One of my favorite conferences, Devoxx, is coming to the US! DevoxxUS recently announced that registration is open. Even more interesting is that the CFP begins September 1st. I'm biased because I'm on the program committee, but I'd love to see your ideas for great talks!
  • September 27: Our good friends from vJUG are hosting the first 24 hour Virtual Java Conference in the world! I'll be speaking about the Art of Angular in 2016 at 10pm EDT.
  • September: I'm looking for new clients. My current contracts end on August 31 and I'm searching for the next cool team to work with. My expertise: Java, JavaScript and I'm really good at CSS. This is a hard combination to find! LMK if you have a need.

I hope to see you at one of these events!

Posted in Java at Aug 12 2016, 03:29:01 PM MDT Add a Comment

A Delightful Trip to Devoxx UK and GeekOut 2016

We found a pub! I had the pleasure of traveling to London, England and Tallin, Estonia this past week. In London, I spoke at Devoxx UK. In Tallin, I spoke at GeekOut. 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.

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 JHipster outfit. Luckily, I found a good replacement 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.

The big news announced at Devoxx UK is that Devoxx is coming to the United States in 2017! I'm on the program committee for this conference, so I look forward to helping make it spectacular.

Devoxx coming to US in 2017!

[Read More]

Posted in Java at Jun 12 2016, 11:13:17 AM MDT Add a Comment

Testing Angular 2.0 RC1 Applications

As mentioned on Friday, there's been quite a bit that's changed with Angular 2 between its Beta 9 and RC 1 releases. This article is an update to the Testing Angular 2 Applications I wrote in March. That tutorial was based on Angular 2.0 Beta 9. Rather than simply updating that tutorial and blog post for 2.0 RC1, I decided to create a new version for posterity's sake. The 2.0 Beta 9 version will remain on my blog and I've tagged the source on GitHub.

If you've already read the first version of Testing Angular 2 Applications, checkout the diff of the Asciidoctor version to see what's changed.

What you'll build

You'll learn to use Jasmine for unit testing controllers and Protractor for integration testing. See Angular 2's guide to unit testing if you'd like more information on testing and why it's important.

The best reason for writing tests is to automate your testing. Without tests, you'll likely be testing manually. This manual testing will take longer and longer as your codebase grows.

What you'll need

  • About 15-30 minutes.
  • A favorite text editor or IDE. I recommend IntelliJ IDEA.
  • Git installed.
  • Node.js and npm installed. I recommend using nvm.

Get the tutorial project

Clone the angular2-tutorial repository, checkout the testing-start branch, and install its dependencies.

git clone https://github.com/mraible/angular2-tutorial.git
cd angular2-tutorial
git checkout testing-start
npm install

If you haven't completed the Getting Started with Angular 2.0 RC1 tutorial, you should peruse it so you understand how this application works. You can also simply start the app with npm start and view it in your browser at http://localhost:5555/.

[Read More]

Posted in The Web at Jun 06 2016, 09:57:13 AM MDT Add a Comment

Getting Started with Angular 2.0 RC1

A few months ago, I wrote a tutorial on Getting Started with Angular 2. That tutorial was based on Angular 2.0.0 Beta 9. Rather than simply updating that tutorial and blog post for 2.0.0 RC1, I decided to create a new version for posterity's sake. The 2.0 Beta 9 version will remain on my blog and I've tagged the source on GitHub. This is an updated version of Getting Started with Angular 2, complete with the largely undocumented component router, and lazy-loaded components.

If you'd just like to see what's changed since the last release of this tutorial, you can view the pull request on GitHub. Note that I did sync my angular2-tutorial project with angular2-seed. This made it fairly easy to upgrade, believe it or not. My upgrade notes are in a gist. The best diff to read to see what changed is likely the diff of this tutorial.

What you'll build

You'll build a simple web application with Angular 2 and TypeScript. You'll add search and edit features with mock data.

What you'll need

  • About 15-30 minutes.
  • A favorite text editor or IDE. I recommend IntelliJ IDEA.
  • Git installed.
  • Node.js and npm installed. I recommend using nvm.

Create your project

Clone the angular2-seed repository using git:

git clone https://github.com/mgechev/angular2-seed.git angular2-tutorial
cd angular2-tutorial
[Read More]

Posted in The Web at Jun 03 2016, 07:16:18 AM MDT 2 Comments