Matt RaibleMatt Raible is a Web Developer and Java Champion. 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.


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.

Lessons learned from using VMWare, Ubuntu and Maven 2 in a Training class

Last week I taught a Spring 2.0 training class in Milwaukee, Wisconsin. This class was different from previous classes because I made a VMWare image of Ubuntu for students to use when doing the labs. They also used Maven 2 and all the computers were without an internet or network connection (yikes!). Eclipse was used for the IDE and Maven's Jetty plugin was used for any web development activities. I'm pleased to say it worked out pretty well, but there were a couple of things I thought I'd write down for others trying this approach.

First of all, this was my first experience using VMWare in a classroom setting. In the past, I've had students setup their own environments. I've also built machines at the training facilities - and had their staff ghost the image for students. I think having students setup their own environments is a good idea, but I've had mixed results. There's always some folks in class that have no interest in knowing how things are setup and would rather everything "just works". These folks are usually disappointed when they have to spend 20 minutes installing a bunch of software. There's always a couple who don't read the instructions thoroughly and install things in the wrong locations. And then you have the folks that want to work on their Linux or OS X laptops. I can generally work it all out b/c I know Windows, Linux and OS X - but this is generally not a good avenue for instructors unfamiliar with multiple operating systems.

The second method - building a machine at the training facility (or client site) and having it replicated - works very well. However, it's often difficult to get private courses (at client sites) to use this method, and students don't get to walk away with anything. The VMWare option, however, allows you to burn the image to a DVD and give students everything from the course, including the computer they worked on.

I've thought of using the VMWare earlier this year, but never seriously considered it until I spoke with Howard Lewis Ship at this year's OSCON. He said he'd used it for a couple classes, and it worked great. He gave me a sample DVD and I used it to start creating my DVD (thanks Howard!). The nicest thing about using this DVD was we were able to brand it for students, as well as setup all 18 machines in the classroom in less than an hour.

Here is a list of issues I found with using a VMWare setup in the classroom:

  • I downloaded the Ubuntu 5.10 image to begin with. After upgrading to 6.06 and installing all the standard Java development software (less than 100MB), my image was 8GB. I was able to shrink it to 4GB and zip it to 2GB, but it's still quite large. Maybe installing 6.06 from scratch would slim things down.
  • On my home machine (dual core AMD with 3GB RAM), the VMWare image ran very fast, with no noticeable performance issues. I used VMWare Server at home, and VMWare Player during the class because it didn't require a (free) serial number. I had it set to 768MB of RAM at both locations, but the machines were noticeably slower (and close to unusable) in the classroom. The classroom machines were 2.5GHz with 1.5GB of RAM.
  • Since I knew most developers would be Windows users, I gave students the option to have me build their Windows environment. One student took me up on the offer and the only painful part was getting the Maven repo to the students machines. I had the Windows setup software on the DVD, so I was able to use that, but then needed to copy my local Maven repo to a thumb drive to transfer that. In the future, I'll put the Maven repo (only 36.5 MB) on the DVD.

All in all, using VMWare in the classroom turned out to be a good experience. It's likely we'll use it for most of our classes, but we'll also fall back to setting up a Windows environment for those students who don't like Ubuntu. As far as using Maven 2, it's been working great too - most of the students didn't even know it was used b/c they did everything in their IDE.

Posted in Java at Sep 19 2006, 11:29:45 AM MDT 4 Comments

Matt: could be your home system has hardware virtualization support as well since you bought it recently...I'd bet the classroom systems are old enough not to have this...

Posted by Ken Yee on September 19, 2006 at 02:17 PM MDT #

1. Try starting from a smaller 6.06 image, maybe one of these: one, two.

2. Both have VMware Tools installed, which will increase performance. Try installing VMware Tools into the VM you set up.

Windows machines with 2.5GHz with 1.5GB should be able to run Ubuntu in a VM; maybe pull down the RAM a bit. If you ask at the VMTN Forums, you will get more expert advice.

Posted by John Troyer on September 19, 2006 at 06:50 PM MDT #

hi matt,

thanks for posting. Can you place your UBUNTU vmware player image someplace where it can be picked up ?

John : thanks for the info.


Posted by anjan bacchu on September 20, 2006 at 12:11 AM MDT #

Hi, Very interesting article. I have a just a question about the distribution size. Why don't you use an other distribution which can be smaller : debian for example ? Thanks, Fabien.

Posted by Fabien on September 20, 2006 at 12:42 AM MDT #

Post a Comment:
Comments are closed for this entry.