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.
You searched this site for "matt". 1,142 entries found.

You can also try this same search on Google.

Summer Gigs

I'm happy to report that after posting The good ol' Job Hunt last week, I had a prosperous week searching for my next gig. I got an offer from a local company in Denver on Tuesday and had 5 interviews on Thursday with various companies. I ended up accepting an offer from LinkedIn for a 3-month contract that starts in a few weeks (thanks for the hookup Brian!).

I also landed a 2-week contract that'll keep me occupied through the end of June. There's a nice week between the two gigs where we're heading to The Cabin for the 4th. I'm currently working on getting an "anchor desk" at the Hive Coorperative, but unfortunately won't be able to use it much in July. I'll be in Mountain View the first couple weeks, followed by Portland (for OSCON) at the end of the month.

Anyone out there interested in a tech meetup in Mountain View in July? My birthday is the 16th - maybe we could meet up around then?

Update: My first day at LinkedIn rocked.

Posted in Java at Jun 18 2007, 01:10:32 PM MDT 5 Comments

The good ol' Job Hunt

My Boston gig ended last week and I'm currently enjoying a week off with the kids at my parents' place in Oregon. While I have a few opportunities, I can't help but think there's got to be a better system for connecting developers to contracts. While I'm open to full-time work, I've found that contracts suite me better because of all the conferences I attend and time I take off.

In Denver, there's quite a few gigs available, but they all seem to have the same two problems: 1) no rate is published and 2) you have to go through a recruiter to get them. Recruiters aren't bad people, and I don't mind dealing with them. However, they do tend to take 20% off the top. Most of the recruiters I've worked with in the past are responsible for one thing - the initial introduction. After that, they tend to disappear and you never see them again. However, you're constantly reminded they're there when you realize they're taking 20% of your wages. With a recruiter involved, the rates in Denver are OK, but lower than expected. Without a recruiter, the rates are pretty good.

The best solution I've found to the getting rid of the recruiter-middle-man problem is this blog and networking. When someone contacts me directly for a contract, it's usually easier to negotiate a rate that makes both parties happy. However, most of these contacts come from out of state, so then there's the travel and working-from-home problems. I think I can solve the work-from-home problem by joining something like the Hive Cooperative. As for traveling, I'd rather work in Denver but I'm willing to travel to select cities: namely Boston, NYC and Portland (Oregon). Why those cities? Because I have friends and/or family that live there.

As I'm out here in Oregon this week, I've realized that working in Portland would likely be the most enjoyable for me to travel to. My parents live close by, it's a kick-ass city and it's especially enjoyable during the summer. However, I'm faced with the same problem: how do I connect with folks looking for good help without going through recruiters? According to Dice.com, Portland has a lot of interesting gigs, but they're (once again), all listed by recruiting companies. Does anyone know of a service that connects employers directly with consultants? Or, even better, is anyone out there in Denver or Portland that's looking to hire someone with my skills? ;-)

Posted in Java at Jun 11 2007, 10:26:05 AM MDT 12 Comments

Bus Project Update

Not much has changed on my bus since the last time I visited it in the shop. However, this time it is out of the corner and the guy (Mike Lopez of Twins Auto Body) is actively working on it. He's in the midst of replacing the floor pan and doing all of the welding it needs before prepping for paint. I doubt it'll be done this summer, but I'm still hopeful. We snapped a few pics to record its progress.

Ready for a new floor Lots of work to do still

Was in a wreck once Driver's Door

Posted in The Bus at Jun 08 2007, 10:12:37 AM MDT 1 Comment

JAR Hell with XFire 1.2.6

I discovered something somewhat disturbing last week. As part of AppFuse 2.0 M5, we added "xfire-all" as a dependency so web services could be supported out-of-the-box. What I didn't know is that xfire-all has transitive dependencies to 40 other libraries, which total 13.4 MB in size. Yikes!

Does XFire take the cake for the most bloated library you can use or are we just including too much (xfire-all vs. fine-grained dependencies)? I tried changing to the recommended Maven configuration and there's still 28 JARs added by XFire.

The WEB-INF/lib directory of a basic Struts 2 + Spring + Hibernate AppFuse application is already 19.2 MB to start. Adding XFire for web services increases the size to 29.2 MB. While disk space may be cheap, some users have noticed "mvn jetty:run" is much slower with XFire (presumably from the JAR processing that happens at startup). Is there an uber XFire JAR we can use instead?

Posted in Java at Jun 04 2007, 12:28:21 PM MDT 11 Comments

A couple of good blog posts

Here's a couple of good blog entries I've enjoyed reading over the past few days - in case you missed them:

Warner is spot on when it comes to Tapestry's biggest problem. Let's hope Tapestry 5 is the end-all-be-all that Howard thinks it will be. As for Gavin's post, I like it because it's mostly true and the f-bomb makes it enjoyable to read. ;-)

Posted in Java at May 24 2007, 09:50:37 AM MDT 5 Comments

AppFuse 2.0 M5 Released - now with CRUD generation and XFire support

The AppFuse Team is pleased to announce the release of AppFuse 2.0 M5! This release marks a milestone in the features of AppFuse 2.x. This release adds CRUD code generation, full source support (just like 1.x) and XFire integration. In addition, we've fixed all the issues related to switching persistence frameworks, and you should now be able to easily switch from using Hibernate to to iBATIS or JPA. The videos have been updated for M5. The Easy CRUD with Struts 2 video shows how code generation currently works.

AppFuse 2.0 is available as a Maven archetype. For information on creating a new project using this release, please see the QuickStart Guide or the Hello World video.

If you've used AppFuse 1.x, but not 2.x, you'll want to read the FAQ and join the user mailing list if you have any questions. The Maven Reference Guide has a map of Ant » Maven commands. Maven for Newbies might also be useful if you've never used Maven before. There is some support for Ant in this release.

For more information, please see the 2.0 M5 Release Notes. If you'd like to use AppFuse offline (or download everything at once), you may want to grab the dependencies and extract them into your ~/.m2/repository directory.

The 2.0 series of AppFuse has a minumum requirement of the following specification versions:

  • Java Servlet 2.4 and JavaServer Pages (JSP) 2.0
  • Java 5 for Development (Java 1.4 for deployment using the Retrotranslator Plugin)

Comments and issues should be posted to the mailing list.

We appreciate the time and effort everyone has put toward contributing code and documentation, posting to the mailing lists, and logging issues. We also greatly appreciate the help from our sponsors, particularly Atlassian, Cenqua, Contegix, JetBrains, Java.net and KGBInternet. Without them, working on this project wouldn't be nearly as much fun.

Update: The videos are much lower quality than the ones I originally recorded (13 MB vs. 70 MB). If you want to view the high quality videos (they're much clearer), you can download them from java.net. If someone has a better way to compress these (I just used QuickTime's Export feature), please let me know.

Also, this release contains the first release of the AppFuse Maven Plugin. This plugin is largely based on Hibernate Tools. We modified many of the FreeMarker templates from Hibernate Tools to default to certain annotations, as well as clean up the formatting. These templates are currently available in AppFuse's SVN. Hopefully making them available is enough to satisfy Hibernate's LGPL license.

Posted in Java at May 23 2007, 05:49:10 PM MDT 16 Comments

A Story about My Mom

Beautiful Water My Mom is one of the coolest people I've ever met. She was born in Billings, Montana on January 4, 1950. That makes her a Montana Native. She grew up in the city, but moved to The Cabin in her 20s. Life at the cabin wasn't easy. My parents were pretty darn poor the entire time we lived there. To help reduce the cost of living, we raised a lot of animals. We had chickens for eggs, goats for milk, rabbits to eat and every so often, we'd get a couple of pigs to raise for food.

The pigs presented an interesting problem: bears. Bears love pigs. I can remember a couple of times where bears would sneak in and run off with one of the pigs for dinner. Bears were dangerous and my parents didn't like them - both for fear they'd harm one of us, but more because they'd harm the animals and our food supply. Bears were also good eatin', so if there was one hanging around, my parents didn't hesitate to try and shoot it.

When I was 2 years old, I got a puppy for my birthday. We named him "Woofer". He grew into a big ol' Hound Dog and turned out to be great at treeing bears. He had a very deep bark that would apparently scare them into climbing trees, making them easy targets.

The story I'd like to tell about my Mom happened when I was a kid. I don't know how old I was - but I was young enough that I don't remember the story. My dad was out of town, and a bear had been hanging around. My Mom was not happy and set out one day with the rifle and Woofer. They ended up getting the bear up a tree and my Mom shot him down. Apparently, she was pretty mad at the bear for threatening her children and all. She hauled him back to the "skinning tree", which was next to our house. I can see her now, yelling at the bear, telling him he deserved it and what a cocksucker he was. Foaming at the mouth, she whipped out her hunting knife, grabbed him by the balls, and sliced them right off. Still swearing at him, she grabbed a hammer and nail, and angrily nailed his nuts to a tree. "Serves you right you motherfucker", she probably muttered to herself.

To this day, that nail is still here and a small tuft of hair hangs from it. I apologize for the swearing in this story, but my Mom has always cussed like a sailor. ;-)

I'd like to take this opportunity to thank my Mom for all she's taught me. One of the things I've always admired about her is how happy she is all the time. She's a true optimist and enjoys almost everything she does, from being a "Burn Boss" to running in marathons. She's an incredible lady and I'm very proud to call her my Mom. Happy Mother's Day Mom!

Posted in General at May 13 2007, 09:58:54 AM MDT 9 Comments

Off to Florida

While I've been trouncing around the globe with my Dad, Julie and the kids have been splashing around Julie's mom's pool in Florida. Tonight I'll be joining them via a Frontier red eye. I'm not looking forward to the flight, but it'll be great to see everyone. Hopefully by this time tomorrow, I'll be sipping on a cold Corona and sitting by the pool. I like the idea of going on vacation a lot better than attending the JavaOne festivities. ;-)

Sunset in West Palm

Cheers!

Posted in General at May 08 2007, 08:02:25 PM MDT 3 Comments

What a Trip - Amsterdam was a blast!

Last week's trip to Europe for ApacheCon EU was nothing short of spectacular. Amsterdam was an incredible city that amazed me with its awesome biking system (and usage!), incredible atmosphere and a nice sense of relaxation. I think the picture below sums up our trip nicely. The weather couldn't have been better - sunny and warm with a cool breeze.

Amsterdam 2007

ApacheCon was likely an excellent conference, but I'm proud to say I didn't attend a single session. I did manage to make it to Sun's party on Thursday night (thanks Dave!), but that was about it. At the party, the Wicket guys had a BOF, which my dad and I sat in on. Thanks to Martin, Eelco and others for the good conversation, even if we did have to shout.

Wicket BOF

After my talk on Friday, we scrambled for the airport. It was pretty hectic after my talk with our departure looming and the fact that I still needed to pack. To top it off, the power went out in the hotel shortly after my talk. After arriving at the airport, I realized I forgot my passport in the room - Doh! (you're right Neil). Luckily, I was able to sweet talk my way onto the plane anyway and we arrived in Stuttgart an hour later.

The weather wasn't nearly as nice in Germany, but we did have a great time. The folks we went to visit have same last name as my family. Roland Raible was driving his VW Bus through Montana in the early 80s, when he noticed the "Raible" name on our mailbox. Curious, he drove up our front road and made it all the way to the cabin. I remember him driving up the road - I was only 9 years old when it happened. He hopped out of his van and yelled to us "My last name is Raible!" We don't know if we're actually related, but Roland and my dad have stayed in touch ever since that initial meeting. My dad visited him for the first time last year, following one of his trips to Africa.

Roland, his wife Helga and their 2 children all live in Wangen, which is a countryish town in Southern Germany. It rained the two days we were there, but we did make it to "Fidelisback", a bakery that's been around for over 500 years. The beer was excellent, as was the food. On Saturday, we traveled to the Zeppelin Museum and some stone-age huts along Lake Constance. Both places were very cool and educational. We enjoyed the audio tour at the Zeppelin Museum just like we did at the Van Gogh Museum in Amsterdam.

On Sunday, we left Stuttgart around 11 and arrived in Amsterdam at noon. Bruce hooked me up and left my passport in a locker. It was surprisingly easy to travel between The Netherlands and Germany with nothing but a driver's license. We arrived at my house in Denver at 11:00 on Sunday night.

If you ever get a chance to visit Amsterdam for Queen's Day - I highly recommend it. I know we'll be back.

For some photos of our trip, see my Europe 2007 Set on Flickr. Also, checkout Dave's Amsterdam vacation wrap-up for some good photos of Queen's Day.

Posted in General at May 08 2007, 06:17:46 PM MDT 3 Comments

ApacheCon EU: Comparing Java Web Frameworks Presentation

I said I'd post my presentation after my talk this morning, so here it is:

Download Comparing Java Web Frameworks Presentation (1.1 MB)

I went a bit long on the presentation, but the crowd (standing room only) seemed to enjoy it. Thanks to all who attended!

Posted in Java at May 04 2007, 02:45:55 AM MDT 23 Comments