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.

Bye Bye Dream Machine

Mac Pro This evening, I'm shipping back one of my favorite machines of all time. I received a fully-loaded Mac Pro as part of my employment with LinkedIn last June. It was necessary to run the LinkedIn application locally and I thoroughly enjoyed using it for the last 6 months. With 12GB of RAM and two 23" monitors, it was a great employee perk.

When I became a contractor again, they let me take my dream machine home. I promptly plugged in my 30" monitor and I've been loving my home work environment ever since. I could have bought the machine from LinkedIn, but I discovered I can buy a brand new machine with similar specs for less than their asking price.

The good news is I'm now able to answer the question I asked a couple years ago: One 30" monitor or two 23" monitors? IMO, one 30" monitor is definitely better and two 30" monitors would be awesome.

In addition to the Mac Pro, I'll also be shipping back the 15" MacBook Pro they gave me. This leaves me with my 17" MacBook Pro and an old HP Pavilion with Windows XP. I was hoping to plug my 30" into the HP, but I discovered I don't have a DVI card that will handle it. Over the next few months, I do plan on buying a new MacBook Pro (for work) and a Mac Pro (for home). With my running commute, I need to leave one machine downtown and I like to have one at home for the kids + late night hacking.

I'm currently having a hard time deciding if I should buy a MacBook Pro now or make do with what I have and just buy a new DVI card for my Windows box. I'm leaning towards a new 15" MacBook Pro (17" is too big to travel with). If I could get one with a 256GB SSD, I'd definitely be sold.

What would you do?

Posted in Mac OS X at Jan 26 2009, 10:18:33 PM MST 19 Comments

Running to Work

A little over two weeks ago, my commuter bike was stolen. At the end of that entry, I wrote:

Rather than buying a new one, I think it's a good opportunity to take things up a notch and start running to work instead. It's 6 miles and surely doable with some practice. There's also a good chance it's the worst idea I've had in a long time.

The next day, I ran my first commute and discovered it was 5.1 miles instead of 6. It also took me just under an hour (with a 10 minute cool down at the end), indicating an average of 11 minute miles. Yeah, that's slow. Since then, I've run most of the time I've been in town. Currently, I'm only running 3 times per week because I've found back-to-back days make me ridiculously tired.

I do hope to make it up to 4-days per week and possibly even do a couple round trips. Why am I doing this? Part of me wants to get in better shape, and the other part is too stubborn to buy a new bike. Yes, I will buy a new commuter bike eventually. My current goal is to run until April 1st or until I lose 20 pounds, whichever comes first.

After the run home The downside of running is it's easily the worst part of my day. It's the part I dread the most, especially on nights like tonight. When I left the office, it was dark and 6°F (-10°F with wind chill). Amazingly, I didn't get cold thanks to good layering. My face did end up with a lot of ice on it as evidenced by the photo on the right. I know the next couple months aren't going to be easy, but I always like a good challenge.

How have you challenged yourself lately?

Posted in General at Jan 26 2009, 09:55:36 PM MST 7 Comments

The kids actually like skiing!

Helmet Stickers The kids and I had a blast skiing at Winter Park today. I can't remember a day I've been more proud of my kids and their willingness to ski. I woke them up just before 6 AM this morning. I was very impressed when they both popped out of bed with huge smiles on their faces. They were actually excited to go skiing. Their enthusiasm didn't end throughout the day and we had a ton of fun.

I was most impressed with Abbie - she now wants to ski blues all the time. Not only that, but when she falls she has no problem getting up herself. Jack, on the other hand, can barely do "Pizza" and says "I can't" and "I'm scared" most of the time. I somehow convinced Abbie that if you believe you can do something, you can do it. She's been using that mantra whenever we ski and it's worked awesome for her.

For the last run today, I told Abbie we could do a blue; Jack would only do it if I carried him. We rode to the top of Winter Park and skied down a steep blue/black. I imagine it was a pretty funny scene because it looked like I was in way over my head. Abbie was going slow, snow-plowing like mad, and I was skiing with Jack in my arms while he carried my poles. Several folks stopped to see if we needed help, but I told them it was all pre-planned. Abbie fell several times, but got up by herself every time and even got "the burn" towards the bottom. It's a good thing I've been running to work lately, carrying a 4-year-old top-to-bottom on a steep blue with 8" of powder can be quite a workout.

Posted in General at Jan 24 2009, 05:24:34 PM MST 1 Comment

Traveling to Tahoe without a Driver's License

View from our room This past weekend, I had quite the adventure traveling to Lake Tahoe. On Thursday night, I flew into Denver from LA and had a busy night tidying up loose ends. After 3 hours of sleep and a late start, I was on my way to DIA early Friday morning. As I was approaching the parking garage, the lights went on in my review mirror.

When the cop asked me for my license and registration, I opened my wallet and felt my heart sink.

My driver's license was missing.

I quickly realized I left it in my pants the night before and explained this to the officer. Luckily, I found my birth certificate in my car's console and was able to show him that. He still wasn't convinced. Then he looked at my coat and said "What about your ski pass?" It had a picture on it and seemed to satisfy his identification criteria.

The cop then asked me why I was speeding (63 in a 45) and I politely explained my flight was departing in 30 minutes and I was hoping to make it. He said, "You won't make it. They won't let you check-in." I said I checked in online. He seemed to know this might work and quickly filled out the rest of my ticket. At this point, I didn't think it was possible to make my flight. I felt defeated and dreaded waiting all day until the next Frontier flight to Sacramento.

I arrived at the counter (to check-in my skis) 20 minutes before the flight was scheduled for departure. Frontier was awesome - they checked in my bags and sent me on my way as fast as they could. TSA wasn't too bad; I just had to go through the extra screening. Of course, I had to run all the way through Terminal A to make my flight on time.

While taxiing to the runway, I reflected on how awesome it was that I was utterly defeated 30 minutes prior and how the good people of Frontier Airlines made it all possible. Of course, when I arrived in Sacramento, my adventures continued with late baggage and rental car issues.

The good news is it all worked out in the end and I had a great weekend of skiing at Heavenly and Kirkwood. The snow wasn't great, but we skied in t-shirts all weekend. The Tahoe Trip seems to have become an annual tradition. Next year I'll make sure and bring my license. ;-)

Posted in General at Jan 22 2009, 04:09:27 PM MST 7 Comments

LA Tech Meetup Tonight

If you live in LA - or just happen to be in town - you should join us for some beers and tech talk this evening. We're meeting at The Village Idiot around 7 and plan on being there until 9. Hope to see you there!

In other Tech Meetup News, it looks like we'll be doing one in Denver next Thursday (January 22nd). Venue TBD.

Posted in Java at Jan 14 2009, 11:40:12 AM MST Add a Comment

Choosing an Ajax Framework

This past week, my colleagues and I have been researching Ajax Frameworks. We're working on a project that's following SOFEA-style architecture principles and we want the best framework for our needs. I'm writing this post to see 1) if you, the community, agree with our selection process and 2) to learn about your experiences with the frameworks we're evaluating. Below is the process we're following to make our choice.

  1. Choose a short list of frameworks to prototype with.
  2. Create an application prototype with each framework.
  3. Document findings and create a matrix with important criteria.
  4. Create presentation to summarize document.
  5. Deliver document, presentation (with demos) and recommendation.

For #1, we chose Ext JS, Dojo, YUI and GWT because we feel these Ajax libraries offer the most UI widgets. We also considered Prototype/Scriptaculous, jQuery and MooTools, but decided against them because of their lack of UI widgets.

For #2, we time-boxed ourselves to 3 days of development. In addition to basic functionality, we added several features (i.e. edit in place, drag and drop, calendar widgets, transitions, charts, grid) that might be used in the production application. We all were able to complete most of the functionality of the application. Of course, there's still some code cleanup as well as styling to make each app look good for the demo. The nice thing about doing this is we're able to look at each others code and see how the same thing is done in each framework. None of us are experts in any of the frameworks, so it's possible we could do things better. However, I think it's good we all started somewhat green because it shows what's possible for someone relatively new to the frameworks.

For #3, we're creating a document with the following outline:

Introduction

Ajax Framework Candidates
(intro and explanation)

  Project Information
  (history)
  (license / cost)
  (number of committers)
  (support options)
  (mailing list traffic (nov/dec 2008))

Matrix and Notes

Conclusion

For the Matrix referenced in the outline above, we're using a table with weights and ranks:

Weight Criteria Dojo YUI GWT Ext JS Notes
# Important Criteria for Customer 0..1 0..1 0..1 0..1 Notes about rankings

Our strategy for filling in this matrix:

  • Customer adjusts the weight for each criteria (removing/adding as needed) so all weights add up to 1.
  • We rank each framework with 0, .5 or 1 where 0 = doesn't satisfy criteria, .5 = partially satisfies, 1 = satisfies.

The list of criteria provided to us by our client is as follows (in no particular order).

  • Quality of Documentation/Tutorials/Self Help
  • Browser support (most important browsers/versions based on web stats)
  • Testability (esp. Selenium compatibility)
  • Licensing
  • Project health/adoption
  • Performance
  • Scalability
  • Flexibility/extensibility
  • Productivity (app dev, web dev)
  • Richness of widget/component library
  • Charting capability
  • Ability to create new widgets
  • Match to existing Java team skill-set
  • Ease of deployment (on Ops, QA, Users)
  • Degree of risk generally
  • Ability to integrate with existing site (which includes Prototype)
  • Easy to style with CSS
  • Validation (esp. marking form elements invalid)
  • Component Theme-ing/Decoration
  • CDN Availability (i.e. Google's Ajax Libraries API or Ext CDN)

What do you think? How could this process be improved? Of course, if you have framework answers (0, .5 or 1) for our matrix, we'd love to hear your opinions.

Posted in Java at Jan 08 2009, 09:36:22 PM MST 39 Comments

R.I.P. Giant FCR3

This week, I started a new gig at a new office in downtown Denver. On the first day, I was disappointed to find our building doesn't allow bikes inside. The next day, I went out and bought a new lock. Today, I walked out for the ride home to discover my bike had been stolen. :'(

At first I was shocked, then pissed, and then I noticed my lock was still there. This means, 1) I didn't wrap it around a tube or 2) someone cracked the lock and re-locked it. Of course, I find it hard to believe after all these years that I'd miss the tube when locking my bike. However, it'd be pretty strange if someone stole it and then went through the trouble to lock the lock again. Regardless, the awesome commuter I bought over 3 years ago is gone. You will be missed my friend.

New Commuter - Giant FCR3

Rather than buying a new one, I think it's a good opportunity to take things up a notch and start running to work instead. It's 6 miles and surely doable with some practice. There's also a good chance it's the worst idea I've had in a long time.

Update: Running wasn't too bad.

Posted in General at Jan 08 2009, 09:08:37 PM MST 9 Comments

Happy Birthday Mom!

For the last couple weeks, I've been enjoying a great Christmas vacation in Oregon with most of my family. Abbie and Jack didn't join me, but they got to spend 3 weeks in West Palm Beach, Florida. Poor kids.

Mom on Playa Carrillo I made sure the end of my vacation would land on a very special person's birthday. My Mom. Not only is my mom one of the coolest people in the world, she also has an excellent job title: Burn Boss. Growing up in Montana, I was always proud that Barb Raible was my mom. She was famous for her kindness in the Swan Valley. I hope she's always famous for her story about nailing a bear's nuts to a tree.

My mom is a Montana Native who wasn't afraid to raise her kids in the backwoods at her family's homestead. It sounds like a crazy idea to me, but she made it happen - cooking over a wood stove every day and working at the Swan Valley Ranger Station to make ends meet. She was responsible for getting us out of Montana and onto Oregon. She went back to school in her early 40s, got a degree in Forestry from the University of Montana and moved the whole family to Oregon for a job with the BLM.

I moved to Oregon on June 14, 1990 driving a '73 Plymouth Duster with a homemade International trailer in tow. We certainly looked like we were from Montana when we rolled into town. We moved into a house on Felony Flats. My sister and I got jobs at McDonald's (Dad's advice) and started school at North Salem High school in the fall. I met many good friends at North Salem - Jess, Matt, Clint and Michelle becoming favorites over the years.

Sunrise in Bend For New Years, Jess, Clint and I rented a condo in Bend, Oregon. Matt joined us on Friday after most of us experienced an Epic Powder Day at Mt. Bachelor. It was the first time we'd all been together in 9 years. We had a blast.

This vacation in Oregon has been very special to me. I've reunited with many old friends, enjoyed 2 epic powder days and had a great time with my Mom, Dad, Sister and her fiancé Mya.

As much fun as I've had, I'm looking forward to getting back to Denver and hanging out with my kids. January 2009 is sure to be one for the books. I start a new gig at a new office tomorrow. On Wednesday, the kids return from Florida to a mountain of presents at my house. My parents are coming to town next weekend, followed by a trip to Tahoe and a weekend in Steamboat to finish out the month.

Yeah, 2009 is going to be a lot of fun. Maybe I'll see you on the slopes. ;-)

Posted in General at Jan 04 2009, 12:08:28 PM MST Add a Comment