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.

Upgraded to Roller 3.1-rc3

This site is now running Roller 3.1-rc3. It took me a few hours to upgrade my theme yesterday, but everything appears to be working correctly. Let me know if you see anything that's out of whack. The only thing I don't like so far is how it displays "Main | Next page »" on the main page. I'd rather it not show anything, but this macro is needed to show next/previous links when browsing by date, individual entries, or search results. If nothing else, it seems to me like it should display "« Previous page | Main" since » implies forward in time.

I did make one enhancement to this theme. Now, the colors for the category is shown when viewing a single entry. Before, the colors where only shown when you were viewing a particular category. The new $model objects make this pretty easy to do. Another feature I really like is the "Full Preview" feature. Rather than just previewing the entry in the author screen, you preview how it will actually look with your theme. Just remember to click on Save as Draft before Full Preview or you'll lose your post!

Update: It looks like I spoke too soon when I said everything is working correctly. I'm currently experiencing some feed duplication and category issues. Sorry about that.

Posted in Roller at Feb 10 2007, 05:13:55 PM MST 1 Comment

Slick looking Confluence sites

You have to admit, both Wicket and Cayenne have nice looking websites. Did you know they're both backed by Confluence? Wicket has a Writing documentation page that explains how it works. Basically, they use the autoexport plugin to export their content to static files. If you configure this plugin to be invoked from a cron job, it's a great way to create a constantly updating dynamic-but-static site.

I believe there's a couple reasons Apache uses this setup: 1) it allows projects to customize the look and feel of their site w/o customizing how Confluence looks and 2) it reduces load on its servers since most content is served up statically. I've thought about using a similar setup for AppFuse's documentation, but I've run into a couple issues:

  • The autoexport plugin is pretty flaky. The latest release (0.13) doesn't work with Confluence 2.2.9. Strangely enough, the previous version (0.12) works fine. It looks like the author had a good run with this plugin when he created it (almost a year ago), but hasn't updated it since.
  • The dynamic tree menu doesn't get included in the export. If I could somehow include this tree (and the current theme) when exporting, it'd be very cool.
  • The new code macro works much better than the {code} macro, but it has exporting issues both with PDF and the autoexport plugin. I tried using the code macro, but it doesn't show any syntax highlighting when using an Adaptavist Builder theme.

Apache's setup for Confluence appears to be quite good. I wonder if we should use it for AppFuse? We don't have the bandwidth/load issues that they do - and we've managed to make the site look decent using Adaptavist Builder. I like having a single source of constantly changing documentation, rather than two sites, where one is static. I think this causes confusion for users if the documentation changes a lot. That being said, I would like to export the content for bundling and versioning with each release. I wonder if Atlassian is planning on fixing the new code macro exporting issue anytime soon?

Posted in Java at Feb 09 2007, 08:02:54 AM MST 5 Comments

Dad makes the local Montana News!

My Dad was interviewed in a Missoulian article a couple days ago:

CONDON - For years, Joe Raible and his family used a road across Plum Creek Timber Co. land to access their home in the Swan Valley.

Set about a mile from the nearest county road, the family depended on Plum Creek's generosity to access their homestead. And the company gladly obliged.

Not only did Plum Creek allow the Raibles to drive across its property, it even provided a utility easement for the family's telephone line.

Then, in about 1990, the timber company sold the property to a Florida man. Not long after that, a locked gate appeared across the road to keep the public out.

"At first he gave us a key to the gate, but then someone tore the gate down," Raible said. "He blamed us and dug a tank trap across the road right at our property line. He dumped the pile of dirt on our land and sowed the pile with logs so we couldn't just push it back in the hole."

Raible thought about suing, but changed his mind after a very direct discussion with his attorney.

"He told me that I could either put my kid through college or his kid," Raible said. "I had a friend who'd had an access issue and spent a lot of money on it. He lost."

The "Florida man" was a guy that I remember as "Jackass Burns". After using our "back road" for 20 years, he moved in and shut it down. That forced us to use the "front road" which has been a challenge ever since. My kids refer to it as the "bumpy road". Looks like lots of changes going on in good ol' Montana.

Posted in General at Feb 08 2007, 04:43:16 PM MST 2 Comments

AppFuse 2.0 M3 Released

The AppFuse team is pleased to announce the release of AppFuse 2.0 M3! This release marks a milestone in our documentation efforts. We've completed all of the web framework tutorials and ensured that all the archetypes work properly. Turkish language support was added and native2ascii was integrated so all i18n bundles should work properly.

The major things missing from this release are code generation (AppGen) and web services (XFire) support. We hope to add both of these before the final release.

AppFuse 2.0 is available as a Maven archetype. For information on creating a new project using this release, please see the QuickStart Guide.

The 2.0 series of AppFuse has a minumum requirement of the following specification versions:

  • Java Servlet 2.4 and JavaServer Pages (JSP) 2.0
  • Java 2 Standard Platform Edition (J2SE) 5.0

For more information, please see the 2.0 M3 Release Notes.

We appreciate the time and effort everyone has put toward contributing code and documentation, posting to the mailing lists, and logging issues. We also greatly appreciate the help from our sponsors, particularly Atlassian, Cenqua, Contegix, JetBrains, Java.net and KGBInternet. Without them, working on this project wouldn't be nearly as much fun. ;-)

Posted in Java at Feb 06 2007, 02:16:45 PM MST 16 Comments

AppFuse Book!

David Whitehurst (an AppFuse committer) has taken on the task of writing a book on AppFuse 2.0. I don't envy him, but it looks like he's got a lot of good ideas.

When I started looking at AppFuse version 2.0 source and how it's going to use Maven, I got excited. I got so excited I'm writing a book about it and SourceBeat is going to publish it. I talked with Matt Raible, got his blessing, and sent SourceBeat the proposal. They liked it!

Well, I guess the news is out. We're doing the "AppFuse Primer" and it's scheduled for release August 2007.

Now, it's time for you guys to flood me with comments so that you can turn my outline upside down and get all the things that you want to learn about in the book. C'mon, I know you want it. I do and I decided that I would write down everything I've been learning about it. Everyone is going to be quite pleased with AppFuse version 2.0. And, I hope that this book will compliment its release with a publication this summer after everyone has had a chance to play with it some on their own.

Here's a rough table of contents.

  • Chapter 1 - Introducing AppFuse
  • Chapter 2 - An AppFuse Quickstart
  • Chapter 3 - Developing with Maven
  • Chapter 4 - Using the Spring Framework
  • Chapter 5 - Persistence with Hibernate
  • Chapter 6 - The Service Framework
  • Chapter 7 - The Web Tier
  • Chapter 8 - AppFuse Security
  • Chapter 9 - Production Deployment, Migration, and Maintenance

If you'd like to help David shape AppFuse Primer, please post a comment on his blog.

Posted in Java at Feb 05 2007, 10:30:25 PM MST 11 Comments

Maven 2 hates Commons Logging

It's true that most people hate commons-logging, but Maven 2 hates it even more. There are many open source projects that use this library, so you're likely to depend on it when you never intended to. Of course, this is Maven 2's transitive dependencies fault - but currently there's no option to turn transitivity off. I tried changing to SLF4J, but that causes some Maven plugins to fail.

Since the Maven team refuses to fix this (even though it's an *obvious* exception to their rule about not changing anything), I've fixed it myself. The AppFuse repo has a fixed version of commons-logging's pom.xml. To get the fixed version of commons-logging, delete it from your local repo, then add AppFuse's repository to your pom.xml:

    <repositories>
        <repository>
            <id>appfuse</id>
            <url>http://static.appfuse.org/repository</url>
        </repository>
    </repositories>

Since the burden of this issue clearly rests upon the shoulders of the commons-logging developers - can we please get a new release with a fixed pom? Pretty please?

Update: I tried to get slf4j to work again today. While I succeeded, I found a critical bug. The bug is that log messages don't print out the method name, just debug(), info() or whatever from your classes. It's possible to fix this by using slf4j instead of clogging. However, that won't help you get method names printed when cranking up the logging for 3rd party libraries like Spring and Hibernate. Since this won't be fixed, it seems better to stick with commons-logging. I doubt I'd have any luck getting all the libraries that AppFuse uses to move away from commons-logging.

Posted in Java at Feb 04 2007, 10:43:15 PM MST 11 Comments

The Last Two Weeks

Ever since Virtuas shut down a couple weeks ago, I've been having a blast. Mostly, I've been working on AppFuse, but I've also been spending more time with Julie and the kids. Where I work varies from day-to-day. Some mornings, I'll head to our local Einstein's or the close by Spanky's Roadhouse. Other days, I'll work from home and let the kids harass me all day. I'll admit, there's some days that are frustrating when I'm about to solve a problem and the kids are yanking my fingers off the keyboard. However, there's others where the music is cranked, the kids are dancing in my office, and I just solved a problem that was bugging me for the last 6 hours. There's nothing like having a Woo hoo! after solving a problem you've been wrestling with all morning. It's even better when there's friends around to help you celebrate. My whooping and clapping often leads to games of "horsey", happy kids, and a worn out dad.

In AppFuse news, I finished all the web framework tutorials a couple nights ago. Since the beginning of this year, I've written over 100 pages worth of AppFuse documentation. Wednesday's "the web tutorials are done" was a huge milestone and it feels great to be done with it. We hope to release 2.0 M3 in the next few days.

Yesterday, after getting 8" snow reports from Beaver Creek two days in a row, I suggested to Julie that we "head for the hills" for a day of skiing. She agreed and we left a few hours later. We ended up at Keystone since they have cheap skiing for kids and it's one of the closest ski resorts to Denver. Leaving last night was brutal. It starting snowing around 2pm and we left town around 5:30. We quickly ended up in rush hour traffic and it took us an hour just to get out of town (to the top of Lookout Mountain). Once we hit Idaho Springs, the roads improved and by the time we got to the tunnel the roads were bare and dry.

Keystone

Coming up here last night turned out to be a good idea. Denver experienced a record low of -18° F this morning. Furthermore, there were wicked winds and west-bound I-70 was closed for 9 hours this morning because a semi blew over and spilled all of its 2000 gallons of unleaded. I watched the story on the news and was quite impressed when I heard the wind was so strong it was blowing windows out of cars.

The skiing at Keystone today was bitter cold (-15 to -25 °F with wind chills), but I made it work. Hot Cider and bump runs are excellent ways to keep warm. Now we're sitting in the condo we rented and waiting for the kids to wake up so we can enjoy FAC at the local bowling alley.

Life is good. :-D

Posted in General at Feb 02 2007, 05:25:36 PM MST 4 Comments

Roller as a Photoblog

Discovered on the roller-dev mailing list from Richard Jones:

For the last 6 months I've been turning Roller into photoblogging platform - you can see the most up-to-date version @ www.pixyblog.com.

I really like what Richard has done with Roller - especially this entry. ;-)

In job-hunting news, the market seems to be pretty hot in Denver right now. While I haven't accepted any offers, I have been replying to 4-5 inquiries per day, as well as shooting out 2-3 resumes per day. I had a couple interviews yesterday and another one this afternoon.

The most intriguing interview so far has been with Sun. I'm jazzed about it because of the work opportunities there, but I'm not-so-jazzed because 1) it's a full-time position (which typically pay a lot less than contracting and 2) it's working for a big company. That being said, it does seem that Sun is really turning things around and it's probably an exciting time to work there.

For those folks out there that have worked for Sun - what's it like? Is it a good place to work these days? Would you recommend it for a passionate open source developer like myself that likes to make contractor rates and take lots of vacation?

Posted in Roller at Jan 30 2007, 11:12:47 AM MST 11 Comments

Bandwidth Speed Issues

In the last few days, I started to notice a huge slowdown on my MacBook Pro when surfing the net. At first, it seemed to be a Firefox-hogging-a-shitload-of-memory issue. So I started using Safari instead. After a few hours of using Safari, the problem came back and pages were taking 5-6 seconds to load. I have a Cable (Comcast) modem, so I didn't suspect any bandwidth issues.

Last night, I got tired of waiting and decided to do some further investigation. I started off by running several bandwidth speed tests. All of them reported similar statistics: download speeds of under 300K/sec. I called Comcast, they ran some tests and determined that there were no package loss issues between my modem and their facilities.

Since I moved my modem downstairs last year, I tried moving it upstairs. Same result. I tried plugging it directly into my desktop and voila! - 3MB/sec. I have 2 NetGear routers setup (one for each laptop since my MacBook Pro's wireless abilities suck) and it seems like they are the source of the problem. Do routers go bad like this?

I'm considering buying an Airport Extreme to solve all my Mac-related wireless issues. Unfortunately, it only has 3 ethernet ports and I'd prefer a lot more.

Posted in General at Jan 24 2007, 01:02:24 PM MST 11 Comments

java.blogs - nice crippling update

I like how java.blogs updated their site the night before last. The changes seem to be cosmetic for the most part, with a cleaner look n' feel and some language features as well. Seeing these updates is good, and based on the update last week (where they forgot to find.replace ${community.name} with "java.blogs"), it looks like Atlassian might be releasing the software behind java.blogs.

However, there's one thing they screwed up in their most recent update: the software ceases to function.

Ever since they updated, no new feed entries have shown up on the first page. You can tell because the last entries added are experiencing record hit numbers. WTF Atlassian? Did you update the software and forget to test that it works? ;-)

java.blogs' lack of updates

In reality, I can't be too upset. This lack of updates is boosting my productivity.

Posted in Java at Jan 24 2007, 11:56:02 AM MST 6 Comments