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.

Issues I'm having with XP and Red Hat

I got everything setup as needed yesterday, and I'm thoroughly enjoying my seemingly new Windows box. However, I can't get at my data. My data is on my old hard drive and I can't seem to get Windows to recognize it as needed, though it works great as the primary disk. I've posted a question with my issue on experts-exchange.com, so hopefully I'll have it fixed soon enough.

My second issue is very minor. I'm adding a 2nd hard drive to my Red Hat 9 machine, and I'm curious to know where you Linux gurus mount a 2nd hard drive? I currently have it mounted as an NTFS drive at /mnt/windows, thanks to the Linux-NTFS Project. But now I want to format it as a Linux filesystem and share it via Samba.

My third issue is a little wierd. I have Samba setup and running, but I can't login to any of the shared directories. The username/password dialog just keeps prompting me (from my Windows machines). I could probably figure out the problem if I spent more than 10 minutes looking for an answer - but alas, I have not.

Windows is running super fast though, and that makes me happy.

Posted in General at Jul 13 2003, 09:19:53 PM MDT 6 Comments

Speeding up my computers

In an effort to speed up my Windows XP machine and stave off the urge to buy a new computer - I'm re-installing Windows XP. I've installed and re-installed Windows quite a bit in my lifetime, but this time I'm doing it different. Rather than risking my data, I bought a new hard drive. Can you believe that the smallest hard drive you can buy these days is 30 GB?! Everything installed easy enough and the machine (1.5 GHz, 1 GB RAM) is much faster, now I'm only going to install the apps I actually use. This means that I'll install them only as I need them. Hopefully this will result in a leaner, meaner machine.

I am strongly considering a new G5, but I need a new (better paying) contract to justify that. And if I do get this $6000 dream machine (23" monitor, 1 GB RAM), it won't be a replacement for my Windows machine - it'll just be a new primary machine. I don't want to have to buy Quicken or Quickbooks for the Mac, it's much easier to just keep the old machine around.

As I write this, I'm on my second attempt at installing XP. The first attempt worked fine, but for some reason - the new hard drive was given a drive letter of F. Maybe it got confused with the new slave drive. So I'm in the midst of a 2nd attempt, this time w/o the slave drive connected. Wish me luck.

Posted in General at Jul 12 2003, 11:04:10 AM MDT 4 Comments

Pornolize your blog

This is some seriously funny stuff. Try it on your blog and I guarantee you'll get a chuckle or two out of it.

Posted in General at Jul 11 2003, 01:53:40 PM MDT 4 Comments

Words of Wisdom from James Gosling

After reading James's All I Really Need to Know I Learned while Skiing with my Grandmother (damn, no permalink), I've come up with a Raible Developer Creed.

  • Balance - strive for it. If you're staying up late to develop, and you haven't spent a few hours with your friends/family that day - you're not being fair to yourself, or them.
  • You're breathing too hard. You must be doing something wrong. Take the time to learn before doing. This is going to be a tough one as I tend to just jump in and try to do something. However, I'm sure if I studied the technology/documentation first, it would actually take me less time to do it.
  • Inspiration is 99% Observation. I'm going to try to limit how much I do outside of the office and start observing more (via mailing lists/blogs). This will contribute greatly to the first item in my new creed.

Posted in Java at Jul 11 2003, 12:11:02 PM MDT Add a Comment

Added "Comment" link to RSS Feed

Thanks to Lance, my RSS feed validates once again. [Details]. Also, I added a "Comment" link to the bottom of my posts (in the RSS feed). I got the idea from Russ and I think it's a good one. In my rss.vm file, I changed:

<content:encoded><![CDATA[#showEntryText($entry)</content:encoded>

To:

<content:encoded><![CDATA[#showEntryText($entry)
#if( $website.AllowComments )
   <p align="right"> 
   <a href="$absBaseURL/page/$entry.website.user.userName?
               anchor=$entry.anchor">Add a Comment</a>
   </p>   
#end]]>
</content:encoded>

In the code above, the href should all be one one line, but in order to get NetNewsWire to render my full post, I had to split it up. Is this a bug? It seems if I have a <pre> with too many characters (>80?), then it just ends the post.

If Roller users dig this enhancement, I'll commit it to CVS.

Posted in Roller at Jul 11 2003, 10:25:19 AM MDT 1 Comment

Feeling the love

Thanks to Erik for choosing me as one of his favorite Java bloggers. That's quite a compliment in my book - especially from one of my favorite bloggers.

Since it's Friday, here's a mp3little reminder.

Posted in Java at Jul 11 2003, 07:01:55 AM MDT Add a Comment

JSP 2.0 Article in July JDJ

I got the July issue of JDJ today. In it I found a good article on JSP 2.0 (printable, less ads version). Things I learned from the article:

  • JSTL 1.1 will introduce 16 standardized EL functions:
    - fn:length(): Get the length of a collection or a string.
    - fn:toUpperCase(), fn:toLowerCase(): Change the capitalization of a string.
    - fn:substring(), fn:substringBefore(), fn:substringAfter(): Get a subset of a string.
    - fn:trim(): Trim whitespace from a string.
    - fn:replace(): Replace characters in a string.
    - fn:indexOf(), fn:startsWith(), fn:endsWith(), fn:contains(), fn:containsIgnoreCase(): Check if a string contains another string.
    - fn:split(): Split a string into an array.
    - fn:join(): Join a collection into a string.
    - fn:escapeXml(): Escape XML characters in a string.
  • The tag libraries in JSTL 1.1 have new URIs (for example, http://java.sun.com/jsp/jstl/core instead of the JSTL 1.0 equivalent http://java.sun.com/jstl/core_rt). The new JSTL 1.1 tag libraries accept request-time expressions for their attributes, and delegate to the JSP container to evaluate EL expressions.

Good stuff to know. I'm ready to start developing JSP 2.0 apps - I hope the Tomcat dev team releases a stable build soon. Or maybe I should just look into using Resin...

Posted in Java at Jul 10 2003, 09:54:44 PM MDT 4 Comments

Compression Filter Issues - EOFException

I'm having some issues with implementing a Compression Filter in my day-time project. It works fine via the browser (and in AppFuse/Roller), but not in one of my Webtests. I think this is because my response doesn't have anything in it, but who knows. From my log file:

CompressionFilter.doFilter(87) | Unzipped size: 0
CompressionFilter.doFilter(106) | Zipped size: 20

And then the lovely error message from my testcase:

[canoo] java.io.EOFException
[canoo]     at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:200)
[canoo]     at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:190)
[canoo]     at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:130)
[canoo]     at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
[canoo]     at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
[canoo]     at com.meterware.httpunit.WebResponse.defineRawInputStream(WebResponse.java:617)

I'm thinking I need to close a stream or something, but since it works fine via the browser - I'm stumped! Any ideas are appreciated. I can post the testcase if necessary.

Update: Richard Hill on the Webtest mailing list hooked me up with the solution. It turned out to be a bug in the JDK, which causes issues in HttpUnit. Here's the solution I used to workaround it.

Posted in Java at Jul 10 2003, 04:59:51 PM MDT 2 Comments

Changing Struts' bean:message to JSTL's fmt:message

I converted AppFuse to use JSTL's <fmt:message> tag instead of Struts' <bean:message> tags this morning. It was pretty easy. Here's the steps I took:

1. First, I added the following to metadata/web/seb-settings.xml:

<!-- Define the basename for a resource bundle for I18N -->
<context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>ApplicationResources</param-value>
</context-param>

2. Then I added the format tag to web/common/taglibs.jsp:

<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>

3. Finally, I did find/replace with <bean:message/<fmt:message.

4. I also had to change my title and header keys in web/WEB-INF/tiles-config.xml to remove the . from the bean names. In other words, I converted title.key and heading.key to titleKey and headingKey and also made the appropriate changes in web/layouts/baseLayout.jsp.

Easy as Pie!

Posted in Java at Jul 10 2003, 07:59:29 AM MDT 35 Comments

NewsMonster 1.0 and Mozilla Application Development

I got a couple of treats from the XUL Announce mailing list this morning:

Kevin A. Burton (of Apache Jetspeed fame) has released NewsMonster 1.0 - a cross-plattform weblog manager with a brain - that runs inside Mozilla 1.0 (Netscape 7.0 or greater) on OS X, Linux, or Windows and showcases the power of XUL and Java.

Too bad it doesn't run on Mozilla Firebird. Oh well, I use NetNewsWire and believe it's the best aggregator out there.

O'Reilly has published an in-depth look at Mozilla's new roadmap titled "The Future of Mozilla Application Development" by David Boswell and Brian King.

If I could instantly learn anything right now, it would be XUL, Velocity and WebWork - in that order. I don't know what good this knowledge would do me, but it sure would be nice to learn stuff w/o even trying.

Posted in Java at Jul 10 2003, 06:43:59 AM MDT 2 Comments