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.

[Colorado Software Summit] Spring and Comparing Web Frameworks

I'm pleased to announce that I'll be speaking at the Colorado Software Summit in October. I'll be doing a presentation on Spring and one on Comparing Web Frameworks. The abstracts are on my very own speaker page. I've never been to this conference, so I'm definitely looking forward to it - especially since it's only an hour away from my house. The only downside to the conference (for speakers) is you have to deliver each presentation 3 times. Of course, this is great if you're an attendee. Now I just need to figure out a way to get SourceBeat to sponsor my condo for the week. ;-)

I originally did my Web Frameworks Comparison (PDF) last year at ApacheCon. I'm looking to revamp it this year - so please let me know if have any suggestions for improvements.

Colorado Software Summit

Posted in Java at May 08 2005, 01:12:17 PM MDT 13 Comments

The Sleep Factor

I get a fair amount of e-mail from folks asking me how I manage all my extra-curricular activities (i.e. AppFuse, Spring Live, etc.). They're usually looking for a better way to manage their own time, and hoping I have some tips. My answer is usually the same - "I don't sleep much". When I'm super productive , I get about 4 hours of sleep a night, and I can pull that off for around 3 days in a row before I have to crash for 8 hours or more.

It's a brutal way to get things done, but it works quite well. Last night, I took the sleep factor to a whole new level. I didn't sleep at all and I'm back in the office ready for a day of demos and cranking out code. I expect to start hallucinating sometime this afternoon. drool

Posted in General at May 06 2005, 06:01:14 AM MDT 13 Comments

AppFuse Videos

I know I said I'd never do an AppFuse video, but after having many requests - I decided to go ahead and make a couple. The first one is a demo of creating a new project and then installing and browsing that project in your browser - to see all the out-of-the-box features.

The 2nd one basically all the stuff that's done in the tutorials - using Spring MVC for the web framework. I create a Person.java object and then use AppGen to generate all the code for it. In this one, I make a number of mistakes (but solve them all). I thought about going fully happy-path, but then decided it was important to show some gotchas that might occur.

I used the trial version of Camtasia Studio to create these videos. Thanks to Keith at KGB Internet for hosting the demo site for AppFuse. If you need Tomcat hosting, Keith offers an excellent service at a very good price.

Update: You can also download these videos for off-line use.

Update 2: I updated these videos for AppFuse 1.9.3.

Posted in Java at May 04 2005, 09:48:40 AM MDT 32 Comments

The Technology Blahs

I think I've hit a point where I don't care about the latest and great techo-gadget anymore. Maybe it's just a phase, but nothing out there really excites me right now. I've never been into video games - they're too much of a productivity black hole and I know I'd be the type that'd stay up until 4 a.m. playing the latest XBox game. Therefore, I don't go there. PSP, XBox, etc. don't excite me b/c I'm fully aware of their addictiveness.

The other gadget I've often loved in the past is having a fancy bluetooth phone. Sure it's cool when combined with a PowerBook for synching and browsing the internet, but I've come to the conclusion that I don't need one. Maybe it's because I lost it in California last week and haven't missed it one bit. Cell phones - blaahhh - who needs them?

Lastly, there's the new OS X. I'm fully aware that someday I'll be enthusiastic about it, but right now I just don't care. I think it's because I've given up using my slow-ass PowerBook for the most part. I used it for 3 months at my current project and have since switched to a much faster Windows desktop. I've come to realize a couple of things about my PowerBook: 1) the slow problem is more a personal issue than a computer issue - I develop faster on Windows and 2) I enjoy a desktop much more than a laptop - where there's a real keyboard and mouse. If Apple will get off their ass and make a fast PowerBook, I'll get off mine and pony up for a keyboard and mouse. If there's not a dual core G4 or a PowerBook G5 this summer, I just might have to get a PowerMac G5.

Hmmm, I just went to the Apple Store to link to the G5 and there's a "We'll be back soon" sign. This implies a major announcement today. It is Tuesday... ;-)

be back soon

Posted in Mac OS X at May 03 2005, 06:07:27 AM MDT 8 Comments

[ANN] AppFuse 1.8 Released!

This release of AppFuse replaces Container Managed Authentication (CMA) with Acegi Security. Other major features include numerous bug fixes to AppGen and a refactoring of build.xml to use Ant 1.6 features. Eclipse and IDEA project files were also improved so you can easily run tests from within your IDE. A MyJavaPack all-in-one installer was also added so you can download everything you need for AppFuse at once. Eclipse and its plugins were not included in the initial release, but may be in a future release.

If you find any issues, let us know.

Update: You can now see Demos and Videos.

Posted in Java at Apr 29 2005, 08:51:08 AM MDT 11 Comments

Using DWR with Spring and Hibernate

For the past few weeks, I've been developing an application using Struts, Spring, Hibernate and the DWR project for my XmlHttpRequest framework. As you might remember, I used JSON-RPC for Ajax stuff on my last project. I found DWR to be much more full-featured and easier to use. This post is meant to capture some issues I encountered so others won't have to jump the hurdles that I did. For those of you that get bored quickly, here's a movie (QuickTime) of the app's Ajax features.

I've been using version 0.4 of DWR, and I haven't had a chance to try out version 0.5. When I first started using it, I ran into a ThreadDeath problem that was easily resolved by changing a log.debug message to System.out.println. I tried to reproduce this issue yesterday and couldn't, so who knows what that was all about. As far as configuring DWR in your webapp, that's pretty easy to do, and well documented. See the project's documentation or this Spring MVC HowTo.

Here are a few things I remember from my development experience.

  • The examples are great, especially how to dynamically edit a table.
  • When developing, make sure to set the "debug" init-param to "true". This allows you to go to http://location:8080/yourapp/dwr and see a screen that allows you to call methods on your exposed classes.
  • In WEB-INF/dwr.xml, you need to specify a converter for each POJO you want to expose to your UI via JavaScript. I started out by converting a whole package, but found this to be *extremely* slow (we have a package of around 50 DTOs). So I changed it to be only the DTOs I was using. This turned out to take about 30 seconds to do the conversion, and was again unacceptable. The problem turned out to be that the converter was invoking all the lazy-loaded children for each DTO. My final solution was to create a NameValue object and only convert that. Then in my Spring bean, I populate it from DAOs and DTOs. I'm using Spring's OSIVF for Hibernate to ensure that DWR doesn't invoke lazy-loading.
  • I had to override a few of DWR's JavaScript functions in util.js b/c they didn't work for me. I changed showById() and toggleDisplay() to use style.display='' instead of style.display='block' b/c this is what I've always used and block doesn't work that well. I also changed useLoadingMessage() to have a cleaner-looking load message.
  • I used the Fade Anything Technique in this project and found that IE likes to have full 6-digit hex values for colors in CSS rules. The shorter 3-digit hex values simply don't work in IE.
  • Using "test" buttons that only showed up for my username proved to be a great way to test the UI and the Ajax stuff. These buttons called a number of JavaScript functions to drive the UI and wait between invoking different functions using window.setTimeout.

All in all, using DWR was a great experience and I definitely plan to use it more in my projects. The client loves the app - especially since it's wicked fast and seems to work like a desktop app.

Posted in Java at Apr 28 2005, 02:10:26 PM MDT 31 Comments

BabyBash - kids love it!

A few months ago, I saw Toby Reyelts' post about a game he wrote called BabyBash. I downloaded it when I first saw it and let Abbie play it. She loved it immediately, and would ask me to play it whenever she saw I was "working" on the computer. Of course, she'd say "Daddy - no working" first, and then say "play Abbie's game?".

Then I lost the link for a couple of months and this conversation turned very sour. A couple of weeks ago, I found the link and vowed to never let it go again. This morning, I gave Jack a run at the game (he's almost 8 months now) and he loved it too! It probably doesn't hurt that they're playing it on a 23" display. ;-)

If you've have small children, you should really let them try this game. Thanks Toby - you rock!

Posted in Java at Apr 27 2005, 04:23:36 PM MDT 11 Comments

The back-to-work blahs

Last week I had a really good time at the MySQL Conference. I hung out with some extremely smart folks and learned a lot about various things, such as the Dvorak Keyboard Layout, why James Duncan Davidson hates Ant and why we have Session and Entity Beans (two companies couldn't agree). I spent way too much time working on AppFuse and trying to get the 1.8 release out (it's close, hopefully this week). I also did a 1/2 day seminar on Spring, AppFuse and Comparing Web Frameworks for a company in San Francisco - which was fun.

All of this techno-fun was quickly forgotten when Julie flew in on Friday and we headed down to Cambria, CA for a fun weekend of wine-tasting. Now I'm back at work with many-a-deadline and 81 starred messages in my GMail account. Last week, I realized that doing the open-source and Spring Live stuff is easily a full-time job. The best solution I can think of at the moment is to View Starred Messages » Select All » Delete, followed by ignoring all the e-mails I receive for the rest of the week. I'll try not to do this, but it sure is tempting. ;-)

Someone asked me last week how I manage my time effectively and get everything done. The truth is I don't. I simply stay up late, sleep little, or steal weekends away from my family. Tonight, I expect to spend 4+ hours answering e-mail and doing edits for Spring Live. Hopefully I can catch up and get AppFuse 1.8 released before my parents show up on Thursday night.

Posted in General at Apr 25 2005, 02:19:00 PM MDT 4 Comments

The Color Schemer Gallery

I've been using Color Schemer for a couple of years now. As a result, I'm signed up for their mailing list. Today they announced a cool new feature on their site:

Sample color scheme from the GalleryColor Schemer Gallery is a brand new online community where Color Schemer users can share and manage color schemes created with Color Schemer.

Now finding the perfect color scheme is as easy as browsing the Color Schemer Gallery!

» Show me more color schemes!

You have to purchase Color Schemer Studio in order to import these locally, but I'd say it's worth $50 if you're color-matching challenged.

Posted in The Web at Apr 19 2005, 08:39:14 AM MDT 2 Comments

At the MySQL Conference in San Jose

I arrived in San Jose at 10:00 this morning to give a 3-hour tutorial on developing test-driven webapps with Spring and Hibernate [download PDF]. This was just a fancy name for developing webapps with AppFuse, but the session seemed to go over pretty well nevertheless. In the first half of the class, there were a couple of sleepers, but I cranked down the A/C for the second half and everyone stayed awake (although some were shivering). I never thought I could ramble on for 3-hours, but it wasn't that hard. I did end up doing mini-presentations on Spring and Comparing Web Frameworks, but all in all, I think it went pretty well. Very few people in the room had heard of any of the Java web frameworks, and only 6 were familiar with Spring and Hibernate. It was a tough crowd, but AppGen's code generation (hopefully) showed it's easy to create CRUD-based webapps with AppFuse. Note to self: make a video of that.

I have a free pass to the MySQL Conference, but I doubt I'll attend many sessions. I have a lot on my plate for AppFuse 1.8, Acegi integration into Roller, and some updates for Spring Live. It should be a good week, hopefully I'll get a lot done. This weekend should be awesome - Julie shows up on Friday for our 5-year anniversary party.

The best part of the conference so far? Talking shop over beers with the locals (crew from c|net and AppFuse user Phil Hershkowitz).

Posted in Java at Apr 18 2005, 09:34:01 PM MDT 1 Comment