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 "ant". 338 entries found.

You can also try this same search on Google.

My IDEA Evaluation - Eclipse is better

I've been trying to use IDEA (on OS X) for the past few weeks and I keep reverting back to Eclipse for features that seem to be missing. I know the features must be there, but I just can't find them. Why else would everyone like it so much? Sidenote: I've never used IDEA for a feature that doesn't exist in Eclipse - I'm sure there are some, I'm just not using them. It sure would be cool if someone created a HowTo explaining how to migrate from Eclipse to IDEA. In the meantime, I'll settle for posting my questions here:

  • Debugging in Tomcat - I'm currently using Sysdeo's Tomcat Plugin in Eclipse for Tomcat 4.1.27. It's super easy to setup and use - I expect the same ease-of-use from IDEA. I haven't looked much, but I'd love to hear feedback on IDEA's Tomcat debugging support.
  • Renaming a variable in a JavaBean renames getter and setter methods. Sounds simple enough, in my 10 second search, I couldn't find it. In Eclipse, right-click -> Refactor -> Rename.
  • Override/Implement methods (from parent classes and interfaces). Right click -> Source -> Override/Implement methods in Eclipse.

I'll add more as I think of them throughout the day. So far, I like IDEA, but to be honest - it's not saving me any time over Eclipse. It also locks up as much as Eclipse and it's responsiveness is still a big sluggish on OS X (10.2.8) with 1 GB of RAM (1.33 MHz processor). Hopefully Panther will make both IDEs faster. Two weeks ago, I was thinking of buying it (as well as Dreamweaver) - now I'm frustrated with IDEA's lack of features and Dreamweaver's slowness. I'll probably pass on shelling out the cash since Eclipse and BBEdit are giving me all the features I need in IDEA and Dreamweaver.

Posted in Java at Oct 20 2003, 06:17:51 AM MDT 22 Comments

Last year on this weekend

Last year on this Saturday, I had just finished Erik's Java Development with Ant - and I was struggling with OS X. It's disappointing to think that I haven't read any inspirational tech books this year - not because the books aren't good, but because I don't read much. Abbie and coding are just more fun.

Posted in General at Oct 18 2003, 08:45:11 AM MDT Add a Comment

WebWork and JDD

I attended the Boulder Frameworks meeting tonight on WebWork, followed by the Boulder JUG meeting. The WebWork (a.k.a. WW) presentation had a mere 5 attendees, but Kris gave a very good overview of WW and showed how simple it was. Here are some of the strengths of WW according to Kris:

  • It's not dependent on J2EE. Many method signatures are empty and it uses interfaces everywhere, rather than parent classes. Sounds cool. Kris likes it because "it gives you a warm fuzzy feeling you're not tied to WW."
  • It's not Jakarta. "Jakarta is like a Ketchup bottle - you have to beat it to get anything out of it." I don't know that the WW team produces software much faster than Jakarta though...
  • Instead of using the HttpServletRequest, WW uses a Stack, which is essentially the same thing (sans J2EE).
  • WebWork has Interceptors. They're like Filters, but WW comes with built-in Interceptors that can be applied declaratively. Kris mentioned there's little documentation on the built-in Interceptors - a wiki page would be nice.
  • Action packaging - you can turn a portion of your WW application into a jar and it can be added to another WW application. It sounds good, but I can't think of a use for it right now. Sounds like modules in Struts.

Kris's biggest reasons for liking WW was Interceptors and Inversion of Control. However, Struts has those too. Good presentation. I plan to learn WW and give up this whole my framework is better than yours stance. In fact, I hope to do this with many of the technologies I use everyday. I'm going to start using Orion and Resin so I know if Tomcat really is better, or better yet - when should I use one appserver or the other. I'm learning IDEA so I know when to use Eclipse and when to use IDEA. Today I discovered how IDEA warns me about invalid Javadocs (very nice feature). Eclipse continues to rule the CVS integration world, and I see no reason to quit using it and bitch about IDEA's lack of CVS integration.

After WW, I walked across the hall to listen to James Duncan Davidson talk about "James Driven Development" (my phrase) - also known as Objective Object Orientation. Rather than bore you with the details, here are the highlights:

  • Don't abstract too much - just enough to fit your needs. Examples of too much abstraction can be found in Apache's Repositories (James's words - he didn't specify any projects).
  • Don't extend, instead create objects do something, then you don't need to know the interworkings of the object.
  • Dynamically typed languages rock (i.e. Smalltalk, Ruby, Python). They're much easier to develop with, especially when backed my TDD. You can accomplish similar things in Java using lots of casting.
  • He can't wait until something comes along and kills Ant and Tomcat - he never thought they'd make it this far - especially considering he wrote them when he was a Junior Programmer for Sun. He gave Tomcat its name because he thought it'd be good animal on the book cover of an O'Reilly book. He never thought it would happen, and now that it does have a book, he said he's disappointed it's not an actual Tomcat (apparently it's a snow leopard?).

His point about Ant and Tomcat is that 1) something better than Ant will rock, so we should all be happy when something better comes along and 2) Tomcat was never designed (or tested) to be used in the environments its being used in (i.e. Nuclear Facilities). Good stuff - brain is full.

Posted in Java at Oct 09 2003, 11:29:22 PM MDT 7 Comments

Precompile your JSPs for Tomcat 4.x

Filip Hanik has provided a nice Ant script for pre-compiling JSPs. Its designed to be run after you've deployed your application to Tomcat. On my current project, it took 1 minute 30 seconds to compile all our JSPs - making it a candidate for new QA and Production deployments only. I'll be adding this to AppFuse's next release and verifying it actually works before I release. I know the compile works, but I want to make sure that my .java and .class files aren't rebuilt the first time I hit a JSP (I've seen this before). Also, you might want to checkout my issues if you run into problems.

Update: I've verified that this really does work - Sweet!

Posted in Java at Oct 09 2003, 03:41:47 PM MDT 3 Comments

New Gig starts November 3rd

I gave my notice on Monday and will be starting a new gig on November 3rd. My reasons are simple: I can bill for the commute (45 minutes each way), I can work from home 1-2 days per week, mentoring/teaching opportunities and the biggest - they want me to help them build a Resume Entry application. Sweet - I'm hoping to use Struts Resume as a baseline. If they agree to use Struts Resume, we'll have half the project done on my first day! The hard parts will be getting it to run on WebSphere and DB2 - their platforms (that I've never worked with). They're hiring me as a mentor on Java and Eclipse and also expect me to cut a fair amount of code. It'll be cool to have mentor as part of my job description. It's also a government agency, which means 40 hour weeks and no weekends. If anyone has gotten WebSphere running on OS X, hooka brutha up!

I gave my current gig a 4 week notice because I want to help them roll out the first phase of websites, and verify that architecture I helped them build actually works. They're looking to replace me with someone that has similar skills. They're located in Lafayette, Colorado - and it really is a fun place to work. Here's the most important things to know for this position: Struts, Ant, JSP and Tomcat. Let me know if you're interested.

Posted in Java at Oct 08 2003, 04:00:47 PM MDT 2 Comments

What's the best way to test Tag Libraries?

I know of two tag libraries that are in dire need of unit tests - the displaytag and struts-menu. Both have no tests. I've looked briefly at TagUnit, but aren't you just writing JSPs (with custom tags) to test JSPs? I'd rather have an Ant/JUnit driven solution. Also, are there HTML versions of the user guides for TagUnit (Simon ;-)? I hate PDFs.

So my question is - how do you test your tag libraries?

Posted in Java at Oct 07 2003, 10:28:26 AM MDT 7 Comments

Time to hook up the Senior J2EE Developers in Denver

This is nuts - I'm getting at least one call or e-mail per day from recruiters and/or friends in Denver. Rather than posting these positions here (with Rates), if you're a Senior J2EE Developer in Denver, let me know. I'm going to start a list of folks with skills like mine so I can hook some brutha's up! I have 2 right now - both for J2EE/Web stuff.

Here are my requirements to get on my list:

  • Must know Ant, meaning you've written a build.xml file before. Having read Java Development with Ant is a huge plus.
  • Blogging is a plus - it means you're interested in Java and sharing your ideas (implying that you think outside of work).
  • You've used Eclipse or IDEA and use one or the other on a regular basis. This implies that you know a good IDE can improve your productivity.
  • Must know XHTML and CSS. I do, and I said skills like mine.
  • You're able to checkout AppFuse from CVS, build it and run "test-all" with success. README.txt is your friend.

I reserve the right to delete any of your e-mails and resumes, and to hook my friends up over other folks. I don't want to get a flood of e-mails, I'm just trying to hook up good folks with good jobs. If I can get the rates, I'll let you know what they are.

Posted in Java at Oct 03 2003, 12:08:47 PM MDT 9 Comments

In August of Last Year

I began to learn a whole lot about Ant from Erik Hatcher. Good guy, great words - fun stuff.

Posted in Java at Sep 20 2003, 12:34:25 AM MDT Add a Comment

Test driving the new PowerBooks

I called my local Apple Store today to see if they had any new PowerBooks in. They did (though they've sold out of their 15" with combo/super drives for the day), and now I'm here test-driving the 17" with 1.33 Mhz and 512 MB RAM. It wouldn't be right if I didn't compare this machine against these performance numbers. So here goes:

  • Opening Eclipse (3.0 M2): 10 seconds
  • Opening Photoshop (7.0.1): 8 seconds
  • Running "ant rebuild" on Roller (0.9.7.3): 32 seconds (ooh, this actually beats the 2 GHz machine I had at Comcast, by 4 seconds).
  • Running "ant clean package-web" on AppFuse (0.9.1): 21 seconds (3 seconds slower than the 2 GHz Pentium)

I'm not as disappointed as I thought I'd be. Good thing I left my wallet in the car!

Posted in Mac OS X at Sep 18 2003, 06:17:43 PM MDT 2 Comments

HowTo: Check for JUnit in $ANT_HOME/lib

One of the most common problems with my sample apps is that developers (when compiling from source) forget to put junit.jar in their $ANT_HOME/lib directory. I put it in the README, but I guess no one reads that sucker. So now I have a new strategy - stop the build if it's not there:

<!-- Check that junit.jar is in $ANT_HOME/lib -->
<available classname="junit.framework.TestCase" 
    property="junit.present"/>
<fail unless="junit.present" 
    message="Please copy junit.jar into ${env.ANT_HOME}/lib"/>

Posted in Java at Sep 12 2003, 01:25:18 PM MDT 1 Comment