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.

Upgraded to Roller 2.0, Tomcat 5.5.12 and using Acegi Security

After a failed upgrade yesterday, I was able to successfully upgrade to Roller 2.0 today. The Editor UI is definitely nicer, and you can get a taste of it if you like by logging into my test user account. The username is "test" and password is "roller". You can also check out my planet page.

In addition to upgrading Roller, I upgraded Tomcat from 5.0.28 to 5.5.12 and everything seems to be humming along smoothly. I'm also running the Acegi integration patch for Roller instead of container-managed authentication. Hopefully this will help us identify any issues. I really like the Acegi integration so far, especially b/c the Remember Me stuff is checked at the root-level and I never have to click "Login" anymore. Good stuff.

Let me know if you see any issues.

Posted in Java at Nov 26 2005, 04:22:39 PM MST Add a Comment

Happy Thanksgiving!

I have to admit, Thanksgiving is one of the best American holidays there is. No gift giving, no marketing hype - just good food and hanging out with friends and family. This year, we took a break from the norm and canceled our trip to Florida - instead opting to stay home and relax a bit. We're certainly glad we did as things are much less stressed and we had a great dinner with friends this evening.

Like previous years, I have a lot to be thankful for. I owe you, the readers of this blog, a huge thanks. Your comments and feedback are always appreciated. I also owe a big thanks to Virtuas for hooking me up with a kick-ass job and fun folks to work with.

Last, but certainly not least - I'd like to thank Julie, Abbie and Jack. You guys are the best part of this whole world and make it tremendously fun to live in.

Happy Thankgiving!
Happy Turkey Day Y'all!

Posted in General at Nov 24 2005, 10:22:17 PM MST 1 Comment

Are you doing client-side validation in your JSF applications?

Are you doing client-side validation in your JSF application? I am in Equinox and AppFuse, but it seems somewhat primitive. I'm using David Geary's corejsf-validator.jar from his Core JSF book. It hooks into Commons Validator, and while it does work - it has some issues. First of all, if you have it in your classpath when testing, it screws up Ant-style path matching in Spring (applicationContext*.xml doesn't work). Secondly, it puts all the JavaScript validation functions right in your page, rather than in an external file that can be cached by your browser.

In reality, I believe that JSF should include client-side validation as part of the spec. After all, all of the other popular Java web frameworks support it. Then again, Rails is growing in popularity and AFAIK, it doesn't support it. In addition, the popular Java webapps I've seen (JIRA, Confluence, Jive Forums) don't use it either. I'm not trying to advocate that we should all be using client-side validation in our apps, I'm merely saying it should be an option in the standard web framework for Java.

The only public (and open source) option I've found is the Commons Validator support in Shale. Will this work in a MyFaces application w/o Shale? Are there other client-validation frameworks for JSF I don't know about? Or is the best option "don't use client-side validation with JSF?"

Posted in Java at Nov 24 2005, 09:02:39 AM MST 6 Comments

Clustering OSCache

For the past few days, I've been tuning and configuring OSCache in a clustered (WebLogic) environment. While setting it up was fairly easy, there was some fundamental concepts that took me a bit to figure out.

First of all, I chose to use JavaGroups instead of JMS. The primary reason behind this was it was easier to configure, but I also discovered that if you use JMS - you have to have a unique "cache.cluster.jms.node.name" property in your oscache.properties file on each server. This means to use OSCache with JMS, you have to build two different EARs. At least that's my impression. If you've figured out a better way to do this, please let me know.

In the application I'm working on, there are 4 different caches: one for Hibernate, and several other ones we've created with OSCache and Spring. For the past week, I developed a feature where we cache a user's account information across the cluster. The feature is more like an HttpSession than a cache b/c it's designed to replicate an authentication token (similar to a session id) across all the master servers.

After much head pounding, I discovered that OSCache doesn't update other nodes in a cluster for inserts and updates. It only broadcasts flushes. After understanding how OSCache works, it was much easier for me to code the solution (sans OSCache). If you'd like to see OSCache support replicating a cache across a cluster, vote for CACHE-96.

Posted in Java at Nov 23 2005, 01:05:44 PM MST 9 Comments

Lots of Java activity in San Francisco

The last 24 hours here in San Francisco have been quite interesting. Yesterday, I had lunch with a group of AppFuse users. They work for a company a few blocks from my training class. Chipotle was on the way, so I grabbed a burrito on my route and had a great time talking with them about the various open source tools that AppFuse uses, as well as what's on the roadmap. Thanks for the cookies John!

After class yesterday, I had a Guinness with an AppFuse user that recently put a high-volume site into production. He said it's held up surprisingly well and AppFuse greatly simplified his ability to deliver the project on time. In fact, most of the features the client wanted were already built-in.

Last night was another hotbed for Java talk - from web frameworks to TSSS in Vegas. Matt Filios and I had dinner and drinks with Mike "wanna play poker" Cannon-Brookes, Crazy Bob, Patrick Linskey, Geoff Hendrey (I hope I got the name right) and a number of other guys whose names escape me. It was Mike's birthday, so I left early to avoid the chaos that Crazy Bob and Mike always seem to stir up.

To top it all off, this morning I ran into a couple of folks that read this blog. I was getting breakfast at a local bagel shop - when a guy came up to me and asked "Is your name Matt"? I answered yes, and we talked briefly about my trip out here. It was kinda wierd being recognized, but kinda cool at the same time. It was good to meet you Nadeem.

I'm heading home from this wonderfully warm place tonight, but I'm sure I'll be back in the near future.

Posted in Java at Nov 18 2005, 12:00:57 PM MST 5 Comments

RE: Is Ajax gonna kill the web frameworks?

James is asking "Is Ajax gonna kill the web frameworks?" From my personal experience, I can definitely say that Ajax is going to give web frameworks a run for their money. However, I doubt it's going to completely replace web frameworks. There's many companies out there that aren't willing to commit to developing a JavaScript-only UI - not even Google. GMail has a non-javascript version that's used when you disable JavaScript in your browser.

That being said, I'd much rather work on a project that embraces and uses Ajax over a web framework. However, even if you decide to use Ajax, doesn't the same framework proliferation problem still exist? DWR, Scriptaculous, Prototype, AjaxTags, AjaxAnywhere, Rico, Dojo, JSON-RPC - which Ajax frameworks are the best ones to use? If one of these projects joins Apache, will it become the de-facto Ajax framework like Struts did? ;-)

Posted in Java at Nov 16 2005, 11:16:57 AM MST 8 Comments

San Francisco

The Golden Gate Bridge, San Francisco This week, I'm conducting a Spring and Hibernate workshop in San Francisco. I arrived late Monday night and will be here until Friday evening. So far, it's been an interesting trip. I woke up yesterday with some sort of stomach bug and almost had to postpone the class. Luckily, the pains in my stomach (and profuse sweating) went away 15 minutes before the class was scheduled to start. I made it through the day, but was pretty worn out afterwards. After class, I headed back to my hotel room and laid down for a power nap around 5 p.m. When I woke up it was 2:00 a.m. I went back to sleep and today I'm feeling much better.

The weather is beautiful here - upper 60s to low 70s during the day. This is quite a contrast to Denver - when I left, it was cold and starting to snow. In fact, our plane had to go to the de-icer before we could take off.

Posted in General at Nov 16 2005, 07:10:12 AM MST Add a Comment

Good Bus Stories

Driving in Utah I found some good bus stories on Dead Bus Diaries today. The first, The Wayback Machine is a story of a couple guys who make a roadtrip to pick up a 21-window bus. The story reminds me of my Dad and I's Road Trip to pick up my bus. When driving through Utah, through all the canyon's and mountains, the brakes on the bus changed from having 2-3 inches of cushion, to having only a 1/2".

I remember my Dad telling me, "Bah, you just need to pump the brakes more." Then it was his turn to drive down a long pass - and he quickly realized the brakes were on their way out. Regardless, we drove it home - through lots of mountains and valleys - with a mere 1/2" of travel b/w the brake pedal and the floor. I promptly got it fixed when we arrived back in Denver.

The second post, 3,200 Gallons of Gas and Counting, links to vwvagabonds.com - which has a great story about a couple who left the hustle and bustle and drove their bus around the world. 3 years, 60,000 miles, 24 countries, 4 continents, 122 border crossings and 3200 gallons of gas. Quite impressive if you ask me.

Posted in The Bus at Nov 15 2005, 04:57:58 PM MST

PowerBook won't boot after upgrading to 10.4.3

This morning, I began building a new user account for my demos tomorrow at NFJS. I'm doing this because the last time I did demos was a disaster. Since then, I've rebuilt my hard drive, and while things seem faster - a clean user account is the best way to get maximum efficiency. While building the new user, I was prompted by Software Update, and promptly installed Backup 3.0.1 and OS X 10.4.3.

After configuring a number of settings, I rebooted the machine. Now all I get is a gray screen with a dark gray apple on it. The damn thing won't boot. I rebuilt the disk with DiskWarrior, but no dice. Now I'm trying to repair permissions and all that jazz with Disk Utility.

Luckily, I can still boot off my iPod and I can always rebuild an external Firewire drive if I need to. However, I'd much rather get back to where I was this morning. There's nothing like hosing your machine the day before you really need it.

Update: I fixed the problem by reinstalling OS X with the "Archive and Reinstall" option. No data loss, time to backup.

Posted in Mac OS X at Nov 11 2005, 01:12:52 PM MST 6 Comments

Rocky Mountain Software Symposium

This afternoon, the Rocky Mountain Software Symposium returns to Denver for the final show of the year. Of course, this conference is better known as No Fluff Just Stuff, Denver. Lucky for me, I'll be presenting all my sessions tomorrow so I'll at least get one day this weekend to relax. It looks to be a good show, with lots of interesting sessions. Here's mine:

After the presentation class I attended last week, I think all these should be renamed. Unfortunately, I didn't have time to re-organize the presentations, but if I could change the titles, they'd be something like this.

  • Write better code faster with Spring and Hibernate, use AppFuse to simplify both
  • Make your webapps suck less by using Ajax
  • Use Spring AOP and Transaction Frameworks, because they're so damn easy

;-)

Update: PDFs of my presentations, as well as the Ajax demo is available from Equinox's downloads section. Make sure and view the README if you want to run the demo and see how to view the Ajax features.

Posted in Java at Nov 11 2005, 08:27:51 AM MST 8 Comments