Matt RaibleMatt Raible is a writer with a passion for software. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, 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.

Abbie and Jack's Field Days

Last week, I had the pleasure of attending my kids' field days. For those who aren't familiar with field days, it's basically a sports day for elementary schools. The best part of this year's field days was seeing my kids have so much fun with their classmates. Of course, it didn't hurt that their teachers were also smitten with the thought of the school year coming to a close.

I took a few pictures and shot a bunch of video to remember how much fun they had. I know most readers won't enjoy these as much as I do, but I always like posting fond memories on this blog. Below are a couple videos I compiled and enhanced with appropriate music.

I especially like Jack's friend's dance moves at the end of the video below. ;-)

If you have trouble viewing either video here, check them out on my YouTube channel.

Posted in General at May 26 2010, 06:49:39 AM MDT 1 Comment

Volkswagens On The Green 2010 and The Bus Project

This weekend, I took Abbie and Jack to the 16th Annual Volkswagens on the Green. I was especially inspired to take them because we've been playing a lot of "Slug Bug" lately and I figured the number of opportunities for points would surely overload their senses. Not only was I right, but this was one of the best VW shows I've been to in Colorado. The venue was great, there were lots of cars and everything was easily accessible.

Personally, the highlight of the show for me was stumbling upon my bus in the midst of the parking lot. Motorworks Restorations hauled it up from the Springs to highlight it as one of their project vehicles. The kids loved seeing it and climbed all over it while I had a conversation with Jeremy (owner of Motorworks) about adding a Porsche suspension and brakes to the mix.

Daddy's Bus

My Bus Restoration Project has been on hold for a couple years and I'm happy to report I'll be starting it again in the next few months. I don't know if we'll finish it this year, but there's a really good chance we'll be driving it to a lot of Colorado VW Shows next year.

For more pictures, click on the images below or see my VWs on the Green set on Flickr.

Shiny Beer Bus So Low that Jack is taller Sweet Ghia

Jack's Favorite Car Mmmm, Camping... Rainbow Slug Bug! Similar colors to what I'm planning on.

Posted in The Bus at May 17 2010, 09:02:11 PM MDT Add a Comment

What's New in Maven 3.0 with Matthew McCullough

Last night, I attended the Denver JUG meeting to hear some excellent talks by Matthew McCullough and Tim Berglund. I took notes during Matthew's talk, but my battery ran out before Tim's talk started. Below are my notes.

Matthew started out by described the differences between Maven 2 and Maven 3. As he began, he emphasized it wasn't a beginner talk, but mostly for existing Maven users that understand how to read a pom.xml and such.

The Roadmap
Commits to Maven 3 have been happening for the last 3 years. Matthew is not an employee of Sonatype, but he mentioned their name quite a bit in his talk. Sonatype has hired several committers (7 that Matthew knows of by name) that now work on Maven 3 full-time. For compatibility with Maven 2, the project has 450 integration tests and they test it against 100s of Maven 2 projects. Maven 3 has plugin classloader partitioning and a legacy simulation layer for old plugins.

The main improvement in Maven 3 is speed. It's been performance tuned to be 50% to 400% faster. Benchmarks (guaranteed by integration tests) include better: Disk I/O, Network I/O, CPU and Memory. Another new feature is extensibility so Maven is a better library rather than just a command-line tool. Now there's a library and APIs that you can use to do the things that Maven does. Plexus has been replaced with Guice and it's now much easier to embed Maven (Polyglot Maven and Maven Shell are examples of this).

Below are a number of other changes between Maven 2 and Maven 3.

  • Syntax: pom.xml still uses <modelVersion>4.0.0</modelVersion> so it can be a drop-in replacement for Maven 2 projects.
  • Validations: poms are heavily validated against common mistakes, warns when plugin versions are not specified (use mvn validate to see issues), blocks duplicate dependencies (examined in same POM only, conflict resolution used otherwise).
  • Help URLs: wiki page URLs now shown for all error messages. One of the first Apache projects to do this.
  • Removals: profiles.xml external file support removed, Maven 1.0 repository support removed <layout>legacy</layout> (it's been 5 years since any commits to Maven 1).
  • Behavior: SNAPSHOTs always deployed with date-stamps, artifact resolution caching has been improved to do less checking (override with mvn <phase> -U).
  • Plugins: version auto-selection favors RELEASEs over SNAPSHOTs (opposite for Maven 2), versions cannot be specified as RELEASE or LATEST, plugins only resolved from <pluginRepository> locations.
  • See the Plugin Compatibility Matrix to see if your favorite plugins are compatible.

Maven 3 hopes to be a drop-in replacement for Maven 2, but non backwards-compatible changes will be happening in Maven 3.1. It's anticipated release is Q1 of 2011 and will likely contain the following features.

  • "Mixins" for direct dependencies
  • Site plugin takes over <reporting>
  • Backwards compatibility by <modelVersion
  • There's a good chance 3.1 breaks compatibility with legacy POMs

Another new thing in Maven 3 is Toolchain. Toolchain a common way to configure your JDK for multiple plugins. There are only a handful of plugins that are toolchain-enabled. User tool chain definitions are defined in ~/.m2/toolchains.xml. To use different toolchains (JDKs), you specify a vendor and version as part of your plugin configuration.

Maven Shell is a high performance console that's a Maven 3 add-on. It's hosted at GitHub to make community contributions easier. It goes on your command line and it offers syntax highlighting and context-sensitive help (by typing ? at the command prompt).

Another major improvement in Maven 3 is Polyglot Maven. Tools like Gant and Buildr have made Maven look ancient, but they've also given it a good challenge. Maven 3 is likely to leapfrog these tools because of its ability to use different languages for your build configuration. Currently, 6 languages are supported. Polyglot Maven is a super-set distribution of Maven 3. It's not shipped with Maven 3 core because it contains all the other language implementations and is quite large. Polyglot Maven also contains a translate tool that allows you to convert any-to-any language. It has a DSL framework with Macros and Lifecycle Hooks. Macros allows for more concise syntax.

After talking about Polyglot Maven a bit, Matthew shows us a demo translating pom.xml to pom.yaml and then running the build. After that, he showed us examples of what a pom looks like when defined in Clojure, Scala and Groovy. Someone asked about file parsing performance and Matthew said different languages would cause a single-digit performance difference as part of your build process. Personally, I can't help but think any non-XML parser would be faster than the XML parser.

In regards to m2eclipse, a new drop (0.10) occurred a few weeks ago and it's one of the highest quality releases to date. It has major refactoring and many performance improvements.

For sample Maven projects see Matthew's Maven Samples.

I very much enjoyed Matthew's talk, both because of his presentation techniques and because he had a lot of good information. While I've tried Maven 3 and Shell in the past, I've been newly inspired to start using them again on a daily basis.

Tim's talk on Decision Making was also excellent. The biggest things I learned were that conflict is good (idea-wise, not personal) and things to look out for between teams (fault lines). Hopefully both Tim and Matthew post their slides so I can link to them here.

Posted in Java at May 13 2010, 03:54:21 PM MDT 1 Comment

Thanks to Seattle for a Great Weekend

One of the things I like the most about my current gig is I get to travel to Seattle every-so-often. I've had a fondness for the Pacific Northwest since I went to high school in Salem, Oregon. That fondness has grown over the years from many visits to family, friends and conferences in the area. A couple weeks ago, I had the pleasure of visiting Seattle once again. While I've been there a few times with colleagues this year, it's been 6 months since I hung out in Washington with my sister.

This trip was mostly work, flying in Wednesday and leaving on Sunday. The work week was very enjoyable: sunny skies everyday, nice running routes and we accomplished our goal. Friday afternoon, we finished a bit early and I enjoyed a scenic Friday Afternoon Office at Edgewater Hotel while waiting for my sister, Kalin, and her wife, Mya.

Spending the weekend with Kalin and Mya was a blast. They have good friends that live in Ballard (North/Hipster Seattle). They were out of town, so we got to enjoy free, hip accommodations for the weekend. On Saturday, we took a long stroll down to the Mariners game at Safeco Field. A relaxing afternoon of baseball ensued, as well as a very fun evening in downtown Ballard. As evidenced by the pictures in this post, many smiles happened as we reminisced, caught up and had fun like good friends do.

Olympic Sculpture Park Kalin and Mya Cool Place to Live We made it! 7.2 miles in 2:24.

Sweet Seats at the Mariner's Game Rally Caps! Midnight Wheeeeee!!

I left Seattle on Sunday with the feeling that it's quickly becoming one of my favorite cities. That feeling was likely nurtured by the combination of great weather, an accomplished mission and hanging out with my super-fun family. Regardless, thanks to Seattle and "the girls" for a great weekend!

For more pictures from this weekend, see Seattle 2010 on Flickr.

Posted in General at May 11 2010, 07:30:53 AM MDT Add a Comment

Celebrating My Mom's Retirement

A couple of weeks ago, after attending Abbie's Talent Show, the kids and I packed up and headed to Oregon for a weekend. This weekend marked a special weekend for my parents. When we arrived, my Mom had a week left of work before she retired from the Bureau of Land Management. You might've read about my Mom in the past. And you might know that my Dad retired last year.

My Mom has always enjoyed her career and I like to think I get a lot of enthusiasm for my own career from her. She taught me to love what you do for a living. When we lived at The Cabin, she had the drive and ambition to go back to school to get her degree in Forestry. Upon graduation, she got a job with the BLM and we moved to Oregon. My parents have lived there since 1990.

The weekend we spent in Oregon was somewhat magical. My parent's house sold in March after being on the market for only two weeks. They had a week left before they packed up and moved back to The Cabin. This meant the outside was pristine (because they fixed it up for the new buyers) and the inside was mostly packed. It was a sunny 3 days that weekend (which is rare in Oregon) and we had a blast at the Oregon Garden Brewfest, enjoyed a sunny BBQ with old friends and shared many memories derived from their 20 years in Oregon.

Huckleberry Aficionado Jack and Mimi The Crew Fountain at The Oregon Garden

It was a somewhat bittersweet experience, meeting with all their friends and talking about their move to Montana. Many expressed sadness that they were leaving, but that didn't stop my parents from grinning ear-to-ear. You could see the excitement of moving back home sparkle in their eyes.

Oregon Garden Brewfest Happy Beer Drinkers Old Friends

They have a huge challenge ahead of them and it seems they couldn't be happier. They'll be working on The New Cabin many long days and expect it to take a year or two.

I think my Mom said it best in an email she sent my sister and I a few days ago:

It's 9:30 and we are at Quinn's Hot Springs. Your father is snoring, he didn't last long when his head hit the pillow. We got here about 3, had a glass of wine and then soaked in the pools for an hour. Had a good dinner (I had buffalo short ribs -- mmm delicious) . They have a network, so I'm using my ipod for email.

I was crying when I drove across the state line because it felt so good to be home!

We are having a very nice drive home!! We love you!!!

Congratulations on Retiring Mom! You deserve it more than anyone else I know.

Abbie and Mimi Abbie and Mimi

Enhanced Version » My Mothers Day Card

Posted in General at May 07 2010, 12:18:24 AM MDT Add a Comment