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 "<a href=". 3,022 entries found.

You can also try this same search on Google.

Setting the heap size on your JVM

Cameron has posted a comment on my Performance Tuning MySQL article. The reason I'm highlighting this because it's something I wasn't are of:

From the article:

    -Xms128m -Xmx256m

The Sun JVM will run significantly faster with the following config instead:

    -Xms256m -Xmx256m

That's because the Sun implementation acquires and releases memory from / to the OS way too aggresively if the "ms != mx". Furthermore, either your server has the 256MB available or it doesn't. If you don't have it available, don't set the max that high. If you do have it available, you gain nothing from setting the min lower. This isn't a desktop system, it's a server -- make sure you have the necessary resources and if you do then use them!

Time to change all my heap size setting since I've been using the first setting (128/256) for quite some time. Thanks Cameron! The real question is: will changing "-Xms256m -Xmx512m" to "-Xms512m -Xmx512m" speed up my slow-ass PowerBook? ;-)

Posted in Java at Apr 28 2004, 09:16:00 AM MDT 7 Comments

Cherry Creek Trail

80 degrees in Denver today made it perfect for a nice ride up Cherry Creek Trail. If you've never done it, I highly recommend it. It's an easy but technical dirt trail right in the heart of Denver. Of course, there's also a paved trail along the same route - so you get the best of both worlds.

Cherry Creek Trail

Posted in General at Apr 27 2004, 09:52:17 PM MDT Add a Comment

[House Project] Foundation done, interior walls almost gone

This past week, they construction guys did a lot to get the floor on our new addition - as well as tear down the walls of the existing interior. Can you believe they discovered the walls had no insulation?! Bob told us yesterday that he expects them to have all the framing done by the end of this week. If he really means all the framing, I'll be pretty damn impressed. Below are some pics I snapped over the weekend - click on them to more.

Walls coming down

Posted in General at Apr 26 2004, 10:13:44 PM MDT 2 Comments

[ANN] Fire 1.0 Released

Download · Release Notes. Fire, the Trillian-like IM client for OS X, has released version 1.0. I use Fire everyday and think it's a great IM client - especially since I use so many IM accounts. I do think that iChat, Yahoo Messenger and MSN are great clients, but I prefer having one app open rather than 3.

Posted in Mac OS X at Apr 26 2004, 04:51:26 PM MDT 2 Comments

[ANN] Hibernate 2.1.3 Released

Download · Release Notes. It's been awhile since the last Hibernate release (approx 2.5 months) - most likely because the last one has been rock solid - at least it has been on my projects. All tests pass in AppFuse.

Posted in Java at Apr 25 2004, 10:09:10 PM MDT Add a Comment

Goals for the week with XDoclet, Spring and AppFuse

I have a lot that I want to accomplish this week. Hopefully a few late nights will make it possible. I'm posting this list here in case someone has already done some of this.

  • XDoclet: duplicate the Struts-specific <validationxml> Ant task for Spring. Make it work with POJOs. This is primarily motivated by the fact that I got the commons validator stuff to work just like it does with Struts.
  • XDoclet: create a new <strutsform> task that doesn't depend on ejbdoclet. This will allow me to remove AppFuse's dependency on j2ee.jar.
  • Spring: extract the mock objects used in Spring's internal test suite so I can use them to test Spring Controllers (springtestcase? ;-)).
  • AppFuse: finish Spring MVC integration and release 1.5 beta.

Phew - it's gonna be a rough week with very little sleep. Fortunately, it'll all be worth it if I can pull it off.

Update: Sometimes things just click: generate validation.xml for Spring and generate ActionForms from POJOs w/o an EJB dependency. I also discovered that <hibernatedoclet> requires that xdoclet.modules.ejb.EjbDocletTask is in the classpath. It doesn't make sense, but the compiler doesn't lie.

Posted in Java at Apr 25 2004, 04:02:15 PM MDT 3 Comments

Logout your users automatically after their session times out

One of the common issues I see in webapps is a user leaves their computer, their session times out, and when they come back to do something - the app throws errors b/c their session is null. There are several easy ways to fix this. If you use Container Managed Authentication, the user will likely be prompted to do login and can continue as before. If you're using a slick Remember Me feature (like AppFuse has), the user won't even notice. However, you might not have these options available to you. For those circumstances, I recommend you put a meta-refresh in your app to automatically show the uses a timeout message when their session expires. It's as simple as the following:

<meta http-equiv="Refresh" 
  content="${pageContext.session.maxInactiveInterval}; url=timeout.jsp"/>

I used JSP 2.0's EL in this example for simplification. If you're using a JSP 1.2 container - you'll have to wrap that expression with a <c:out> tag.

Posted in Java at Apr 24 2004, 07:33:10 AM MDT 8 Comments

Wicked Color Picker

Chris has a nice post with links to online color pickers. After looking at them, ColorMatch Remix seems to be the best one. Of course, ColorMatch's inspiration looks pretty good too.

Posted in The Web at Apr 23 2004, 09:43:24 PM MDT Add a Comment

Google Zeitgeist

Search patterns, trends, and surprises according to Google. Kinda cool.

Posted in The Web at Apr 23 2004, 11:16:29 AM MDT Add a Comment

CSS Drop Shadows

A List Apart has a new article on how to make CSS Drop Shadows that work in IE. The first article shows how to do it for all the other browsers. I dig the technique, so I've decided to use it on this site. To add it, all I did was add the following to the <head> of this page:

<style type="text/css">
    div.alpha-shadow {
        clear: both;
        float: left;
        background: url(http://www.alistapart.com/d/cssdrop2/img/shadow.gif) no-repeat bottom right;
        margin: 5px 0 0 10px;
    }
    div.alpha-shadow div {
        background: url(http://www.alistapart.com/d/cssdrop2/img/shadow2.png) no-repeat left top !important;
        background: url(http://www.alistapart.com/d/cssdrop2/img/shadow2.gif) no-repeat left top;
        float: left;
        padding: 0px 6px 6px 0px;
    }
    div.alpha-shadow img {
        background-color: #fff;
        border: 1px solid #a9a9a9;
        padding: 4px;
        margin: 0;
    }
</style>
<!--[if gte ie 5.5000]>
<link rel="stylesheet" type="text/css" href="http://www.alistapart.com/articles/cssdrop2/ie.css" />
<![endif]-->

Then I wrapped the following image with:

<div class="alpha-shadow">
  <div><img src="..." alt=""/></div>
</div>

If I decide I like this, I'll make sure and download the images/stylesheets locally so not to hog bandwidth from alistapart.com. Too bad there's not a technique to make text drop-shadows work. To see what I mean, see my Struts Resume demo. All the <h1> tags (titles) should have a drop-shadow - and they do in Mozilla, Firefox and Safari (but no go in IE).

The real question is - how do I get it to NOT float:left, but still get the drop-shadows to work? I guess I'll have to ask that question on alistapart.com.

Hmmmmm, my version doesn't work in Safari, what's up with that?!

Posted in The Web at Apr 23 2004, 07:59:47 AM MDT 8 Comments