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.

Jack broke his foot

All Aboard The scene looks innocent enough - a 2-year old boy and his 4-year old big sister having some fun playing together. They're in the 4-year old's room, being awfully quiet. The sister comes up with a great idea - they clear some toys off the book/toy shelf (which is built into the wall) and use it as a launch pad to get to the bed. A blood-curdling scream shakes the foundation of the house 3 minutes later.

I don't know how many successful jumps they made, but Jack didn't quite make the bed on one of his jumps. Julie called me yesterday to tell me he'd gotten hurt and couldn't walk. Neither Abbie or he could recall how he'd gotten hurt. He laid on the couch for a few hours before Julie decided to take him to the emergency room. It was a good thing she did - x-rays verified he'd broken his foot.

It's not a bad break, but it's a small fracture on a growth bone, so he's going to have to have surgery on it. I've been out of town this week, so I didn't get a chance to witness all the fun. After the x-rays, apparently Julie was able to pry the story out of both kids.

I'm pretty impressed that my little boy broke his first bone before he was 3. He must be a Raible. ;-)

Posted in General at Aug 17 2007, 07:49:41 AM MDT 5 Comments

Display Tag 1.1.1 Released

Display Tag version 1.1.1 has been released. This is a bug fix release - see the changelog for more information. Thanks to Fabrizio Giustina for continuing his work on this project.

Posted in Java at Aug 15 2007, 03:19:36 PM MDT 5 Comments

Jetty 6.x versus Tomcat 6.x

An AppFuse user asks:

Has anyone done any performance benchmarking between Jetty 6.x and Tomcat 6.x to see which one is better for production use in terms of scalability, performance and ease-of-use? I'm gearing towards Jetty 6.1 but want to hear other's opinions first.

I admit, I completely changed the wording in this quote to make it more readable.

Most of the companies I've worked with in recent years have been using Tomcat (very successfully) in production. However, I also know the Contegix and JavaLobby guys continue to swear by Resin for the most part. What's your opinion?

IMHO, I don't think it really matters - they're all good enough for production use.

Posted in Java at Aug 15 2007, 09:50:17 AM MDT 7 Comments

Seeley Lake Fire Update

As reported last week, the town where I went to high school is on fire. Here's an update from my sister's friend, Aliselina Strong:

The Seeley Lake fire is the # 1 priority fire in the nation due to the number of residences threatened and the town itself. Spooky, eerie, yet beautiful too. This is taken from a dock in Seeley Lake, so you can see how close it is. Yesterday was a good day as the fire remained grounded and lines were reinforced, but predicted winds today and continuing and hot weather again as well will not help. It had cooled off into the high 80's for a couple days.

Seeley Lake Fire

Posted in General at Aug 12 2007, 10:02:30 PM MDT Add a Comment

One 30" monitor or two 23" monitors?

As part of Julie and I's divorce settlement, I let her keep my 23" Cinema Display along with its attached Windows PC. Since I like having a Windows PC available, I managed to buy the same machine on eBay for $250. However, now I'm in the market for a new monitor.

So what should I get? One 30" cinema display or two 23" displays?

I'm leaning towards two 23 inchers. Matrox's DualHead2Go seems to provide exactly what I'd need to hook two 23s to a MacBook Pro. Furthermore, I could hook it up to my DVI KVM switch and have dual monitors on both my Mac and my PC. No matter how big the screen is, I always seem to enjoy dual monitors more.

What do you think? Is anyone out there using Matrox's DualHead2Go Digital Edition?

Posted in Mac OS X at Aug 10 2007, 11:42:24 AM MDT 23 Comments

Mountain View Tech Meetup

I'll be out in Mountain View again next week. Last month's tech meetup was a lot of fun - we had about 30 people show up and almost everyone enjoyed free cocktails for 2-3 hours. Alper suggested the Tied House, which looks perfect. Waddya think - 6:00 next Wednesday night?

What is a tech meetup? It's a user group meeting w/o the meeting part. You go straight to the bar, grab some drinks, maybe some dinner, and talk tech.

Posted in Java at Aug 09 2007, 02:04:11 PM MDT 5 Comments

Do we even need web frameworks?

On the Struts mailing list, Ted Husted writes:

IMHO, if we had today's JavaScript/CSS/HTML environment available to us in 1998, then JSP, ASP, JSF, PHP, and all the rest of it, would not exist. We did all these things to make up for the shortcomings of the client-side environment, and, since then, the key shortcomings have been addressed.

I believe Ted has a good point. However, today's Ajax development toolkits don't help those applications that require Section 508 compliance. Of course, if your toolkit embraces 508 compliance, I'd love to hear about it.

Posted in Java at Aug 09 2007, 08:49:33 AM MDT 8 Comments

AppFuse vs. Grails vs. Rails

In the comments of my Choosing a JVM Web Framework, Graeme Rocher writes:

no offense Matt, but I fear you are a grossly inappropriate person to be writing such a study given your past history of claiming frameworks like Grails are competitors to AppFuse. Any such study will come laced with doubts over its honesty and I'm sure this doesn't just apply to Grails.

In the post Graeme linked to, I said:

I think Grails and AppFuse are more likely competitors rather than compatible. Grails uses Spring, Spring MVC and Hibernate under-the-covers, whereas AppFuse uses the raw frameworks. Of course, it would be cool to allow different classes w/in AppFuse to be written in Groovy or JRuby. At this point, I think it's probably better for users to choose one or the other.

Since writing that post a year ago, I've changed my opinion about AppFuse being competitors with Grails or Rails. Why? Because they're different languages. I don't think you should choose a web development stack first. I think you should choose your language first. For those that choose raw Java, I think AppFuse provides a good solution. To be more explicit, here's a private conversation that David Whitehurst (author of The AppFuse Primer) and I exchanged.

David: Have you been looking at Ruby on Rails any? And, if so, I'm sure you're as impressed by those who command the language as I am. But, I think the J2EE web application is not dead yet. Do you think any comparison of the complexity of AppFuse vs. Rails should be mentioned in the book?

Matt: I'm highly aware of Rails, have attended talks and tutorials on it, even bought books about it - but I've never written an app, done a tutorial or used it in the real-world. I'm afraid of it. I'm almost certain I'd like it, and I'd likely like Grails as well. However, the reason I stick with pure Java is because that's where my clients' demand is and hence the consulting dollars for me.

It's probably also possible to create AppFuse for both Rails and Grails. I believe Rails' Streamlined in much like AppFuse. I like to think of AppFuse as language agnostic - it's always been designed to eliminate ramp up time. While Rails and Grails simplify the programming API and make it possible to develop code with less lines of code, it'd be nice to have user management, file upload and other things like AppFuse has. When I start using these frameworks, it's likely I'll develop some sort of features like AppFuse has and use them on projects. Of course, if they already have all the features of AppFuse via plugins, I wouldn't reinvent the wheel - I'm simply use what's already there and be happy about it.

I don't know if it's relevant to mention Rails, but it probably doesn't hurt. There's no reason to ignore the competition if they're indeed competition. I don't see them as competition, and I almost don't see Grails as competition either. AppFuse (in its current state) is for developers that've chosen to use the language and frameworks that AppFuse supports. It's not trying to solve everyone's problems - it's merely trying to simplify things for those using the frameworks it supports.

There's nothing saying that AppFuse can't have a Rails or Grails version in the future. For me, it'll happen if I start developing applications using these frameworks and see the integration needs like I saw with the Java frameworks. The good news is most of these frameworks have done the integration work, so it's really just a matter of creating features or using plugins.

David: I keep getting these "dream-squasher" friends of mine showing me Rails, Grails, and how wonderful Ruby is. It's impressive, but I'm not convinced that big business is ready to adopt it any time soon.

Matt: As a Java programmer, I think you'd be a fool to ignore Rails or Grails and not at least be familiar with them. There's no reason to discount technology until you've used it on a real-world project - at least 6 months or longer - IMO.

Just because you're productive in Ruby and like it - that doesn't make you a bad Java programmer.

I hope this clears up any confusion on how I feel towards Rails or Grails. I would welcome the opportunity to use them on a project. If I was starting a products-based company, I certainly would give them a shot in the prototyping phase. However, I'm a consultant that makes money from clients hiring me to explain/do what I know best. At the current time, that happens to be open source Java frameworks.

I do plan on learning a plethora of other frameworks, in other languages, I just haven't had the time yet. When I do, I hope that I can somehow become proficient enough to help companies adopt them as well. However, to build up that experience and expertise will likely take years. I think this is how lots of companies feel. Can you blame them for not "jumping ship" on their current skills and knowledge?

Of course, then you have the Relevance guys who seem to be doing exactly what I hope to be doing in several years from now. Not only do they specialize in Java and its frameworks, but they also do consulting and training around Rails, Grails and Ajax. I can't help but admire them tremendously.

Posted in Java at Aug 08 2007, 10:22:34 AM MDT 13 Comments

Choosing a JVM Web Framework

I plan on rewriting my "Comparing Java Web Frameworks" presentation for this year's Colorado Software Summit. Rather than "Comparing Java Web Frameworks", I'm going to make it into more of a "Choosing a JVM Web Framework" presentation. I think this opens it up to more possibilities such as Grails, JRuby on Rails, Flex and GWT.

One of the things I hope to talk about is choosing the right tool for the job. I think there's 3 types of web applications you can develop:

  1. Consumer-facing, high-traffic, stateless applications
  2. Internal, more desktop-like applications that are stateful
  3. Media-rich applications that require a RIA framework like Flex

Once you've decided on which of these you're developing, it's much easier to narrow down the choices:

  1. Struts 2, Spring MVC, Stripes
  2. JSF, Tapestry, Wicket
  3. GWT, Flex, OpenLaszlo

I'm not sure if GWT fits in the RIA category. I'm not sure where Rails or Grails fit either. They more closely resemble category #1 than any other, yet there's a lot of speculation about their scalability. I think if that perception can be changed, they'll fit into the first category quite well. However, I don't think they compete with component-based or RIA because they don't hold state or offer rich-media capabilities.

Sidenote: I find the scalability debate quite interesting. There's a fair amount of propaganda in Javaland that scalability can be achieved with appservers and clustering tools like Terracotta. If this is true, I've yet to read good solid proof of it. Most of the "how to scale" information out there suggests "share nothing" architectures that shard data and applications across several servers. Of course, there's scalability and then there's massive scalability. Can appservers and clustering solve massive scalability like Google and Amazon require?

The 2nd and 3rd categories have someone of a blurry line, so I'm hoping to figure out how to clarify that. There's also a lot of other factors that will go into choosing a web framework. What if you're simply trying to replace a home-grown framework with an open-source one? If you want to keep your backend and all its logic, does it make sense to use something like Seam, Grails, JRuby on Rails or even AppFuse? Probably not - all their wizbang features and CRUD generation doesn't mean much if all you're using is the web framework. Also, if your application requires support for non-JavaScript browsers (for 508 compliance), then GWT and JSF can be easily eliminated. I know that there are many claims that JSF doesn't require JavaScript, but I've yet to see a real-world application developed with JSF that expects JavaScript to be turned off. Progressive enhancement is a requirement by many of my clients these days.

What's your opinion? How can we make it easier for developers and companies to choose a web framework? Is categorizing application types a good technique?

Posted in Java at Aug 07 2007, 10:10:05 AM MDT 43 Comments

Seeley Lake on Fire

Where's my Mom the "Burn Boss" when you need her? From the Missoulian:

Seeley Lake residents prepare to flee Jocko Lakes fire
In two weekend days, the Jocko Lakes fire exploded across 18,000 acres, destroying one home, damaging several others and threatening this small western Montana town.

In doing so, the wildfire earned itself designation Sunday as the No. 1 priority forest fire in the nation.

After Saturday?s firestorm and flurry of evacuations, Sunday brought minimal winds and gave fire crews a fighting chance to get a handle on the fire, which is just a mile west of Seeley Lake and a mile north of Placid Lake.

Seeley Lake is 25 miles from The Cabin. There's unlikely to be a threat the The Swan (where I grew up). However, Seeley Lake is pretty close to home as I went to high school there and we have a very good family friend living in "Dog Town". Must be exciting times right now.

This fire made me think of this awesome photo from a few years back.

One of my favorite digital photographs

Posted in General at Aug 06 2007, 12:00:56 PM MDT 6 Comments