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 "play". 220 entries found.

You can also try this same search on Google.

Scaling with Rails

Whenever I talk to developers in the Java community about Rails, the first question out of their mouth is usually "But can it scale?" Today, David has written a nice post titled It's boring to scale with Ruby on Rails.

The one thing that I see time and time again is that Java developers don't seem to realize that some of the highest traffic sites on the net are using LAMP stacks similar to what Rails advocates. IMHO, I don't think "Rails can't scale" is a valid argument. In fact, I don't know if there's any argument or way to put down Rails anymore.

As a developer, my guess is the rates for programming in Ruby developer are less than for programming in Java (unless you're a Ruby Superstar of course), so that's one reason not to program in it. However, since Rails is one of those new bright and shiny things, chances are you might be able to get high rates for it. As far as Enterprise Adoption of Rails, unfortunately I think that's still pretty far on the horizon. I think the hardest part is convincing management that they'll be able to find developers to support it. Mind you, I didn't say good developers, just developers. Period. This is information I've gathered from talking to my Java developer friends.

Try convincing a Fortune 500 company to program in Rails vs. Struts and they'll probably choose Struts because there are thousands of Struts Developers. Is this a good decision on their part? I don't think so. I think it's more important to hire smart people that can learn a technology, rather than hiring those that know a technology. Of course, if someone knows a technology really well, there's probably no harm in hiring them.

I think Rails can become a real contender in the Enterprise if managers can be convinced that it'll be easy to maintain Rails application. Remember that most of software cost is maintenance. Because of this, the whole "it's super productive to develop with" doesn't matter so much - does it? Are Rails applications easy to maintain? My guess is yes, but how do you convince CTOs and CIOs? Another thing I think Rails needs for Enterprise Adoption is good tool support. Drag and Drop type of stuff. Why? Because management loves that stuff (because then they can develop apps) and it's a great sales tool. ASP.NET has been successful because of Visual Studio, not because of its ease-of-use and simple syntax.

Will I learn Rails and use it to develop applications? I certainly hope to, but it's hard enough convincing companies to use something other than Struts - so I don't know if I'll have much luck in selling Rails. The one cool thing about my new job at Virtuas is its an open source company, not just a Java open source company. This opens the doors for me to learn about Rails (and others) and compare them to Java Web Frameworks.

Update: Aaron Rustad has written an interesting article for DeveloperWorks that compares Rails to Struts+Hibernate: Ruby on Rails and J2EE: Is there room for both?

Posted in Java at Jul 12 2005, 08:45:26 AM MDT 28 Comments

Happy Father's Day

Happy Father's Day to all you dads out there! Today was a nice relaxing day, full of fun and lots of smiles. We had a picnic breakfast with a some friends at a park in North Denver to start out the day. My buddy John had a portable skillet and was able to whip up both pancakes and omeletes as we drank mimosas and watched the kids run around. Following that, we went to their neighborhood pool and enjoyed swimming around with the kids for an hour. From there, we hung out at their house for a couple hours and let Abbie and Annabelle play together. It's so cute that they're both at an age now where they can have real conversations with each other. I've known John and his wife Karen since 1992, so it's a lot of fun to get together with old friends.

We made it home at 4:30, I took a nap for a couple hours and then we headed out to dinner at Chipotle. Now the kids are in bed and we're getting ready to start enjoying my Father's Day present: Star Wars on DVD (every one but the latest one).

I'd also like to take this opportunity to thank my own Dad for being such an inspiration to me. He's one of the smartest guys I know and always amazes me with his knowledge and sense of humor. Dad - thanks for always being such a great friend, mentor and above all else - a great father!

To Brett, Chris and Crazy Bob - fatherhood is just around the corner for you guys. I hope you enjoy it as much as I do.

Posted in General at Jun 19 2005, 09:39:53 PM MDT Add a Comment

OS X on Intel Chips

There's a lot of rumors flying around now about Apple switching to Intel chips. Somewhat credible sources: Scoble, Gizmodo and CNET. The rumor I like even better is the (less credible) PowerBook G5s. IMO, Apple should switch to Intel, but stay in the hardware business. I'm still willing to pay for a kick-ass aluminum PowerBook - but I'd love it to be twice as fast as my current one (this is where Intel comes in).

Speaking of PowerBooks, it looks like I've got a buyer for the one I bought in Norway. I'm going to lose about $500 on the deal, but it's better than having two PowerBooks when I only need one.

Posted in Mac OS X at Jun 04 2005, 02:35:06 PM MDT 3 Comments

Tapestry 4.0 almost done

Howard on Tapestry 4.0:

Now is the time is to get everything left in 4.0 wrapped up and finalized. Time for a beta, and then a goodly amount of bug fixing and documentation ... and a very tight schedule for 4.1.

Excellent, I'd love to have a beta to play with. Hopefully it's good enough for development. I'd love to get starting using Tapestry 4.0 with annotations.

Posted in Java at Jun 02 2005, 02:57:17 PM MDT Add a Comment

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

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

DU Kicks CC's Ass

Watching the game yesterday was a glorious event. I have a co-worker that's a CC Alumni, so a bunch of fellow DU Alumni (read: fraternity brothers) and I met at the same bar as he (and fellow CC Alumni) and heckled them the whole game. It was definitely a good time.

The bar (Braun's) sucked b/c they wouldn't turn on the sound during lunch (game was at noon), but they turned it on in the 3rd period and gave us drink specials so it wasn't too bad. It was a great day - leaving work at noon and kicking CC's ass! The national title game is tomorrow night - go DU!

It's funny to think that when DU won the title last year, I bought a bus. If they win again this year, that must be a sign to start restoring it! ;-)

Posted in General at Apr 08 2005, 04:38:00 AM MDT 1 Comment

DU going back to Frozen Four!

This past weekend I had a great time watching college hockey. DU played both Saturday and Sunday and won both games. This means they're going back to the Frozen Four. The best part? They're playing their arch rivals, Colorado College, in the first game next Thursday. Game starts at noon. Go DU! CC Sucks!

Posted in General at Mar 29 2005, 08:41:50 AM MST 3 Comments

Microsoft's Agenda at the Competitive Influentials Summit

They said I could blog everything about the conference I'm going to tomorrow, so let's see how far they're willing to go. ;-) A lot of folks have asked me what the agenda is, and until now - I've had no clue. However, today I was sent an e-mail and I'm happy to let y'all know what's going to happen. One thing I noticed is that the Word document's title was "Competitive Influentials Summit". Heh - I guess I'm an "influential" now.

I'm really looking forward to this event. I think we're really going to get wined and dined, and maybe even learn something. It'll be the first time in my life that someone will be picking me up from the airport with a "Raible" sign. I'm leaving at noon on Thursday to do a little St. Patty's day celebrating with my sister (it's her birthday), so I'll miss the "Open Source and Microsoft" session. Hopefully someone else will blog that so we see what they're thinking.

Wednesday, March 16
Time Topic
7:30am-8:00am Registration/ Breakfast
8:00am-8:30am Welcome Keynote
8:30am-9:00am Attendee Introductions
9:00am-10:00am Improving Security at Microsoft by changing the process
10:00am-11:00am Microsoft Messaging Futures Using Indigo
11:00am-11:15am Break
11:15am-12:15pm Programming Language Design Panel: Jim Miller/Jim Hugunin/Herb Sutter
12:15pm-1:00pm Lunch / Channel9.MSDN.com Discussion
1:00pm-2:00pm Developer Community Outreach Efforts
2:00pm-3:00pm SQL 2005 and the Developer
3:00pm-4:00pm Product Development Process
4:00pm-4:15pm Break
4:15pm-5:45pm Windows Architecture
5:45pm-10:00pm Shuttles depart for Teatro ZinZanni
Thursday, March 17
Time Topic
7:30am-8:00am Welcome / Breakfast
8:00am-9:00am Morning Keynote
9:00am-10:00am .NET CLR Architecture
10:00am-10:15am Break
10:15am-11:15am ASP.NET 2.0
11:15am-12:15pm VS.NET 2005
12:15pm-1:45pm Lunch / Microsoft Research and Innovation
1:45pm-2:45pm Smart Client Futures
2:45pm-3:45pm Guidance Through Patterns and Practices
3:45pm-4:00pm Break
4:00pm-5:00pm Open Source and Microsoft
5:00pm-6:00pm Company Store Visit
6:00pm Shuttle departs for Willows Lodge
7:00pm-10:00pm Evening Event at Red Hook Brewery
Friday, March 18
Time Topic
8:00am-8:45am Welcome / Breakfast
8:45am-9:15am Closing Keynote
9:15am-10:15am Windows CE and Mobility
10:15am-10:30am Break
10:30am-11:30am Visual StudioTeam System
11:30pm-12:00pm Closing Remarks
12:00pm Lunch / Departure for airport/hotel

Posted in Java at Mar 14 2005, 12:53:52 PM MST 7 Comments