Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta.

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.


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.

My New Project: Tasks and Dev Server Setup

My new project is going well so far. It's nice to bill for the commute and work from home twice a week. I'll be finished with the prototype for our first project today, and we'll start pair-programming on Thursday to implement it. Since one of my main objectives is to teach my supervisor everything I know, I think the best way to do this is to pair-program. I tried giving a couple of presentations on Hibernate and XDoclet, but my supervisor is a Java Greenhorn, so even that was a little advanced.

Our first project is to automate job posting to the various job posting boards the client subscribes to. Currently, a person in HR enters the job onto their website, and then visits each job site (or sends an e-mail) and manually enters the information. The application we're developing will allow them to enter the job on their website, select which boards they want to post to, and submit the form. I initially received a list of 32 websites and newspapers. After contacting them all, I'm amazed the archaic systems that are in place for this "automation." Most sites will accept a simple e-mail in whatever format we want. In my mind, this means a person is going to manually read the job posting and manually enter it into their system. Great, it's easy enough for me to compose an e-mail. 2 out of 32 allow for FTPing text files in a certain format, and 1 site has an XML format (not DTD, just a format) that they expect to be attached to an e-mail. This is a *huge* opportunity for webservices and a common XML Schema (if you ask me).

The one thing that's been slightly frustrating is getting a development environment setup. I (as usual) need to setup CVS, a bug tracking system, automated tests, etc. It's a Windows shop, so no Linux allowed. Not a big deal, but I haven't been able to get VPN access yet. No VPN means that I can't checkin stuff from home - which is dangerous IMO. My supervisor suggested we setup everything on my Linux box at home, which is fine with me, but could be a lot of maintenance on my part (permissions, UPS, backups). For bug tracking, I'm leaning towards Bugzilla over Scarab because I'm familiar with it. I'd like to use JIRA, but don't want to shell out $800 to impress a client with some nifty bug tracking software. Free is always easier to sell to clients. I've actually thought about buying a JIRA license for Raible Designs and hosting my clients bugs (while I'm on the project), but it might be a pain to transition once I leave (I suppose I could rent the space to them or something). So what I'm asking for is - if you had to administer your own Linux box for your day job - how would you do it? Groups? Backups? UPS? If I don't do it on this project, I'll probably do it someday.

Posted in General at Nov 18 2003, 12:53:20 PM MST 3 Comments

Yet Another Web Application Framework: Shocks

From watching the struts-dev mailing list, I discovered a new Servlet Framework called Shocks. The thing that interests me about this framework is that the author looked extensively at Struts and WebWork both before creating it. It's feature-set sounds nice too:

It has an aspect-oriented workflow engine that can add crosscutting
system logic (like form processing, L10N, security, logging, etc) dynamically at
runtime (without having to mess around with the bytecode).  It can trade actions
across classloader boundaries, enabling web applications to span across multiple
.WAR files.  This allows users to drop in a new .WAR with new metadata and new
actions, which updates the application workflow at runtime across all modules in
the application namespace.  It handles workflow versioning and version rollback
(in case you make changes you come to regret).  It does instance pooling of all
components and sequences.  Every aspect of the system can be managed with JMX at

Sounds like Spring, eh? Yes, says the author.

I think there are appreciable differences that have yet to be realized between 
the two (I haven't read their code at all), but definitely a lot of conceptual 

I would think that introducing a new framework into the mix (and convincing folks to use it) must be pretty tough at this point, unless you create an IDE to go with it or introduce it in a book. BTW, did you know you can use Tiles with Spring.

Posted in Java at Nov 18 2003, 05:28:45 AM MST 2 Comments