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.

Snookered at the Apple Store

They got me tonight... those bastards. I walked in and handed over MiniMe. They're sending him off and will call me in a few days to tell me if the damage is covered by my AppleCare Warranty. It damn well better be ;-) If any of you have ever been to the Apple stores, and had them do anything, you'll know it takes forever for them to complete the paperwork. The last time, I went in to get a new powercord, and it took them 20 minutes to type everything in. I have a sneaky suspicion that they're doing this all on a webapp that is slow like molasses.

So while waiting for them to complete the paperwork, I went to buy an iPod. I wanted the cheapest one - $299 for 10 Gigs. 2500 songs is plenty when I only have around 700. But the salesman sneakingly let me know that the $399 model came with over $150 in accessories (Wired remote, Carrying case w/ belt clip, New iPod Dock). I knew the dock was good from reading James's new iPod experience. So I asked, "How much is the dock?" The swindler told me, "60 or 70 bucks, something like that." I fell for it, and now I'm the proud (and poor with a pissed off wife) owner of the 15 GB (3700 song) iPod. I'll be stuffing this sucker in my pocket and riding to work as long as I'm in Colorado this summer - shouldn't take me long to scratch it up real nice.

First impression: it sucks - I was stuck trying to do stuff in German for the first couple of minutes. :-) I had to reset it to get back to English. All my downloaded songs have many different names for the same artist, so I have 3 different "Eminem" and 4 different "Greatful Dead" artists. Only 1 Garth Brooks though. From these artists, you can see I like it all - music is one of my favorite things in this world.

I'm guessing I'll get used to my iPod (reminder to self: name it) after a few days/weeks of using it. As most things Apple makes - it takes me a while to fall in love with their toys.

Posted in Mac OS X at May 04 2003, 09:43:52 PM MDT 3 Comments

DHCP and Dynamic DNS on Red Hat

I found a great howto today for setting up DHCP and Dynamic DNS server on Red Hat 8.0. It literally took me about 5 minutes to get it installed and running. 5 minutes later, I had all my machines (WinXP, Win2K, OS X, Linksys Print Server) connected and working. Very slick!

Even better is I did it with Red Hat 9, which I downloaded last weekend and installed lazily over a few days. The upgrade from 8.0 was like butter. I like Void Main's Red Hat Tips so much, I'm tempted to mirror them in hopes this URL won't go away. But for now, I'll have faith and hope it's a true permalink. Hope you don't mind that I've stuffed this under my Java category - just doesn't seem fit for General.

Posted in Java at May 04 2003, 02:54:47 PM MDT Add a Comment

[Request] Moblogger on Sourceforge

Hey Russ, what do you think about putting Moblogger on SourceForge? If you have something against SourceForge, that's fine, how about putting it on a publicly accessible CVS server so folks can contribute?

I have a few reasons for wanting this:

  • I want to see title support - maybe signified by a space in the subject after the password.
  • I'd like to see the ability to specify multiple blogs/e-mail boxes in the config file (agentsettings.xml).
  • A sample web interface would be awesome. For instance, the ability to edit the config file via a JSP and start/stop the agent through this same interface. Maybe even use Betwixt for writing/reading the config file.
  • Use Velocity or XSL for templates - rather than hardcoding it in the Java code.
  • This seems like a great project to integrate Jabber-blogging into.

If you give the OK, I can request the project be setup - but I thought you'd like to be the admin on it.

Posted in Java at May 04 2003, 08:18:19 AM MDT 3 Comments

target="_blank" in XHTML 1.0 Strict

I've always wondered how to add a target="_blank" to my XHTML 1.0 Strict pages. Thanks to this article, I now know a nice workaround.

Much to the chagrin of Web designers everywhere, the HTML 4.0 Strict and XHTML 1.0 Strict recommendations of the W3C no longer include the target attribute of the <a> tag. The Transitional versions of the specifications still include it, but by definition, these specs are on the way out.

The short and sweet version is to use the "rel" attribute to your advantage.

<a href="document.html" rel="external">external link</a>

And then use this short script to key off this attribute for adding a target="_blank" (using the DOM).

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
window.onload = externalLinks;


Throw this in an "external.js" file and add it to whatever pages you need it in.

<script type="text/javascript" src="/external.js"></script>

This LOT more work than I expected, but since it's written up in an actual article, I tend to believe that this is probably the shortest path to making this happen.

Posted in The Web at May 04 2003, 06:13:06 AM MDT 1 Comment