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.

[House Project] Foundation done, interior walls almost gone

This past week, they construction guys did a lot to get the floor on our new addition - as well as tear down the walls of the existing interior. Can you believe they discovered the walls had no insulation?! Bob told us yesterday that he expects them to have all the framing done by the end of this week. If he really means all the framing, I'll be pretty damn impressed. Below are some pics I snapped over the weekend - click on them to more.

Walls coming down

Posted in General at Apr 26 2004, 10:13:44 PM MDT 2 Comments

[ANN] Fire 1.0 Released

Download · Release Notes. Fire, the Trillian-like IM client for OS X, has released version 1.0. I use Fire everyday and think it's a great IM client - especially since I use so many IM accounts. I do think that iChat, Yahoo Messenger and MSN are great clients, but I prefer having one app open rather than 3.

Posted in Mac OS X at Apr 26 2004, 04:51:26 PM MDT 2 Comments

It's so easy to use, it doesn't even feel like work

Today I spent the whole day at my client doing training on the app I've been writing since November. The app is for posting jobs, entering resumes and screening applicants. It was originally created using Struts Resume and is in synch with the latest AppFuse code. It's been a fun app to develop and now that development is winding down, user training is beginning. When the head of HR was leaving the room today, she said something that made my day.

"It's so easy to use, it doesn't even feel like work."

There's nothing quite like compliments from a client. grin

Posted in General at Apr 26 2004, 03:35:52 PM MDT Add a Comment

[ANN] Hibernate 2.1.3 Released

Download · Release Notes. It's been awhile since the last Hibernate release (approx 2.5 months) - most likely because the last one has been rock solid - at least it has been on my projects. All tests pass in AppFuse.

Posted in Java at Apr 25 2004, 10:09:10 PM MDT Add a Comment

Goals for the week with XDoclet, Spring and AppFuse

I have a lot that I want to accomplish this week. Hopefully a few late nights will make it possible. I'm posting this list here in case someone has already done some of this.

  • XDoclet: duplicate the Struts-specific <validationxml> Ant task for Spring. Make it work with POJOs. This is primarily motivated by the fact that I got the commons validator stuff to work just like it does with Struts.
  • XDoclet: create a new <strutsform> task that doesn't depend on ejbdoclet. This will allow me to remove AppFuse's dependency on j2ee.jar.
  • Spring: extract the mock objects used in Spring's internal test suite so I can use them to test Spring Controllers (springtestcase? ;-)).
  • AppFuse: finish Spring MVC integration and release 1.5 beta.

Phew - it's gonna be a rough week with very little sleep. Fortunately, it'll all be worth it if I can pull it off.

Update: Sometimes things just click: generate validation.xml for Spring and generate ActionForms from POJOs w/o an EJB dependency. I also discovered that <hibernatedoclet> requires that xdoclet.modules.ejb.EjbDocletTask is in the classpath. It doesn't make sense, but the compiler doesn't lie.

Posted in Java at Apr 25 2004, 04:02:15 PM MDT 3 Comments

Logout your users automatically after their session times out

One of the common issues I see in webapps is a user leaves their computer, their session times out, and when they come back to do something - the app throws errors b/c their session is null. There are several easy ways to fix this. If you use Container Managed Authentication, the user will likely be prompted to do login and can continue as before. If you're using a slick Remember Me feature (like AppFuse has), the user won't even notice. However, you might not have these options available to you. For those circumstances, I recommend you put a meta-refresh in your app to automatically show the uses a timeout message when their session expires. It's as simple as the following:

<meta http-equiv="Refresh" 
  content="${pageContext.session.maxInactiveInterval}; url=timeout.jsp"/>

I used JSP 2.0's EL in this example for simplification. If you're using a JSP 1.2 container - you'll have to wrap that expression with a <c:out> tag.

Posted in Java at Apr 24 2004, 07:33:10 AM MDT 8 Comments

Wicked Color Picker

Chris has a nice post with links to online color pickers. After looking at them, ColorMatch Remix seems to be the best one. Of course, ColorMatch's inspiration looks pretty good too.

Posted in The Web at Apr 23 2004, 09:43:24 PM MDT Add a Comment

Google Zeitgeist

Search patterns, trends, and surprises according to Google. Kinda cool.

Posted in The Web at Apr 23 2004, 11:16:29 AM MDT Add a Comment

CSS Drop Shadows

A List Apart has a new article on how to make CSS Drop Shadows that work in IE. The first article shows how to do it for all the other browsers. I dig the technique, so I've decided to use it on this site. To add it, all I did was add the following to the <head> of this page:

<style type="text/css">
    div.alpha-shadow {
        clear: both;
        float: left;
        background: url(http://www.alistapart.com/d/cssdrop2/img/shadow.gif) no-repeat bottom right;
        margin: 5px 0 0 10px;
    }
    div.alpha-shadow div {
        background: url(http://www.alistapart.com/d/cssdrop2/img/shadow2.png) no-repeat left top !important;
        background: url(http://www.alistapart.com/d/cssdrop2/img/shadow2.gif) no-repeat left top;
        float: left;
        padding: 0px 6px 6px 0px;
    }
    div.alpha-shadow img {
        background-color: #fff;
        border: 1px solid #a9a9a9;
        padding: 4px;
        margin: 0;
    }
</style>
<!--[if gte ie 5.5000]>
<link rel="stylesheet" type="text/css" href="http://www.alistapart.com/articles/cssdrop2/ie.css" />
<![endif]-->

Then I wrapped the following image with:

<div class="alpha-shadow">
  <div><img src="..." alt=""/></div>
</div>

If I decide I like this, I'll make sure and download the images/stylesheets locally so not to hog bandwidth from alistapart.com. Too bad there's not a technique to make text drop-shadows work. To see what I mean, see my Struts Resume demo. All the <h1> tags (titles) should have a drop-shadow - and they do in Mozilla, Firefox and Safari (but no go in IE).

The real question is - how do I get it to NOT float:left, but still get the drop-shadows to work? I guess I'll have to ask that question on alistapart.com.

Hmmmmm, my version doesn't work in Safari, what's up with that?!

Posted in The Web at Apr 23 2004, 07:59:47 AM MDT 8 Comments

Happy Anniversary Julie!

Today is Julie and I's 4-year anniversary. It's hard to believe that 4 years has gone by so fast. That's part of the reason I started this weblog - so I'd be able to document my life and know exactly what I was thinking on a certain date. Unfortunately, if I look back, I'll probably just see that (most of the time), a new Hibernate release came out. ;-)

I couldn't ask for a better wife or mother of my children. She really is the one for me and I couldn't be a luckier guy. Just for kicks, here's a picture on our wedding day. The funny thing is the picture is from exactly 4 years, 15 minutes ago. We got married at 5 p.m. EDT, and I suspect this picture was taken around 5:45. We'll be celebrating tonight with a babysitter and a nice dinner out.

Posted in General at Apr 22 2004, 03:59:19 PM MDT 2 Comments