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.

Riding to Red Rocks

A few years ago, Bruce and I rode our bikes from my house in Denver to Red Rocks to see a Big Head Todd concert. Little did we know it'd turn into an annual tradition.

That first ride was the most memorable. I used to live a few miles from Red Rocks, so I knew of a nice route (Platte River to Bear Creek) to get us there. That first trip out there took 2-3 hours and was pretty exhausting. On the way home, we left Red Rocks around 11pm and quickly realized we were ill-prepared.

We had no lights.

Since I knew the trail well, having ridden it many times, I didn't realize how dangerous it was. 15 minutes into the ride, I had to grab my brakes and come to a screeching halt so I didn't hit a big metal gate (goes across the road near the entrance of Bear Lake Park; 12" diameter metal tube about 3 1/2 feet off the ground). There was a couple making out on the back of a motorcycle a couple feet from me when it happened. Their reaction? "Whoa, that was close dude."

I rode around the gate and up a couple hundred yards until I reached a lit area. I sat there and waited for Bruce. All of a sudden, I heard a loud crash, followed by a 2nd one a few seconds later. I figured it couldn't be Bruce because there were two crashes. 30 seconds later, here comes Bruce, cussing up a storm and looking like he was in pretty bad shape. I couldn't help but laugh as I thought of the expressions on the faces of the couple on the motorcycle. Bruce turned out to be OK, but we both were pretty skittish as we navigated the way home in the pitch black. We've purchased bike lights since that trip and use them every year.

Big Head Todd and the Monsters

I'm not a huge fan of BHTM, but I am a fan of their concerts. It's especially cool for me because I went to college with the keyboardist, Jeremy Lawton (guy on the left above). We were fraternity brothers and enjoyed many frosty beverages together back in the day. We don't keep in touch now, but it's still fun to see him and how much success he's had in his career.

Should be an awfully fun night tonight.

Posted in General at Jun 07 2008, 12:49:05 PM MDT 2 Comments

Share on LinkedIn

This is a test to see if I can get the Share on LinkedIn widget working on this site. Click below to invoke.

Share on LinkedIn

Seems to work pretty well. I like how you can select text and it'll automatically populate the summary. You can drag the link above to your toolbar in Safari and Firefox if you want to use it like a favelet.

Now I just need to get one of the designers to create a nifty little "Share on LinkedIn" icon so I can add it to all my entries by default.

Posted in The Web at Jun 05 2008, 10:13:04 PM MDT 4 Comments

New Mac Pro

It sure is cool when dreams come true. Look what arrived at the Denver office today. :-)

New Mac Pro

Update: Believe it or not, I rebooted my MacBook Pro the same minute I plugged in my Mac Pro. Upon reboot, the MBP choked and I've been looking at a gray screen with a spinning icon for most of the day. I'm soooo glad I have Time Machine. Let's hope I can do a restore on the MBP tomorrow.

Update 2: I was able to successfully build the Mac Pro from my latest MacBook Pro backup on Time Machine. Sweet! Let's see how this works:

$ echo $JAVA_OPTS
-Xms512M -Xmx4096M -XX:PermSize=384m -XX:MaxPermSize=512m -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseConcMarkSweepGC -server

Posted in Mac OS X at Jun 05 2008, 11:21:17 AM MDT 13 Comments

2008: The Year of Beer

Beer In a few weeks, I'm heading to the American Craft Beer Festival in Boston. In July, I'll be attending the Oregon Brewers Festival in Portland (followed by a night at McMenamins Kennedy School). A friend and I just booked flights for Oktoberfest in Munich. A couple weeks after Oktoberfest, I'll be attending the Great American Beer Festival in Denver.

Homer would be proud.

Posted in General at Jun 04 2008, 02:58:37 PM MDT 15 Comments

Deer Creek Canyon Trail

This evening I enjoyed an awesome ride up Deer Creek Canyon Trail in the foothills. Click on the image below for proof.

One of the best singletracks in Colorado

Up next: White Ranch on Wednesday.

Posted in General at Jun 02 2008, 11:50:58 PM MDT 3 Comments

Fun Weekend with The Munchkins

This weekend was action-packed and a lot of fun. On Friday night, Abbie, Jack and I watched The Empire Strikes Back. We watched "the first one" a couple weeks ago; their first "grown up" movie to-date. They're loving the series, especially because they recognize people from the previous movie. They're really looking forward to the next one because Wicket is in it. Believe it or not, I still have a stuffed Wicket from when I was a kid.

On Saturday, we started the day off right at Andrew Swanson's 5th birthday party. Following that, we hit up Pirates Cove and its adjacent petting zoo and train ride.

This pretty much sums up both kids feelings about cameras

Today, we woke up, had some blueberry pancakes, drove to the bait shop and then headed to Golden Gate Canyon State Park. The weather was beautiful and Kriley Pond was a nice fishing spot. We didn't catch anything, but both kids are getting a lot better at casting. The highlight was the live worms we bought at the bait shop. Both Abbie and Jack were convinced they were the biting kind.

Fishin' at Golden Gate Canyon State Park Fishin' at Kriley Pond

Next fun trip: An overnight camping trip on Father's Day. Location TBD.

Posted in General at Jun 01 2008, 10:33:12 PM MDT Add a Comment

Why no more than 500 connections?

I recently updated my status on LinkedIn to read:

Matt is determined not to have 500+ connections. Will start removing connections soon.

A couple of days later, I received the following message from a connection:

I noticed the other day you mentioned that you are determined to not have over 500 LinkedIn connections. I'm wondering what the reason is? Not just because LinkedIn shows 500+ after that, is it? As you work for LinkedIn, I assume there's some other reason. I'm interested to know what it is...

I joined LinkedIn May 27, 2003, 22 days after it initially launched. For the first few years, I accepted invitations when I received them. Some folks I knew, some I didn't. When I started consulting for LinkedIn last summer, I had somewhere between 200 and 300 connections. Most of them were people who had contacted me, not folks I had contacted.

One day, I used the import webmail contacts feature to pull in my contacts from Gmail. My number of connections quickly jumped by 100 and it's increased quite a bit since then (mostly due to co-workers from LinkedIn). Of the almost 500 connections I have, I believe there's a good 100-200 of them that are folks I don't know, have never had contact with, and will likely never benefit from being "connected" with.

I guess the main reason I'm planning on trimming my connections is to make my network higher quality. I admit I'm somewhat motivated by the 500+ icon, but it's also a genuine feeling that there's quite a few folks I won't benefit from being connected to. I'm not a LION after all. I believe my LinkedIn network should resemble my real-world network.

What's your opinion? Should I have folks in my network that know me, but I don't know them?

Posted in The Web at Jun 01 2008, 06:40:59 PM MDT 17 Comments

Talks for the Colorado Software Summit

I'm looking forward to another great year at the Colorado Software Summer in October. I submitted a couple abstracts back in April and have recently been granted the opportunity to change one.

The reason for the change is Yan Pujante (founder at LinkedIn) is going to do my talk on Building LinkedIn's Next Generation Architecture with OSGi and Spring. Since he's been very integral in writing the existing codebase, as well as the move to OSGi, it seemed more appropriate for him to do this talk. I'd like to keep my talk on Appcelerator, but I'm having a hard time deciding between four other options.

If you're planning on attending CSS this year, let me know which one you'd like to see most.

I could see changing the first option to Spring Web specifically. I could also see adding Rails and Grails to the 3rd choice. The 4th one is a lofty goal as the project has just begun. If we succeed, it could be a great talk.

Posted in Java at May 29 2008, 03:40:13 PM MDT 6 Comments

Should we change AppFuse to be Struts 2-specific?

Dusty recently posted an interesting idea to the AppFuse developers mailing list:

After thinking/coding/reading for a while I think the more interesting task is: Retool AppFuse to be one or more Struts2 plugins based on various higher level app patterns. (AppFuse Facebook, AppFuse Employee DB, AppFuse Blog, AppFuse Basic LDAP, AppFuse Basic Crowd).

This all comes from the fact, that I have been wanting to refactor the AppFuse web layer for Struts. One of the interesting aspects of AppFuse is that it works pretty much the same across all its web frameworks. It does so with some lowest common denominator abstractions that can be ported and look and work the same across frameworks. I have picked my tool(s): Struts 2 and Ruby On Rails when I want to pretend I am young again. I know Spring MVC, JSF, etc. but I have no desire to build significant apps on those platforms. It's not because they suck and Struts2 rules, it is because I know Struts 2 the best, I am most efficient there and it provides everything I need to build great webapps (Let's not devolve to a framework debate). So, I would rather have a more Struts 2-specific web stack, that really leverages conventions born and raised there. The nice thing about the Struts 2 web stack is that it is complemented nicely by AppFuse's data/service layer, since unlike Grails or Rails, Struts 2 has no data or service layer. [Read More »]

Seems like a good idea to me. What do you think?

Someday I'd like to come up with a "compatibility test" that allows others to improve upon the ideas in AppFuse and develop their stacks independently. A suite of Selenium tests that require extensionless URLs might be a good start.

Posted in Java at May 29 2008, 08:29:44 AM MDT 11 Comments

Which one do you believe Daddy?

Abbie: Which one of these do you believe Daddy?

Option 1 Option 2

Abbie: Mommy and I believe the 2nd one is right.
Me: I agree.

Posted in General at May 23 2008, 01:05:18 AM MDT 14 Comments