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.

False alarm?

Julie just went to the doctor because she's been up all night and feeling some pain. She was in hard labor for 24 hours with Abbie. She definitely doesn't look like she's in labor if compared to her previous one. But you never know. The nice thing is the hospital is only two blocks away.

Update: It was indeed a false alarm. However, the doctor said her cervix was soft and the baby's head is right there. He also said it's probably a sign that labor will start in the next day or two. :-D

Posted in General at Aug 18 2004, 08:25:58 AM MDT 5 Comments

Denver JUG gets a makeover

I just noticed tonight that the DJUG website got another makeover - and it looks great. Nice work Renee! Not only that, but the line-up of speakers and topics for the coming months is awesome: Dion, Mike, Bruce and yours truly. I actually enjoy DJUG meetings more than I do conference sessions. The speaker is not fixed to a certain time (though they are encouraged to be under an hour) and you get to have beers with them afterwards.

Posted in Java at Aug 17 2004, 10:59:19 PM MDT 6 Comments

Which one are you?

Which type of developer are you - Asshole or Moron? I'm a moron as far as I can tell. 8-}

I got a free copy of Mark's Dive into Python at OSCON. Apress said they'd give it to me if I agreed to post a review on Amazon. I hope Mark's writing is as good as his blog.

Posted in Java at Aug 17 2004, 11:20:13 AM MDT 2 Comments

Why Java Desktop apps are better

Since I've been spending so much time with Microsoft Word lately, I decided to upgrade to the latest versions yesterday. Here's where products like IDEA really shine. If I buy a copy of IDEA, I get a copy for Windows, Linux and OS X. It's written in Java, so it's easy to create versions for different operating systems. I imagine it's just a matter of packaging each install differently.

So I went to CompUSA and had to buy 2 copies of Word - one for Windows and one for OS X. That's bullshit - I should only have to buy one software package. Oh well, it's already paying off since Word on Windows hasn't crashed yet.

Posted in Java at Aug 16 2004, 10:47:58 PM MDT 11 Comments

log.debug vs. logger.debug - which do you prefer?

This is probably a bit of a religious debate, but it can't hurt to ask. Do you prefer to use log.debug() or logger.debug() in your Java classes? A fair amount of open source projects use Commons Logging and many of them seem to use logger. Personally, I prefer log (esp. b/c it's shorter), but I'm willing to change based on what the community (particularly AppFuse users) prefer.

Here's another tip I learned today. I typically declare a log variable for each class, such as this one in BaseAction.java:

    protected static Log log = LogFactory.getLog(BaseAction.class);

A better design can be found in Spring's DaoSupport classes. They have a logger variable that all its subclasses can use - eliminating the need to initialize a log variable in each class.

    protected final Log logger = LogFactory.getLog(getClass());

Obviously this is cleaner than AppFuse's current design - so I'll be changing it for 1.6. Any reasons why I shouldn't?

Posted in Java at Aug 16 2004, 09:47:58 PM MDT 21 Comments

OmniGraffle

I've seen OmniGraffle diagrams show up in a blog entry and and an article in the last week. Both diagrams show how OmniGraffle can produce high-quality, professional looking diagrams. The best part is that (I believe) it comes out-of-the-box with OS X. I seem to remember deleting it off my hard drive a while back b/c I didn't know what it was for. After seeing these sites, and realizing what OmniGraffle can do - I'll be searching through my Panther CDs in hopes of finding it. Anyone know where it's at and what version it is?

Posted in Mac OS X at Aug 15 2004, 04:25:01 PM MDT 6 Comments

August Status after two weeks

It's been almost 2 weeks since I set out to make this a month to remember. My progress so far? I'm behind. I put in 60 hours in front of the computer last week and 70 this week. Here's the break down of where I spent my time:

  • Current Client: 80 hours
  • Raible Designs: 27 hours
  • AppFuse: 7 hours
  • Spring Live: 16 hours

You can see where the problem lies - in the time spent on Raible Designs stuff. This time was mostly due to fiddling with the new monitor and 17 hours on Monday trying to get Radeon DVI cards working on Linux. I guess I like thumping my head against the wall. The time I spent on Spring Live was doing editing for Chapter 6 and coding for Chapter 7. I was hoping to have Chapter 7 done by today, but that's not gonna happen - so I'll be working tomorrow and taking off Monday to try and it finish up.

My original goals for this month were to finish Spring Live and release AppFuse 1.6. For Spring Live, I still have to write 2 more Chapters after Chapter 7. That's 1 chapter next week and 1 chapter the week after. Yeah right. Chapter 6 took me the entire month of July and Chapter 7 has already taken me 2 weeks. I'm still hopeful I can come close to pulling it off. The problem is that I never account for editing - and that seems to take a few hours per week once I've turned a chapter in. Worst case, Spring Live 1.0 will be released in late September. This might happen anyways since the editing for the ERP took 3 weeks and I'd like to fix all the issues found in the first 5 chapters. Fixing issues will probably take a day since I need to setup JIRA, enter all the issues, and then proceed to make sure they're fixed.

As for AppFuse 1.6, I think the WebWork integration should only take a couple of days. But that's 2 solid days. The other big issues involve a lot of XDoclet hacking and modifying, so that's probably another day there. Give it another day for various other bugs and one more for documentation updates/tutorial writing - and I'm up to 5 days. Yet this is still possible too. My current contract is scheduled to end when the baby is born, but I think I'm going to end it on Friday, August 27th. This gives me the next week to work on AppFuse - if the baby doesn't come. The baby is due on Friday, September 3rd.

The interesting thing about this week over the last was it was a coding week for Spring Live. When I write code, I prefer to have no deadlines - so I do it at night. If I did it in the morning, I'd have to quit coding around 8 and start my day job. By doing it at night, I'm pretty much giving myself the whole night to get stuff done. I've gone to bed b/w 3 and 4 every night this week. My problem is that I then sleep in until 9 or so. When I write, I find it's easier to get up in the morning, with a clear head and go to it. It's going to be tough making the transition from going to bed at 4 to getting up at 4. The good news is that I'm not just letting my body go to shit like like last time, I've actually been exercising. I feel great, but my fingers are starting to cramp from typing so much.

NOTE: If Julie goes into labor anytime in the next 3 weeks, all bets are off. ;-)

Posted in General at Aug 14 2004, 12:36:29 PM MDT 4 Comments

Tom McQueeney's Blog

What happen's when you're a Java Developer and your wife is a kick-ass designer? You end up with a rockin' Roller theme. Tom McQueeney is DJUG's President and his wife, Renee, is an awesome designer. Not only that, she's a Sun Certified Enterprise Architect. Tom and Renee, this site looks incredible - I especially like how the "blog" part of it is just another page and it looks so seemless. Tom's personal site looks a lot better than many corporate sites I've seen.

Posted in Roller at Aug 13 2004, 12:52:50 PM MDT 1 Comment

This site crashes a lot

It's plagued me before, and now it's back again. When I go to sleep at night, this site crashes. I've been up until 4 lately and it still seems to wait until I fall asleep. In fact, my 500 page is my top referrer this month. That's not good. The problem is probably not Roller - since JRoller seems to stay up and humming. Although it does die, I do have somewhere around 30 open database connections.

The truth is I need to run a profiler and figure out what's wrong. Unfortunately, I don't have the time and it doesn't really bother me that much. I just end up with a whole bunch of "your site is down" e-mails every morning when I wake up. Hopefully I can fix it soon. I've been telling people I'll have more time when the baby comes. They think I'm kidding - but I think it's true. My job will be handling Abbie while Julie nurtures the new baby. Abbie sleeps 12 hours at night, and 2-3 hours in the afternoon. I sleep 4-5 hours a night. That's a lot of time to get stuff done. ;-)

Posted in General at Aug 13 2004, 11:12:03 AM MDT 48 Comments

Quote of the Day

Julie: I wish I'd go into labor today so I'd quit having to deal with this house crap.
Me: Yeah, that would work out for me too, I could use a break.

Posted in General at Aug 12 2004, 09:20:26 PM MDT 2 Comments