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.

[ANNOUNCE] Tomcat 4.1.20 Alpha released

I won't be installing Tomcat 4.1.20 Alpha since Tomcat 4.1.18 has been working fine for me, but the changes are insteresting nonetheless.

Tomcat 4.1.20 Alpha is now available for testing.

Changes over Tomcat 4.1.19 include:
- Fix classloading failures when using Tomcat in JNI mode with JK 2
- Upgrade to Xerces 2.3.0
- Admin webapp fixes (including fixes to saving to server.xml)
- Disable recycling of sessions
- Refactoring of session persistence
- Disable socket linger in Coyote HTTP/1.1 (delay when closing a socket), and allow configuring it
- Allow cross context from the root context
- Documentation updates
- Fix memory leak in Jasper when compiling JSP pages
- Fix JspC, which may now be used again for complex webapps precompilation, such as Tomcat's own admin webapp
- Fix isThreadSafe feature in Jasper
- Fix JspWriter recycling after an exception was thrown in a tag's body content

The release notes include the full list of changes.

[Download]

Posted in Java at Feb 12 2003, 09:52:43 AM MST Add a Comment

Javascript Libraries

I feel the need to post a link to Matt Kruse's JavaScript Toolbox. I needed some JavaScript to move <option>'s from one <select> to another, and I found it via Google in about 10 seconds. I also use Matt's Calendar Popup JavaScript stuff, so his great work is familiar to me. To be fair and provide a fair shake to other great JavaScript libraries, here are a few others I've heard of and sometimes used:

If you know of others, please comment with links and your experience.

Posted in The Web at Feb 12 2003, 07:14:36 AM MST 1 Comment

RE: How do they do it?

Dominic writes, "How in the world do they (Java bloggers) not lose their mind doing all these non-work related projects/activities such as: writing books, opensource development, consulting, etc." Since I do a lot of non-work related activity, I left a comment on his site, basically saying that I have no time-management skills and that the only way I get stuff done is to stretch the bounds of my relationship with my wife. This is because usually I tell her "I have to work tonight" and I get on the computer around 7 PM and join her in bed around midnight or 1. Then I get up at 4 and head into the office, only to do it again the next night (if necessary). I find this really sucks, particularly if I'm working a 40-hour week in 4 days. Since I have a new deadline looming (edit/return Wrox Chapters by Monday), I'm going to try something a bit different. I'm going to work an hour and a 1/2 at night (5:30-7), and then again in the morning (4-5:30) . I'll work an 8 hour day, getting off at 3, then I'll hit the gym and be home by 5. That's just this week, we'll see how it goes. In reality, I've found that the following things work the best for "getting things done."

  • Quit blogging and reading blogs. Same goes for e-mail - this can save 1-3 hours a day for me.
  • Plan your day and leave your computer/location when you say you're going to.
  • If you're reading a book or writing a paper - take it to the library. Go early and stay all day.
  • For me, working on Windows is a good 2-3 times faster than working on my Mac or Linux. Stay with the OS that you're most productive on.
  • When something small comes up that you need to do, just do it.

OK, now I'm going to follow a bit of my own advice and close Outlook and Phoenix.

Posted in Java at Feb 11 2003, 05:47:07 PM MST Add a Comment

Client-side Sorting with the DOM

I'm amazed at how easy it is to sort an HTML table with the DOM and JavaScript. I whipped up a quick modification of Porter's Sort Table Rows demo. The basic enhancements I made where removing the <a>'s from the table headers, and just adding an onclick handler to the <th>'s. I also added indicators to display the the current column/direction that's sorted. Seems to work in most of the browsers too! On Windows 2000, this includes IE6, IE5.5, Opera 7 and Phoenix 0.5. On OS X, the latest versions of Safari, Chimera, IE, Mozilla and Netscape. It doesn't work on OmniWeb, and the cursor: pointer doesn't work on the <th>'s in IE/Mac and IE5.5/Win. Anyway, you can checkout the demo or download with the relevant HTML, .gif and .js files. I've also included it below for your convenience.

I'd love to add this sort of capability to the display tag library.

Posted in The Web at Feb 11 2003, 12:54:38 PM MST 8 Comments

www.struts.ru

Cool - there's a new site for all the Struts documentation in Russian. I actually got a degree in Russian, and I dig Struts, so of course - this interests me. Beautiful country, awesome culture and a very rich history. Too bad I gave up Russian after graduating to learn all this computer stuff instead. Now I can barely understand a full sentence - and I was pretty close to fluent my senior year. One question I have for non-English programmers - do you write Java/JavaScript/CSS/HTML in your native language or in English? I've always wondered...

Posted in Java at Feb 11 2003, 12:50:34 PM MST 2 Comments

Whither ActionMappings

Ted Husted made a post last Friday to the struts-user mailing list. It looks like a good post for rookie struts users. I haven't read it, but hopefully by bookmarking it here, I'll read it soon.

Haven't quite decided where to use this, and it didn't seem like the best time to squeeze something new into the docs =:0), so I thought I'd post it here for now, in case it were of interest to some.

WHITHER ACTION MAPPINGS?

We write applications to do things for people. We might say, for example, that we want the appication to create a mail-merge job for us. Some developers call these top-level tasks "client stories". In practice, to do a big job like this, an application will need to take several smaller steps. We'll need to obtain the information from the user about which mail-merge job to create. We'll need to find the items to merge. We'll need to put the items together with a template, and we'll need to present the result back to the user. Some developers call these smaller tasks "use cases". To complete a client story, we usually chain several use cases together. A chain of use cases is sometimes called a workflow.

Before doing any thing for us, most applications wait to be asked. When we ask the application to do something, we usually need to provide a variety of details. If we ask the application to store a name and address, we need to provide the name and address to go along with the request. [read more...]

Posted in Java at Feb 11 2003, 07:43:45 AM MST Add a Comment

RE: Tiles 101

Patrick Peak has a weblog that was just started last Wednesday. He wrote a great post today on Tiles that I hope to send to the struts-user mailing list (as soon as I get his permission). Unless someone else has already done it, of course. This is definitely a blog to watch and enjoy.

Posted in Java at Feb 10 2003, 10:05:32 PM MST Add a Comment

The war in Iraq

I don't believe it's started yet, but "The war in Iraq" was the only title I could think of. Anyway, I haven't been too concerned with it up to this point. I don't know that I support it, but I don't want to be the victim of chemical or nuclear warfare either. However, it became pretty personal today when I received an e-mail from one of my best friends.

For those of you who didn't already know, I was recently activated and deployed to Kuwait on the seventh of February. Obviously I had to withdraw from school and could be here for up to a year. However, this is very unlikely and I'm speculating and hoping that out unit will be sent home in either May or June.
....
I'm stationed at Al Jaber Air Base approximately 45 miles northwest of Kuwait City. As you can imagine the base in a very busy place right now with units from all four service braches present, along with a small contingency of British troops. I can't disclose too much information about the resources in place or our mission, but I can tell you the base is well fortified and protected. I'm sorry I didn't get in touch with some of you before I left. I had a very limited amount of time between the time I was notified and actually deployed, and was very busy taking care of personal affairs.

Yikes! Now I really hope we don't go to war!

Posted in General at Feb 10 2003, 09:48:28 PM MST 2 Comments

Java.blogs and Roller in Java Developer's Journal

I received the February issue of Java Developer's Journal today. I thought it pretty cool that java.blogs, Roller and MiniBlog were all mentioned. I barely skimmed the thing, so it's possible that there are more nuggets like this hidden in its pages. Maybe I'll find out tomorrow - Abbie wants me to read her a story tonight.

I received the reviews/comments back from Wrox today on my Security and Struts chapter. I briefly read the e-mails and gasped at the deadline for editing/returning (next Monday). Overall, the e-mails were encouraging and didn't seem to indicate a lot of change, just more code samples and a more consistent flow. Knowing my luck, there's all kinds of work hidden in the marked-up Word docs. Getting these chapters edited and returned could take a while since it gives me an excuse to dive back into struts-resume and add some more features. Maybe that's why they give the short deadline.

One interesting point that was mentioned is that the Struts chapter was so packed full of tools (i.e. XDoclet, Struts, Validator, Ant, Hibernate, Tiles) that they're thinking of renaming it to be something like "Leveraging Struts, Tiles, and other Tools." Sounds cool to me. In my current project, it seems that Struts only plays a small role in the whole webapp, but after teaching it to a co-worker over the last week - I guess it plays a larger role than I thought. The combination of all these tools and learning them can be a bit overwhelming - I guess I had an advantage in learning since I wrote about them and also did a sample app. I tell you what - "doing it" is certainly the best way to learn. Now hopefully I can come up with a better way to explain how to do it. The book is (to my knowledge) still scheduled to be released in March.

Posted in Java at Feb 10 2003, 08:56:31 PM MST 4 Comments

Great Weekend and the DOM

Boy, what a great weekend I had. Three of my best friends and I drove to Steamboat on Friday night and met up with some other very good friends. There were about 20 of us total that rented a house and had a great time. It was -21 (F) when we drove up, and about -10 when we went skiing on Saturday. The fun we had made up for the cold, and we actually ran into another friend that we hadn't seen in 5 years! Good times were had by all.

Today, back at the grindstone, I got to start working on a UI prototype. I did a lot of stuff with the DOM in JavaScript and CSS. Man that stuff rocks and makes it so easy to create a truly user-friendly webapp. I was doing pretty simple stuff like changing table row background colors, adding/deleting rows in a table and duplicating rows. Tomorrow, I'll be implementing a client-side sorting script on a table. I'm lucky on this project in that I only need to support IE 5.5+ - which has pretty good DOM support. I developed all day long on IE 6.0 and was amazed when I tested it (at the end of the day) and it actually worked on IE 5.5. Made me smile from ear-to-ear. I checked it in and left before I broke anything.

Posted in The Web at Feb 10 2003, 08:40:21 PM MST Add a Comment