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 "free sex movies for men non blog". 1,227 entries found.

You can also try this same search on Google.

Bleeehhhh

It's been a week and a half now since I started feeling sick. Don't worry, I'm not dead. We used to live out by the intersection where the accident happened and one of our old neighbors drove a blue Dodge Durango. Hopefully they're OK. Regardless, this is a tragedy that my words surely cannot help.

We did make a trip to the Emergency Room on Thursday night (which also happened to be Julie's birthday). We decided to go to the ER because my fever hit 105 and we figured the ER could tell us something about my affliction. After CAT Scans and a spinal tap (among other things), they came to the same conclusion as my doctor on Monday - "some kind of virus, hopefully you'll get better in a week or two." The good news is it's not Menengitis, Mono or West Nile. Wednesday and Thursday of last week were the worst - where I spent pretty much all day in bed. If I was awake, I had a dull-throbbing headache and a fever.

The pain isn't too bad, but the body aches and brain-cloudiness are enough to keep me from working or wanting to do anything. I'm expecting that I'll simply wake up one day and I'll just feel better. I can't wait - I'm tired of having 2-3 fevers per day. I also feel like my todo list is just getting longer with my lack of productivity. Oh well, I'm sure there are some parts of my body that are enjoying the lack of stress.

Posted in General at May 15 2004, 04:23:04 PM MDT 7 Comments

Weather.com: WebSphere to Tomcat and Oracle to MySQL

At my current client we're going to migrate our application from Tomcat to WebSphere 5 in May. I'm dreading the move and really don't see the point, but alas - the client is always right. However, since my client reads this website, I thought maybe they'd be interested to see that Weather.com recently migrated from WebSphere to Tomcat.

"It was hard to run WebSphere and an IDE [integrated development environment] because of all the resources WebSphere took," recalls Jeff Cunningham, who leads the Internet application development team at Weather.com. "You had to run an instance of DB2 on your machine because WebSphere stored its configurations in DB2, so you had to have all that overhead. It was just really slow. I just started using Tomcat for development because it was so much faster."

The article goes on to say that they evaluated other app servers as well, but chose Tomcat because of the team's preference. They also discovered that Tomcat served up pages significantly faster than WebSphere.

Weather.com is also working on swapping out its Oracle database for the open-source MySQL.
...
"Now when I talk to senior management about moving from Oracle to MySQL they don't ask me, 'Are you sure?'" he says. "They ask me, 'When?'"

It's a great time to be an Open Source Consultant. ;-)

Posted in Java at Apr 29 2004, 11:05:57 AM MDT 16 Comments

What should we do with Tiles?

There's some discussions taking place on the Struts Developer Mailing List about what to do with Tiles. Tiles is gaining popularity in frameworks other than Struts - i.e. Spring and JSF. Personally, I don't mind that Tiles is buried deep inside struts.jar b/c it's basically the difference between a 500 KB JAR and a 100 KB JAR - and disc space is cheap! However, an advantage of extracting Tiles from Struts is that it then has the opportunity to become friendlier to other web frameworks. I'd even like to see a Sitemesh-like Filter so you could do Sitemesh stuff with Tiles. Or maybe just bundle Sitemesh with Tiles as a kick-ass templating engine.

So the question is: What should we do with it? Should it become a Jakarta Commons project or a Jakarta Project? Or even a java.net project? Tiles Users - we need your feedback!

Posted in Java at Apr 28 2004, 11:35:00 AM MDT 16 Comments

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

Full Time vs. Contract

I talked with some folks yesterday about joining their company as a full-time employee. Their opportunity sounds awesome: using open source tools to develop a product. The opportunity certainly appeals to me. In a sense - I could get paid to work on AppFuse. I could get paid to do the stuff I wake up early and go to bed late for. I could spend more time with my family because I'm doing my "moonlighting" stuff during the daytime.

At least that was their sales pitch.

In reality, no company in their right mind is going to pay me to work on all the open source projects I contribute to: AppFuse, Roller, Struts Resume, Struts Menu and DisplayTag. Sure, they might allow me to work on AppFuse and Roller for a few hours a week, but I can guarantee that I'll still want to contribute to the others - and hence, continue to burn the midnight oil. I've also started to think that the main reason for doing stuff "after hours" is because I spend my evenings with Julie and Abbie - whereas I used to work in the evening.

More than anything, the opportunity really got me thinking about doing full-time work vs. contract work. I've been doing contract work for almost 3 years now - and I've only had 2 months of no work in that 3 year period. So that whole contracting is so unstable has been a myth for me. In fact, I see contracting as more stable than an employee position because I control my own destiny for the most part. NOTE: This post is likely a bit biased because my contract just got extended until the end of the year and I'm working on an AppFuse-based application. In other words, I love my job right now.

The thing I enjoy the most about contracting over full-time is freedom. I am planning to take 7 weeks off in the next few months (3 weeks for Spring Live, 4 weeks for the new baby) - and with a full-time gig, that would be impossible. I also like the ability (again, this is probably because my current client is so cool) to take a week off to attend a conference, or take a few days off to run off and do some training. The fact that I'm not tied down to one client/company is awesome. With the full-time opportunity I'm considering, I feel like I'd be marrying a woman I met just a few weeks ago. I guess most full-time gigs are like this after you've been set free with contracting.

One of the main reasons I'm considering this full-time gig is because I don't know where I want to be in 5 years. Most of my career aspirations have been met. When I started in this industry, I wanted to gain enough knowledge about what I do to speak at conferences and such. I did that last week and it was a blast - but I don't really want to do that every month - especially if I have to travel. Traveling away from my family is no fun - and happiness is more important than anything. The nice thing about the full-time gig is that its centered around a product, rather than services. Services (i.e. consulting) are great - but they're only good as long as I'm capable of working. Developing products that earn money while you're on vacation - that's the ideal situation.

The only thing I don't like about my current contract is that I'm a lone wolf. I'm the only guy developing the current app - which is great, but there's no "team spirit." My favorite job ever had awesome team spirit. This opportunity is a startup, which often leads to team spirit - but they also enticed me with ideas of working with a smart bunch of developers. If you've ever worked with smart people, you know that this is a real treat. Learning from your peers just by going into the office is quite a rush. When someone tries to find their answer on Google before asking you - it's refreshing. But is this worth giving up freedom for?

Another important consideration is compensation. Contracting tends to pay 50%-100% more than a full-time position. Of course, this full-time opportunity has options (which supposedly narrows the gap), but we all know that those rarely come to fruition. And if they do - it usually takes a couple of years. I am well aware that a cool job is waaayyy better than a good paying one, but still - getting paid well is nice.

Lastly, to throw a wrench into everything, someone sent me an e-mail last night suggesting they might (someday) be interested in paying me to do full-time AppFuse development. Heh - now that sounds like the ultimate dream job.

Posted in Java at Apr 21 2004, 04:53:32 PM MDT 18 Comments

Will men become obsolete?

Julie made a predication last night - men will become obsolete in 100 years. Women just won't need them anymore. On Google News today, I found this article: Males Not Needed; Mouse Born from Unfertilized Egg. Could she be right? If the world were full of women, and the male gender died off, I'm willing to bet the human race would perish shortly after from worrying so much. ;-)

Posted in General at Apr 21 2004, 12:43:15 PM MDT 3 Comments

How does your MVC framework handle duplicate posts?

One of the problems that you'll often see in webapps is that when a record is added - hitting refresh on the browser will cause a 2nd record to be added. This is because the "Save" action usually does a forward, rather than a redirect, and the full post is re-created. I'm curious to know how other MVC Frameworks handle this issue, particularly Spring, WebWork, Tapestry and JSF. In Struts, it's pretty simple to solve. When the form is first displayed, you'll likely go through an Action. In AppFuse, this would be something like UserAction.edit(). In the edit method, you add a saveToken() call to put a token into the session:

// edit method - mark start of operation
saveToken(request);

Then in the save() method, you can check for a duplicate post using the isTokenValid() method:

// save method - check for valid token
if (!isTokenValid(request)) {
    // duplicate submit, continue to success mapping
    return mapping.findForward("success");
else {
    resetToken(request);
}

How does your Java MVC framework handle this? Do you have to programmatically handle it like Struts - or is it built-in to the framework to handle it auto-magically?

Posted in Java at Apr 20 2004, 11:36:29 PM MDT 22 Comments

DJUG Book Reviews

The Denver JUG is certainly a thriving community. For those of you who can't visit us for a meeting - you can still get something from us. Five new book reviews have been added to the Denver JUG web site. Two reviews cover books about automated code generation: XDoclet in Action and Code Generation in Action. The other book reviews are for Core JSTL: Mastering the JSP Standard Tag Library, Pragmatic Unit Testing in Java with JUnit and Java Extreme Programming Cookbook, which covers JUnit and other development tools.

Unfortunately, I gave up my reading aspirations for coding. I hope to get back to reading after Spring Live has been published in June. In reality, however, I'll probably never find the time to read again unless I give up contributing to open source. 24 hours in a day sucks.

Posted in Java at Apr 19 2004, 03:19:33 PM MDT 1 Comment

New PowerBooks

Apple's New PowerBooks (announced today) don't impress me. Sure it's great that you can get a 1.5 GHz processor now, but I want more. I want at least a 2 GHz PowerBook. Why? The simplest reason is easily demonstrated by the following numbers - comparing my 2.6 GHz Windows XP Deskop to my 1.33 GHz PowerBook.

AppFuse TargetPowerBookDesktop
ant compile 44 seconds 25 seconds
ant test-all 6 minutes 7 seconds 3 minutes 18 seconds

Most Mac Heads will probably cry "compare the Dual G5 and see what happens!" I tried doing this at the MySQL conference last week, but the G5s didn't have internet access so I couldn't download Ant and AppFuse to test it out. Regardless, even if I was able to test it out - the G5 is a Desktop - and I want kick-ass speed in a laptop. You can certainly buy speedy Windows laptops.

This post is not meant to be a bash on PowerBooks - I love my PowerBook and I think that Apple makes the best damn laptop hardware out there. I just wish that Megahertz did matter to Apple and they'd give us a faster laptop. Then again, I'm pumped that these PowerBooks are not G5s, 'cause then I'd want one... ;-)

BTW, I tried Jikes 1.20 to speed things up and AppFuse won't even compile. The problem seems to be a bunch of ".class has an invalid format" errors from Cactus. Sorry Jikes, you failed the 10 minute test.

Posted in Java at Apr 19 2004, 09:28:59 AM MDT 10 Comments

Done speaking for awhile

I'm sitting in Julie's mom's house in West Palm right now, trying to report a little about this past week before I go offline for the weekend. If you're interested, you can read about my talks on AppFuse on my SourceBeat blog. The next time I speak about AppFuse it'll be in Colorado in June. I'm scheduled for the Denver JUG that month, and I've been asked to do Boulder's JUG as well. I hope to use that week as a personal deadline for having Sitemesh and WebWork2 as options in AppFuse. I might not be able to pull it off though. I talked to the current owner of my new hobby and it sounds like I'll be driving the bus from San Diego to Denver in the near future. It's got a brand new engine with plenty of power - which is enough inspiration fo me. I've asked my Dad and he sounded interested in joining me for Raible Road Trip #8. The first part of June seems like a great time to embark on this trip. Maybe I'll do it the week after my DJUG preso.

I definitely enjoyed the MySQL Conference, but it wouldn't have been the same without Anthony and Mark. BTW Mark - you need to start a blog. Mark had one session where he told us about 10 or so parameters that you can use to print out debugging information for MySQL's JDBC Driver. I asked him to send me his presentation so I could document them here, but I'm still waiting. It might be a while though - the MySQL company meeting is in Cancun all next week. Mark gets to work full-time out of his house and then lives it up whenever he gets together with his co-workers. Rough life, eh?

Meeting Anthony was a real treat too. He's one of those no-computer-science-degree kind of guys (like Bruce and I), which always makes for fun conversation. The only problem was I couldn't get him to shut up about Python and scripting my Actions all week long. It's like he's in some sort of Python/Beanshell cult or something.

Today, I skipped all conference sessions and opted for a day at Sea World with Julie, Abbie and Julie's Mom Stephanie. It was a great time and Abbie was amazed by all the cool animals. Now I'm ready for a sunny, family-filled, relaxing weekend in West Palm. I'll try to post some pictures if I get around to it.

Shamu
Shamu at Sea World
Steph's Backyard
The Ladies by the pool in West Palm

Posted in General at Apr 16 2004, 10:48:40 PM MDT 2 Comments