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.

Comments removed temporarily

I received a barrage of porn comments in the last few hours, so I've disabled comments for a while. The sick part this incident is that someone actually spent the time to come to this site, click on "Add a Comment" and copy/paste the text. Sounds like it's time to record the IP address of commenters so we (as Roller users) can block them from commenting in the future. What a bunch of fuckwits.

Posted in Roller at Oct 03 2003, 05:42:13 PM MDT 2 Comments

Time to hook up the Senior J2EE Developers in Denver

This is nuts - I'm getting at least one call or e-mail per day from recruiters and/or friends in Denver. Rather than posting these positions here (with Rates), if you're a Senior J2EE Developer in Denver, let me know. I'm going to start a list of folks with skills like mine so I can hook some brutha's up! I have 2 right now - both for J2EE/Web stuff.

Here are my requirements to get on my list:

  • Must know Ant, meaning you've written a build.xml file before. Having read Java Development with Ant is a huge plus.
  • Blogging is a plus - it means you're interested in Java and sharing your ideas (implying that you think outside of work).
  • You've used Eclipse or IDEA and use one or the other on a regular basis. This implies that you know a good IDE can improve your productivity.
  • Must know XHTML and CSS. I do, and I said skills like mine.
  • You're able to checkout AppFuse from CVS, build it and run "test-all" with success. README.txt is your friend.

I reserve the right to delete any of your e-mails and resumes, and to hook my friends up over other folks. I don't want to get a flood of e-mails, I'm just trying to hook up good folks with good jobs. If I can get the rates, I'll let you know what they are.

Posted in Java at Oct 03 2003, 12:08:47 PM MDT 9 Comments

Simple "workaround" for exporting with the displaytag using Tiles

I figured out an easy "workaround" to the fact that the displaytag's export feature (to XML, CSV, and Excel) doesn't work when using Tiles. The happens because the response has already been committed by Tiles (when including previous JSPs) and the displaytag is unable to set the contentType. Here's my workaround:

In struts-config.xml, create a local forward that goes directly to the JSP:

  <forward name="exportList" path="/WEB-INF/pages/userList.jsp"/>

Then in your Action, add a little logic to see if you should forward to the definition or to the list:

  // if exportType is a parameter, forward directly to JSP
  if (request.getParameter("exportType") != null) {
    if (log.isDebugEnabled()) {
      log.debug("export detected, forwarding directly to list jsp");
    }

    return mapping.findForward("exportList");
  } else {
    // return a forward to the user list definition
    return mapping.findForward("list");
  }

Tested with displaytag 0.8.5 on Windows XP and Tomcat 4.1.27. Enjoy!

Update: This workaround will not work with displaytag 1.0b1. There is another solution using a Filter, so we'll try to incorporate that into the 1.0 release.

Posted in Java at Oct 02 2003, 09:58:41 PM MDT 1 Comment

Packaging Velocity

I've made a number of changes to struts-menu this week, and it now supports the ability to render menus via Velocity templates. This allows for easy customization and basically allows for you to create any type of navigation system you want (i.e. drop-downs, tabs, plain ol' links) etc. One of the issues I'm wrestling with is how should I package Velocity with the distribution. Usually, to integrate struts-menu into a Struts-based application, you only need to include struts-menu.jar. Now, if you want to use Velocity for your menus, you must include velocity.jar and velocity-tools.jar in your application's WEB-INF/lib. I think most users will accept this.

However, in the example app, there's a velocity.properties file and a couple example templates. This seems like an opportunity for many users to forget to include these - so I'm wondering what's the best way to package these. Should I put velocity.properties in the source tree, and initialize my VelocityMenuDisplayer using that? Should I do a check to see if the user has their own velocity.properites in WEB-INF/classes for an optional override?

Another question is should I put the sample templates (simple.html and coolmenus.html so far) in the source tree, and then use Velocity to load them from the struts-menu.jar file? Or should I package them in a menu-templates.jar file?

Basically, it all boils down to this question: If you have a project (.jar) that depends on Velocity and plugs into web applications - what is the best way to distribute your Velocity settings?

BTW, I hope to make an effort to decouple this library from Struts someday - shouldn't be too hard.

Posted in Java at Oct 02 2003, 03:38:32 PM MDT 3 Comments

The life of a software developer

I've officially worked 31 of the last 37 hours. Ugh. There was 3 hours last night that I got to drive home and have dinner with Julie and Abbie. This was followed by a 10 p.m. to 6 a.m. code-producing extravaganza, followed by 2 hours of sleep, and time enough to commute to work this morning. And I'm still pounding the keyboard...

Update: Finally tally ~ 33 of 39, I think that's a record. Let's hope I don't fall asleep on the way home!

Posted in General at Oct 01 2003, 08:27:03 PM MDT 3 Comments

What's up with the Job Market in Denver?

I don't know what the hell is going on, but I feel like it's 2001 all over again. I got 2 calls last week, and 2 calls this week from recruiters or hiring managers. The strange part is that I didn't send them a resume or anything - they called me! I even got a call (last week) from a hiring manager that I submitted my resume to. This is nuts - usually there's nothing. The phone lines have been dead for a quite a few months (if not years). Maybe it's the book? I doubt it - I think it's just a fluke and I should enjoy it while it lasts.

I've asked all of these opportunities to forward me job descriptions so I can post them here, but haven't got anything yet. All local opps - maybe it's a good time to be a Denverite? Or maybe the Java job market is picking up again - let's hope so!

Posted in Java at Sep 30 2003, 11:19:54 PM MDT 5 Comments

Struts tip o' the day ~ using bean:size

A co-worker turned me on to this one today - you can use <bean-el:size collection="${myForm.list}" id="listSize"/> to get the size of a collection and expose it as a pageContext variable. I've been looking for this sucker for years! Usually, I end up putting a getListSize() getter on my form to accomplish this, since none of the other tags (including JSTL) allow you to get the size of a collection.

Posted in Java at Sep 30 2003, 07:25:59 PM MDT 6 Comments

VersionTracker - free with .Mac

I got an e-mail from Apple today. In it, they offered me a free version of VersionTracker. I signed up - why not, it's free? I don't know that I'll use it though. The reason I'm writing this post is to see if anyone else is using this service, and if so, whaddya think? What software packages do you watch?

Posted in Mac OS X at Sep 30 2003, 05:36:07 PM MDT 1 Comment

Pro JSP has arrived!

Pro JSP, Third EditionI received my complimentary four copies of Pro JSP tonight - whooo hooo! It sure is cool having your name on the cover of a book. ;-)

Congrats to all the other authors that feel the same way.

Posted in Java at Sep 29 2003, 10:06:35 PM MDT 16 Comments

Giving Roller 0.9.8 another try

I'm trying Roller 0.9.8 again after backing out last week. The main reason I'm trying again is my site was crashing over the weekend, after months of being up without issues. Damn. The main issue I'm having with 0.9.8 is that MySQL connections get up to 20 (the max allowed by my ISP) and then the whole connection thing shuts down (or something like that), and according to my logs - the database is down (when really, it's not).

My attempted solutions to fix this problem are twofold. First, I grabbed the oscache.properties from tools/oscache-2.0b2, rather than using my old one. When building Roller from CVS, there is no oscache.properties in build/roller/WEB-INF/classes, so that's why I copied my old one. Second, I cleaned out WEB-INF/lib and refreshed it with WEB-INF/lib from 0.9.8. I always just copy over the last install when upgrading, so it's possible there were some old jars lying around in here.

If this doesn't work (you'll know if this site is down), I'll have to get a fully clean install from the SourceForge downloads, rather than my own built copy.

Posted in Roller at Sep 29 2003, 06:18:13 AM MDT 3 Comments