Matt RaibleMatt Raible is a Web Developer and Java Champion. 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.

PowerBook Dent Redux

Continuing my PowerBook Dent story from last week...

I continued to work with my iPod as a hard drive on Wednesday and Thursday of last week, and took my laptop into the Apple Store on Thursday evening. The guys at the Genius Bar said that neither Apple Care nor a warranty covered accidental damage, and that it would be very expensive if I sent it in. Their suggestion was to take my dented, no-hard-drive-finding PowerBook to The Mac Outlet for a new case. They said if I got a new bottom case, I could bring it back and say "the hard drive can't be found" and Apple Care would likely fix it for free.

On Saturday, I took my machine into The Mac Outlet. They estimated $550 for a new bottom case, and suggested the cheaper new hard drive route for around $250. I agreed with the cheaper route, but told them I was very keen on trying to recover the existing hard drive. Yesterday, they called me at 5:30 and said "You're on of the lucky ones." The whole problem was due to a loose cable - plugging it back in fixed all the issues. Yeeee haawww, my laptop is as good as new!

Now it's time to buy some DVDs, do some backup, and buy one of those "spongy wetsuit material" type cases. ;-)

Posted in Mac OS X at Aug 31 2005, 10:36:13 AM MDT 1 Comment

Using Acegi Security for Remember Me and SSL Switching

I spent some time yesterday converting AppFuse's homegrown Remember Me and SSL Switching system to using Acegi Security. Thanks to Justin Spears, who provided the original motivation. It was much easier than I thought it would be, and resulted in the deleting of 7 classes in AppFuse. Not only that, but only one of them had a test for it, so the test coverage has naturally gone up as well. I'll trade 40 lines of XML for 1214 lines of Java any day - especially when I can get the support of an open-source framework. ;-)

If you're interested in using this code over 1.8.2, you can checkout the latest code from CVS (or download it from http://appfuse.org/nightly). The only other change currently in CVS is changing from "tomcat" to "user" as the default User role. Below is a list of classes that were removed as part of this move to Acegi:

  • src/dao/org/appfuse/model/UserCookie.java
  • src/service/org/appfuse/util/RandomGUID.java
  • src/web/org/appfuse/webapp/action/LoginServlet.java
  • src/web/org/appfuse/webapp/filter/LoginFilter.java
  • src/web/org/appfuse/webapp/taglib/SecureTag.java
  • src/web/org/appfuse/webapp/util/SslUtil.java
  • test/web/org/appfuse/webapp/action/LoginServletTest.java

I should also mention that I owe a big thanks to Virtuas - who pays me to work on AppFuse these days. :-D

Posted in Java at Aug 29 2005, 09:25:37 AM MDT 11 Comments

Happy Birthday Jack!

Happy Birthday Jack!! It's hard to believe it's been a whole year since Jack was born. He's quite a guy to hang out with now - he's walking, laughing and smiling like you wouldn't believe. He always wakes up with a smile on his face too - quite the opposite of his big sister. ;-)

I'd post a recent picture, but I killed my PowerBook last week, where all our pictures are stored. In the meantime, here's a video of him walking from last week.

Posted in General at Aug 28 2005, 02:53:45 PM MDT 3 Comments

[ANN] AppFuse 1.8.2 Released

This release is mostly a bug fix release with no new features. It also includes upgrades to Acegi Security and the Spring Framework. Thanks to all the sponsors who have contributed products and free hosting to the AppFuse project.

To see how AppFuse works, please see the following demos:

Comments and issues can be sent to the mailing list or posted to the AppFuse Issue Tracker.

P.S. I have the Acegi integration done for Remember Me and SSL Switching in another project, so that support should be in CVS sometime next week. Thanks to Justin Spears for his help on this issue.

Posted in Java at Aug 27 2005, 06:42:06 PM MDT 12 Comments

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"/>
        </path>
            
        <taskdef resource="svntask.properties" classpathref="svn.classpath"/>
        
        <target name="svn">
            <delete dir="checkout/appfuse"/>
            <svn>
                <checkout url="https://svn.java.net/svn/appfuse/trunk" 
                    revision="HEAD" destPath="checkout/appfuse" />
            </svn>
        </target>
    
  • 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

A List Apart 4.0

I've always enjoyed A List Apart, so it's great to see they've got so much new stuff:

New design. New structure. New server. New publishing system powered by Ruby on Rails. As the dog days of summer draw to a close, we present A List Apart 4.0. So buy a tee shirt already.

Beautiful, just beautiful.

Posted in The Web at Aug 23 2005, 04:24:11 AM MDT 2 Comments

What do you want to see at Java in Action?

I'm presenting two sessions at Java in Action in October. The first one is a 3-hour tutorial on Comparing Java Web Frameworks, while the second is about Developing Next Generation Web Applications with Ajax in Spring. I'm in the process of writing both of these, and I'm interested to see what Java developers would like to see in these talks.

The tutorial is probably the toughest one because my normal presentation usually only takes about an hour to deliver. For a similar presentation, see Craig McClanahan's The Evolution of Web Application Architectures. I could talk about the history like Craig does, or I could talk about the different frameworks and their features like I usually do. However, I want something more interactive and fun for attendees. I was thinking of live-coding for 20 minutes with each framework, and showing the differences, but that's not a whole lot of fun either. Maybe I could divide the class into 5 groups, educate each of them on features of the framework, and then we could have some sort of debate? Showing code is always something that developers are interested in, so I'll have to figure out how to work that in as well. If you're planning on attending this tutorial - I'd love to hear suggestions.

I'm also curious on what you'd like to see in the 2nd presentation? I was planning on using Equinox (or possibly AppFuse), to show how to use DWR, Prototype and script.aculo.us. A couple of examples I'm thinking of showing are in-page updates and sortable/pageable tables. Any other cool effects or tricks you'd like to see?

Sorry for the cross-post from JRoller, but I wanted to reach the largest possible audience. Please leave comments on the JRoller entry.

Posted in Java at Aug 22 2005, 10:23:34 PM MDT

Hiking at Red Rocks

Posted in General at Aug 21 2005, 11:21:06 PM MDT 4 Comments