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.

Java Jobs: broken down by web framework

I updated my Web Framework Comparison presentation today. Rather than updating the graph that shows today's job availability, I did one that compares today to 6 months ago. Struts is still the clear winner (and growing). Spring is definitely growing. Tapestry has about the same amount of jobs (9 vs. 8). WebWork lost 10 opening (down to 4) and the demand for JSF skills has grown as well.

Is WebWork a dying framework? I've heard folks complain about its small community, and there still aren't any books is only one book about it. Is that a jab at Patrick, Jason and Kris - or a jab at Manning? I'm not sure. ;-) The good news is WebWork in Action and WebWork Live should both be out this summer.

Web Framework Jobs

My search criteria for all of these was "framework and java" from the front page on dice.com. I did filter a bunch out for WebWork b/c there's some product called "WebWorks" that folks want to hire for.

In my own experience, these numbers are not as accurate as you might think. Since I gave my original presentation, I've been contacted a number of times to work on projects. It's about even between Struts, Spring MVC, WebWork and JSF. I haven't had a single inquiry to do Tapestry development. The bad part about Struts jobs is there's so many of them, that rates are likely pretty low (i.e. 35-45/hour), whereas the others can get you upwards of 80-90/hour.

So what do these numbers mean? Do they mean you should tailor your learnings and skills to the most popular frameworks? In a sense, it's important to do so. If nothing else, Struts skills are import so you can migrate all the Struts applications to your favorite framework. However, I don't think these numbers are that important when choosing a framework to start your project with. I think the most important thing in choosing a framework is passion. Which one do you want to work with the most? It's likely that your productivity will be higher if you're enthusiastic about the framework, rather than bored with all the skills you've accumulated using it. Then again, if you're motivated by productivity more than enthusiasm - using your skills to crank out applications quickly is probably a good idea.

You might think that the number of skilled developers for framework X is important too. I don't think it is. I think the most important thing is to hire smart developers. A good developer can come up to speed on any framework in 2 weeks and be highly productive in 4 weeks. If not, the developer isn't that smart or the framework isn't that good. ;-)

Just for kicks, I did some searching for other web frameworks as well:

  • Rife: 0
  • Wicket: 0
  • Echo: 3
  • Ruby on Rails: 1
  • ASP .NET: 2876

Now the question is - what kind of rates are these skills getting? I'd like to know what the average Rails and ASP .NET developers make. In Denver, Java developers seem to make between 65-85/hour when they're experienced contractors.

Posted in Java at May 22 2005, 07:28:01 AM MDT 13 Comments

TechTalk on TheServerSide

TheServerSide has posted an interview I did with Dion at ApachCon last November. If you want to hear me ramble on about AppFuse, Spring Live and web frameworks - check it out!

In other news, I have some big (professional) changes to announce, but I'm going to wait a day or two and compose a good entry for it. Let's just say I'll have a lot of time to work on AppFuse and Spring Live in the near future (and get paid for it!). ;-)

Posted in Java at May 21 2005, 03:47:34 PM MDT 14 Comments

PowerBook Dead?

I think my PowerBook has died. It figures - the one week in my life where I need it all week, and it quits working. The symptoms started happening yesterday as I was sitting in DIA, getting ready to come to Norway. The powercord wasn't lighting up when I plugged it into an outlet at the airport. At first I figured it was the outlet, and switched between a few different outlets. None of them worked, and I thought to myself "I'm screwed." Then I wiggled the connection where it connects to my laptop - and it lit up! "Phew, that was a close one", I thought.

I ran down my battery on the flight to Newark, and then found an outlet to recharge on my layover. No light. I tried 3 more outlets. No light. At this point, I figured it was my powercord and wondered if I'd even be able to buy one in Norway. I looked desparately around the terminal for another PowerBook user - hoping to buy a powercord off someone. No luck.

Now that I'm in Oslo, getting my PowerBook working again is my top priority. I found an Apple Store and I'm typing this from a PowerBook they have on display. Typing is a little difficult because it's a Norwegian keyboard and all the special characters are not on the keys I'm used to. I talked to the guy at the service desk and he tried the simple solution: using a powercord from one of the PowerBooks on display. No dice. Even worse, it seems to have fried the cord of the one on display!

My PowerBook doesn't seem to be totally gone - the light is still fading in and out on the front of it. But I can't turn it off (even after removing the battery), so I don't know what to do. I'm going to try searching Apple's forums and calling their support line, but I doubt either will work. Right now, it looks like I'll have to buy a new laptop (with a Norwegian keyboard) and spend the next 2 days re-creating all the training materials for this week. No power, no hard drive. Damn.

Luckily, I did send some of my presentations (in PDF form) via e-mail, so I haven't lost everything. I knew I should have backed up the Keynote files on a remote site before I left!

And so my adventure begins... ;)

Update: I figured out a solution. Using a charged battery still works - so the Apple Store is charging mine right now. I'm on my laptop, with one of their batteries, using their wireless. Unfortunately, the only way to charge my battery is in a PowerBook. The guys at Bouvet offered me a PC laptop, but I'm so used to presenting on the Mac - I don't want to lose that comfort level. So it looks like the solution is to buy a new PowerBook.

The good news is I get a 25% discount on the price when I leave the country (hopefully bringing it inline with US prices), but the bad news is it has a Norwegian keyboard. I can remap the keys, so that's not a big deal (since I don't look at them anyway). So the question is do I go whole hog and get the 1.67 GHz 17" with 2 GB RAM - or do I get a 12" and give it to Julie when I get back? The problem with buying the "whole hog" is I'm afraid the dual G4 cores will be released in early June, and I'll be stuck. The problem with buying a 12" and giving it to Julie is she really doesn't want one and will complain we can't afford it (she's right too).

If I bought the 17", I I could try selling it on eBay right when I get back, and hopefully get it sold before the new PowerBooks are announced. If they're not announced - oh well, I got a new laptop (which I need, but not really). What would you do if you were in my situation?

Update 2: Right after posting the update above, the guy came over to me and we talked about 17" vs. 12" and RAM prices, etc. They close in 10 minutes, I chose the 17" with 1 GB of RAM (1 chip). It's something like 27,000 kroners. Yikes!

Posted in Mac OS X at May 21 2005, 05:52:21 AM MDT 5 Comments

See you in Norway

My flight leaves Denver at 1:00 this afternoon and I arrive in Oslo at 9:45 tomorrow morning. Riding first class on the way to New Jersey should be quite a treat. There's no outlets on the flight (I called and asked Continental), so I won't be able to get much work done. I might as well sit back, watch a movie or two, and have a couple cocktails. ;-)

A friend of mine (hey Frenchie) told me the best strategy for overcoming jet lag is to stay up all day until the local time's evening - and go to bed at the same time as everyone else. So I arrive around midnight Denver time, and if I stay up until bed-time Oslo time, it'll be like staying up until noon tomorrow. Should be interesting for sure.

I'll try to post some pictures tomorrow, as well as blog about my experience getting over there. Stay tuned!

Posted in General at May 20 2005, 09:53:44 AM MDT 6 Comments

Am I forgetting anything?

I'm wondering if I'm forgetting anything for my trip tomorrow? I picked up a book on Norway and bought a World Travel Adapter Kit so my PowerBook will work. Is there anything I'm forgetting? I'm assuming Norway is a pretty modern country where I can buy anything I need - but you never know. The last time I went on a trip like this was to Russia - where there weren't a whole lot of options for re-purchasing forgotten goods.

Posted in General at May 19 2005, 10:58:49 AM MDT 11 Comments

Passport Expired

It figures. I'm supposed to leave on Friday for Norway and I waited until today to check the expiration date on my Passport. It expired in January of this year. That gives me 3 days to try to get it renewed before my flight takes off. This site makes it look like it ain't gonna happen, but I'm hopeful. There's a fair amount of walk-in places in Denver that do on-site photos.

Let me know if you have any tips or have been through this process yourself.

Update: Thanks to David Carter's suggestion, I found American Passport and should have a new passport on my doorstep Thursday morning. :-D

Update 2: Passport has arrived!

Posted in General at May 16 2005, 09:54:34 PM MDT 25 Comments

Sunset from the Sailfish Marina

Sunset from Sailfish Marina


Posted in General at May 15 2005, 04:37:03 PM MDT Add a Comment

Better JUnit Assertions

Joe Walnes has an interesting post on Flexible JUnit assertions with assertThat(). In this post, he shows the power of using some of jMock's features. Since jMock is included in AppFuse (sample test), using Joe's assertThat() is certainly a possibility. Let me know if adding this is something you'd like to see. The nice thing is adding it won't take any features away - it'll only add new ones.

Posted in Java at May 13 2005, 12:26:30 PM MDT 2 Comments

Spring Training in Norway

A week from today, I'm heading to Norway to do some training on Spring. It's going to be a good trip and I have my work cut out for me. I'll be talking about Spring, Hibernate, AppFuse, Acegi Security as well as Ajax and Spring Web Flow. I'll also be presenting at the two JUGs in Norway:

  • Stavanger JUG, May 25th: Test-Driven Developing with Spring and Hibernate. I also plan on talking about Spring Web Flow for a good portion of this meeting.
  • Oslo JUG, May 26th: Advanced Spring MVC, Spring Web Flow and Acegi Security.

I'll try to post outlines for my presentations in the next week or so.

Posted in Java at May 13 2005, 10:48:47 AM MDT Add a Comment

Tutorial: Date Handling with AppFuse and Struts

An AppFuse user known as "thogau" has taken the time to create a very nice looking tutorial titled Handling dates with AppFuse and Struts. Great stuff thogau!

Posted in Java at May 13 2005, 10:40:35 AM MDT Add a Comment