Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta.

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.


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.

DJUG Tonight - Geronimo and Web Services

If you live in Denver, tonight looks to be another great DJUG meeting. Bruce will be talking about Geronimo and Tom will be speaking on J2EE's Web Services. The best part of these meetings is always the networking over beers afterwards. However, tonight there's an added bonus. Bruce is fun to heckle. Make sure and ask him tough questions and rag on the fact that he's using a Mac too. ;-)

Posted in DJUG at Nov 10 2004, 03:15:44 PM MST Add a Comment

Take back the web

I've started a small revolution among my friends and family. I'm on a mission to take back the web. If they own a computer and they don't have Firefox installed, it will be soon. I'm recommending it to everyone, b/c people often ask me for advice for their computer's problems. Here's how our conversation usually goes:

Them: I'm having an issue with viruses, spyware, AOL, etc.
Me: You should use Firefox.
Them: Oh really, what's that?
Me: An internet browser. It's a lot better than Internet Explorer.
Them: OK, how much does it cost?
Me: It's free, download it from
Them: Cool, thanks for the tip.

This happens if their computer isn't nearby. If it is, I'll download and install it for them. I did this on Holly's machine last night. After showing her the tabbed browsing and she was pumped. Of course, hooking her up to a wireless network for the first time probably had something to do with her enthusiasm.

Even if IE adds tabbed browsing, I don't think there's any hope for it now. The web feel so much more solid when using Firefox. When I use IE, it feels brittle and ready to break. Have you started taking back the web with your family and friends?

Get Firefox

Posted in The Web at Nov 10 2004, 02:38:31 PM MST 7 Comments

How do you unit test your Velocity pages?

I've started working with an additional client this morning and one of my first tasks is to figure out the best solution for 1) unit testing the UI and 2) unit testing Velocity templates. It's funny how the blogosphere makes life so much easier. Today was my first meeting with the client and they wanted to know if there was a way to test Velocity templates. Yesterday, I saw a headline in NetNewsWire about unit testing Velocity. I glossed over it b/c I didn't have any use for it. When they mentioned it today - I remembered it, searched on java.blogs and found JUnit Testing Velocity. Folks might think that reading blogs leads to reduced productivity - but I think it leads to more efficient productivity.

I think I'm going to implement something using the JUnit/Velocity stuff above and jWebUnit. jWebUnit will be used to test the WebWork actions and their interaction with the Velocity templates. Anyone had experience (good or bad) using this approach on their projects? Any other alternatives you've used to ensure error-free Velocity pages?

I like jWebUnit because you can easily switch locales and test against ResourceBundle keys for i18n. I don't think this is possible with Canoo's WebTest. The nice thing about Canoo's WebTest is they're migrating to HtmlUnit (rather than HttpUnit), which supposedly has a lot better JavaScript support. Both jWebUnit and WebTest currently use the Rhino js.jar - which throws exceptions for perfectly good JavaScript code.

BTW, anyone know why searching for "appfuse" on JavaBlogs causes a 500 error?

Posted in Java at Nov 10 2004, 09:16:57 AM MST 5 Comments