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.

Roller Tips: Titles as Permalinks and Category Display

A few more tips for your Roller blog. You can edit your "_day" template to make your titles permalinks. I just added this feature to this site - try it now by clicking on this title for any post. To enable this feature, simply wrap your $entry.title element with a permalink URL. For example, change <b>$entry.title</b> to the following:

<a href="$baseURL/page/$userName?anchor=$entry.anchor" 
   style="font-style: bold; color: black">$entry.title</a>

Adjust the style as appropriate for your theme. The second tip is to add the ability for users to see the category you've posted to. Simply add the following under the $entry.title entry to display the category name in the top right corner of the post:

<span class="dateStamp" style="float: right">
    Category: $entry.category.name</span>

Again, the CSS for the span may depend on your theme. Lastly, if you click on a permalink for your blog and you're not routed to the specific entry you expect, for the love of God add the following before your $entry.title.

<a name="$entry.anchor" id="$entry.anchor"></a>

Posted in Roller at Dec 31 2003, 02:57:34 PM MST 7 Comments

Send a Fax from Java?

I'm looking for a (hopefully free) way to send a Fax from a Java program. I think the easiest way would be to send an e-mail to some sort of service that processes it and faxes it the recipient. Any suggestions?

Posted in Java at Dec 31 2003, 11:37:12 AM MST 7 Comments

Jalopy source code formatter no longer free

I love the Jalopy Source Code Formatter. I hope it continues to be developed on SF (though it hasn't had a release in over a year). My issue? It doesn't work on Eclipse 3.0 Mx on OS X. Why am I worried development will stop? Because the original author has a non-free version (at www.triemax.com).

I can't blame the guy - developing Open Source projects is fun, supporting them is a pain. You get rewards for developing: personal milestones, discovery, knowledge enhancement. For supporting, you get to use your precious non-paid hours to try to disseminate your knowledge. This can also be rewarding, it's just not as immediate, leading to the frustration and pain of support. Good documentation reduces support, but that's a pain too.

We have test-first methodologies, will we ever get to document-first? Write the help files, then write the tests, and then the actual code. I'm willing to bet you'd get even higher quality software going this route.

Posted in Java at Dec 31 2003, 08:49:54 AM MST 4 Comments

Useless Tag Library?

Inspired by this post, I wrote a tag library to expose the fields of my Contants.java class to my JSPs. It allows a user to specify a single variable using:

<appfuse:constants var="USER_KEY"/>

Or all variables:

<appfuse:constants/>

By default, it exposes the values from the Contants class imported into the tag library, but also allows a className variable to specify a different class. The main reason I wrote this was to prove it was possible. The second reason was to get around importing my Contants class (and using <%=Contants.VARNAME%>).

Interested? Read More ...

Posted in Java at Dec 31 2003, 08:25:57 AM MST 1 Comment

My Best Christmas Present

My best Christmas present was finding out that Baby Raible #2 is on the way! Sweet! The only bad part about Julie's 2nd pregnancy is we didn't have to try very hard. Last time it took 6 months, and a great 6 months that was... Lots o' Lovin

Posted in General at Dec 30 2003, 07:39:35 PM MST 8 Comments

Roller Tip: Managing your Comments

I tend to get a few comments a week that I need to delete because a reader has double-posted or said something I don't care to have on my website. Up until today, it's been a pain to navigate the Roller UI and delete these comments. It's almost easier to do it through SQL. No longer - I added a "Delete Comments" link to my _day template that shows up right after the "Edit" link. I'm not using the showEntryPermaLink macro for permalinks because I prefer to show permalinks on their own page (keyed by the anchor parameter). So replace your logic to render your permalink with the following and you'll be able to delete comments easier too:

    <a href="$baseURL/page/$userName?anchor=$entry.anchor"
        title="Permanent link to this weblog entry"
        class="entrypermalink">Permalink</a>
    #if ($pageHelper.isUserAuthorizedToEdit())
        [<a href="$pageHelper.getEntryEditUrl($entry)">Edit</a>] 
        [<a href="$ctxPath/comment.do?method=delete&entryid=$entry.Id">Delete Comments</a>]
    #end

To be thorough, here is the contents of the showEntryPermaLink macro:

    <a href="$baseURL/page/$userName/#formatDate($plainFormat $entry.PubTime )#$entry.Anchor"
        title="Permanent link to this weblog entry"
        class="entrypermalink">Permalink</a>
    #if ($pageHelper.isUserAuthorizedToEdit())
        [<a href="$pageHelper.getEntryEditUrl($entry)">Edit</a>]
    #end

Posted in Roller at Dec 30 2003, 03:46:22 PM MST 2 Comments

Missed that one - XDoclet 1.2 Released

I must've been asleep at the wheel the week before Christmas - XDoclet 1.2 Final got released (already blogged here) and I didn't notice.

I integrated OSCache's Filter into my project today and needed to order the <filter-mapping>s in my project so cacheFilter comes first. I stumbed upon the order attribute, but it appears to be XDoclet2-only feature. XDoclet 1.2 just seems to ignore it. Oh well, I guess I'll just resort to putting all my filter-mappings in an XDoclet fragment (metadata/web/filter-mappings.xml) like Roller does.

On another note, it was easy to integrate oscache since Hibernate 2.1.x ships with oscache.jar (I wonder which version it is?). If you're using AppFuse 1.2, it's in there and I encourage you to look into using it. I got inspired after reading Dave's Improving Web Application Performance and Scalability chapter in Pro JSP. I finished reading it earlier this week, and have found that it's a great reference for JSTL (and probably JSP 2.0 when I start using it).

Posted in Java at Dec 30 2003, 12:43:46 PM MST Add a Comment

RE: Wake a Sleeping Mac (Remotely)

If this is true, and I can wake my Powerbook(s) remotely, it'd be wicked cool. Since I never turn them off (they're always sleeping), remotely waking them would make it seem like they're always on. Crosses fingers and grins.

Update: I got it working using this perl utility. However, it only works if I have an Ethernet cable plugged in. Since I never use an Ethernet cable these days (isn't the whole point of a laptop for the wireless connectivity?), wakeonlan is not an option for me - until the AirPort cards support it.

Posted in Mac OS X at Dec 29 2003, 11:51:17 PM MST Add a Comment

WebSphere version 6.0 - when's will it release?

Today I discovered that WebSphere is one of the first appservers to support J2EE 1.4. Too bad it's a developer release and not a real release. At my current project, we've been developing on Tomcat 4.1.29 (and MySQL) because it's the only platform I've tested AppFuse on. We plan to migrate to WebSphere and DB2 in the coming months. They currently have a license for WebSphere 4.x, which I heard sucks - especially (IMO) because it only supports Servlets 2.2 and JSP 1.1. Luckily, the app we're deploying to production will be the first Java-based webapp, so we will hopefully be able to use WebSphere 5.1.

I just wish 6.0 was out as a real release, then we could start using JSP 2.0 and leave all those damn <c:out value="..."/>'s behind.

Posted in Java at Dec 29 2003, 11:15:14 PM MST 4 Comments

Back in Denver

We arrived back in Denver last night after a nice winter-weather week at the cabin. It's nice to be home and sleep in our own bed. Julie agrees and would add that it's nice to have indoor plumbing again. I hate the fact that I have all this e-mail to plow through and respond to. I like the fact that I'm super motivated to learn new stuff. So motivated that I ordered a few books from Amazon. I hope I can suppress my desire to play on the computer (i.e. blogging, open source) and just learn for the next month or so. On my agenda: Spring, WebWork and a Java 1.4 Programmer Certification. 1 month, 2000 pages - if I can restrain my internet addiction, it should be a breeze.

In other news, I'm pumped to see that IDEA is available for $249. My question is - does that give me a license for both a Windows and OS X install?

Posted in Java at Dec 27 2003, 01:49:15 PM MST 7 Comments