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 "<a href=". 3,022 entries found.

You can also try this same search on Google.

RE: AppFuse, 'tool' of experts

I'm please to say that I've been biled yet again. The first time wasn't so bad, and this time seems pretty mild too. There's no mention of asshat, chozgobbler or turdburglar in the whole post, which is somewhat disappointing. Nevertheless, it's what I've come to expect from a guy who sallies car bombs and dances like a sissy.

Regardless of the lack of bile in Hani's post, he does bring up some good points. Let's take a look at them individually:

  • IzPack and MyJavaPack: the progress bar doesn't work, and the installer downloads everything rather than just including/installing it all.
    • To be honest, I didn't know it was possible to pack up everything and skip the internet download part. I'll definitely look into fixing this.
  • You must have Tomcat installed to work with AppFuse.
    • This is true, and I've thought about changing it to be Resin friendly, or possible Orion friendly, but there simply hasn't been any demand. Of course, Orion isn't that attractive to many folks because it doesn't even support Servlet 2.4. Maybe you should crackin' on that Hani! Or maybe you just like living in the dark ages with your affections for EJB 2.1, Servlet 2.3 and WebWork 1.4.
  • When creating a new project, you get prompted for the package name twice.
    • This is true, and something we should fix. The major reason we haven't is because I didn't want to distribute a 2MB BeanShell JAR that would support the 3 lines of code to fix the problem. I guess I should bite the bullet and add the bloat, or figure out a more elegant way to fix the problem. Issue #75.
  • Project generation auto-detects MySQL when you don't have it installed.
  • I'm a web monkey.
    • True, but that's cool now with Ajax and all.
  • Half the build targets don't work.
    • I think this is more like a handful don't work, but good effort. I agree we should remove the install-* targets when installing a web framework. Issue #76.
  • Every object creates builder objects in hashCode and toString.
    • This is true, and I've seen no performance implications from it. In reality, these are a product of the commons-lang project, as well as Commonclipse. We should probably change these to use smarter methods like the ones IDEA generates. It'd be nice if Eclipse has hashCode() and equals() method generation like IDEA.
  • The project's directory layout is bound to confuse a seasoned webapp veteran.
    • The directory structure is largely based off the example app in Java Development with Ant. Since AppFuse uses Ant, I figured it was a good idea to use a "best-practices" structure like Erik describes in his book. I've often thought about consolidating the 3-source tree, 3-test tree directory structure to one, but users are very attached to the current setup. Maybe for 2.0.
  • XDoclet generates web.xml.
    • I agree that using 11 XML fragments to generate 1 XML file is a little ridiculous. You're right - developers should know how to write a web.xml and what goes where. Issue #77.

Thanks for the feedback Hani - sounds like I owe you a car bomb or two at JavaOne. ;-)

Posted in Java at Jun 22 2005, 10:41:03 PM MDT 17 Comments

Bike to Work Day

It's another Bike to Work Day in Denver and I'm missing two key ingredients: a bike and an office to ride into. It's funny to look back at last year and see that my first day with OpenLogic was Bike to Work Day. This year, I'm again starting a new gig and working from home (much like last June). The good news is we'll be moving into fancy new offices (in the swanky Tabor Center) at the beginning of July.

I've been looking at new bikes, but haven't bought one yet because I'm going to be traveling so much in the next couple of weeks. NYC this weekend (wedding), San Francisco next week, followed by a week of vacation at the cabin in Montana. It'll be pretty cool to come back from that and move into my new office at Virtuas (yeah, a *real* office with a window seat!). I'll likely be forced to buy a bike then - driving to work in the summertime just isn't right.

Posted in General at Jun 22 2005, 08:23:46 AM MDT 8 Comments

AppFuse cost $78K to develop

I somehow stumbled upon Koders.com this morning, where they have a cost-of-development based on LOC in the project's CVS repository. Apparently, AppFuse has cost around $78K to develop. Here are a few other project costs I discovered:

Are these costs accurate? Probably not, but it's still an interesting indicator.

Posted in Java at Jun 20 2005, 09:20:53 AM MDT 7 Comments

HowTo set the default submit button on a form

Howard has a nice little trick for setting the default submit button on a form. Basically, you just put the default button first, and then use style="display: none" to hide it. For the most part, I haven't had any issues with putting the default submit button first (i.e. "Save"), but I have noticed an issue when developing wizards (b/c "« Previous" is likely to be first). Nice tip Howard.

Posted in The Web at Jun 20 2005, 08:58:53 AM MDT 7 Comments

Presentations: Acegi Security and Spring Web Flow

I just noticed that the javaBin site has published the talks I did at the Norway JUGs. Here are two additional presentations that I didn't post last time:

In the near future, I hope to start taking more of Kathy Sierra's advice and reducing my presentations to almost nothing. This will diminish their value when I post them, but hopefully make the presentations a lot more fun to attend.

Posted in Java at Jun 17 2005, 11:12:16 AM MDT 3 Comments

[ANN] AppFuse 1.8.1 Released

This release is mostly a bug fix release with no new features. It also includes many upgrades to the core libraries (Hibernate, Spring, iBATIS, MyFaces). Thanks to all the sponsors who have contributed products and free hosting to the AppFuse project. You guys rock!

To see how AppFuse works, please see the following demos:

Comments and issues can be sent to the mailing list or posted to the AppFuse Issue Tracker.

Posted in Java at Jun 15 2005, 11:00:42 PM MDT 8 Comments

Synching home directories on OS X

My old PowerBook is fixed, and I'm getting ready to send my new one off to the person that bought it. As part of this process, I wanted to synch up the home directories, since that's all that's changed b/w the two in the last 3 weeks. I figured rsync was the solution, but since I'm an rsync rookie - I searched around for a GUI tool. I found RsyncX, installed it, booted the newer PowerBook as a firewire drive and updated my old PowerBook. 20 minutes later and my old one looks like my new one. Very nice.

Posted in Mac OS X at Jun 15 2005, 12:51:51 PM MDT

Building a Persisted, Dynamic Web Tree with AppFuse

Thomas Gaudin has done it again. He's published yet another detailed and well thought out tutorial for AppFuse. This time it's about building a dynamic menu tree using Struts Menu and Hibernate. Great stuff thogau!

Posted in Java at Jun 15 2005, 07:41:48 AM MDT 2 Comments

Contegix Rocks

I've been working a lot with the guys at Contegix lately. They host both sourcebeat.com and virtuas.com as well as Subversion repositories and mail for both. They also host AppFuse's JIRA for free. They sent me the following e-mail this morning:

issues.appfuse.org has been upgraded to JIRA Enterprise 3.2. Total downtime was less than a minute.

Emphasis is mine. Not only do these guys provide excellent hosting, their support is the best I've ever seen. Whenever I send them a support question, they respond in under a minute. It really is a pleasure to work with them.

Posted in Java at Jun 14 2005, 06:21:27 AM MDT 7 Comments

XDoclet for JDK 5

From the xdoclet-user mailing list:

I just uploaded a snapshot of xjavadoc that (among other fixes) provides support for Java 5, as of XJD-41. Many thanks go to Anton Adamansky for his work on this issue.

You should be able to just replace the xjavadoc-1.1.jar from a Xdoclet binary release with this snapshot and use jdk1.5 features with Xdoclet.

Have fun,
  Heiko

Let us know if you find any issues.

Posted in Java at Jun 13 2005, 10:04:14 PM MDT 5 Comments