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.

Where to put the password in moblogger-enabled e-mails?

In my Bloggar API and Titles post earlier today, Russ and I were discussing where to put a user's password (in an e-mail) when moblogging. After thinking about it for a couple of hours tonight, it suddenly came to me. The best place for the password is in the "to" field. Meaning that you give your blog's e-mail address a nickname, or type in with your password prefixed to the address, followed by a space. Basically, the "to" field will look like this: 'mypassword' [email protected]. Then you can use InternetAddress.getPersonal() to get the prefix ('mypassword'), strip off the single quotes, and use that as the password! I tried it and it works like a charm. This way, you can create a contact with your password as the name and easily blog from your mobile phone or other e-mail client.

I also added support to Roller's Blogger API implementation so if your post contains <title>, then that is used for the title. Then I made the E-Mail and IM Processors of moblogger support passing subjects as titles.

Posted in Java at May 08 2003, 11:59:03 PM MDT 1 Comment

Windows Media Player Blogging Plug-In

If you have Windows XP and Windows Media Player 9, you might want to check this out.

Blogging Plug-in for Windows Media Player 9 Series
Add more personality to your blog with this plug-in that adds the artist, song, and album name to the Windows Media Player 9 Series title bar. Blogging clients like LiveJournal, w.bloggar, Semagic, and others can then easily add that information to your next entry while you compose.

It sounds cool at least. If you've tried it, please post your review as a comment!

Posted in Roller at May 08 2003, 01:35:56 PM MDT 1 Comment

Blogger API and Titles

Is there any compelling reason that moblogger should support the MetaWeblog API in addition to the Blogger API? I like Blogger because it's already in moblogger and it looks pretty simple. Roller supports it, so why not?

The only problem I have with it is that it doesn't support titles. For Roller, here's a workaround I was thinking of. If the post has a <title> tag in it, use the contents of that tag as the title, or for mobile users, we'd also offer this alternative:

#t put your title here #

Where "#t" is the trigger that there's a title (short for phone bloggers) and "#" is an indicator signifying the title has ended. It's a very simple way IMO to add title support to Roller for Blogger clients.

Posted in Roller at May 08 2003, 10:35:55 AM MDT 5 Comments

Host your blog for free?

irth logo One of the folks that contacted me about hosting is Jason Rimmer of Irth Networks. The sweet thing about Jason's company is that they host blogs (movable type, bojsom, and roller), websites, email, etc. for not-for-profit activities and organizations. Free hosting!? What the hell?! It's true:

The operators of RhumbaNet, being completely self-taught and wanting to give something back to the community that enabled and supported their education recognized the perfect opportunity to do so. Hence, the commercial venture was shutdown and transformed into Irth Networks. [more...]

Of course this is a screaming deal - so why didn't I jump at it? For one, I feel that I should pay for hosting this site, as well as my family's site. And now that the new server seems to be humming along nicely, there's no reason to find a new provider (probably just jinxed myself there). However, I might ask Jason to host a few of the demos I have running. We'll see how this server holds up for the next few days.

Posted in Java at May 08 2003, 05:18:35 AM MDT Add a Comment

Moblogger and Jabber - it works!

I did some tinkering with Moblogger and Jabber this evening, and I'm stoked to report that I successfully posted to Roller! I grabbed some code from blojsim and had it running fairly quickly. The biggest problem I ran into? Finding a Jabber client that would actually post a message (rather than a chat). The Jabber clients I have on my machine don't seem to post messages, so finally I downloaded skabber and everything worked right away! Too bad I spent the last hour trying to figure out what I was doing wrong (nothing). This could present a major problem for users. Most will probably be like me and assume they can use any Jabber client, when in reality, it has to be one that can send messages. For all I know, they all do, and I was just too tired to figure it out.

There's a heckuva lot more work to do, but the proof of concept is complete. One thing is that Moblogger uses the Blogger API - which doesn't seem to support titles. Bummer - we can probably fake it though (add bold, and a couple of <br />'s). I suppose I should apply for that project space now from SourceForge and get the code checked in.

Posted in Java at May 08 2003, 12:18:52 AM MDT 1 Comment

The ride home tonight.

The ride home tonight.

Posted in General at May 07 2003, 10:05:04 PM MDT 7 Comments

[ANNOUNCE] StrutsTestCase v2.0 Released!

StrutsTestCase v2.0 improves support for Struts 1.1 (including better support for testing Tiles and sub-applications), provides several requested enhancements, and fixes many reported defects.

The project home page can be found here:

    http://strutstestcase.sf.net

Notes for this release can be found here:

    http://sf.net/project/shownotes.php?release_id=157811

Questions and comments are always welcome!

Deryl Seale -

I just replaced the 1.9.5 JAR with the new 2.0 JAR and all my Action tests ran lickedy-split! Now I just have to get off my duff and write some Action tests for Roller.

Posted in Java at May 07 2003, 05:27:14 PM MDT Add a Comment

Server move should be completed

If you're seeing this post, then chances are that www.raibledesigns.com is resolving correctly for you. It's still not working for me from work, but that could be a proxy server / local DNS server issue. I've moved from the server that crashed all the time to a new one that is hopefully more stable. Thanks Keith!

Also, thanks to the folks that have e-mailed me offering their hosting services - it's greatly appreciated. Hopefully, things will run smoothly on this server and I won't have to move anywhere else. I installed JRockit at work today on both Windows and Linux, and it works so well (not to mention awesome monitoring tools), that I'm going to try to use it on this site. It's a 40MB download (same as Sun's JDK ??), but installs in under a minute.

The only error messages polluting my log file these days is the following. It seems harmless, but that means that we should probably not even be logging it. Anyone know of a solution?

2003-05-07 16:00:10,244 SimpleLog4JLogSystem.logVelocityMessage(181) | 
    VelocimacroProxy.render() : exception VM = #refererDisplayUrl() : 
    ClientAbortException:  java.net.SocketException: Broken pipe

Posted in Roller at May 07 2003, 05:14:03 PM MDT 4 Comments

WebWork and XWork Mavenized

Maven Propaganda I currently monitor the WebWork mailing list because I'm interested in the framework, and it's good to know what's going on over there. This morning I was impressed to see that one of the developers (seemingly overnight) Mavenized both WebWork and XWork. Very cool IMO. I especially like the Project Reports. If I do promote Moblogger to SourceForge, I think I'll mavenize it first thing. It's a small project at this point, so it'd probably be fairly easy to do. And we all know that some of the most successful open source projects are built on top of good documentation. So the real question is - wiki vs. maven?

Posted in Java at May 07 2003, 10:24:17 AM MDT 4 Comments

Cannot load JDBC driver class 'null'

I'm going to post my newly-found solution to an often-seen error in hopes that it will help someone. In the struts-resume demo application that runs on this server, I've been getting the following error message everytime I startup the context.

java.sql.SQLException: Cannot load JDBC driver class 'null'
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:529)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)

In the past, this problem has been caused by not having the JDBC driver in my $CATALINA_HOME/common/lib directory, having an invalid username/password, or having another JNDI setting incorrect in server.xml. The strange thing about the problem this time was that everything was correct, and the app ran fine, save for the error (in the log file) on startup. Tonight I figured out the solution - I needed to grant permissions for the user with the specific hostname of the machine. I've been using the following SQL to grant permissions to the app's db user. This is the syntax for MySQL, it is probably different for other databases.

grant all privileges on resume.* to username@"%" identified by "password";

While this has worked on my WinXP machine, it failed on my RH9 box tonight. The solution turned out to be specifying the specific HOSTNAME (i.e. drevil.raibledesign.home), rather than "%".

grant all privileges on resume.* to username@HOSTNAME identified by "password";

Here Google, come and get it!

Posted in Java at May 06 2003, 10:52:24 PM MDT Add a Comment