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.

[Construction] Garage Demolition

Today, the builder started tearing down the garage and pouring the foundation for the master bath. It's pretty cool that all this is happening during my week off!

Tearing down the garage
The Garage demolition begins...
There goes the roof
There goes the roof!
The foundation begins
Master Bath Foundation begins...
Foundation settings
Styrofoam Moldings for the foundation

Posted in General at Mar 03 2004, 01:46:49 PM MST 1 Comment

[ANN] Anthill 1.7.0 Released!

I've been using Anthill for about a year now, and I think it's a kick-ass product. I don't really have any issues with the current version, but it's nice that there's a new release. If you're interested, you can view the release notes.

Posted in Java at Mar 02 2004, 09:52:51 AM MST 2 Comments

It's gonna be a good week

New Foundation It's gonna be a good week. Yesterday, I gave a demo at my client and they loved it. Shortly after that, my sister (Kalin) flew in to town. She's here until Thursday and I'm taking today, tomorrow and Thursday off. Vacations during the week are very nice. We're babysitting Abbie today, so it should be a good day - especially with a stop at Chipotle for lunch.

In other news, construction on our house started yesterday. Here's a photo of part of the new foundation (for the master bath) getting dug. There's already been one casualty - our sewer line. Luckily, Bob the Builder was able to run to Home Depot and fix it for our house full of guests. We also talked to our new (temporary) landlord on Sunday. We got pretty lucky - our neighbors bought a new house and we're going to finish out their lease. So we're going to live next door to our house while it's being built. Pretty cool, huh?

In even bigger news, Julie submitted her resignation at Qwest last week and today is her last day. She got tired of Abbie getting sick at daycare and more so, she was bored out of her mind. Things will be a bit tight - COBRA is just over $1000/month and it's our only option since she's pregnant. Doh! At least we'll only need it until September/October (crosses fingers for a healthy baby).

Posted in General at Mar 02 2004, 09:24:46 AM MST 3 Comments

AppFuse 1.4 Released!

This release involves many changes: re-arranging packages/directories, Spring integration, Remember Me refactorings and I also added iBATIS as a persistence option. I also spent a lot of time going through the tutorials to make sure they are up to date. I've been using AppFuse 1.4 for a few weeks on my current project, and I really do like the way Spring makes it easy to configure Hibernate, Transactions and Interface->Implementation relationships. If you're interested in upgrading your AppFuse 1.x app to use Spring, you can checkout this howto.

I also made the leap and moved the AppFuse project from SourceForge to java.net. This is mainly so I have more control over mailing lists and adding other developers. As of today, CVS files in SourceForge and Java.net are the same - but I'll only be updating Java.net from here on out. I also have released files in both projects, but will only use java.net in the future.

I spent all weekend updating the tutorials and fixing release-related issues. Phew - I'm glad that's over. "So," you ask, "what's next?"

A week of vacation (my sister flies in tomorrow), followed by starting to write Spring Live and creating a Spring MVC option for AppFuse. Oh yeah, I'll also be at SD West in Santa Clara, CA - let me know if you plan on attending.

Posted in Java at Mar 01 2004, 12:35:54 AM MST 11 Comments

Pictures from Tucson

Last weekend, we headed to Tucson, Arizona to visit with family. Here are some good pics from the trip - and one of Abbie with her new kitty.

Trains
Cool Trainyard
Trains
El Charro
Trains
Saguaro National Park
Trains
Abbie giving Zoe a kiss

Posted in General at Feb 27 2004, 10:43:32 PM MST Add a Comment

Generating indexed-property ready ActionForms with XDoclet

One of the issues with using XDoclet to generate your Struts ActionForms (from POJOs) is that out-of-the-box, your Forms will not support indexed properties. This means that if you have a List on an object (this list will likely contain other objects/forms), you have to extend the generated form to add the necessary setters for indexed properties. For example, if you have an addresses List on a PersonForm, you would need the following in order to edit those addresses in Struts.

    setAddresses(int index, Object address) {
        this.addresses.set(index, address);
    }

The worst part is that you need to populate the addresses list with a bunch of empty AddressForm objects before Struts' auto-population will succeed. If you were coding the PersonForm by hand, you could code a reset() method such as the following:

    public void reset(ActionMapping mapping, HttpServletRequest request) {
        this.addresses = ListUtils.lazyList(new ArrayList()new ObjectFactory());
    }

    /**
     <code>StringFactory</code>
     *
     @see org.apache.commons.ListUtils
     */
    class ObjectFactory implements Factory {

        /**
         * Create a new instance of the specified object
         */
        public Object create() {
            return new AddressForm();
        }
    }

Now for the best part - I figured out how to generate this code with XDoclet, so any lists on your Forms will be indexed-property ready. By using <nested:iterate> in your JSP, you can easily CRUD you indexed properties. Pretty slick IMHO. The template is a bit much to put on this site, and it's long lines won't fit in a <pre> - so you can temporarily view the template here. I'll add a link to it in AppFuse's CVS once it shows up there. One thing you'll notice in this template is a little Velocity-lovin':

<XDtVelocity:generator>
  #set( $method = $currentMethod.name)
  ## trim off the 'get'
  #set( $objectName = $method.substring(3, $method.lastIndexOf('s')))
</XDtVelocity:generator>

Thanks to Erik on Merrick's blog for the quick Velocity/XDoclet howto. It was especially helpful since the XDoclet site has no documentation on this feature.

For all you my framework is better junkies - a clear explanation of how your framework handles indexed properties would be appreciated.

Posted in Java at Feb 27 2004, 05:18:10 PM MST 2 Comments

New Phone?

I just got an interesting SMS message from AT&T:

AT&T Wireless: Sony 
Ericsson and AT&T
Wireless have sent 
you a new T226
phone to replace
your current T68 -
no strings attached.
Questions? Call
800-500-3821.

Wierd eh? Is there something wrong with the T68i? I'll admit that the T226 looks a bit nicer, but when I get a new phone - I'd like to go all out. In other words, I'll be talking to Russ to get his recommendation.

Posted in General at Feb 27 2004, 03:10:56 PM MST 4 Comments

Struts 1.2.0 Test Build Available

From the struts-dev mailing list:

The Struts 1.2.0 Test Build is now available here:

http://www.apache.org/~martinc/struts/v1.2.0/

This is the first Struts build being made available following the same
test-and-release process that has been used successfully by the Tomcat
team for some time. It is *not* an official Apache release.

Once feedback has been collected on the stability and general quality of
this build, a determination will be made as to whether it should be
promoted to Alpha status.

You can reference the Struts site for a list of what's changed since 1.1. To further assist you (if you're upgrading from 1.1), you might want to check out how I did it back in October. I tested this build with AppFuse and all tests pass - I didn't even have to change a single line of code. For that reason, this is now the Struts version that'll ship with AppFuse 1.4.

Posted in Java at Feb 27 2004, 09:06:43 AM MST Add a Comment

No Fluff Just Stuff

I had lunch today with Jay Zimmerman of No Fluff Just Stuff. I always enjoy getting together with Jay because he's from Montana and Montanans are generally nice folks. Among other things, he asked if I would be interested in speaking at a NFJS event or two. I said I'd think about it. However, I'm strongly considering it since it would probably be a good marketing tool.

I probably wouldn't do any events until sometime this summer. Now I just have to figure out what I'd speak on...

Posted in Java at Feb 26 2004, 01:46:06 PM MST 6 Comments

Cool Blog Design

I dig Dunstan Orchard's blog theme. I especially like his comment alert system and right-nav tabs (main, b-marks, b-roll). There some inspiring stuff here - adding a similar comment alert system and theme are on my Roller wishlist. Now if I could just find time to do them...

Later: Some more cool designs.

Posted in Roller at Feb 25 2004, 02:55:44 PM MST 6 Comments