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: A not so brief history of Roller

Dave explains the history of Roller and how he started it all. Man - Dave had a a busy year eh? He brought new things into the world at an alarming rate - weblogging, Roller and Leo! ;-)

So, working in a vacuum without knowledge of weblogging, I invented weblogging. You know what I mean: I invented weblogging like Columbus discovered America. If you ignore the fact that indians, native americans, aztecs, etc. had been living in the Americans for thousands of years and had in fact built entire civilizations there, the statement 'Columbus discovered America' is a true one. So, I invented weblogging and now I'm in the process of pushing the aboriginal webloggers west and eventually into little reservations where they will no longer bother me with talk of <cite> tags, RSS 2.0, trackback, and other stuff that I will soon invent. This is totally fair of course, because I discovered weblogging.

Posted in Roller at Dec 31 2002, 03:55:24 PM MST Add a Comment

Hibernate Tools Road Map

There's lots of cool new features being developed for Hibernate. For a quick glimpse of new and future tools, check out the recently added Tools Road Map on Hibernate's Wiki. I believe the reason their site is so good is because their whole site is powered by a Wiki. Cool - maybe we should do this for Roller?

Posted in General at Dec 31 2002, 05:36:05 AM MST Add a Comment

[ANNOUNCEMENT] Struts 1.1 Beta 3 Released

The Struts team is proud to announce the release of Struts 1.1 Beta 3. This release includes significant new functionality, while retaining full backwards compatibility with earlier versions of Struts. It also incorporates fixes for a number of bugs which were reported against earlier versions.

The binary distribution is available at:

  http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3/

and the source distribution is available at:

  http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3/src/

In addition, the library distibution, which contains updated binaries without the sample applications, is available at:

  http://jakarta.apache.org/builds/jakarta-struts/release/v1.1-b3/lib/

Details of the changes in this release are available in the Release Notes, which can be found here:

  http://jakarta.apache.org/struts/userGuide/release-notes-1.1-b3.html

Sweet! Now I can stop downloading the nightly build for a while! Thanks Struts Developers - what a great New Years Eve present! Awesome!

Posted in Java at Dec 31 2002, 05:29:35 AM MST Add a Comment

New Car Shopping - the lost post

Julie and I had a nice day together on Saturday. Grammy (Julie's mom) was in town for the holidays and was more than happy to be our babysitter. Our goal for the day was to go and look at new cars, in hopes of finding one we liked. My bug is a little impracticle now since it has such a small back seat and it's a pain to put a carseat in and out of. Julie did some research on the web, and had already looked at the Toyota Camry, as well as briefly looking at the Honda Accord. I've been out of the process for most of it b/c of my writing, and so it was a nice day to get together, do some shopping and make a mutual decision. We started out at the Audi dealership b/c I love the A4 (man their website is slow, and it doesn't work in Phoenix) and then tried the VW Passat, the Mazda 6 (did you know that Mazda is owned by Ford) and finally the Honda Accord. We actually stumbled upon the Mazda, as the sales guy at the Audi/VW place happened to also be a saleman at the Maza place next door. Here's what I thought of each:

  • Audi A4 - this was my dream car. It drives real nice, it's fast and it looks awesome. Problem? It's small, and when I say small, I mean small. The interior room is smaller than my bug to give you an idea. That sucs b/c I really wanted this car. Pretty damn expensive though, so probably good that we didn't like it after we drove it.
  • VW Passat - much roomier, but definitely a step down from the A4 feature-wise. The stereo (a Monsoon system), seemed awful, but that couldn't been b/c we just got done driving the A4 with a Bose system.
  • Mazda 6 - very nice car, and definitely better than the first two. The problem - we never had Mazda on our list of cars-to-look-at, and we felt like we were "settling" if we got it. Definitely an awesome car, and if they'd had the color/V6 we wanted, we probably would've bought it.
  • Honda Accord - this is a P-H-A-T car! It's definitely a family rig, but the inside is like a Cadi and it's still reasonably priced. It had everything the A4 had (save auto-up windows), plus a navigation system that Julie wants and I think is a waste of money - $2000! Of course, I wanted the 17" roms, and that's definitely a waste of money.

So I think we're going to get teh Accord if we can find the right color and a V6. We'll see, they have some great rebates through the end of teh year (Tuesday), so who knows. After shopping for calls all day, we went to the Raible Designs' Holiday Party at Morton's Steak House. Only a couple people showed up (the only two employees), but it was definitely a great time, and a nice romantic evening.

It was also fun b/c I used to work for the valet (Kenny) in college, when I was a valet in downtown Denver (Larimer Square). He's a very cool guy and I haven't seen him in about 7 years - so it was nice to catch up. It should be a good week if I get to start driving a new car, but it'll be sad to see the ol' Turbo (a.k.a. Speedy Gonzales) go away. There goes my youth - onto being a dad and a family man. With a kid as cute as Abbie, it's going to be a lot of fun.

Above was the post I lost on Sunday, and since I had the screenshot, I felt the need to post it anyway. We did find the Honda Accord we wanted today and went into Planet Honda to sign all the paperwork. It's schedule to arrive tomorrow, but could be as late as Friday. We'll see - the hard part is over, now we just have to pick it up. I also finished the writing part of my Struts chapter last night - finally! I feel like a huge weight has been lifted off my shoulders. I'll be posting the sample app for it in the next week or so.

Posted in General at Dec 30 2002, 09:45:16 PM MST Add a Comment

[ANNOUNCE] Hibernate 1.2.1 Released!

Hibernate 1.2.1 features support for Blob and Clob properties, a new FlushMode API, toolset improvements and fixes for a number of bugs found in version 1.2.

Download now!

Posted in Java at Dec 30 2002, 09:21:58 AM MST Add a Comment

Connecting to your home folder on OS X

I know I had it working at one time, but I can't seem to get it working now. In Jaguar, I have "Windows File Sharing" on, and I can map a drive to it from my Windows machine, but no username nor password I type in will work. I've tried minime\matt and everything for the username, but no joy. I also have the User (me) setup so they can login from Windows. What gives?!

Posted in Mac OS X at Dec 30 2002, 06:50:26 AM MST 1 Comment

Phoenix Sucks

I just typed up a huge long post about Julie and I's car-shopping experience yesterday, and just as I was about to hit submit, Phoenix crashed! Friggen browser. It crashes a fair amount too, just never when I had a page worth of data ready to go. I did get a screen shot of about half of it though, so I'll attempt to reproduce it tomorrow. Sucks though - Mozilla and IE never crash, maybe it's time to go back.

Posted in The Web at Dec 29 2002, 09:24:58 PM MST Add a Comment

commons-lang just made it easier

I got some advice from Max Anderson (via hibernate-devel mailing list) for implementing the following methods in a BaseObject class for my hibernate objects (or any objects FTM):

public boolean equals(Object o) {
  return EqualsBuilder.reflectionEquals(this, o);
}

public String toString() {
  return ToStringBuilder.reflectionToString(this);
}

public int hashCode(Object o) {
  return HashCodeBuilder.reflectionHashCode(this);
}

Boy, that sure makes things easier, huh? Especially when you compare the toString() method to my old one:

public String toString() {
    StringBuffer results = new StringBuffer();
    Class clazz = getClass();

    results.append(getClass().getName() + "\n");

    Field[] fields = clazz.getDeclaredFields();

    try {
        AccessibleObject.setAccessible(fields, true);

        for (int i = 0; i < fields.length; i++) {
            results.append("\t" + fields[i].getName() + "=" +
                           fields[i].get(this) + "\n");
        }
    } catch (Exception e) {
        // ignored!
    }

    return results.toString();
}

They both use reflection, but my old one might catch security excaptions. The Javadocs for HashCodeBuilder warn us about this problem:

Alternatively, there is a method that uses reflection to determine the fields to test. Because these fields are usually private, the method, reflectionHashCode, uses Field.setAccessible to change the visibility of the fields. This will fail under a security manager, unless the appropriate permissions are set. It is also slower than testing explicitly.

I'll be using these on Tomcat and I'll let you know if I run into any problems.

Posted in Java at Dec 29 2002, 09:19:52 AM MST Add a Comment

CSS and border-collapse property

I can't seem to get the border-collapse property to work on my tables. Basically, I should be able to specify a border and border-collapse: collapse on a table and this border will be applied to all cells. But I can't get it to work - any ideas? Here's an example:

<table width="300" 
  style="border: 1px solid black; border-collapse: collapse">
  <tr>
    <th>&nbsp;</th>
  </tr>
  <tr> 
    <td>this cell should have a top border<td>
  </tr>
</table>

And here's that same table without the HTML escaped:

 
this cell should have a top border

Posted in The Web at Dec 29 2002, 06:58:14 AM MST 3 Comments

RE: Ant's jspc task - doesn't work on Tomcat 4.1.18

A week ago, I reported that Ant's <jspc> task doesn't work with Tomcat 4.1.18. I posted a message to the ant-user mailing list (which is very low traffic BTW, a nice feature in my book) describing my issue. Last night, I received a reply from Steve Loughran, co-author of Java Development with Ant (BTW Steve - great book, you've already got my respect!) The short story is that there is something wrong with the Ant task and someone needs to "sit down and spend an evening looking at [Tomcat's] jasper." The real hope is that a Tomcat Developer could take over maintaining the <jspc> task, and then these types of issues wouldn't occur.

Posted in Java at Dec 29 2002, 05:00:50 AM MST Add a Comment