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.

RE: My Predictions for MacWorld Announcements

I'm pumped that no super cool announcements came out of Steve's Keynote today. I dig that they've just enhanced my favorite Mac apps (iLife). If they would have announced new PowerBooks or cheaper displays, I could easily justify an upgrade... and my budget couldn't. So I say, "Thank you Apple. Thank you for not tempting me."

Posted in Mac OS X at Jan 06 2004, 05:30:23 PM MST Add a Comment

HowTo: Get an input field's value with Canoo's WebTest

I should start this by saying that I love Canoo's WebTest. It allows you to test clicking through your webapp as if you're using a browser. You simply write your tests in an XML file (which is really an Ant build file), and then run it with Ant. Usually, in my webapps, I write simple tests for CRUD on entities - i.e. EditUser (tests pulling up the edit screen), SavePosition (edit and save, verifies next screen's title), SearchUsers (verifies list screen's title).

One of the issues I had this morning was testing a wizard with WebTest. This was because I didn't know how to get the id of the new record after it was added. Now I found a way. Let's say you have a Create a Job wizard. On the first screen, you enter the job, and on the second, you add the required skills, on the third, you view a summary. To get the new id of the job, you can use XPath to get the hidden field named "jobId" - to do with what you may (i.e. click on a link to the third screen). Here's how: {{{ }}} This is especially helpful because I tend to use a lot of onclick handler's (with location.href's) on buttons (so I don't have to submit to the same action). I also turn off JavaScript for my tests - by not including js.jar in WebTest's classpath. I can't say enough about this tool - the ability to test your app, with JavaScript turned off, and verify that everything works... that's just cool. Especially when you're a JavaScript junkie like me.

Posted in Java at Jan 06 2004, 05:25:15 PM MST 5 Comments

My Predictions for MacWorld Announcements

MacWord 2004 Tomorrow is a big day for Mac enthusiasts. Steve Jobs will announce the next big things from Apple. I predict we'll get a $100 iPod (1000 songs), a 2.5 GHz Power Mac G5, and the one that'll blow everyone away - a 2 GHz PowerBook. I can dream, can't I? My 1.33g/1r PB easily feels 3x slower than my 2.6g/1.5r XP machine....

Honestly, the iPod and the PowerBook are the best Mac products - products that even PC owners gawk at. The $100 iPod is a must, the 2 GHz PowerBook will take the world by storm. My other fantasy is that the 23-incher's price drops to $1000...

Posted in Mac OS X at Jan 05 2004, 04:48:30 PM MST 1 Comment

[IDEA 4.0] Favorite Feature = Package View

IDEA 4 Package View My favorite feature of IDEA 4.0 is the package view. Since I keep my src and test trees separate, but their package structures identical, this is the view I've been longing for. Hopefully it's possible with Eclipse and I just haven't figured it out. What it does is allow me to see tests right next to my classes. In Eclipse, I have to constantly navigate between the two trees to edit tests and such.

Does this mean I like IDEA better than Eclipse? No, it simply means that I wish Eclipse had this feature, and I appreciate IDEA for adding it.

Posted in Java at Jan 05 2004, 12:18:42 PM MST 4 Comments

3° F

It was so cold this morning on the way to work, that when I sprayed the windshield with wiper fluid - it froze to the window and I couldn't see. Luckily, I was able to crank the defrost and only lost visibility for a few seconds. The car's thermometer read 3° F. My laptop's WeatherPop icon currently reads -1° F. Brrrrr...

Posted in General at Jan 05 2004, 11:49:37 AM MST 5 Comments

Running AppFuse on Resin

Want to run AppFuse on Resin? I did some research (a.k.a. banging my head against the wall) and figured out how this morning. It isn't too tough, now that I've figured out how. You can read about my journey on my wiki, or follow the following steps (for the CVS version):

  • Edit $RESIN_HOME/conf/resin.conf and add the following after the last </web-app> closing tag.
<resin:include href='appfuse.conf'/>
  • Download appfuse.conf(info) and put it in the $RESIN_HOME/conf directory.
  • Put activation.jar, mail.jar and mysql-connector-java-3.0.9-stable-bin.jar in $RESIN_HOME/lib.
  • Remove password encryption by changing the Login Servlet's encrypt-password init-param (in web.xml) to false. You can do this in the build process by changing "encrypt.password" to false in app-settings.xml. You could also do it from the command line using -Dencrypt.password=false. For testing, you will need to change a number of files that have the encrypted password. Search for "536c0b339345616c1b33caf454454d8b8a190d6c" and change it to "tomcat".
  • Remove the <filter-mapping> for CompressionFilter.
  • To enable the "Remember Me" feature, remove the <c:if test="${rememberMeEnabled}"> check in loginForm.jsp. (AppFuse 1.3-dev)

DISCLAIMER: I did not thoroughly test that everything works, I just ran through a couple of pages.

Posted in Java at Jan 04 2004, 09:47:43 AM MST

A little EL Lovin' for the DisplayTag

Tim McCune submitted a patch for the Display Tag Library to add Expression Language support. I committed it today, along with a few other enhancements. You can read more on the displaytag-devel mailing list. Tim's patch was a nice clean approach to adding EL support. He just subclassed the existing tags and then evaluated the expressions. All I did to integrate was to create an "el" package under "tags" and added an additional .tld file. So there's really nothing that's taken away from the original tag library, and if you want EL support, you simply need to use the "*-el.tld" in your web.xml or change your URI to "http://jakarta.apache.org/taglibs/display-el". Of course, you'll need to include JSTL's JARs (standard.jar and jstl.jar) in your WEB-INF/lib to make this work. This patch included the ability to specify a titleKey attribute - a much asked-for feature.

I like Tim's approach so much, I might have to use it for Struts Menu. It's a slick way of supporting JSP 1.1 containers, and adding optional EL support for JSP 1.2 containers. I haven't had any feedback from the dev team, but hopefully this will make it into the next release.

Posted in Java at Jan 02 2004, 10:52:46 PM MST 10 Comments

Gallery installation and iPhoto integration

Gallery Homepage I installed Gallery (web-based photo album) on my Linux box tonight. The installation was awesomely documented and fairly easy. I did have to download/compile/install a couple of dependent libraries, but the instructions made it simple. Even better, I found the iPhotoToGallery plugin which allows you to publish files to Gallery from iPhoto. Apple's Homepage application kinda sucks for photo management, so I'm definitely digging the Gallery option. Now if I could just find an easy way to export/import from .Mac to Gallery.

Posted in Mac OS X at Jan 01 2004, 11:25:53 PM MST 4 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