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.
You searched this site for "matt". 1,142 entries found.

You can also try this same search on Google.

No Fluff, Just Stuff

In the interest of no fluff, just stuff, I've altered my theme. The old theme was 162.7 KB for this entire frontpage (in Mozilla: File -> Save Page As...), while the new one is 101.8. So I've reduced it quite a bit, considering that there's around 50K of pictures from posts and such. Thanks to all who suggested reducing the page size. I don't know how long I'll keep this theme intact, at least until the end of the month probably - in hopes of saving some bandwidth. I hope you like it, and if you don't - let me know why - and then help me improve it.

  • IE ignores the "max-width" CSS property, so you might get a width over 1024px for the body - causing the heading background image to look funny.

I'll add to this list as feedback rolls in. If you'd like to add to the list of available stylesheets for this theme, send me an image (1024 x 150) and I'll add it. Here's a simple stylesheet that you can alter to override settings in the basic one (simple.css). This theme has the stylesheet switcher integrated, so it's easy to change to a different stylesheet.

Posted in Java at Jun 22 2003, 11:51:22 AM MDT 12 Comments

Professional JSP 2.0 Update

Just in case anyone is interested, I thought I'd report on how Professional JSP 2.0 (now being published by Apress) is progressing. I received some initial feedback that my Struts/XDoclet chapter would not be included in the book, but would be a separate download (I'd still get paid for it though). Most of the reasons seemed to be indicating that the chapter was too advanced - newbies wouldn't get it. Personally, I hate reading newbie books, so why would I write a newbie chapter? I also hate simple sample apps, that's why I wrote a fully functional one. Anyway, I convinced them that this chapter did have value and now they are going to include it in the book, but as a case study rather than a regular chapter.

As for the security chapter, they said they really liked the content, but (again) the example was too advanced. I have been asked to remove XDoclet as a dependency since I don't explain it until the Struts chapter. This turned out to be a lot easier than I thought it'd be - only took me about an hour last night. I simply built the project with XDoclet, and then copied the artifacts (web.xml, generated ValidatorForms, struts-config.xml, validation.xml, *.hbm.xml, etc.) back into the source tree. I then tweaked the build.xml file to pick up the artifacts, ran "test-all" and voila - it worked?!

The lesson I learned from all this is that XDoclet is great for rapid development - but possibly only while you you are developing new features. Once an application stabilizes or development is discontinued (I don't plan on further developing security-example), it's pretty easy to strip out the XDoclet dependency and (probably) make it easier for users to understand.

Posted in Java at Jun 20 2003, 10:40:55 AM MDT 11 Comments

Quit Reading Me!

Just kidding. It's just that the ol' bandwidth issue has reared its ugly head again. I sent the following message to Keith last night:

Am I reading this stats page correctly?

Am I already over my KB limit for the month?

His response:

Wow, you've almost 3/4 million hits already this month....

It looks like it averages about 7.7K per hit, so yep, you appear to be over 5 
GB already this month.

I only have a 5 GB plan, so I asked him how much it would be to move to a 10 GB plan (no response yet). Why don't I just move? Because I like Keith, and ever since I moved to the new server, stability has been awesome. I pay $30/month for the 5 giger, so hopefully I can get the 10 GB for an extra $10/month. Then again, according to this page, 8 GB is $80/month. Maybe I will be moving...

Posted in Java at Jun 20 2003, 06:23:31 AM MDT 11 Comments

[ANNOUNCE] Commons EL 1.0 Released!

The Jakarta Commons Team is pleased to announce the first official release of Commons EL from the Apache Software Foundation. Commons EL provides an interpreter for the Expression Language that is part of the JavaServer Pages(TM) specification, version 2.0.

For more details see the release notes.

Source and binary distributions are available from the mirrors. Please remember to verify the signatures of the distribution using the keys found on the main apache site when downloading from a mirror.

For more information on Commons EL, see the EL web site.

Hmmm, I wonder if this means we can add EL support to the display tag library without including JSTL?

Posted in General at Jun 19 2003, 09:52:21 PM MDT 2 Comments

Sending POJOs to the UI instead of ActionForms

I'm starting to think that my Struts-based apps could be simplified if I didn't convert POJOs to Action Forms when retrieving them from the database. By this, I mean to say that I'd like to retrieve and display POJOs on the UI, and then capture their information (as Action Forms) when saving the form. The reason I want to do this is because of Hibernate's Lazy Loading feature and formatting Dates. Basically, Hibernate allows you to load children of an object lazily (i.e. resumes of a User), when the getResumes() method is called. I've created [a page|POJOsToForms] on my wiki to explain further and continue this discussion. Of course, you can always leave comments here if you'd rather - they cross-reference each other. The [RollingWiki|http://www.rollerweblogger.org/wiki/Wiki.jsp?page=RollerWikiPlugin] rocks!

Posted in Java at Jun 19 2003, 01:52:23 PM MDT 3 Comments

www.mail-archive.com

If you're doing development on an open source project, I recommend that you get your mailing list archived by mail-archive.com. It's pretty easy to setup and offers a nice google-like search interface. I recently added struts-apps, struts-menu-user and the display tag lists. I hope this makes it a lot easier for folks using these applications. I might even add Roller, but I figured Dave could handle that if he really wants it (it's already being done by gname anyway).

Either way, gname or mail-archive.com, if you're using a SourceForge mailing list, you'd better get a better archiving system b/c SourceForge's sucks! Why? No searching! What good is an archive without searching?!

Posted in Java at Jun 19 2003, 12:51:44 PM MDT 2 Comments

Happy Father's Day

Happy Father's Day to all the Dads out there. Especially to the ones I know of: Dave, Lance and Russ (also the guys I've known longest in this weblogging business). Should be a good day - I've already done a Sunrise Mtn. Bike ride and now we're heading off to a Cajun restaurant for brunch. Here's a couple of recent photos so you can see why I'm such a proud Dad.

Beautiful Ladies
Beautiful Ladies

Hope y'all have a good one!

Posted in General at Jun 15 2003, 08:59:01 AM MDT 2 Comments

Customizing JSPWiki

I've installed JSPWiki on this server in order to better support collaboration among developers. In particular, I hope to get user's tips and tricks for my demos and downloads. However, JSPWiki out-of-the-box is ugly. Dave has done a good job in making Roller's Wiki look good. So here's my question: How did you do it Dave? Rather than digging for CSS files and what not - can you hook me up with the info. I'll try to document my customization process when it ensues.

Posted in Java at Jun 12 2003, 05:22:40 PM MDT 5 Comments

SourceForge's Release Process Sucks

Dave asked earlier today if we should move Roller to be hosted at java.net rather than sourceforge.net. I responded with "SourceForge works for me" and didn't see any reason for a move. But after dealing with trying to release 0.8 of appfuse all night, I'm ready for something better. The release process sucks. I have to FTP files to upload.sourceforge.net (anonymously) and then, when the files are completed, selected them as files to release through the web UI.

The problem is that I've been trying to upload for the last 24 hours, and it keeps failing at different points in the upload process. So, here's the worst part - you can't "delete" from the FTP site - you have to release the file, and then delete it. What a pain in the ass - I've done this about 10 times now. My XP machine seems to be the source of my ftp-connection-dropping problem, so I've moved over to my Linux box. So now I'm ready to upload all my files, and look what SF gives me:

We're Sorry.
The SourceForge.net Website is currently down for maintenance.
We will be back shortly

Fuckers.

Posted in Java at Jun 11 2003, 11:03:26 PM MDT 9 Comments

[Hibernate] Open Session in View Pattern

I get this question a lot when folks check out my struts-resume application - so I figured I'd document it here - and then I can just send future developers a URL. The question is this:

Why do you tie your View to your Model Implementation by putting a Hibernate Session in your Service Interfaces?

I have a couple of reasons. The first reason is that I initially had ses.currentSession() and ses.closeSession() at the beginning and end of each DAO method. In fact, I found this old e-mail where you can see an example. This seemed to work for me and I was happy with it. However, I got an e-mail from Gavin (Hibernate's Lead Developer) that I was doing it all wrong. He said that I should use one session per request, rather than one on each method. Why? For performance reasons and to allow rolling back the entire session, rather than just a method. At least that's why I remember him saying.

So I refactored and implemented the Open Session in View pattern in conjunction with the Thread Local Session. You can checkout my ActionFilter and ServiceLocator for the View and ThreadLocal, respectively.

The problem now is that I pass my the Session object from my View -> Business Layer [example: UserManager] -> DAO Layer. So I'm tightly coupled with Hibernate, which I don't mind, because I really, really like Hibernate and have no plans to implement an alternate DAO (even though the architecture allows it). Even if I did choose to implement a new plain ol' JDBC DAO Layer, I can always get a java.sql.Connection from the Session using ses.connection(). Another option I've thought of is to just pass the ServiceLocator between the different layers, and call ses.currentSession() or ses.connection() when it's needed. But that seems to be the same thing I was doing before when I was opening/closing at the method level.

Comments and suggestions, as always, are welcomed and encouraged.

Posted in Java at Jun 11 2003, 02:12:31 PM MDT 8 Comments