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.

Google Ads

Google Ads are a good thing - it looks like they'll be covering my hosting/bandwidth costs. Sweet!

Posted in Roller at Feb 09 2004, 10:57:46 AM MST 1 Comment

Approved for Google Ads

After seeing that Tim Bray is making $500/month of Google Ads, I decided it was high time I try to get this site approved again. Low and behold it worked! So they've approved me, but I only want to show them when folks come from Google. As in, when the referer (yeah, I know that's spelled wrong, but it is in Java and JavaScript too) contains "google" - show the ads. Anyone know how to do this cleanly in Roller/Velocity? Or JavaScript? I tried the following, but it doesn't work:

if (document.referer != null 
    && document.referer.toString().indexOf("google") != -1) {
    // define variables
    document.write("<scr" + "ipt type='text/javascript' src='ads.js'><\/scr" + "ipt>");
}

Since Google is my top referrer - I think I'll get a fair amount of users seeing the ads, and it won't disturb the folks who come here just to read my ramblings.

Posted in Roller at Feb 03 2004, 08:10:33 PM MST 10 Comments

[New Feature] Wiki Syntax support added to comments

For you, my friends, I've added the ability to use JSPWiki syntax when writing comments. All you need to do is start your comment with an exclamation point - ! Hopefully this will help add automatic line-breaks when you add a line-break in the textarea, as well as making it easier for you to you to type in any code. If you're typing or pasting in Java code, try using the Java2HtmlPlugin. It's easy to use, just type the starting and closing tags, and insert a blank line before your code. For example, here's the raw text.

[{Java2HtmlPlugin 

public class HelloWorld {  
  public static void main(String args[]) {
    System.out.println("Hello World!");
  }
}
}]

I don't know if the "Preview" button (from the Permalink) supports it, but I've added the following to both twisty comments and regular comments.

        #if($content.startsWith("!"))
            #set( $wikiText = $stringUtils.substring($content,1))
            #set( $renderedText = $wikiPlugin.render($wikiText))
        #else
            #set( $renderedText = $content )  
        #end
            $renderedText

Enjoy!

Posted in Roller at Jan 13 2004, 05:48:44 PM MST 3 Comments

Happy New Year = Update your copyright notices

Happy New Year y'all!! Don't forget to change those copyright notices... ;-)

Posted in Roller at Jan 01 2004, 12:00:01 AM MST 1 Comment

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

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

This Site's Stability

I don't know if you've noticed, but this site has been incredibly stable the last few days. It had been crashing daily for most of last week. I even considered a new hosting provider to get rid of my OutOfMemory errors. Frequent crashing began shortly after I upgraded to 0.9.9. Driving home on Wednesday night, I had a hunch - my old theme showed that I had 24,000 referrers since I upgraded on November 26th. Referrers weren't rolling over (clearing the list) every night like they were supposed to be - and there is a bug where clearing the referrers through the editor UI doesn't work either.

So, lazy me just let them keep stacking up. When my cache was refreshed every few hours, it must've been putting a pretty big strain on the system to fetch all those referrers. Finally, I deleted the referrers manually ("delete from referrer") and the site hasn't crashed since. Of course, I keep logging in and clearing them out daily, but this does seem to have solved the problem. It's funny how satisfying a stable site can be when you're used to one that crashes 2-3 times per day.

Posted in Roller at Dec 14 2003, 05:58:01 AM MST 4 Comments

Filtering Roller Feeds by Category

Simon posted today that Pebble supports RSS Feeds by Category. Just so you know, Roller also has this feature, - just add "?catname=categoryName" after /page/$username. Here's all my current categories.

This is a great feature to have in your blogging software. Without it, javablogs.com would be getting all my posts, rather than just my Java and Roller categories.

Posted in Roller at Dec 02 2003, 09:20:13 PM MST 4 Comments

Archives now available

I finally got enough motivation to spend 5 minutes and make my archive page presentable. Enjoy! View source for the CSS. Most of the work on this page is accomplished with a macro in Roller: #showBigWeblogCalendar().

Posted in Roller at Nov 29 2003, 08:10:47 PM MST 3 Comments

Upgraded to Roller 0.9.9

I upgraded this site to Roller 0.9.9-dev about an hour ago. Seems to be humming along quite nicely - and the GZip Filter is back in action (wasn't working before I upgraded). There looks to be a few issues to iron out still, but since I was able to figure them all out - I'm pretty darn happy with this release.

  • oscache.properties is missing from CVS
  • a bunch of the editors had leftover (?) taglib declarations - I replaced them with an include to /theme/taglibs.jsp
  • the value in Website > Config > Site Name shows up where "Home" used to - I had to rename my site to "Home" to maintain my same menu selections
  • there's a lot of SQL (or HQL) logging going on that I can't turn off
  • bookmark display macros are broken - you'll need to change the name of your bookmark names (in the macros) to have a /root/ prefix. For example, #showBookmarks("Articles" true true) -> #showBookmarks("/root/Articles" true true)

Hope this helps any early adopters...

Posted in Roller at Nov 26 2003, 10:06:00 PM MST 6 Comments