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.

AppFuse 2.0 RC1 Released

The AppFuse Team is pleased to announce the release of AppFuse 2.0 RC1! This release marks a huge step in the march to releasing AppFuse 2.0. This release puts the finishing touches on the AppFuse Maven Plugin (AMP), which offers CRUD generation, as well as the ability to change AppFuse from "embedded mode" to "full source" (like 1.x). In addition, we've addressed over 100 issues in preparation for the final 2.0 release. We hope to fix any bugs related to this release and release 2.0 Final in the next week or two.

The videos still represent how M5 works, but things have been simplified (now you don't need to run appfuse:install after appfuse:gen).

AppFuse 2.0 is available as a Maven archetype. For information on creating a new project using this release, please see the QuickStart Guide or the Hello World video.

If you've used AppFuse 1.x, but not 2.x, you'll want to read the FAQ. Join the user mailing list if you have any questions. The Maven Reference Guide has a map of Ant » Maven commands. Maven for Newbies might also be useful if you've never used Maven before. There is some support for Ant in this release.

For more information, please see the 2.0 RC1 Release Notes. The 2.0 series of AppFuse has a minimum requirement of the following specification versions:

  • Java Servlet 2.4 and JSP 2.0 (2.1 for JSF)
  • Java 5+

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, Contegix, JetBrains, and Java.net. Atlassian and Contegix are especially awesome: Atlassian has donated licenses to all its products and Contegix has donated an entire server to the AppFuse project. Thanks guys - you rock!

Comments and issues should be posted to the mailing list.

Update: I've uploaded a 247-page PDF version of the RC1 documentation to java.net. This PDF contains the relevant pages from the wiki that help you develop with AppFuse 2.0. Who knew I'd end up writing another book? ;-)

Posted in Java at Sep 04 2007, 01:42:15 AM MDT 7 Comments

Checkmate Technologies donates code to AppFuse

Earlier this year, I had a gig at Checkmate Technologies out in Boston. As part of my work there, they paid me to polish much of AppFuse's code so it passed their Checkstyle coding standards. I'm please to announce that they've donated this work to the AppFuse project. See APF-861 and Changeset 2872 for more details. Thanks guys!

As far as AppFuse 2.0 - we're only 5 issues away from 2.0 RC1! I hope to finish these up in the next few days. With any luck, 2.0 Final will follow shortly after.

Posted in Java at Aug 30 2007, 10:09:41 AM MDT 3 Comments

Spring Web Flow 2.0

The first milestone release of Spring Web Flow 2.0 has been released.

We are pleased to announce that the first milestone of the next generation version of Spring Web Flow is now available. Spring Web Flow 2.0 M1 introduces several major new features, including support for flow-managed persistence contexts, improved support for Java Server Faces, full unified expression language (EL) support, and a more comprehensive sample web application.

I think the most interesting part of this release is Spring Faces:

Spring Web Flow 2.0 M1 introduces the Spring Faces module (spring-faces-2.0-m1.jar), a component shipped with the Web Flow distribution that contains first-class support for organizations developing web applications with Java Server Faces. The pre-existing Web Flow + JSF integration has been factored out to this project, and this project will be the home of all future JSF integration work.

The Spring Faces module provides the Spring community a dedicated project for exploring additional JSF integration opportunities. The initial work in 2.0 M1 on this front introduces integration with Ext, a popular Javascript GUI widget framework.

Of course, I also like how the new sample app looks a lot like one of Seam's demos. ;-)

JSF has needed a good client-side validation framework for quite some time. I also like the Ext integration as most JSF date pickers are hideous. Well done gents.

Posted in Java at Aug 29 2007, 03:49:15 PM MDT 4 Comments

Sun changes its ticker tymbol to JAVA

When I first read The Rise of JAVA - The Retirement of SUNW, I didn't think much of it. I believe I read it on some sort of news website, so I didn't realize folks would be so passionate about it. Reading the comments on Jonathan's blog is quite entertaining and smells somewhat of a TSS thread - except there's no back-and-forth banter. Dave provides a good roundup of reactions in Blogs on Sun's new stock ticker.

For me, one of the most interesting things to fall out of this is James Duncan Davidson's Remembering Java Naming Blunders Past.

Back in 1998 or so, there were a bunch of people in Cupertino?working in a building that used to belong to Apple?working to finish up the largest and most complicated release of the JDK to that date: JDK 1.2. Compared to JDK 1.0 and 1.1, it was enormous. It had slipped schedule a few times. And there were lots of changes and new APIs everywhere. So many that it was the first release where it was almost impossible to know how to use every Java API out there.

The powers that be really wanted to commorate this in a big way. They wanted to make a big splash when they officially launched the new version of Java in December of 98 at the Java Business Expo in New York. So, they decided to rename Java. I found out about this, along with all the other engineers working on Java, at an all-hands meeting in Cupertino.

The name was? wait for it? Java2000.

I met James at a MySQL Conference a few years back and he's full of stories like this. If you ever get a chance to hear one of his stories about the early days of Java at Sun - I highly recommend it.

Posted in Java at Aug 24 2007, 09:18:15 AM MDT Add a Comment

Choosing a JVM Web Framework: Stories Wanted

My last post on choosing a web framework got quite a few comments. Some seemed to like the application categorization technique as a means to narrow the choices. However, others seemed to disagree. So if application categorization is not a good methodology for narrowing the choices, what is?

I think one of the best ways to figure out a good methodology is to find out what people have done to choose their web framework. I'm looking for stories from developers who have evaluated 2-3+ frameworks for a project. I'd like to come up with 3-5 stories as part of my talk to highlight how some teams have chosen their web framework. What were your important criteria? What made you choose the one you did? Was it a tight race between a few of them? Did industry buzz or application categorization play a part in your decision?

Please send any stories you'd like to share to [email protected]. Of course, you can also post your story in the comments - but an e-mail gives it a bit more validity. If you'd like to share your company name, that'd be great, but it's by no means required. I haven't decided if I'm going to prevent all cases as anonymous companies or not. If you do send a story, I'll make sure and ask your permission before I share any of your personal/company information. Thanks!

Posted in Java at Aug 22 2007, 12:02:58 PM MDT 19 Comments

Want a kick-ass Java/UI Engineering Job in Mountain View?

The last month working at LinkedIn has been an absolute blast. I'm new to the whole "treating developers like royalty" thing, so that's taken a while to get used to. It's definitely nice, especially when the company gives you ownership of the things you're working on. Sure, there's schedules and priorities, but it seems like each and every engineer has control of their own destiny. As a consultant, I've been very impressed with the way I've been embraced and folded into the team like a regular employee. There's lots of team lunches, a tech meetup every now and then, and I even played hoops with a bunch of guys last night. This is probably the coolest company I've ever worked for.

Wanna have fun like I am? LinkedIn is looking to hire quite aggressively over the next several months. There's new faces almost every week and hopefully I can "hook you up" to be a part of the festivities. Below is a position that we're currently hiring for in the UI Engineering team. Working remotely is not an option at this time, you need to live in (or relocate to) the Bay Area.

LinkedIn is an online network of more than 11 million experienced professionals from around the world, representing 150 industries. We are four years old, profitable and one of the fastest growing pre-IPO Web 2.0 companies in Silicon Valley.

LinkedIn is developing the UI infrastructure for our next generation applications. This is a strategic initiative that will enable LinkedIn to develop highly interactive and intuitive applications leveraging the latest Web UI technologies. We are looking for a world-class software engineer to work on this critical component of our infrastructure, in partnership with one or more technical leads, the engineering and the product team.

POSITION REQUIREMENTS:
  • EXPERIENCE:
    • 3+ years of overall professional work experience
  • SKILLS & ABILITIES:
    • In depth and hands on knowledge of Java, the J2EE platform and experience working with relevant tools (IDEs, ant, junit, etc.)
    • A passion for UI frameworks: JSF and Facelets experience preferable.
    • In depth knowledge of JSP, JSTL.
    • Experience with Ajax.
    • Experience with portal technologies.
    • I18n experience a plus.
    • Solid understanding of design, coding and testing patterns
    • Ability to work in a fast paced, test-driven collaborative and iterative programming environment
    • Ability to effectively interact with product managers and other organizational units such as QA and CS
    • Excellent communication skills
  • EDUCATION:
    • B.S./M.S in Computer Science or equivalent experience.

I don't know if JSF and Facelets experience is still a requirement (now that I'm here ;-)), but a passion for UI frameworks and web development is. You should know at least two leading Java frameworks and have a lot of experiencing with testing web applications out-of-container. We're not looking for Java Developers turned web developers, we're more looking for Web Developers that know Java.

If this sounds interesting to you, shoot me your resume in an e-mail. Don't forget to include a link to your LinkedIn Profile.

Posted in Java at Aug 17 2007, 10:24:00 AM MDT 20 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

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