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.

The Future of Struts

There's an interesting discussion taking place on the struts-dev mailing list right now. Here's a couple excerpts:

I'd be really interested in your thoughts on the XDoclet work I've done, especially in the Struts Validator realm. I'm generating validation.xml completely, and also all the form bean definitions in our system. I also use XDoclet to process form beans for a one-time starter code generation of a JSP page (templated to our specific look and feel) for a specified form bean, as well as the resource properties that can be used as a starting point for the application resource properties for the field labels. Its amazing amount of generation just on the Struts-side of things, but we use XDoclet for even more than that too. [ Erik Hatcher ]
...
I think it is time to start packaging tools and generators with Struts to help the developer -- either as standalone packages included for convenience, or integrated into the architecture of the package. It would be interesting to explore how XDoclet fits in to this vision. [ Craig McClanahan ]

What exciting times! I can't wait to use XDoclet to generate the validation.xml file for Roller - should be a great learning experience. I don't plan on writing a Struts ActionForm again now that we have XDoclet. Also, I have an update on Roller and XDoclet: Dave found this problem with XDoclet and Castor. It will be fixed in XDoclet 1.2 beta 3. So we wait...

Posted in Java at Nov 20 2002, 09:51:01 AM MST Add a Comment

XHTML Strict and Forms

Did you know that with XHTML Strict, a <form> element can't have a name attribute? Actually, the only required attribute is action. But, if you do want to identify your form, then you have to use the id attribute. The problem with this is that many of us web developers are used to referencing a form (with Javascript) with document.formName. So as a service to my readers, if you do decide to XHTML 1.0 Strict, you will need to reference your forms (in Javascript) using one of the following syntaxes. For the sake of this example, pretend our form is named "webForm":

document.getElementById("webForm);
// assuming it's the first form on the page.
document.forms[0]; 
document.getElementsByTagName("form").item(0);

Of course, if you're trying to get the value <input> tag within your form, and that input has an id attribute, you can just get that using document.getElementById("inputId");.

You ask - what insired you to post this? Well, the Struts enhancement to produce XHTML-compliant code from the tag libraries. It was closed yesterday, and they seemed to have missed this - in other words, the <form> still has a name attribute. It'll be interesting to see how they resolve this. I'm hoping that Struts is not tied to the name attribute at all, and the fix just requires a bunch of fixes to Javascript that is written (by the tags).

Posted in Java at Nov 20 2002, 03:41:06 AM MST Add a Comment

Load Testing Software and Controlling QuickTime with Javascript

From my work "To Do List":

  1. Research controlling Flash movies with Javascript - is it possible? (I believe so)
  2. Research controlling QuickTime movies with Javascript - is it possible? (I believe it's only possible in Netscape/Mozilla)
  3. Research Load Testing Software for web apps - basically to test how many concurrent users can be handled. (I'm guessing JMeter is a good one)

Please leave comments if you'd like to assist in my research. Thanks!

Posted in The Web at Nov 19 2002, 06:53:33 PM MST 1 Comment

Apache Conference in Vegas

I read Henri's post about the Apache Conference in Vegas, and then the associated weblogs. Reading Andrew's and Pete's blogs takes me back to my trip to Vegas in September. I highly recommend going to conferences in Vegas - it really is a good time. If you can, talk your spouse or a fellow techno-enthusiast to go and have twice the fun!

Posted in The Web at Nov 19 2002, 05:59:56 PM MST 1 Comment

My First Bug

My First Bug Remember when I told you that I had a hot pink bug in high school? In case you didn't believe me, I stumbled upon a picture of it this evening. I chuckled and could resist the urge to post it. It really was a fun car - and I can't wait to restore another one! Hopefully this will be happening shortly after we move to Florida.

Posted in General at Nov 19 2002, 04:12:38 PM MST 2 Comments

Sun ONE Portal

I'm teaching a Sun ONE Portal/Directory Server class tomorrow night and Thursday at Sun in Broomfield. It should be a fun crowd to teach - a bunch of Sales Engineers from Sun - around 50 of them! Wow, that's a big class. Actually, there's going to be a Sun instructor co-teaching with me, and it'll be split between two classrooms - but still?!

The bad part, Julie has the flu and has had a fever for the better part of a week and my parents are flying in tomorrow afternoon. Since I'm teaching tomorrow night (5-10) and all day Thursday, that leaves less time to spend with them. Oh well, they're not coming to see me anyway. They're Grandma and Grandpa now and I'm willing to bet they won't even know I'm gone!

Posted in General at Nov 19 2002, 03:56:43 PM MST Add a Comment

Why do you blog?

Lance asks why do you blog? Here is my list:

  • I seem to get better assistance for questions I have from bloggers than from Experts Exchange. So it's been great for getting help/ideas when coding.
  • Reading blogs keeps me more informed of the latest developments (both IT and otherwise). Writing a blog inspires me to seek out and find better ways of doing things.
  • I am the only developer on my current project, it gets lonely - blogging makes me feel like I have co-workers.
  • I needed to re-design my site and using Roller turned out to be an easy way to do it. I didn't realize that putting together a new theme would get me committer status!
  • I love Roller and I love using Roller.
  • I like writing HTML everyday.
  • Reading new blog posts is like getting good e-mail in your Inbox. Reading blogs and writing on this one has surpassed my e-mail checking addiction - which has subsided greatly.
  • Blogging makes for great advertising of your company if you run a small company like I do.
  • You get more visitors, check out my increase in visitors in the last 6 months. I setup Roller on this site in August.

Posted in Roller at Nov 19 2002, 03:33:34 PM MST 1 Comment

BasicPortal

Dave mentions BasicPortal today. I've kept watch of this project, and I can't comment on it because I haven't downloaded and looked at the source. However, I do know that the original author of it, Vic Cekvenich of BaseBeans Engineering wrote the first Struts book. I was subscribed to the struts-user mailing list at the time, and this book got horrible reviews and a lot of do not buy warnings from developers. I have seem Vic advertising many mini-training sessions across the country re: Struts and BasicPortal though, and apparently those have been really good. He was probably just rushing his book to market too fast and you know what happens when you rush a product and it needs further development.

Posted in Java at Nov 19 2002, 03:14:14 PM MST 1 Comment

XDoclet 1.2 and Roller

I made some more progress yesterday on the XDoclet 1.2 upgrade. Aslak fixed the bug with classes extending DispatchAction, and all the action-mappings now generate correctly. However, now I'm getting a new, seemingly Castor-related issue. I probably need to update some XDoclet tags for Castor, but I haven't done any research there yet. Here's the error I'm getting:

java.lang.IllegalArgumentException: Type conversion error: 
  could not set value of weblogDayPageId(java.lang.String) with  
  value of type org.roller.model.PageData
    at org.exolab.castor.mapping.loader.FieldHandlerImpl.setValue(Unknown Source)
    at org.exolab.castor.xml.UnmarshalHandler.resolveReferences(Unknown Source)
    at org.exolab.castor.xml.UnmarshalHandler.processAttribute(Unknown Source)
    at org.exolab.castor.xml.UnmarshalHandler.processAttributes(Unknown Source)
    at org.exolab.castor.xml.UnmarshalHandler.startElement(Unknown Source)
    at org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1340)

I tried upgrading Castor to version 0.9.4.1 and I get the same error regardless of version. Roller currently uses version 0.9.3.21.

Posted in Roller at Nov 19 2002, 04:04:23 AM MST 1 Comment

JSTL and Cookies

Something I learned today about JSTL - you can use {cookie.cookieName.value}* to get the String value of a cookie. Cool stuff, I found it by looking in the JSTL In Action book I bought about a month ago. BTW, if you're going to buy the book, you can get if for $12 cheaper from Amazon.

Here's an example of how I used this new-found syntax in my project.

<c:if test="{cookie.style.value == 'widescreen'}">
  body {
    background-image: url(/images/bg-wide.gif);
  }
</c:if>*

I also implemented the stylesheet switcher from A List Apart today. Very cool stuff - although I did have to add an extra line in the setActiveStyleSheet function to create a cookie for title. The following code block is supposed to do this for me, but didn't seem to work on XP with the latest browsers.

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

Oh well, at least I got it to work and learned some more JSTL in the process!

* I tried using the real syntax with a preceeding $, but that didn't work too well, and Velocity puked with:

[VELOCITY ERROR: parsing weblog entry] 
  org.apache.velocity.exception.ParseErrorException: 
  Encountered ".cookieName.value}

Any ideas why? It brings up another question I've been meaning to ask - is it possible to use Velocity syntax that's similar to JSP to get parameters and such in my roller templates?

Posted in The Web at Nov 18 2002, 02:11:06 PM MST 1 Comment