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.
You searched this site for "la blue girl episodesorgasm denial web tease". 1,368 entries found.

You can also try this same search on Google.

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

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

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

Simplified UI Tags in Struts 2

Struts 2.0.3 contains a much needed simplification of its UI tag libraries. Before 2.0.3, you had to define a property three times (in the value, label and name attributes):

<s:textfield label="%{getText('user.firstName')}" name="user.firstName" 
    value="%{user.firstName}" cssClass="text medium"/>

In 2.0.3+, you can use the "key" attribute to replace all these attributes. For example:

<s:textfield key="user.firstName" cssClass="text medium"/>

One of the things I really like about WebWork/Struts 2 is the previous examples have the ability to write out the entire form row, rather than just an input field. Even better, the markup rendered is customizable via FreeMarker templates.

The bad news is Struts 2.0.3 never got released because the struts-annotations project hasn't had a release yet (good ol' Mavenism). The good news is Struts 2.0.4 is rumored to be out by the end of the month. In the meantime, if you're using Maven 2, you can use AppFuse's repository to get the goods. Here's the repo settings you're need:

<repositories>
    <repository>
        <id>appfuse</id>
        <name>AppFuse Repository</name>
        <url>http://static.appfuse.org/repository</url>
    </repository>
    <repository>
        <id>struts-203-staging</id>
        <name>Apache Struts 2.0.3 Staging Repository</name>
        <url>http://people.apache.org/builds/struts/2.0.3/m2-staging-repository</url>
    </repository>
</repositories>

Yeah, I could just advise you to use AppFuse 2.0 - but we're having a hard enough time supporting our existing users. ;-)

Posted in Java at Jan 23 2007, 06:02:22 PM MST 6 Comments

The Adventure is Over

After 1 year and 7 months, the big adventure is over. It was a great ride with lots of really cool people. As of Tuesday, operations at Virtuas have ceased to exist and everyone was let go. It's not a big surprise - most of us knew it was coming. I won't go into the details of why it was shutdown because I don't think it's that important. Suffice to say, it was a great job and I really enjoyed working with the folks I did.

So what does this mean for me? What's next?

I hope to go back to doing independent consulting like I was before Virtuas. When I was doing my own thing, I never had to travel, earned good rates and enjoyed 40-hour work weeks. That sounds pretty nice after the once-a-month traveling I was doing.

What does this mean for AppFuse 2.0? I hope the release schedule won't change, but it might. I was hoping to get a fair bit done this week, but it's been nuts with the shutting down festivities and the "moving out" drama. With any luck, I'll get a gig soon and I can concentrate on AppFuse development (and relaxing) until my start date.

If you're looking to hire an enthusiastic Web + Java Developer, please take a look at my resume or send me an e-mail.

Posted in Java at Jan 18 2007, 09:14:15 PM MST 20 Comments

Congrats to the Boise State Broncos

Back in December, some co-workers and I traveled to Boise for a client engagement. The day we arrived was close to the same day they announced the Boise State Broncos were going to be in the Fiesta Bowl. In a relatively small town like Boise, this was big news. Everyone talked about it, and so did we. In fact, one day, we even ventured to the campus to see the infamous Blue Field. No one was around, and we actually got to walk on the field and marvel at its blueness. I asked many cab drivers that week if the Denver Broncos or the Boise State Broncos were first, but no one knew. It intrigued me because the teams share the same name, colors and mascot. One of them has to be copying the other.

Last night, I watched the Fiesta Bowl between Boise State and Oklahoma. It was one of the best football games I've ever seen. The multiple comebacks (from both teams), the trick plays and good ol' American Underdog Story made for a helluva game. If you like football and you missed it - you shouldn't have. ;-)

Posted in General at Jan 02 2007, 02:32:37 PM MST 2 Comments

2006 - A Year in Review

Looking back at 2006, it's amazing to see everything that happened. One of the main reasons I started this blog was to provide a history of my life. Now it's time to cash in on that cool feature and look back at the last 12 months.

Beach by Villas Nizuc In early January, I finished working on the Vongo project. I eventually had to shut off comments for my post on Vongo because there were so many complaints. The good news is I didn't work on the UI or service part of it, just the Spring/Hibernate/XFire backend. A week later, Apple announced the MacBook Pro and I purchased one immediately. I still have the same machine and couldn't be happier. A week after that, I quietly released AppFuse 1.9, went to the Broncos vs. Patriots game, then left the next morning for Cancun to celebrate my dad's 60th. I got to watch the Broncos season end after returning from Cancun. January 2006 is one for the books - I scored good tickets to two playoff games and spent a week in Cancun! I'd relive that month without hesitation.

The Ride to Work In February, I began playing with Maven 2 , figured out how to use Tiles with WebWork and did a fundraiser for the CSS Framework design contest. I even posted some pictures of my ride to work. Prior to freezing my ass off, Jack had a rough week with Rotavirus and ended up in the Emergency Room.

At the end of February, I received my MacBook Pro and fell in love with everything but the wireless. My posts on the MacBook Pro and wireless issues still get comments weekly from other folks having similar problems.

On February 22nd, Daniel Steinberg's daughter Elena died of bacterial meningitis. Julie made me stop reading Daniel's Dear Elena blog because I was such an emotional wreck. I saw Daniel at a couple of conferences this year, but didn't talk to him until The Spring Experience in December. I didn't know what to say to him. He erased all my apprehensions with a simple "Thanks", a smile and a handshake. It's good to see you're still writing about Elena Daniel. I still have a hard time reading your posts.

February ended with a beautiful 72°F day.

In March, I started the CSS Framework design contest, rode to work in the rain and flew to Boston and Vegas. Memories of St. Patrick's Day in Boston with friends still brings a smile to my face. TheServerSide show in Vegas was a lot of fun and it was the first BOF I hosted with free beer. I later got to meet Mike Stenhouse (the inventor of The CSS Framework) in December and hosted two more "BOFs with Beer" at the Colorado Software Summit and The Spring Experience. Cost difference? Vegas: $800, Keystone: $350, Hollywood, FL: $220.

At the end of March, I came down with a nasty case of Carpal Tunnel. After seeing a specialist that massaged the hell out of my arm, everything was back to normal. I haven't had any issues since - but I also haven't had many multiple-no-sleep-night coding sprints in a while either.

Off to The Shop In April, I quit working on AppFuse and moved to Rails. I posted my Tips for Productivity and Happiness at Work (my most popular blog entry of all time), shipped my bus off to the shop and celebrated Julie and I's 6th anniversary. Then I rebooted this site and lived it up in New York City.

May brought CSS Design Contest winners and a 2-week trip to San Francisco for The Ajax Experience and JavaOne. The highlight of that trip was the weekend I spent in Wine Country.

Hans Fahden

In June, AppFuse 1.9.2 and Seam 1.0 were unleashed. Tim O'Brien had an interesting post titled What Web Application framework should you use?. I responded and Struts became a more focused project. Shale moved to a TLP shortly after. We started planning Raible Road Trip #10 and I began traveling to Washington, DC for a project. Going for beers at Brickskeller was the highlight of our trip that week.

July introduced me to cancelled flights and redeyes and Jason Carreira started JSR 303. AppFuse 1.9.3 was released and Julie sold her house to the first people that looked at it. At the end of the month, Jim Goodwill and I drove to OSCON in Portland. Having beers with Bryan and Scott at The Kennedy School was a highlight of that trip. Following OSCON, the family and I headed to Montana for a week.

The Cabin August was great, probably because I'd just hit 7 states in 7 days. I published an article on IBM developerWorks and had a device-free weekend (which I definitely need to do more often). I began working on AppFuse 2.0, a new sushi restaurant moved into our neighborhood and I got a new EVDO card (which I later lost in November). Jack turned 2 on August 28th.

In September, we got a new puppy. I traveled to the drunkest city in America, Las Vegas and New England. Julie met me in Boston and we had a blast at our good friends' (Chris and Julie's) wedding.

Abbie and Jack October brought the release of Spring 2.0 and a 2-week project for me at OpenLogic. Abbie and Jack got their pictures taken at school and I spent at week in Keystone at The Colorado Software Summit.

In November, my sister Kalin brought some hard cider to Abbie's 4th birthday. I attended Denver's NoFluff and hugged my kids. Jack and I had a boys weekend and we headed to The Cabin on Raible Road Trip #11.

Helmets on and ready to go To end the year, I did a bit more travel - first to Boise then to Florida for The Spring Experience. After a week of vacation in Florida, we returned to Denver for The Blizzard of 2006. Finally, we drove up to Steamboat for Christmas and took the kids skiing.

All in all, it's been a fabulous year. Watching the kids grow up, start to play together and even have conversations with each other has been very cool. I traveled more than I wanted to, but I also got to visit a lot of cities that I'd never been to. My goals for the year? To be happy, ski more and enjoy a few car bombs with family and friends. ;-)

Posted in Roller at Dec 31 2006, 03:05:56 PM MST 1 Comment

Snowed In!

We woke up to another foot of snow this morning. There's about two feet outside right now. It's still snowing and the forecast says we'll be getting another 2-5 inches today.

Blizzard of 2006 - Thursday Morning

Julie's sister, a nurse at Swedish, had to abandon her car while driving home this morning at 6. She turned down her street, discovered it wasn't plowed and quickly became stuck. Luckily, last night Julie talked her into taking snow clothes suitable for getting stranded. She scoffed at the time, thinking it was absurd that she might need them. This morning, she was very thankful. We plan on hiking over to her car (a Land Rover 4WD) and shoveling it out sometime today.

There's too much snow for us to drive our cars. If we're going anywhere - it's on foot. I have a few college buddies that live within walking distance, so it might be time to buy a keg and have a snow party. First things first though - I told the kids I'd take them sledding at Harvard Gulch (a park 3 blocks away). ;-)

Update: I knew I married Julie for more than just her good looks!

Julie loves the snow Julie shoveling snow Lots of snow for the Blizzard of 2006

Update 2: Little did I realize, Julie was building a kick-ass sledding hill!

Posted in General at Dec 21 2006, 10:45:28 AM MST 7 Comments