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.

Another Example App and Job Hunting in Florida

I released another example app today - security-example 1.0. This is basically the example app for the "Web Application Security" chapter I wrote for Wrox. There's nothing ground-breaking in it, and in fact, it's just a stripped down version of struts-resume. It'll probably only be useful for those folks that buy the book. For those that choose not to, but still want an example, I invite you to download struts-resume. Regardless, here's the release notes for security-example 1.0:

Features in 1.0
===============
Allows user to login using different Tomcat Realms.  Sample realm configurations
are located in metadata/web/tomcat-context.xml.  Wrox's Professional JSP 2.0, 
Chapter 13, describes how to setup a MemoryRealm, a JDBCRealm, a JNDIRealm
and a JAASRealm.  

Retrieves user's information from a MySQL database using a Filter and Container
Manager Authentication.

"Remember Me" Feature using cookies.

Encrypted passwords using native Tomcat feature or programmatically.

Advanced build/deploy process using Ant and XDoclet.

SSL-based login, optional switch back to regular http after logging in.

For more information, and a further developed example application with these
same features, see struts-resume at http://www.raibledesigns.com/downloads.

It feels good to finish up these example apps for the book. I'll keep developing struts-resume, but I'm going to take some time off to enjoy my evenings/weekends and tone down my moonlighting for a week or two.

My latest and greatest passion will be trying to find a job/contract in Florida. I realized this evening that this doesn't necessarily mean that I have to work for a company in Florida - I could telecommute. However, it is tough to convince companies/clients that this is a good thing. In general, I think I get a lot more done telecommuting (I did it for all of 2002) - but I definitely enjoy an office environment more. Being motivated and inspired to do your job, and collaborating with co-workers can be huge for morale. On Friday, a co-worker and I integrated some stuff we'd been working on for weeks, and it felt awesome once we got it working. The best part - we'll still be pumped about it tomorrow when we give a demo.

I did some research today and conducted a search for Java User Groups in Florida. I found that there were two folks interested in starting groups in West Palm Beach (where we want to live) and in Ft. Lauderdale. The only existing user group I found was the South Florida Java Users Group.

Their February Meeting looks OK, but if I lived there, I'd probably pass. It doesn't seem like they're getting nearly the caliber of speakers we're getting in Denver. To me this says a few things: (1) it could be an opportunity to inspire a JUG to get (or help them get) better presentations, (2) it's gonna suck to move to Florida from a vibrant Java Community, or (3) it's gonna be tough to find a gig there. I think I'd better buck up and only focus on #1. Wish me luck - know anyone that's hiring (my resume)? ;-)

Posted in Java at Mar 02 2003, 10:28:25 PM MST 2 Comments

Struts Resume on Tomcat 4.1.18 LE

I discovered some issues with struts-resume 0.6. Thanks to Thomas Fabbricante for the tip. The first bug I found is that you need to change the following line in your database.properties file:

hibernate.connection.url = jdbc:mysql://localhost:3306/struts-resume?autoReconnect=true   

to:

hibernate.connection.url = jdbc:mysql://localhost:3306/resume?autoReconnect=true

As for running struts-resume on Tomcat LE, you'll first need to put mail.jar and activation.jar in $CATALINA_HOME/common/lib - or you can comment out the mail-related stuff. These files include metadata/web/struts-resume.xml (JNDI Mail Session) and web/WEB-INF/classes/log4j.properties (SMTPAppender configuration). Then it all seems to work great! Sweet - that was a lot easier than I thought it'd be. I'll release a 0.6.1 in order to update the database.properties.sample to have a valid db url.

Update: I've uploaded the files for 0.6.1, you can download them here. Alos, here's a demo and a project link for your clicking pleasure.

Posted in General at Mar 01 2003, 05:02:53 PM MST Add a Comment

Java Blogs RSS Feed

I don't know if there was an upgrade or something, but it took me until today to notice that java.blogs has an rss feed for recent entries. Very cool. I'm going to be using NetNewsWire for a while to read sites - it's just faster. Another effort to improve my time management skills.

Posted in Java at Mar 01 2003, 11:48:50 AM MST Add a Comment

Struts Training: Week 1

I was invited to attend Basebean's Struts Training today. Vic Cekvenich was nice enough to give me a password to attend, and I agreed that I would blog about it. I also agreed to help out on the MVC Programmers mailing list. I don't know that I'll do the labs, but I am interested in doing them - especially since the examples run on Resin 3.0. So I'm sitting in right now and they're doing some introductions. More to come soon. It's about a 1 and 1/2 hour class this morning - should be fun.

The first 20 minutes have been mostly about open source and it's benefits. I'm thinking - most of the students already know this don't they? Maybe not. I guess my perspective is skewed since I've been involved in open source for so long. Before I started using it, I guess I kinda scoffed at it - so I suppose the intro is good.

The second 20 minutes has been about "why projects fail" and the importantance of requirements. I can definitely understand this - as I've been on a couple projects with a bad requirements-gathering process. So far, this class has been a little disappointing as I haven't learned anything yet. The students seem very interested in the first two topics though - so I guess it's satisfying them. I'm sure I'd be more satisfied if I'd already done the labs (the students have).

Now onto Project Management and CMM. Didja know you can get certified as a Project Manager from PMI.org. IMO, a Project Manager can single handedly make or break a project. I agree with Vic that "the best person to have certified on a project" is the PM. The PM on my current project rocks, and it's made the project soooo much easier. You can track your project's ROI at softwarereality.com.

Don't these student's have mute on their phones? I've heard kids crying and dogs barking so far ;-) No one's heard me sneeze yet - and I've done it 3 times!

Vic recommends the following:

  • When starting a project, create the entire application as an HTML mockup. I agree with this - it's awesome for getting requirements solidified.
  • Mockup the outputs - i.e. Reports in Excel. For reports, he recommends using iReport. After a quick review - it looks like a report designer that creates an XML file that can be fed to Jasper Reports.

NetLedger.com is a recommended UI for complicated forms. Rumored to have a free login.

Tip: When you have bad requirements, surf the web. Programming on your project will just frustrate you. My advice: contribute to an open source project - then you'll keep your skills up to par. Or, read blogs - you'll learn something there too.

Now we're learning how to setup an IDE (Eclipse) and deploy/test and example app. Looks like the sample app (webPIM) uses JSTL's Fmt tag. Cool, I've never used it, I should probably do the labs. Teaching students how to use an IDE for Struts Development is definitely the easiest way to go, but using Ant is the real-world way - right?

The next lab covers configuring Tiles and developing a sample layout. I noticed it was a big confusing for the students that the tiles definitions file is named layout.xml and the base Tiles template is named layout.jsp. I usually name my tiles definition file tiles-config.xml.

Posted in Java at Mar 01 2003, 09:49:51 AM MST Add a Comment