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.

Good Parties at JavaOne

Are you going to JavaOne in a few weeks? If you are, you'll want to know all about the good parties. So far, I've heard the SolarMetric/Tangosol Party is Tuesday night, but don't know if it's been renamed to the BEA/Tangosol Party. I've heard same time, same place.

On Wednesday night, there's a GlassFish BOF at 5:00, a Struts BOF at 5:30 (in the pavilions) and our Geronimo Live Party from 6-9. You'll need to pre-register to get into the Geronimo Party. Luckily, you can easily do that by clicking on the image below.

Geronimo Live

The party is at the swanky W Hotel, which is right across the street from Moscone. It's sponsored by the following Geronimo Supporters:

Geronimo Live Sponsors

Any other good parties you know of at JavaOne?

Posted in Java at Apr 25 2006, 05:36:54 PM MDT 10 Comments

CSS Framework Design Contest - only one week left!

It's time for another CSS Framework Design Contest Update. The contest will officially end this weekend (Sunday night), but hopefully people will continue to contribute designs after that. After the initial deadline passes, I'll send out a vote to the AppFuse CSS Mailing List. If you have a better idea of how to handle voting, I'm all ears. Maybe we should use JIRA?

I spent a few late nights last week converting some of Andreas Viklund's Templates to use the CSS Framework. All the ones I converted, along with many other contest entries, can be seen at http://css.appfuse.org/themes. For many of these, I've replaced the default forms.css with one that has CSS from Wufoo.com. If you'd like to include a similar form in your entry, just copy the <form>s from form.html into your own page.

I've also looked at incorporating the CSS Table Gallery, but found many of the designs to be pretty ugly. Nevertheless, most of them work with the displaytag, so I might include some of them in the future. In the meantime, if you want to see what they look like, go to css.appfuse.org/users.html (user/pass: mraible/tomcat). Change the "css" parameter in the URL to match a table's stylesheet, and you should see what it looks like.

To answer a few questions I received earlier today:

Does an entry have to contain all possibilities/layouts?

No. I've come to realize that it's easier to only accomodate one layout. If users really like your design, hopefully they'll morph it to a different layout sometime in the future. If you look at the Andreas themes I converted, they only have a main page and a form. They'll likely be enhanced in the future for form elements, calendars, tables, etc. - but that should be pretty easy (and I'm willing to do that work).

Am I "allowed" to overwrite some settings in the different layout CSS for different settings, depending on which layout css is used beside the layout according stuff? For example settings (appearance, design) for the main navigation and so on?

Yes. You can change any of the CSS files you like. The only thing that needs to remain constant is the HTML - and then only the ids and order of <div>s, etc. needs to be the same. The general idea we're hoping for is to put your "theme" in a directory and then refer to it dynamically as part of the showcase. We're in the process of enhancing the showcase site to use the same HTML pages for all themes.

Don't forget about the prizes: an iPod (60GB), an iPod (30GB) and a 2GB Nano. In addition, you could use your cool new design for the CSS Reboot.

Posted in The Web at Apr 25 2006, 05:18:18 PM MDT 3 Comments

Gig in Seattle

I don't normally post gigs on this site, but I do when they're good rates, and the person hiring is a friend of mine. Here's one in the Pacific Northwest (Seattle):

  • 5+ years of experience with Java and J2EE required including EJB, JMS, and JSP/Servlet, required.
  • 3+ years of experience with UML, SOAP, XML/XSL, SQL, Struts.
  • 1+ years experience working with external client on projects.
  • Experience applying design patterns and OO best practices required.
  • Experiencing writing use cases and producing design documentation required.
  • Experience developing on Unix platforms required, preferably RedHat Linux.
  • Required application experience: BEA Weblogic, Tomcat, Apache.
  • Desirable application experience: Maven, Struts, Spring, MySQL, Oracle.
  • Desirable methodology experience: Refactoring, Agile, Scrum.
  • Desirable additional skills: WML, WAP, XHTML, XSL, XML Schema, SSL, HTTP, Perl.

Let me know if you're interested and I'll forward you the full job description and contact person's information.

Posted in Java at Apr 25 2006, 03:21:07 PM MDT Add a Comment

Gas Prices

Denver Apparently gas prices are way up. I wouldn't have known this, but the lady cutting my hair the other night mentioned it. I think I've filled up my car 5 times this year. The only thing I use it for now is Ski Trips and Airport Runs. Ahhhh, the joys of a bicycle commute and living in the center of town. Of course, on days like today (when it's starting to snow), it's nice to be able to work from home.

Posted in General at Apr 24 2006, 06:22:50 PM MDT 11 Comments

6 Years

April 22, 2000 Today is Julie and I's anniversary. It's hard to believe we got married 6 years ago. Actually, looking at Abbie and Jack, it's easy to believe it's been that long - they grow up awful quick. The fun part about this day is reflecting back on our wedding day. We got married in West Palm Beach, Florida - and had quite the turnout. It was a "destination wedding" as they call it, and we had friends and family fly in from all over the country. We made everyone fly down early (Wednesday) and had a golf tournament, went fishing on Julie's step-dad's boat, and lost money on a gambling cruise before our Saturday wedding. It was so much fun that we've been trying to think of an excuse to do it again.

Posted in General at Apr 22 2006, 03:56:21 PM MDT 7 Comments

Shale Remoting Library

Ed Burns on JSF AJAX Components:

These components leverage the Dojo Toolkit and make use of the JSF PhaseListener approach for serving up JavaScript files and handling AJAX requests on the JSF server. This approach was innovated by the Blueprints and JSF teams and generalized in the Shale Remoting library, which these components leverage to great effect.

Click on the Shale Remoting link to see the good stuff. ;-)

Posted in Java at Apr 20 2006, 10:29:37 PM MDT 2 Comments

CSS Framework Design Contest Update

Entries for the CSS Framework Design Contest are continuing to roll in. However, I don't know if the contest will finish at the end of this month. We've only received 5 submissions so far (1 being my own) and I'd like to get at least 10 good ones for folks to choose from.

My first attempt to show off the entries didn't do any justice to the submitted themes, so I've created a new showcase application. The new CSS Framework Themes application is available at http://css.appfuse.org/themes. It allows you to view the current submissions in the raw form that they were submitted. I've come to realize that a good design is tought to make flexible (where you can use all 6 layouts), so it's probably best to just have a single layout for each. Then again, juisefuse allows you to use all the layouts, so I guess it's up to each designer.

When I first started this contest, I envisioned people using the CSS Framework as a base, and overriding classes and styles in their own stylesheets. However, most of the entries contain modifications to the core CSS files - so it's probably best to allow free-form modifications of the CSS. Last night, I created my own entry based on Andreas Viklund's andreas01 theme. I did this to see what pain points there are in creating these themes. Although the experience wasn't too bad, I did find myself having to make one exception and break the "don't modify the HTML" rule. I had to move the top image out of the header div in order to get things positioned correctly. Oh well. I hope to convert some more of Andreas's themes this week. I also hope to incorporate some of the CSS from Wufoo's forms into these designs. After that, I'll start trying to figure out how these can fit into AppFuse and maintain their look and feel.

What's my pipe dream for css.appfuse.org? I'd like to make it possible for users to download and use these themes quickly and easily. Furthermore, it'd be pretty cool to develop an XSLT transformer that converts the main HTML page from each theme into decorators for AppFuse, Drupal and Roller. I don't know if this will be possible, but it certainly sounds cool.

Update: I added a new Deliciously Blue theme, which includes a form example based on CSS from Wufoo.com.

Update 2: I've converted three more of Andreas's themes: andreas03, andreas08 and andreas09. They're not pixel perfect, but they're pretty darn close. ;-) All of the themes in this contest (including the "showcase" application itself) are available in Subversion from the AppFuse CSS Project on java.net.

Posted in The Web at Apr 19 2006, 05:04:44 PM MDT 1 Comment

How do you determine a good MaxPermSize?

I know I'll probably get beat up for not knowing my JVM Turning parameters. I admit that I should know them better than I do. Hopefully this post will help us all understand them a bit better.

Ever since I upgraded appfuse.org to AppFuse 1.9.1, it's been experiencing OOM issues. They've been so bad that the site is lucky if it stays up for more than an hour. I've done a fair amount of performance testing on a single AppFuse application (and gotten very good numbers), so I was pretty puzzled by the whole situation.

To reproduce the problem, I downloaded all 5 demos to my machine and began profiling with JProfiler. Nothing stood out, but I was able to reproduce the problem by clicking through all the different applications. While testing, I had my JAVA_OPTS set to -Xms256M -Xmx384M.

After staring at JProfiler for hours, I gave up and sent my findings to the AppFuse mailing list. After going back and forth with several ideas, Sanjiv came up with the winner.

Did you try increasing the max perm size (-XX:MaxPermSize=256m)? Max Perm size is running out of memory and not necessarily the main memory. Class metadata stuff is placed in the perm memory (google for more details) and since we're using Spring, Hibernate and Tapestry which all use a lot of reflection, proxying etc, it's not surprising that max perm size is running out of memory.

Based on his advice, I added -XX:MaxPermSize=256m to my JAVA_OPTS, fired up JProfiler/Tomcat and began hammering my local instance with WAPT. 15 minutes later, with 20 simultaneous users, the heap and memory were humming along nicely with no issues. I made the change on appfuse.org and it's been up every since.

This experience has motivated me to start adding "-XX:MaxPermSize=256m" to all my JAVA_OPTS. Is this a good idea? If so, is 256m a good value to use? If not, what's the best way to determine (or guess) the proper value for this setting?

Posted in Java at Apr 19 2006, 09:54:14 AM MDT 21 Comments

The T2000 Arrives

I received my T2000 server from Sun yesterday, and now it sits in its original packaging in my basement. I may not even unwrap and install it. When I originally ordered the server, I heard you could blog about it and possibly win a free one. Since then I've heard different; there's a contest with many entering, and they're only giving away a couple of them. Because of this, I've somewhat lost my motivation to install the sucker. Partly because I know I'll have to send it back, and partly because it doesn't look that fast. Regardless, it's nice to have Jeff's setup instructions if I do decide to assemble/install it.

Right now, my schedule is packed full of client work - all the way until mid-June. So if I'm going to build this bad boy, it'll have to be as part of my "late night" schedule. Right now, that's booked with Spring Live, designs for the CSS Framework and AppFuse/Equinox development.

To further justify my lack of motivation, I don't think the T2000 will solve my OOM issues with CruiseControl and Ant. I've been talking with one of the Ant developers, and it appears to be caused by the <copy> task in Ant. With any luck, I'll find some time to setup CruiseControl and do some performance testing of web frameworks before the T2000 goes back in mid-June, but it doesn't look good right now.

Posted in Java at Apr 18 2006, 09:27:01 PM MDT 8 Comments

Off to The Shop!

It's been quite some time since I last worked on the bus. Something about the spring weather around here motivated me to finish it up last weekend and get it ready for the shop. It only took a couple hours to pull off the remaining items I could, and then I called the tow truck. He showed up this morning, and now it's off to the shop for body work and paint.

With any luck, when it comes back it'll look like this one. I doubt it though - there's going to be quite a bit more work to do on suspension, electrical and interior. Estimated time at the shop: 6 months to a year. Below are some "before the shop" pictures I snapped.







Images powered by Lightbox JS v2.0 and Flickr.

Posted in The Bus at Apr 17 2006, 03:38:40 PM MDT 3 Comments