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.

Using JAAS with Tomcat

Want to use JAAS with Tomcat? If so, you might want to checkout this Using Tomcat with JAAS tutorial.

Although it is possible to use JAAS within Tomcat as an authentication mechanism (JAASRealm), the flexibility of the JAAS framework is lost once the user is authenticated. This is because the principals are used to denote the concepts of "user" and "role", and are no longer available in the security context in which the webapp is executed. The result of the authentication is available only through request.getRemoteUser() and request.isUserInRole().

This reduces the JAAS framework for authorization purposes to a simple user/role system that loses its connection with the Java Security Policy. This tutorial's purpose is to put a full-blown JAAS authorisation implementation in place, using a few tricks to deal with some of Tomcat's idiosyncrasies.

Personally, request.isUserInRole() usually does everything I need. If I need something more than that, it's usually pretty easy to add some custom logic. Of course, if I ever need anything super robust, I'll probably use the Acegi Security System for Spring.

Posted in Java at Jun 03 2004, 10:30:27 AM MDT 3 Comments

Testing Moblogger

Testing Moblogger to see if this thing still works. Wanna learn more about how Moblogger came to be, checkout the comment I left on Bruce's weblog.

This post is being sent via e-mail...

Posted in Roller at Jun 02 2004, 10:24:35 PM MDT 1 Comment

Know AppFuse? Wanna job?

It's too bad I've already signed a contract for the next couple of months. Today, on the appfuse user mailing list, a 2 month contract came across the wire.

Hello everyone,

My name is Mark Janveaux, I'm Chief Technology Officer at Mobile Design Technologies (http://www.mobiledesigntech.com) a software firm specializing in mobile applications for the healthcare industry.

We are developing our next generation project right now which is based off of AppFuse 1.5, and have an open position for a developer experienced in the relevant technologies (Java,JSP,Struts,Hibernate).

It's an simple but interesting project. Project length will be about 2 months with definate possibility of extension.

Position may be part time or full time depending upon your availability, skills, experience and salary expectations.

If any of you are interested, please contact me at:

Email: mjanveaux-AT-mobiledesigntech.com
Ph: 250.483.3430

This position can be 100% telecommute if necessary.

Kind regards

Mark

Of course, you probably don't need to know AppFuse. If you've worked with Hibernate, Spring, Struts, JUnit and Ant - you've probably got a good chance.

Posted in Java at Jun 02 2004, 01:18:52 PM MDT

How do you make your source tree Eclipse/JUnit friendly?

I've never had a problem getting builds and unit tests to work with Ant. However, unit tests run faster in an IDE, so I'm trying to refactor some code to allow for testing in the IDE. My current directory structure looks like this:

-- project
   - web
     - WEB-INF
       - classes

I need both "WEB-INF" and "WEB-INF/classes" in my classpath. There's XML files under WEB-INF for Spring and Commons Validator, and there's a log4j.xml under WEB-INF/classes for log4j. These files are all in their natural locations as far as all the projects I've seen. However, Eclipse won't allow me to nest classpaths - so it's virtually impossible (as far as I know) to add both directories to my classpath. Any ideas how to workaround this Eclipse "feature" are appreciated.

For those "IDEA is better" folks - I agree. IDEA allows me to add web, web/WEB-INF and web/WEB-INF/classes to my classpath with no issues.

Posted in Java at Jun 02 2004, 12:46:10 AM MDT 6 Comments

Technical Confidence vs. Fitness Confidence

It figures, just as I'm about to do a major push to get some writing done on Spring Live, I wake up with a cold. It was bound to happen since Abbie and Julie are already in the midst of it. For some reason, I thought I could avoid it.

Three years ago, as I was entering into independent consulting, I could've avoided it. Back then, I was in shape and riding my bike all the time. When I first started as an independent, I had no time to exercise, but I was in such good shape that it took me well over a month to start gaining any weight. That summer was awful - I had no time to exercise and the commute was around an hour. But the pay was awesome and the technology was even cooler. It was summer 2001 and because of my new contract, I was learning all about JUnit, Ant, TDD and Struts.

Reflecting back on that summer, and the past couple of years, I seem to go through various levels of "confidence." There are two extremes for me, and I tend to reside in one or the other. The first is "technical confidence" and the second is "fitness confidence." When I'm coding like a madman, learning new stuff, and deploying release - I'm very technically confident. I don't feel like I need to learn anything new. I feel like I'm on the right track, and I'm generally pretty happy. This is, until I leave the computer. When I start interacting with my family and friends, I start to realize how out of shape I am. In order to get things done, I tend to give up exercising. Part of it is because its easy to give up, and sometimes I just feel guilty leaving Julie to run off and exercise - especially when she's pregnant with a sick kid in her arms.

In order for me to get in shape, it takes quite a bit. In the past when I've been in shape, I usually ride my bike 6 days a week. This is a time consuming effort, averaging about 2 hours per day. However, after I've done this for about a month, my "fitness confidence" starts to rise and I really enjoy being outside or working out. The downside is that when I find time to sit down at the computer, I see a flurry of e-mail and blogs about cool new technologies. My technical confidence plummets.

It's weird. I wish I could find a balance. I wish I had more drive to improve my fitness confidence right now. Unfortunately, many deadlines are looming and I need to sit here in front of the computer to get them done. I definitely need to turn this around. Health is one of the most important things in the world, and I'm so out of shape its pathetic.

Posted in General at Jun 01 2004, 03:01:08 PM MDT 8 Comments

The Java Community - its strength is in its disunity

Charles responds (in a comment) to Ted's accusation that .NET's community is better than Java's.

Actually, the strength of the Java community lies in its disunity. Unity is a false strength: it's safety in numbers, but it's also a herd mentality. I suspect the drive for "strength in unity" is a reflection of Microsoft's philosophy of dominance: that the best thing for the world is if everyone just Does Things Our Way: A computer on every desk running Microsoft software. The Java community has competing infrastructure vendors. We have a raft of competing web frameworks, competing AOP frameworks, competing persistence frameworks, competing IDEs, competing heavyweight and lightweight containers. And it's this competition that makes Java such a vibrant community. Nobody's quite satisfied with what the other guy's doing: everyone wants to do better. It's also what makes us, at times, a bunch of bickering children. That does us quite a bit of harm, but I think in the long run things work out for the best.

Well said.

Posted in Java at May 31 2004, 12:04:14 PM MDT 2 Comments

Testing Wiki Syntax and RSS Feed

If I use wiki syntax in this entry, will it show up property in the RSS Feed? I'd better put some wiki syntax in, like a link to AppFuse, Downloads and an external link. What about the Java2HtmlPlugin, does that work?

    public ModelAndView handleRequest(HttpServletRequest request,
                                      HttpServletResponse response)
    throws Exception {
        if (log.isDebugEnabled()) {
            log.debug("entering 'handleRequest' method...");
        }

        return new ModelAndView("userList", Constants.USER_LIST,
                                mgr.getUsers(new User()));
    }

BTW, I really like the new editor layout - nice job Dave.

Update: It looks like the Wiki Plugin isn't working. I tried updating my "_entry" page with no avail. Below are the contents of this file. I used to have $wikiPlugin.render($wikiText), maybe that's the problem?

Update 2: Duh, the JSPWiki Plugin wasn't enabled in web.xml. As soon as I enabled that, and dropped the Java2HtmlPlugin JAR into WEB-INF/lib, everything worked as expected. Strangely enough, it seems I shouldn't start my entries with !, but rather just check the JSPWiki Syntax plugin. I'm guessing the exclamation point check in my _entry page is still needed for backwards compatibility.

Posted in Roller at May 30 2004, 01:31:10 PM MDT 7 Comments

Upgrade to 0.9.9 Complete

I upgraded to the latest Roller CVS snapshot this morning. Let me know if you see any issues. It was a very smooth upgrade since I tested everything locally first.

Posted in Roller at May 30 2004, 08:47:41 AM MDT 5 Comments

The Last Day

Today is my last day at my current client. It's been a great experience and the last couple of weeks have been particularly enjoyable. We demoed the app I've been building (a Job Posting/Resume Builder) this week and everyone loved it. It's now ready to go into production, so hopefully the "new guy" won't have to do much work. It's unfortunate that it couldn't go into production sooner - but they want to deploy on WebSphere instead of Tomcat, so they'll have to figure that out first.

I was originally scheduled to dive head-first into open source at EJB Solutions next week, but managed to wiggle my way into a week off. I was already planning on taking the 2nd week of June off to work on Spring Live - and now I get 2 weeks! I'm pumped to have two weeks off - too bad I have work to do. Oh well, I expect to work crazy hours and burn the midnight oil a lot. That way, I can spend the days playing with Abbie and giving Julie some much needed rest.

The best part? On Thursday, I'm flying out to San Diego to pick up my new VW Bus. My dad is going to meet me there and we'll be embarking on Raible Road Trip #8 to drive it back to Denver. This weekend I'm going to stock a toolbox to deal with any breakdowns along the way. It should be a good time - I love road trips. So if you don't hear much from me for the next couple of weeks, I'm probably writing or enjoying beers on the patio. ;-)

Mmmm, beeerrrr - have a good holiday weekend y'all!

Posted in General at May 28 2004, 01:18:46 PM MDT 7 Comments

Wanna get paid to learn Flex?

I've always said the best way to learn a new technology is to get paid to do it. Do you live in Newton, MA or San Francisco and wanna learn Macromedia's Flex? If so, you might want to checkout these openings. I've heard stories that it sucks to work for Macromedia - but it's always cool to get paid to learn.

Posted in Java at May 27 2004, 02:00:19 PM MDT Add a Comment