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 "la blue girl episodesorgasm denial web tease". 1,368 entries found.

You can also try this same search on Google.

AppFuse Roadmap updated for 2.0

I've updated the AppFuse Roadmap for the upcoming 2.0 version. The current plan is to have a few milestone releases before the final 2.0 release. I can't promise any specific release date because of developer's schedules and current commitments. However, my hope is we can have it done by the end of this year.

Milestone 1

  • Maven 2 integration
  • Migrate from CVS to Subversion
  • Remove XDoclet, putting generated files into source tree
  • Get all flavors (WARs) deployed and running on Tomcat and Jetty Maven Plugin
  • Spring 2.0: Upgrade XML to XSDs, annotations where appropriate
  • Upgrade WebWork to Struts 2
  • Documentation - move to new Confluence or DocBook-based system for 2.0 documentation

Milestone 2

Milestone 3

  • Integrate XFire by default (for existing classes and generated classes)
  • Code Generation/AppGen - hopefully with the AppFuse Maven Plugin
  • Documentation

2.0 Nice to haves

  • TestNG replacing JUnit
  • Hibernate Validation Annotations (hard part is hooking it into the web frameworks)
  • Tomcat Plugin for Maven (that operates like Jetty's plugin)
  • JPA Support
  • Support for JDK 1.4 using something like Retroweaver
  • Support for using Ant to build/test/deploy AppFuse-based projects
  • Someone to do all the documentation ;-)

Let me know if there's anything that seems to be missing from this list.

If you can't wait until the end of this year, you may take a look at Patrick Lightbody's newly announced Project Able. He has a lot of good ideas in there that I hope to learn from.

Posted in Java at Aug 15 2006, 07:06:24 AM MDT 8 Comments

Denver JUG Tonight: Echo and Wicket

Looks to be a good show at tonight's DJUG: Justin Lee will be talking about Wicket and Tom Poindexter is presenting on Echo2.

BTW, did you know that Wicket may become an Apache project? I consider the main web frameworks in Java to be: JSF, Spring MVC, Struts 2 and Tapestry. RIFE, Stripes and Wicket follow close behind, but are generally very unheard of in the Java community at large. It's kinda wierd to see most of the Java web frameworks (save Spring MVC) end up at Apache, isn't it?

Update: This was a good meeting, mostly because both speakers were excellent. Relaxed, comfortable and good humored. Justin has a recap (and downloadable presentation) on his blog.

Posted in Java at Aug 09 2006, 07:15:33 AM MDT 4 Comments

7 simple reasons to use AppFuse

IBM developerWorks published my "Seven simple reasons to use AppFuse" article today. Here's a summary:

Getting started with open source tools for the Java™ platform such as Spring, Hibernate, or MySQL can be difficult. Throw in Ant or Maven, a little Ajax with DWR, and a Web framework -- say, JSF -- and you're up to your eyeballs just trying to configure your application. AppFuse removes the pain of integrating open source projects. It also makes testing a first-class citizen, allows you to generate your entire UI from database tables, and supports Web services with XFire. Furthermore, AppFuse's community is healthy and happy -- and one of the few places where users of different Web frameworks actually get along.

While you're there, you might be interested in reading the "Introduction to Spring 2 and JPA" tutorial. I don't know if we'll get JPA support into AppFuse 2.0, but it's certainly a possibility.

As far as AppFuse 2.0, here's the current structure I've started on for Maven 2:

appfuse
    - data
        - hibernate
        - ibatis
    - service
        - pom.xml
        - src
    - web
        - jsf
        - spring
        - struts
        - tapestry

After code is moved into the directory structure above (or completely re-written), I'd like to move to working on creating single module archetypes and multi-project archetypes (data, service, web) with Maven 2.

After getting the Maven 2 structure checked in, hopefully we can start looking at replacing AppGen. Scott Ryan has done a fair amount of work on this so far with his AppFuse Maven Plugin.

I plan on documenting the plan of attack and milestone features for 2.0 sometime this week.

Update: I started working on the Maven 2 conversion last night. The above structure has changed slightly. Now there's a project in data and web (notice the pom.xml and src in these directories). These projects will contain the classes/files that are common to their sub-projects. The fact that these projects even exist will likely be transparent to the end user.

AppFuse 2 Structure

Posted in Java at Aug 08 2006, 01:14:15 PM MDT 17 Comments

AppFuse Videos updated for 1.9.3

I've created new AppFuse demo videos that are up-to-date with version 1.9.3. The setup video is around 3 minutes, and the AppGen one is around 3:30.

New Project and Feature Tour
Setup Screenshot

Code Generation with AppGen
AppGen Screenshot

If you have any suggestions on making the above movies more effective, please let me know. I used SnapZ Pro X to shoot them and QuickTime Pro to compress.

In other AppFuse news, a couple of new tutorials have been written:

Props go out to Chris, Matt and Luciano for taking the time to write these detailed tutorials. Well done gents!

Posted in Java at Jul 24 2006, 08:58:06 PM MDT 10 Comments

Validation Framework Consolidation

Looks like Jason Carreira has stepped up to the plate to try and consolidate the validation frameworks we have in Java. I'm sure it was a joint effort among many, but Jason's name is the only one I see on the JSR. I applaud this effort - it's definitely needed.

I've used Commons Validator, the XWork Validation Framework as well as Hibernate's Validator. While Commons and XWork work, the ability to annotate a class and validate it anywhere/anyhow is pretty cool. I reviewed an article a couple months ago that hooked Hibernate Validator into Spring MVC and Prototype for client-side validation. There's a lot of good stuff in this space - let's hope this JSR creates something even better. More than anything, let's hope it doesn't brush off client-side validation like JSF did. ;-)

In an ideal world, the RIFE, Spring MVC, Stripes, Struts, Tapestry and Wicket developers will all participate and allow JSR-303's result to be used as their framework's validation engine. I think it's a given that this will be usable with JSF.

Posted in Java at Jul 11 2006, 02:05:37 PM MDT 18 Comments

AppFuse 1.9.3 Released

This release is primarily a bug fix release, but also contains upgrades to several dependent libraries, including Acegi Security 1.0.1.

To install and configure AppFuse for development, see the QuickStart Guide. Thanks to all the sponsors who have contributed products and free hosting to the project.

To see how AppFuse works, please see the following demos (username: mraible, password: tomcat):

Comments and issues can be sent to the mailing list or posted to JIRA.

Note: If you're building AppFuse on Linux, you should be aware of some non-English encoding issues. The solution is to add the following to your ~/.bashrc file.

export LC_CENGINE=en_US
export LANG=en_US
export LANGUAGE=en_US

Posted in Java at Jul 11 2006, 08:20:45 AM MDT 12 Comments

Two Finger Right Click

I just discovered that two finger right click has been added for 15" MacBook Pro machines. To enable it, go to System Preferences > Keyboard & Mouse > Trackpad. Check "Place two fingers on trackpad and click button for secondary click". Sweet - I dig this feature. Hat tip to the Parallels web site.

Now onto seeing if I can the free VMWare server to run Ubuntu side-by-side Windows XP on my HP box. If not, I'll drag out an old server and install it on there. It seems I'm in need of a build server since my other one is already being taxed by AppFuse's CruiseControl.

Posted in Mac OS X at Jul 01 2006, 08:52:13 PM MDT 3 Comments

Raible Road Trip #10

Raible Road Trip #9 was to the cabin last year for the 4th of July. This year, we're taking it a whole new level. Going to the cabin for the 4th is a good time, but the huckleberries aren't ripe yet. This year, we've decided to go the first week in August instead.

OSCON is at the end of July and visiting Portland in late July is awesome. My parents have agreed to watch the kids during OSCON, and July doesn't want to travel to Oregon (she's rather enjoy some "down time"). Because of all this, I've come up with quite the travel plan for Raible Road Trip #10.

On Saturday, July 22nd, James Goodwill and I leave from Denver and drive to Salem, Oregon - where my parents live.

Denver to Salem

According to Google Maps, this trip should take about 21 hours. We expect to arrive in Salem sometime Sunday night. We'll hang out in Oregon until Tuesday morning. Then I'm flying back to Denver to pick up the kids and return to Portland the same day. On Wednesday and Thursday, I'll hit up OSCON and its festivities. Thursday's Geronimo Live event followed by the Oregon Brewers Festival on Friday should be a lot of fun.

On Sunday, my parents, the kids and I will be heading to The Cabin.

Salem to Montana

Julie's flying into Spokane, WA that Sunday, so we'll pick her up on our way and hopefully arrive at the cabin sometime Sunday afternoon. From there, we'll all enjoy a week of relaxing, huckleberry picking and good family fun. We'll head back to Denver late that week, spending a night in Yellowstone Park along the way.

Montana to Denver

Julie thinks I'm nuts for all the driving I'll be doing on this trip. She calculated it up tonight and it's something like 46 hours. I'm pumped about the whole idea and can't wait for it to begin. I love road trips, especially when doing them with family and friends.

Update: As Sanjiv mentions in the comments, Yahoo Maps has a much better representation of this trip.

Raible Road Trip #10

Total Distance: 2920.6 miles, Total Travel Time: 48 hours 8 mins

Posted in General at Jun 21 2006, 10:51:55 PM MDT 5 Comments

RE: What Web Application framework should you use?

Tim O'Brien has an interesting post titled What Web Application framework should you use?. The first thing I noticed about this post is the permalink. It looks like he started with "Isn't Rails supposed to change...", which makes me wonder what the rest of the title was. In this post, he rags on Java Web Frameworks and the lack of a clear path for choosing one. He ends up predicting that many will stick with Struts 1.x (poor bastards) and those that aren't tied to Java should move to Rails. I don't have a problem with folks moving to Rails, but I would like to comment on the Java Web Framework space and Tim's comments.

He says:

Prediction: The confusion over what is happening over at Struts is going to discourage people from continuing to use it. The Struts team did the right thing in recognizing that Struts 1.x was a dead-end, but that project needs a single public message. Is it Struts Action or is it Struts Faces? Or is it two frameworks capitalizing on the Struts brand name?

I think what is going on in the Struts project is definitely two frameworks capitalizing on a brand name. That was a concious choice on the project's part when they chose to start creating sub-projects. The interesting thing about Struts Shale is it's largely a prototype for JSF 2.0. Furthermore, it was rejected by many Struts developers as becoming Struts 2.0. Why? Because JSF sucks. Especially when used with JSP - which is what most folks are doing.

JSF continues to be the most over-hyped under-used framework in Javaland. If you read the blogs of first-time users, you'll find many complaints and issues on how things work. Granted, most of these problems are with JSP and the implementation, but still. If I were in charge of JSF, I'd dump JSP altogether, bundle Facelets with it and allow more flexible page navigation (including controller-to-page). Don't get me wrong, I like the ideas behind JSF, I just don't like the implementation (or the fact I have to wait years for things to be fixed in the spec).

That being said, I've yet to meet an unhappy WebWork fan. If you find someone that still likes Struts, ask them if they've used WebWork. Chances are they'll say no. As far as Tapestry is concerned, the learning curve is too high. It's been rejected time and time again by my clients because of the learning curve. Are they going to fix this? Yep, they're going to re-write the whole damn thing - again! Every major point release of Tapestry throws backwards-compatibility out the window. Furthermore, I've heard once you get over the learning curve, it's a joy to work with. I've also met people at conferences that've used it over a year and say they're still struggling with its concepts.

Spring MVC - I wish I had bad things to say about it, but I don't. It (obviously) has the best Spring integration, but I've found WebWork much more pleasurable to work with. Sure, Spring has a ThrowawayController, but with a name like that, you can tell it's a second-class citizen.

Inspired by Tim's post, here's my prediction:

Struts Action 2 will be the best choice for developing Java-based web frameworks. Not only does it support JSF, but it's easy to learn, test and use. Furthermore, it seems to be the most often used framework in major software products and web sites.

How's that for a clear message? Struts Action 2 is the shiznit, now let's get back to developing applications.

Disclaimer: This is my opinion with a lot of stuff thrown in to get folks riled up. I've never put a JSF, Tapestry or Spring MVC application into production (except for AppFuse of course), so most of my opinions are likely without foundation. In wonder how many applications Mr. O'Brien has put into production with these frameworks?

Posted in Java at Jun 20 2006, 08:32:41 AM MDT 57 Comments

Happy Father's Day

Father's Day has been great so far. We started off this morning by opening gifts. The kids gave me some new framed pictures, as well as a whole bunch of huckleberries. I couldn't ask for better gifts. After that, we headed out to breakfast at my favorite joint, Pete's University Park Cafe. From there, we headed up to Tiny Town and rode around on the "Choo Choo Train". We stopped for ice cream on the way home and now I'm sipping a cold one while watching the US Open. Life is good. :-D

Abbie and Jack, June 2006

Thanks to my Dad for being such an inspiration - I hope I'm as smart as you someday Pappy. Can't wait to see you in July!

Related: Father's Day 2005, 2004 and 2003.

Posted in General at Jun 18 2006, 03:26:00 PM MDT 9 Comments