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

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.


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.

PowerBook Dent

A fair amount of PowerBook owners I know have corner dings in their laptops. It usually comes from dropping it in a parking lot or something similar. I've managed to escape this problem for a number of years now. Until today. I'm writing this post on my PowerBook, but my hard drive is currently my iPod because I can't boot up off the regular hard drive. I'm heading to the Apple Store in short order to see if they can fix the hard drive.

At least I have a decent story behind it. I was riding my bike downtown today, and while riding off the curb onto Larimer street - I popped a wheelie. I had too much oomph - and the front wheel started to head for the sky. Normally when this happens, you hop off the back of the bike and you're good to go. Not today, my shoes wouldn't snap out of my pedals - so WHAM, splat, boom. I hit the pavement like Whiley Coyote off a cliff. Right in the middle of the street too - good thing no cars were coming. Most of my left side hurt like a mother and my left elbow has some nice road rash - but nothing out of the ordinary from a bike wreck.

After riding off with stars in my eyes, I headed to Chipotle for lunch. After lunch, I broke out my laptop to work on Spring Live. When I pulled it out, I noticed the left-corner dent and thought, "Not bad, could have been a lot worse." Moments later, all my open applications froze up. When I tried to reboot, I got the blue Mac folder with the ? on it. In other words, "I can't find your hard drive." And so another PowerBook repair adventure begins...

Posted in Mac OS X at Aug 24 2005, 01:40:31 PM MDT 7 Comments

Google is helping developers make more money

From Relax, Bill Gates; It's Google's Turn as the Villain:

Google, Mr. Hoffman said, has caused "across the board a 25 to 50 percent salary inflation for engineers in Silicon Valley" - or at least those in a position to weigh competing offers. A sought-after computer programmer can now expect to make more than $150,000 a year.

Thanks Google - we appreciate the inflation. ;-)

Posted in The Web at Aug 24 2005, 11:49:21 AM MDT 1 Comment

Using CruiseControl with Subversion

This morning, I had the pleasure of setting up an AppFuse-based project to run under CruiseControl. Normally, this is very easy to do because I have the CruiseControl setup files and instructions. However, this project uses Subversion instead of CVS. Luckily, Subversion is easy to use and I was able to modify things to work quite easily. Below are the steps you can take to modify your AppFuse project to run under CruiseControl and Subversion.

  • Download svant and extract it to your work directory.
  • In build.xml, change your "cvs" target to "svn" and change the tasks appropriately.

        <path id="svn.classpath">
            <fileset dir="svnant-1.0.0-rc1/lib" includes="*.jar"/>
        <taskdef resource="" classpathref="svn.classpath"/>
        <target name="svn">
            <delete dir="checkout/appfuse"/>
                <checkout url="" 
                    revision="HEAD" destPath="checkout/appfuse" />
  • Modify the "test" target in build.xml to depend on "svn".
  • In config.xml, change the <modificationset> to be <svn LocalWorkingCopy="/home/cc/work/checkout/appfuse"/> instead of the <cvs> equivalent.

The instructions have been documented on the wiki and checked into AppFuse's CVS.

Posted in Java at Aug 24 2005, 10:24:26 AM MDT 4 Comments