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,857 entries found.

You can also try this same search on Google.

Livin' it up in NYC

I'll admit, this week has been exhausting. There's nothing like doing consulting 9-6 everyday for a client - especially when you're presenting or talking 90% of the time. My final presentation I delivered to the client was 600 slides. Yikes!

Limo Even while this week was tough, I did manage to have a good time. I have a couple college buddies that live here, so they're always fun to hang out with. Wednesday night, we all met up at one guy's house for dinner and reminisced about the good ol' days. Last night, I hung out with my relatives from Beacon.

After finishing up with my client, I met my Aunt Mary in the lobby of the New Yorker Hotel. We walked outside, and when I started hailing a cab she said "What are you doing? I got a limo!" "WTF?!", I said out loud. I turned around to see Mary had brought my cousins along and they'd rented a limo for the night. Needless to say, we had a great time riding around, eating a fancy dinner and ended the night with champagne and cheesecake in Little Italy. It was truly awesome and definitely made my whole week.

Now I'm at the airport bar in Laguardia, sluggin' down a few before I head back to Denver. The next couple weeks are guaranteed to be hectic - I leave on Wednesday for the Ajax Experience, followed by JavaOne the week after. While traveling to clients isn't the most glamorous job in the world, getting paid to learn about Ajax/Java for two weeks in San Fransisco isn't a bad gig. ;-)

Posted in General at May 05 2006, 02:34:36 PM MDT 1 Comment

Integrating Google Maps, Mule and ActiveMQ with AppFuse

Stephen Pasco has written a nice tutorial on how to integrate Google Maps, Mule and ActiveMQ with AppFuse.

Here's the scenario: Upon opening a Google map client, within a web browser, the user clicks on the map creating points (Figure 1). With each point created, a message is immediately sent to the ESB containing the point's longitude and latitude. A second, remote client instantly receives the sent longitude and latitude coordinates and displays them on a separate Google map (Figure 2). [Read More »]

Good stuff - thanks for the writeup Stephen!

Posted in Java at May 02 2006, 07:35:13 PM MDT 2 Comments

Wireless in NYC

wireless in nyc What's worse than staying at a high-priced hotel and having to pay for internet access? Staying at an old NYC hotel where the free (wireless) internet access doesn't work. Even worse, there's a plethora of available networks nearby. 2/3 of them are protected, and the rest simply don't work with my Mac. I'm starting to get pretty frustrated with the wireless on this MacBook Pro - especially since it worked nearly *every time* on my old PowerBook. I should probably take it into the Apple Store next week. The strange part is I can get a connection just fine at my client and Starbucks. It's weird staying in a hotel room and not having internet access - especially when traveling for business.

Update: Strangely enough - when I got back to my room tonight, there was a new wireless connection and I got a full/fast connection. Go figure.

Posted in Mac OS X at May 02 2006, 07:11:06 PM MDT 9 Comments

JavaMail goes Open Source

JavaMail is now open source as part of the GlassFish project. Can we get those JARs on ibiblio now and make Maven more usable?

April 19, 2006
JavaMail is now open source! The source code for the JavaMail API Reference Implementation is now available under the CDDL open source license, as a part of Project GlassFish See the mail module page at GlassFish for more details.

Posted in Java at Apr 29 2006, 12:40:44 PM MDT 1 Comment

Heading to the Big Apple

May is shaping up to be quite the travel month. Next week I'm heading to New York City to put on a 5-day seminar for a client. Topics include: Web Frameworks, JSF, Ajax, Spring, Spring Web Flow, Hibernate, Caching and Performance, Deploying to Production, Comparing CMS Applications, eCommerce in Web Applications, Sharing with RSS and Atom, Acegi Security, Storing User Preferences, Source Control with Subversion and Coding Standards/Project Management. Yeah, a whole slew of stuff. There's nothing like doing a customized seminar when the client gets to pick whatever topics they like. ;-)

The only things I'm a little light on are Comparing CMS Applications, eCommerce and Storing User Preferences. For Comparing CMS Applications, I'm going to talk about Alfresco, Drupal, Joomla, Magnolia, OpenCMS and Plone. I'll be talking about ease of installation, ease of use, community and support, extensibility and performance. One thing I plan to do is zing CMS providers about eating their own dogood. As far as I can tell, neither Alfresco nor Magnolia use their own CMS for their websites. Of course, they might not be developing a "CMS for the web", but that's what most folks tend to use CMS's for IMO. It should be interesting to see if the Java solutions have decreased their installation times. Drupal, Joomla and Plone all took under a minute to install (on OS X) the last time I tried. If you happen to work on one of these applications and want to point out a kick-ass site developed with your software, please leave a comment.

As far as eCommerce solutions, most of the applications I've worked on recently just hook in with PayPal. This seems like the best solution because you eliminate the headache of credit card processing and in-house security/fraud preventation. If you've recently developed an e-commerce enabled application, what solution did you use? Did it work well for you? I'm also interested in solutions that were utter failures or a pain in the ass to use.

Lastly, as far as storing user preferences - I can only think of 3 ways to do it: cookies, database tables, and using the Java Preferences API. I'm sure I'm missing something. What solutions have worked well for you?

After returning from NYC, I'll be in Denver for 5 days before flying out to San Francisco for The Ajax Experience and JavaOne. In the midst of all the travel, I hope to finish up the CSS Design Contest, release Equinox 1.7/AppFuse 1.9.2 and do some performance tests with the T2000.

Posted in Java at Apr 27 2006, 12:17:39 PM MDT 12 Comments

Good Parties at JavaOne

Are you going to JavaOne in a few weeks? If you are, you'll want to know all about the good parties. So far, I've heard the SolarMetric/Tangosol Party is Tuesday night, but don't know if it's been renamed to the BEA/Tangosol Party. I've heard same time, same place.

On Wednesday night, there's a GlassFish BOF at 5:00, a Struts BOF at 5:30 (in the pavilions) and our Geronimo Live Party from 6-9. You'll need to pre-register to get into the Geronimo Party. Luckily, you can easily do that by clicking on the image below.

Geronimo Live

The party is at the swanky W Hotel, which is right across the street from Moscone. It's sponsored by the following Geronimo Supporters:

Geronimo Live Sponsors

Any other good parties you know of at JavaOne?

Posted in Java at Apr 25 2006, 05:36:54 PM MDT 10 Comments

Gig in Seattle

I don't normally post gigs on this site, but I do when they're good rates, and the person hiring is a friend of mine. Here's one in the Pacific Northwest (Seattle):

  • 5+ years of experience with Java and J2EE required including EJB, JMS, and JSP/Servlet, required.
  • 3+ years of experience with UML, SOAP, XML/XSL, SQL, Struts.
  • 1+ years experience working with external client on projects.
  • Experience applying design patterns and OO best practices required.
  • Experiencing writing use cases and producing design documentation required.
  • Experience developing on Unix platforms required, preferably RedHat Linux.
  • Required application experience: BEA Weblogic, Tomcat, Apache.
  • Desirable application experience: Maven, Struts, Spring, MySQL, Oracle.
  • Desirable methodology experience: Refactoring, Agile, Scrum.
  • Desirable additional skills: WML, WAP, XHTML, XSL, XML Schema, SSL, HTTP, Perl.

Let me know if you're interested and I'll forward you the full job description and contact person's information.

Posted in Java at Apr 25 2006, 03:21:07 PM MDT Add a Comment

Gas Prices

Denver Apparently gas prices are way up. I wouldn't have known this, but the lady cutting my hair the other night mentioned it. I think I've filled up my car 5 times this year. The only thing I use it for now is Ski Trips and Airport Runs. Ahhhh, the joys of a bicycle commute and living in the center of town. Of course, on days like today (when it's starting to snow), it's nice to be able to work from home.

Posted in General at Apr 24 2006, 06:22:50 PM MDT 11 Comments

Shale Remoting Library

Ed Burns on JSF AJAX Components:

These components leverage the Dojo Toolkit and make use of the JSF PhaseListener approach for serving up JavaScript files and handling AJAX requests on the JSF server. This approach was innovated by the Blueprints and JSF teams and generalized in the Shale Remoting library, which these components leverage to great effect.

Click on the Shale Remoting link to see the good stuff. ;-)

Posted in Java at Apr 20 2006, 10:29:37 PM MDT 2 Comments

How do you determine a good MaxPermSize?

I know I'll probably get beat up for not knowing my JVM Turning parameters. I admit that I should know them better than I do. Hopefully this post will help us all understand them a bit better.

Ever since I upgraded appfuse.org to AppFuse 1.9.1, it's been experiencing OOM issues. They've been so bad that the site is lucky if it stays up for more than an hour. I've done a fair amount of performance testing on a single AppFuse application (and gotten very good numbers), so I was pretty puzzled by the whole situation.

To reproduce the problem, I downloaded all 5 demos to my machine and began profiling with JProfiler. Nothing stood out, but I was able to reproduce the problem by clicking through all the different applications. While testing, I had my JAVA_OPTS set to -Xms256M -Xmx384M.

After staring at JProfiler for hours, I gave up and sent my findings to the AppFuse mailing list. After going back and forth with several ideas, Sanjiv came up with the winner.

Did you try increasing the max perm size (-XX:MaxPermSize=256m)? Max Perm size is running out of memory and not necessarily the main memory. Class metadata stuff is placed in the perm memory (google for more details) and since we're using Spring, Hibernate and Tapestry which all use a lot of reflection, proxying etc, it's not surprising that max perm size is running out of memory.

Based on his advice, I added -XX:MaxPermSize=256m to my JAVA_OPTS, fired up JProfiler/Tomcat and began hammering my local instance with WAPT. 15 minutes later, with 20 simultaneous users, the heap and memory were humming along nicely with no issues. I made the change on appfuse.org and it's been up every since.

This experience has motivated me to start adding "-XX:MaxPermSize=256m" to all my JAVA_OPTS. Is this a good idea? If so, is 256m a good value to use? If not, what's the best way to determine (or guess) the proper value for this setting?

Posted in Java at Apr 19 2006, 09:54:14 AM MDT 21 Comments