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 "java". 1,588 entries found.

You can also try this same search on Google.

Setting up my Fedora box with Out-of-the-Box

Rather than spending hours trying to recover my Red Hat 9 disk, I built a new disk/box with Fedora. For all I know, the RH 9 one is still recoverable, but I'm an upgrade junkie so I couldn't help myself. Setting up DHCP with Dynamic DNS was a bit of a pain, even when I followed this howto. I believe I ended up re-installing bind and everything worked (this was a 2 a.m. last night, so my memory is a big foggy).

The only thing I haven't been able to get running (so far) is my USB Printer, details on hpoj mailing list. It was easy to setup my OfficeJet G85 on RH 9.

As for setting up my dev environment, it was a breeze using Out-of-the-Box. However, out of the box the installer didn't work. I had to install "gd-devel" (a dependency of viewcvs) and then everything installed just fine. Hat tip to Eric Weidner (of EJB Solutions) for the tip. I was able to select the applications I wanted and get all of the following installed and running: MySQL, PostgreSQL, Apache, Tomcat, mod_jk2 (to connect apache and tomcat), Roller, Scarab, CVS, Java, Ant and ViewCVS. I'm sure I installed more, but these are the mains ones I was looking for.

While the installer for OBox takes a while to run (on 1.5 GB RAM with 1.5 GHz = 30 minutes), the beauty of OBox is that it configures everything for you and starts all the services. The one thing that is disappointing (or maybe it's good) is that it didn't setup any environment variables - no $CATALINA_HOME, $ANT_HOME, etc. No biggie, I can set those up myself.

I might just have to burn a CD of OBox for future clients. It'd be nice to show up with my development environment on CD and ready to go. One bug I did find was that the mod_jk2 install configures mappings for all the struts example apps (which I didn't install).

Posted in Java at Nov 21 2003, 12:55:55 AM MST Add a Comment

Wanted: View Source with syntax highlighting

The Display Tag has a nice feature in it's documentation: the ability to view the source of a JSP [example]. This is done using a servlet, and works fairly well. However, as I write documentation for Struts Menu, I'm finding I need to view more than just the source of JSPs, but also the source of stylesheets, scripts and Velocity templates. So far, I've found that the view source protocol works fairly well for this.

Nice Tabs Menu Examples: generated HTML, its JavaScript file, its CSS file

Normally, I would be perfectly happy with this - except the view-source protocol doesn't seem to work in Safari (last time I checked). Secondly, I got to thinking - it sure would be nice to have a Servlet (or some other technology) that would read in a file and spit out it's contents with syntax highlighting. This is to say that you'd see in your browser what you see in your editor (i.e. BBEdit, HomeSite, Eclipse, etc.).

The ideal tool would allow me to pass in a URL to a file, and it would spit out an HTML version of that file, complete with syntax highlighting. It'd be similar to Java2HTML, but it would allow HTML, JavaScript, Java, CSS and JSP. I noticed that it might be possible to generate HTML from Java using Java2HTML on the fly, but that only covers one file type. Another option is to instruct documentation readers to change their view-source editor to be their favorite editor.

Has anyone seen such a tool? It sure would be sweet for writing better and more readable documentation for web developers.

Posted in Java at Nov 19 2003, 08:51:19 AM MST 6 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
runtime.

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 
crossover.

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

My Last Project ~ now in production

The initial site we created at my last project has been deployed to production. Actually, I believe it was deployed the day after I left, but it's cool to see something I helped create actually running on the web. Most projects I work on are either internal, or require authentication. We ended up implementing all the static content using Velocity (thanks to Erik for his help) and the menus (both top and side, once you drill down) are powered by Struts Menu. We actually figured out a pretty slick way to create each individual site (there will eventually be 55 of them), all using the assembling powers of Ant and the magic of Velocity (which I've grown to love).

Posted in Java at Nov 12 2003, 11:39:23 AM MST 1 Comment

The good ol' Struts vs. WebWork Debate

Jason Carreira has been nice enough to post a technical comparison of Struts vs. WebWork. Don Brown (creator of many Struts add-on packages) and Jason have been going at it ever since. It's funny, there's a small part of me that doesn't believe there's a future for Struts (because of JSF). I believe that JSF and WebWork are quite similar, and if I'm going to take the time to learn a new framework, I should learn JSF. Why? Because, I'm willing to bet the literature for Struts -> JSF is out there, and there's probably no literature for Struts -> WebWork. Also, I believe there will be JSF jobs in the near future, but not many opportunities for WebWork. In a perfect world, I'd do something like Kris is doing and learn them all - extend AppFuse to support my favorite framework (if I find one better than Struts) after the learning process, and use that for new projects.

Where does Kris find the time to learn all these frameworks? I barely have enough time to workout and complete my 8-hours-per-day of productivity-for-pay. Then again, I've been getting up around 7:30-8:00 a lot lately vs. the usual 4 a.m.

In my current gig, I'm teaching a fellow programmer how to write webapps in Java. He's never written Java, HTML, CSS or JavaScript. He wants a tool to do it all - so he can drag-n-drop, point-n-click and voila - he's created a webapp. This is a fundamental problem with J2EE - it's not possible? Or maybe it's the beauty - you have to get down and dirty with the code to create a webapp. Another issue is that we're using Struts Resume as our baseline and architecture - and there's really nothing in this app that's drag-n-drop or tools-friendly. Everything is Ant, JUnit, Struts and Hibernate. You have to be somewhat familiar with all of these to build/deploy this app. Personally, I like getting down-n-dirty with the code, but that's because I'm familiar with it and have been working with it for years. Teaching someone else how to get down-n-dirty (and to like it) is proving to be a whole other battle.

Posted in Java at Nov 12 2003, 06:17:46 AM MST 12 Comments

Why I don't use My Eclipse IDE

I don't use My Eclipse IDE because I can't. It won't install on Windows XP with the latest JDK (error: "Can't launch executable. Could not load jvm.dll."). Apparently, it's not their fault, it's ZeroG's fault. If I was motivated enough, I could install an older version of the JDK (i.e. 1.4.1), but then I'd have to hack my registry to get the JRE back to 1.4.2. I'll pass - if I can't even install it, it's probably not worth my time.

All the other Eclipse plugins are distributed as zip files that you expand into the plugins directory - why can't this one work the same way?

Posted in Java at Nov 10 2003, 10:13:27 AM MST 6 Comments

Problems integrating CVS Spam and CVS NT

I've been trying to post the following question to the CVS Spam mailing list for the past couple of days with no luck (I keep getting undeliverable receipts). I figure posting it here might get me some answers or alternatives to CVS Spam on NT.

At my new gig I'm trying to setup CVS Spam on a Windows 2000 Server machine with CVS NT. I know, it'd be much easier to do on Linux, but it's an NT shop, so I'm trying to workaround the environment as best I can. I tried using the Ruby Installer from SF, but had no luck.

After reading the Archives, I saw that the best way was to install Cygwin and use cygwin/bin/ruby.exe. I tried this and now I'm getting the following error:

Checking in README.txt;
c:/source/apptracker/README.txt,v  <--  README.txt
new revision: 1.9; previous revision: 1.8
done
C:/Source/CVSROOT/COLLEC~1.RB:100:in `process_log': missing data dir
(/tmp/#cvsspam.2632.18-XXXXXX) (RuntimeError)
	from C:/Source/CVSROOT/COLLEC~1.RB:215:in `choose_operation'
	from C:/Source/CVSROOT/COLLEC~1.RB:314

In CVSROOT/commitinfo, I have:

^apptracker c:/Source/CVSROOT/record_lastdir.rb

In CVSROOT/loginfo, I have:

^apptracker c:/Source/CVSROOT/collect_diffs.rb --to [email protected] %{sVv}

I also checked in cvsspam.conf to CVSROOT and uncommented smtp.host to be localhost (required for NT).

If anyone has setup CVS Spam with CVS NT successfully (on a Windows 2000 server), please let me know. I'd like to use CVS NT over Cygwin's CVS because I think it'll be easier to maintain after I leave. I'm also interested to know if anyone has successfully used other "cvs e-mail" packages with CVS NT.

Update: I finally got through on the mailing list and received a solution from Angus Mezick. To make it easier for everyone, I've made this patched version of CVS Spam for CVS NT available for download. Just a note, these have only been tested with Cygwin's Ruby install. I hope to test these out next week when I get back from Missouri.

Posted in Java at Nov 07 2003, 11:32:04 PM MST 4 Comments

[New Book] Art of Java Web Development: Frameworks and Best Practices

Book Cover Manning has a new book in the works: Art of Java Web Development: Frameworks and Best Practices. Looks like good stuff - it covers Struts, Tapestry, WebWork, Velocity and Cocoon. Too many books, not enough time. I'm thinking that I should start taking a "studying sabbatical" every year. Maybe 2 weeks at the end of each year where I crank through a few books and solidify my knowledge. The other option is to quit contributing to Open Source and reading weblogs - that'd probably save me 2 weeks between now and the end of the year. ;-)

Posted in Java at Nov 06 2003, 08:49:07 PM MST

My Development Environment

To make is easier for folks to use AppFuse and Struts Resume, I put together a page for HowTo Configure your Development Environment. This is how I've configured my environment and it works pretty darn well for me. Really, none of the document is AppFuse specific - it just shows where I put J2SE, J2EE, Ant, Tomcat, and how to setup your environment variables. Comments or other suggestions are welcome.

Posted in Java at Nov 06 2003, 01:59:36 PM MST 2 Comments

Damn Again

I just started at my new gig today and I mentioned to my boss about the great conference next weekend: No Fluff Just Stuff. 10 minutes later we were talking about what days I needed off next week for our family trip to Missouri. And then it hit me - I booked two things on the same fricken' weekend! No Fluff, Just Stuff is next weekend and I'll be out of town. I've paid for both, and I can't cancel on family - so it looks like I'll have to (try to) cancel my attendance at NFJS. Damn - I'm never going to make it to this thing. I tried back in May and had no luck then either. I guess the whole "weekend conference thing" just doesn't work for me...

Posted in Java at Nov 03 2003, 04:39:27 PM MST 3 Comments