Matt RaibleMatt Raible is a Web Developer and Java Champion. 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.

How many years of experience do you really need?

DHH in Years of irrelevance:

Programming platform experience is like knowing your way around the kitchen. Where are the knives, what size plates do we have, and what spices are available. It's very useful for getting things done without having to search high and low for every little thing. But it's also an asset with a cut-off point of diminished returns. Once you have a reasonably good idea where things are, it's no longer the bottleneck in your culinary performance.

Like chefs, like programmers. Peopleware quotes a study that six months seemed to be the cut-off point for programmers. Once they had six months under their belt, the platform knowledge was no longer the bottleneck in their abilities.

That sounds about right to me.

I have to agree. I also think that total years of experience in the software industry plays a huge part in an engineer's knowledge.

The World is your Oyster However, that's not always true either.

I interviewed a PhD this week that had an incredible amount of experience and knowledge, but all his platform knowledge was dated.

Years of Experience in Software + up-to-date platform knowledge = the world is your oyster.

Posted in General at Feb 06 2008, 10:20:45 AM MST 2 Comments

Grails 1.0 and JRuby on Rails on WebSphere

A couple of interesting things happened today that relate to my Grails vs. Rails quest for knowledge.

The first is that Grails 1.0 was released. This was apparently a huge event as it swamped Codehaus' servers for a couple hours. This morning, it was pretty cool to shake Graeme's hand and congratulate him on the release. I also got to meet Jeff Brown for the first time. Who needs to go to a conference when you get to talk to these guys at work? ;-)

Secondly, I found an article by Ryan Shillington that shows how to deploy a Rails application to WebSphere. To me Rails + WebSphere seems like the last thing a Rails advocate would want - but who knows. In my experience, most developers that use WebSphere don't do it by choice.

For companies that have invested a lot of time and money into the JVM as a platform, it seems like Grails is the clear winner over Rails. However, the line gets blurry when you start talking about JRuby. I think JRuby will get there, but I don't believe it's there yet. If you look at the two major JRuby on Rails success stories (from Oracle and Sun), they've had to fix performance issues as part of their projects. With big companies investing in the platform, it's highly likely performance will be fixed in the near future. I believe both the Groovy and JRuby teams have said performance enhancements are their top priority for their next releases.

I think the biggest news related to performance of dynamic languages on the JVM is the new Da Vinci Machine project.

This project will prototype a number of extensions to the JVM, so that it can run non-Java languages efficiently, with a performance level comparable to that of Java itself.

Dynamic languages on the JVM seem to have a very bright future.

I got involved with Struts and Spring just before their 1.0 releases. Is it simply a coincidence that I happened to start looking into Grails right before its 1.0 release?

Posted in Java at Feb 05 2008, 11:32:12 PM MST 1 Comment

Groovy, Rails needs Components, RIA Frameworks compared and faster WebTests

Here's some interesting snippets I found while reading blogs today:

  • Stop writing plain old Java code. Groovy obsoletes plain old Java. We ought to just say "Java 7 = Groovy" and move on. -- Stuart Halloway
  • So far my experience is that I love the Ruby language and don't want to go back to doing Java except when/if I need to to pay the bills. But Rails I'm not as sold on. Mind you I'm not here to bash on Rails, there are some great things there and other people have done a fine job of praising them. But there are some things I definitely miss from Tapestry, and the most significant one is components. -- MysteryCoder
  • If you're looking for maximum control over presentation and the best possible appearance for the finished product, I would say Flex is probably the way to go. If you're a Java developer using Java on the server side, or you just can't stand the thought of having your app run in the Flash player and would prefer JavaScript, GWT is probably going to work out very well for you. Open Laszlo is going to offer a great deal of platform versatility, but at the expense of some polish and features available in the other two frameworks. - Kevin Whinnery in Three RIA Platforms Compared: Adobe Flex, Google Web Toolkit, and OpenLaszlo
  • A new experimental feature of WebTest allows to specify the number of threads that should be used for the tests what can bring enormous speed improvements without modification of the tests. -- Marc Guillemot

To summarize: use Groovy over Java, Rails needs components, Flex is the best RIA framework and WebTest keeps getting better. These aren't my words, but I don't see much fault in them either.

Posted in Java at Feb 05 2008, 12:30:34 AM MST 6 Comments

Powder Day at Steamboat

Photo of the Day @ Steamboat Today is going to be simply awesome:

Snow Report
    * Time: 02/02/08 05:00 am
    * Conditions: Powder
    * Lifts: 16/18
    * Trails: 163/163
    * 24 Hour Snow: 14"
    * 48 Hour Snow: 27"
    * Base: 78"
    * Total: 322"

I'm staying 30 minutes from Kremmling (at "The Farm"), so fresh tracks are an excellent possibility.

Posted in General at Feb 02 2008, 06:21:05 AM MST Add a Comment

How do you get up to speed on Rails and Grails quickly?

What's the best way to learn Rails and Grails and satisfy one of my New Year's Resolutions (read more) at the same time? Books:

Thanks to connections with publishers, I was able to get PDFs of most of these for free. The only ones I paid for were the beta books (Groovy Recipes and Programming Groovy) from the Pragmatic Programmers. I doubt I'll read them all, but I've had fun so far.

I polished off Getting Started with Grails in a few hours. I expect to finish Rails for Java Developers this week. I used to hate reading PDFs, but I've enjoyed reading these books. A 30" monitor might have something to do with it.

After honing my Grails and Rails knowledge, I hope to become a GWT and Flex Ninja. For those GWT and Flex experts out there, what are the best books for those technologies? By "best", I mean the most advanced and up-to-date.

Posted in Java at Jan 31 2008, 11:29:19 AM MST 10 Comments

What a forecast!

Mary Jane - Derailer Run This weekend, I'm planning on heading up to the hills for two fun-filled days of great Colorado skiing. Since it snowed a bit in Denver tonight, I figured I'd check the weather forecast:

Thursday Jan 31, 2008: 3 to 4 inches of accumulation
Friday Feb 01, 2008: 3 to 5 inches of accumulation
Saturday Feb 02, 2008: 3 to 5 inches of accumulation
Sunday Feb 03, 2008: 4 to 7 inches of accumulation

Sweet.

Friday Update: It looks like we'll be skiing at Steamboat tomorrow instead. Checkout their Straight Talk Snow Report from this morning:

Snow Report

    * Time: 02/01/08 05:00 am
    * Conditions: Powder
    * Lifts: 16/18
    * Trails: 163/163
    * 24 Hour Snow: 18"
    * 48 Hour Snow: 22"
    * Base: 77"
    * Total: 308"

Steamboat Straight Talk Snow Report: 2/1/08

Good Morning to you, indeed!

Remember earlier in the week when we had a loud, brash, windy storm 
roll through the mountains and bring us snow? Last night while no one 
was looking, a quiet storm tiptoed in like a whisper, under the cover 
of darkness, and silently dumped a foot and a half of the choicest 
"Champagne Powder" while we all slept. All over town, people woke up, 
looked out their windows, and let out a "Holy Cow"!

I could write this report with fill in the blanks, as in... My first 
run down___________ (insert any trail name) was sweet. I got face 
shots the whole way. Then I skied over to the __________(insert a run) 
trees and the snow was just blowing over my head.

I think you get the picture. The whole mountain is in epic condition.

On one chair ride, my chair mate said, "You know it's a good day, when 
you hear Monkey noises coming from the forest." Everywhere folks were 
hootin' and hollerin'.

Weekend warriors, don't despair, there is plenty powder left to be 
skied tomorrow.

Have fun. Be safe. Look out for your buddy. Peace.

Straight Talker
Kat Murphy
Grinning like a Chimp
Telemark Skier

:-D

Posted in General at Jan 30 2008, 10:24:21 PM MST 3 Comments

Is there room for both Rails and Grails in a company?

For the last week, I've been knee deep learning more about Rails and Grails. The reason is because I think developers (and companies) are going to have a hard time deciding which framework is best for them. The real question is: do they both do the same thing or are their different applications for each? Is "Grails vs. JRuby on Rails" a "Struts 2 vs. Spring MVC vs. Stripes" argument - where they're all so similar it probably doesn't really matter which one you choose?

Of course, the Stripes folks will object, but I really don't think it's that much better than Spring MVC 2.5 or Struts 2.1. Sorry guys. ;-)

If it is a Spring MVC vs. Struts 2 type of argument, then it seems to make sense for a company to standardize on one -- don't you agree? Does it make sense to allow both frameworks in a company if they're so similar?

Google has had much success in restricting its allowed programming languages to C++, Java, Python, and JavaScript. Shouldn't other companies do something similar? It seems like a good idea to restrict allowed web frameworks to a few as well. For companies with successful Java infrastructures, it seems logic to allow one Java-based web framework and Rails or Grails for getting things done as fast as possible.

Here's the sticking point: Ask any Rails developers and they'll say Rails wins hands down. Ask any Grails developers and they'll say Grails is the easy choice because it builds on top of Java's strong open source projects. Blah, blah, blah - where's the objective voice that's identified the "sweet spot" for each?

The Relevance guys, particularly Stuart Halloway, has a post about How to pick a platform. The logic in this post seems to imply that both frameworks do solve the same problem - just in different ways. Stu seems to recommend Rails for most applications, because Ruby is a better language. He says Grails might win if you have "an established team of Spring ninjas".

I know Stu and believe he does know his stuff (in both Java and Ruby). So is this the definitive guide on which framework to choose? If you have a staff full of Java developers, they should start learning/using Rails rather than doing the easier transition to Groovy, which they pretty much already know?

I don't know what the answer is, but that's what everyone seems to be saying. The problems is, the authorities on this matter (Rails vs. Grails) are often "head honchos" in companies that have a vested interest in seeing their respective framework/platform succeed. Since the Relevance team employs some Grails developers, it seems they're less biased. But who knows.

Is Rails really head and shoulders better than Grails? I don't think so, but I've only been programming with both for a week.

Posted in Java at Jan 30 2008, 11:48:14 AM MST 11 Comments

Don Brown Makes Maven 2 Not Suck

Don Brown spent some time over the weekend Making Maven 2 not suck:

While there are a few (very important, I might add) things Maven 2 gets right, there are a bunch that just suck, yet I use it at my day job (Atlassian) and in Open Source work, so in true Open Source tradition, rather than continue bitching, I'm doing something about it. I'm embarking on a quest to fix all the bits of Maven 2 that really annoy me and waste my time. I hope to get most, if not all, of the changes back into the codebase, but my personal deliverable is a build of Maven 2 that doesn't suck.

On his blog, Don lists a number of improvements he hopes to make. This weekend, he implemented the first three, which concentrates on speeding up remote repository access and downloading of artifacts.

First up, tasks #1-3. I implemented these changes in a bored Sunday afternoon and saw a example build (Struts 2 core) go from 3 minutes, 26 seconds to 2 minutes even, so a little over 40% performance improvement.

Interested, I decided to try Don's improvements on AppFuse. Since it fetches seemingly hundreds of artifacts from Maven's central repository, it seemed like a good testing ground. With a clean repository (rm -r ~/.m2/repository), a 8 MB/sec internet connection and "mvn -Dmaven.test.skip", I achieved the following results with the stock version of Maven 2.0.8:

[INFO] Total time: 7 minutes 40 seconds
[INFO] Finished at: Mon Jan 28 09:02:11 MST 2008
[INFO] Final Memory: 55M/508M

With Don's improved uber-jar, I received the following results:

[INFO] Total time: 5 minutes 17 seconds
[INFO] Finished at: Mon Jan 28 09:10:56 MST 2008
[INFO] Final Memory: 56M/508M

460 vs. 317 seconds = a 31.1% improvement -- Nice work Don!

When he implements #4 (Should support artifacts checked into the SCM in the lib/ directory so no external repository needed), I'll be a much happier Maven consumer. I've always wanted the ability to bundle all of AppFuse's dependencies for offline use like we did in 1.9.x.

Don - I'll buy you numerous beverages in Vegas if you add the ability to run a Maven command to put all a project's dependencies in its lib directory too. ;-)

Posted in Java at Jan 28 2008, 09:28:09 AM MST 7 Comments

Hike up Green Mountain

I can't believe these two actually hiked up to the top of Green Mountain. It must've been the promise of a picnic at the top that motivated them -- or maybe the ice cream afterwards. ;-)

Hiking up Green Mountain Abbie and Jack on Green Mountain

Posted in General at Jan 27 2008, 03:39:53 PM MST 1 Comment

Nice Day in Denver

Nice Day in Denver One of the reasons I love Denver so much is we usually have extremely mild winters. One year, it was 75°F on Christmas Day (no kidding). Back in college, I have fond memories of playing hacky sack outside in January. The last two winters, we haven't been that lucky. Our high temperatures have been mostly in the 20s and 30s for the last two months. Today, we got up to a balmy 53°F and it felt like spring time. Believe it or not, it actually made the news.

To celebrate, the kids and I took a walk to a nearby park and spent the better part of two hours swinging, sliding, playing tag and enjoying the nice weather. Abbie and I wore shorts and never noticed it was winter until the walk home with the sun setting. Tomorrow's high is supposed to be 60°F. You can best most of Denver will be outside enjoying the sunshine - I know we will.

Posted in General at Jan 26 2008, 06:25:35 PM MST Add a Comment