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 "julie". 270 entries found.

You can also try this same search on Google.

Knowledge of AppFuse and an appreciation of fine wine

It's not everyday you see a job that lists "Knowledge of AppFuse and an appreciation of fine wine" as optional skills. I asked Julie if she wanted to move to Napa Valley, but no dice. Too bad - sounds like a job I'd really enjoy. ;-) Thanks to Solomon for the tip.

Unfortunately, I'm still working on AppFuse 1.9.2 and I've given up on estimating when I'll be done. I'm having a hard time finding time to work on it between client meeting and being a good dad. The biggest frustrations so far are the good ol' component based frameworks: JSF and Tapestry. JSF sucks because of JSP and Tapestry is giving me fits because I can't seem to stuff a <span> inside a @FieldLabel. I'd like to think that component-based frameworks are more flexible than their action-based counterparts, but I'm finding quite the opposite so far.

Posted in Java at May 30 2006, 10:10:35 PM MDT 3 Comments

Wine Country

While last week's Ajax Experience was a good time, it didn't hold a candle to the fun I had this weekend. I closed down the Thirsty Bear and Kate O'Brien's Friday night with Mats, Carlos and a few others. Saturday morning, Mr. and Mrs. Crazy Bob picked me up and we headed up to Napa Valley.

hans fahden The first place we headed was Hans Fahden, which is a small winery in the northern part of Napa Valley. It was strange at first - no one was there, not even someone to serve us. Then a guy showed up, grabbed a bottle of wine and proceeded to give us a tour of the place. For the next hour, we toured his "wine cave" and beautiful gardens. Whenever our glasses were empty, he filled them up. The owner has spent the last 30 years building a spectacular garden with trees, flowers and even a couple of ponds. The gardens are so beautiful now that they've become a hotspot for weddings and have hosted over 800 since they started doing it. It was one of the most beautiful places I've ever been and we couldn't have asked for a better host.

From there, we went to another private tasting, where they kept our glasses filled until we refused. At this point, my toungue could no longer taste the wine, but my brain assured me it was good. After hitting one more winery and sweet-talking our way in (they were closing), we headed back to our hotel to meet up with Cameron and the Tangosol crew.

We had an awesome dinner with several more bottles of wine, then headed to the bars in downtown Santa Rosa. Two hours later we called it a night, much to Crazy Bob's chagrin. He's a big fan of downtown Santa Rosa. Yesterday we drove back to a beautiful day in San Fransisco. I spent most of the day working on AppFuse 1.9.2 (preview, status) and while I didn't finish, I did manage to get a good night's sleep.

This morning, I checked into The W, which is right across the street from JavaOne. The location rocks, the accommodations are swanky, and life doesn't get much better. This afternoon I have meetings with customers, followed by some AppFuse development, followed by JavaOne festivities.

As far as missing Mother's Day (yesterday) and Julie's birthday (Saturday), I'm still not in the dog house. Julie and kids have been living it up in West Palm Beach and having a great time. Today they're heading to Disney World. Sounds like they're having more fun than I am. ;-)

Posted in General at May 15 2006, 10:43:31 AM MDT Add a Comment

6 Years

April 22, 2000 Today is Julie and I's anniversary. It's hard to believe we got married 6 years ago. Actually, looking at Abbie and Jack, it's easy to believe it's been that long - they grow up awful quick. The fun part about this day is reflecting back on our wedding day. We got married in West Palm Beach, Florida - and had quite the turnout. It was a "destination wedding" as they call it, and we had friends and family fly in from all over the country. We made everyone fly down early (Wednesday) and had a golf tournament, went fishing on Julie's step-dad's boat, and lost money on a gambling cruise before our Saturday wedding. It was so much fun that we've been trying to think of an excuse to do it again.

Posted in General at Apr 22 2006, 03:56:21 PM MDT 7 Comments

Tips for Productivity and Happiness at Work

Every so often, I get asked what my strategy is for "getting things done". This morning, I had a short session of mass productivity, and on my ride into work, got inspired to jot down a few tips productivity tips. Keep in mind that I grew up in the back woods of Montana with no electricity and I'm mostly Irish.

  • Write stuff down. The first and most important means to getting things done is to keep a todo list. I keep mine on Ta-da List and update it daily, if not hourly. My two most important lists are "When I have time" and "This Week". I regularly re-order "This Week" for the current day.
  • Quit reading e-mail and blogs. One of the ways I can tell I'm in uber-productive mode is my unread (or starred) mail piles up and I haven't read any blog posts (or blogged myself) in a couple days. I like GMail because I can easily star an e-mail after briefly skimming it. For some reason, flagging e-mail in Thunderbird or Mail.app doesn't work for me - I rarely go back and find those e-mails. With GMail, I'm always conscious I need to revisit starred messages.
  • Work on open source late at night, with a beer on your desk. While I do get the opportunity to work on open source at my day job, I still find that I'm most productive at night. Maybe this is because no one bugs me via e-mail or IM, or maybe it's just because the world is asleep. The strange thing is I often find myself motivated at 3 p.m. for my 11 p.m. workload. However, when I get to 11 p.m., I'm not motivated to work on anything. I've found that cracking open a beer at 11 when I start helps me focus and quit worrying about all the other computer-related tasks I need to do. Also, on beer #2 or 3, you'll start to forget what time it is and really start getting things done. NOTE: this isn't for rookies. If you're a lightweight and get hammered on two beers - just go to bed when you start coding with one eye shut. It helps to sleep in the next day after doing this. If you finish off a six-pack before going to bed, it's probably best not to check your code in - you're probably going to spend the next day fixing it anyway. Regardless, this is a great way to get started on a new feature because you're less concerned about the details and more concerned about the big picture. I've also found that "bug fixing juice" can be great for fixing bugs - it gives you a different perspective on the problem. I told you I was Irish didn't I? ;-)
  • Work disconnected. To further facilitate not checking e-mail or reading blogs, I've found that going to a coffee shop w/o connectivity is my most productive environment. They have liquid motivation in the form of coffee, and you can feed your brain with breakfast/lunch or some kind of snack. My most productive days are the ones where I show up at my local Einstein's (bagel shop) at 6 a.m., have two cups of coffee, and work with my headphones on. After the coffee and uber-productivity, I often have an awesome ride to work and barely notice the miles. NOTE: I've found that I'm more productive writing code late at night and authoring articles/books in the early morning.
  • Listen to music while you work. Some noise-cancelling headphones and your favorite music can do wonders for your productivity. Of course, earbuds work just as well - whatever makes the music sound good. Good music can really help you "get into the groove" of what you're working on, regardless of whether it's writing or coding.
  • Work long hours on Monday and Tuesday. This especially applies if you're a contractor. If you can only bill 40 hours per week, working 12-14 hours on Monday can get you an early-departure on Friday. Furthermore, by staying late early in the week, you'll get your productivity ball-rolling early. I've often heard the most productive work-day in a week is Wednesday.
  • Avoid meetings at all costs. Find a way to walk out of meetings that are unproductive, don't concern you, or spiral into two co-workers bitching at each other. While meetings in general are a waste of time, some are worse than others. Establish your policy of walking out early on and folks will respect you have stuff to do. Of course, if you aren't a noticeably productive individual, walking out of a meeting can be perceived as simply "not a team player", which isn't a good idea.
  • Sleep. While working late nights can be productive in the short term, doing it consecutively will burn you out quickly. Getting a good night's sleep can often lead to greater productivity because you're refreshed and ready to go.
  • Work on something you're passionate about. If you don't like what you're doing for a living, quit. Find a new job as soon as possible. It's not about the money, it's all about happiness. Of course, the best balance is both. It's unlikely you'll ever realize this until you have a job that sucks, but pays well.

To follow up on that last point, I think one of the most important catalysts for productivity is to be happy at your job. If you're not happy at work, it's unlikely you're going to be inspired to be a more efficient person. Furthermore, if you like what you do, it's not really "work" is it?

Here is some general advice I give to folks about jobs and careers. I realize that I'm biased here because I have a good job and I've been fairly successful in my career. However, I also grew up with virtually nothing, and learned all my computer skills on my own. Therefore, I believe that anyone can be successful (meaning: happy with that they do, and financially stable at the same time) if they put their mind to it.

  • If you're not happy at work, quit. I got into contracting early-on in my career (6 months out of college), so I got spoiled with good rates early on. It was also the late 90s, so you could easily switch jobs if you didn't like the one you were in. However, I've always had the policy that if you hate your job for more than 2 weeks, quit. It's just not worth it. Some people enjoy bitching about their jobs and complaining about their co-workers, so this doesn't apply to everyone. However, if you're truly miserable - quit. I've done this a couple times, and it's always led to better opportunities (even if I had to wait 3 months). Julie's done it once or twice and it's always worked out for the better. Once she even got a 20% raise by quitting her traveling-consultant gig with KPMG and going back to her old company, Qwest.
  • Always try to be a contractor before a full-time employee. This especially applies to younger folks who don't need the security of insurance for the family, stock plans, etc. Contractors typically make 50% more than full-time employees and tend to be excluded from company politics that might make the workplace difficult to deal with. While you won't get billable vacation time, you will get the freedom to take however much vacation you want - as long as you get your stuff done. The higher rates can generally make up for the unbillable time while on vacation. However, if you travel too much for fun (or conferences, etc.), it's likely your year-end salary will equal that of a full-time employee. If you make good money as a contractor, you'll also get the opportunity to start your own company (to save money on taxes). This can be a great learning experience. The biggest fear that folks have about "going independent" is they'll have a hard time finding their next gig. If you're productive and blog about what you're doing, this shouldn't be a problem. I haven't had an "interview" since 2002 and haven't updated my resume since then either. Networking at your local JUG and conferences is key.
  • Don't work at a company with a two-week vacation policy. I've never worked at a company with a two-week vacation policy, and I hope I never will. The two full-time gigs I've had in my career have had no vacation policy. This is usually only found in startups - but it generally amounts to "get your shit done, and you can take off all the time you want". My parents both work for the BLM (government agency) and they get 6 weeks off a year. Furthermore, they can earn "comp time" (more days off) by simply working overtime. If you have the ability to take time off whenever you want, it'll likely lead to you being more motivated to work long and hard - b/c you know when you finish that project, you're heading to Cancun for a week.
  • Don't travel if you have kids. If you're single, traveling for work is pretty cool. New places, new people to meet - and seeing the world can be very cool. If you have a spouse, it's likely your desire to travel will decrease, but it's still not that bad. If it helps your career, it's probably a good move. It also helps to save money since everything you do is generally expensible. When Julie and I first met, she traveled 100% and made $20K more per year b/c of it. When you have kids, everything changes and traveling sucks. You miss their first steps, and when they get to toddler-age, they'll want to go with you. Hearing your daughter say "Daddy, can I go with you?" can be heart wrenching when you're leaving on a Sunday afternoon to spend a week with people you've never met before.
  • Ask for more responsibility. If your job sucks, but the company is pretty cool - you may want to ask for a shift in responsibilities. I was once an HTML Developer at a .com. It sucked because we were constantly waiting on the Java Developers to fix bugs we found in their code. Finally, I got tired of waiting and asked my boss to show me how to fix the Java bugs. Granted, I wrote some pretty horrendous code at first, but my boss and co-workers helped a lot and w/in a year I was doing 80% of the Java Development.
  • Most things can be learned by reading. If you want to learn something new (for your current or next career), the best thing to do is read. The world's knowledge resides in books and you can learn a lot. Of course, the best way to retain that knowledge is by doing, but reading is a great first step.

Those are my tips, many of them off the top of my head. I may add more as time goes on - but hopefully this helps in the meantime. Please share yours if you have any.

Posted in General at Apr 14 2006, 11:24:28 AM MDT 55 Comments

Busy Weekend

I was planning on taking this weekend off to let my left arm heal a bit. Furthermore, Julie and Holly headed up to Steamboat for some skiing and it was "Daddy Weekend". While the kids and I had a lot of fun, I was unable to overcome my addiction to work.

Saturday night I finally managed to get AppFuse running under CruiseControl. Previously, I'd always run into OOM exceptions before the 10-12 minute process of testing a particular flavor. This seems to be due to Ant and the copying of 700 files 3-4 times makes it run out of memory. For each web framework, the basic install is tested, then tested again with AppGen, and finally iBATIS is installed and tested. While the tests all run and report pass/failed correctly, the memory is so close to being maxed that e-mail cannot be sent, and half the time the webapp isn't viewable. Nevertheless, the process keeps on humming. To see the build status for each different AppFuse flavor, see http://home.raibledesigns.com:8080. Having you all click on this link should crash CruiseControl for sure. ;-)

Last night, I got caught up with working on the appfuse.org website. Rather than having a splash page, I changed it to use frames to wrap the java.net homepage, as well as other AppFuse sites. The top navigation should allow you to navigate to java.net, the wiki, demos and JIRA w/o having to type in new URLs. The fun part of this exercise was using CSS to hide images and compress the standard java.net header. If you'd like to do this for your java.net project, add the following to your www/project_tools.html page:

<style type="text/css">
    .topline, .topbar { border: 0 }
    #banner { height: 0px }
    #banner img { display: none; }
</style>

This week should be a pretty good one. I'm working full-time on finishing up AppFuse 1.9.1, and I hope to have it released before this weekend. My parents are coming into town on Thursday night, so that's my deadline. If I don't have everything done by then, I'll probably release anyway. For the full plan of attack for 1.9.1, please see The road to 1.9.1.

If I can finish the AppFuse release this week, I can work on Spring Live next week. After that, I'm booked up with client work for quite some time. So wish me luck, I'll be burning the midnight oil most of this week.

Finally, it was nice to see that many of you bought into my April Fools joke. While it wasn't as good as last year, I still had fun writing it. As some noted, it's not that unbelievable. However, the part about me dropping something for another is out of character. I changed my major 3 times in college, but never dropped the previous ones. For the record, I like Rails and I've been promoting it at Virtuas and SourceBeat. We've talked about starting a Rails practice, but (to be honest) haven't seen a whole lot of demand from clients. Hopefully that will change in the future and virtuas.com/rails will get filled in.

Posted in Java at Apr 03 2006, 04:09:19 PM MDT 1 Comment

Back from Vegas

This weekend was one of my smoothest returns from Vegas in my life. It probably helped that Julie joined me there on Friday and we flew back together on Saturday. My BOF on Friday night was very well received and I heard a lot of positive comments about it afterwards. What do you expect when you give people free beer. ;-)

After the BOF, the Virtuas Crew had a kick-ass dinner at BOA Steakhouse in Caesar's. Before we were done, a college buddy of mine arrived in Vegas, so Julie and I met him at Harrah's for some blackjack and craps. We had an fun night of gambling with my buddy, who started with $5K at the first blackjack table. Apparently, Julie brought him luck and he ended up winning a few grand by the time the night was over. We had breakfast and walked back to Caesar's as the sun was coming up. We saw Gier and Hani catching cabs as we were walking in. 5 hours later, we'd had a good night's sleep and headed to the airport. We got sidetracked at Emeril's for lunch and enjoyed some good laughs with a couple friends before leaving.

When we got home last night, both kids had just fallen asleep. Of course, we wanted to wake them up, but also realized that sleeping children is quite a blessing. They were tickled to death when they woke up this morning and we were home. Today was a great day, and a big reason why it was so easy to transition from Vegas to Denver. The kids and I let Julie sleep in a little and took a stroller ride to the local bagel shop (a mere 3 blocks away) for a couple hours. It was a windy walk and we arrived home motivated to do some kite-flying at the park. We had fun at the park and it was super cute watching Abbie fly her first kite. After that, we headed to Dave & Buster's for lunch. Abbie never let me sit down because she wanted to play games the whole time. 2 hours later, we were on our way back home.

The day ended with Jack and I running errands. I needed to buy a new laptop backpack since mine got shredded in the wash a couple of weeks ago. We headed to Gart Sports, where I shopped and Jack stabbed stuff with a tent stake he found. He was like a hunter on the loose, crouching, jumping and yelling at stuff throughout the corner of the store we were in. It's a good thing no one else was around.

I ended up with the only backpack that could fit my laptop, which seems quite strange. I've been to the Apple Store, REI and Gart Sports and I've found the laptop backpack situation is abysmal. A couple of years ago, the selection was quite good. Oh well, I only paid $35 and I'll probably look for one online this week. The ideal backpack would have a built-in camelback and laptop holder (since I use it primarily when commuting on my bike).

After Garts, we headed to the Apple Store in Cherry Creek. I had to buy a new power cord for my MacBook Pro. I left mine in Vegas, possibly at the BOF. The Apple Store is pretty close to the "breakfast playground" - so I had to let Jack play in it. 15 minutes of jumping on eggs, waffles, climbing on bananas and sliding down bacon made Jack a very happy camper.

It's great to be home. AFAIK, I'm not travelling for a couple weeks, possibly more than a month. My next big trip is to The Ajax Experience and JavaOne in May. This week is supposed to be in the 60s, so I'm looking forward to a nice week of Colorado spring weather. With any luck, I'll get a signification amount done on both AppFuse and Spring Live this week. It might take a couple of late nights to make it happen, but I feel pretty motivated right now.

Posted in General at Mar 26 2006, 10:06:32 PM MST 1 Comment

[TSSJS] Friday Morning: RIFE and Seam

This is my 2nd day in Vegas and so far this town is treating me fairly well. I haven't lost all of my money, but the $25/hand blackjack tables haven't been kind. Yesterday, I woke up with a glass full of Berocca next to my bed - which means I passed out before drinking it. I needed it too, Matt Filios won a poker tourney and a bunch of us enjoyed "bottle table" (with Kettle One vodka) to celebrate. Spendy and good, but painful the next day.

Last night, I heard it was Crazy Bob's bachelor party, so I went to bed early to avoid the debauchery. Julie and a good friend of mine are flying in tonight, so there will be plenty of that this evening. So after a good night's sleep, I'm up early and attending the conference. The first hour has a lot of good sessions: Introduction to Seam (Gavin), Dive into RIFE (Geert), OSWorkflow (Hani) and Transforming Enterprise Java into a Commodity (Geir).

I'm sitting in Geert Bevin's session titled "Dive into RIFE" and it's a pretty small audience - maybe 20 people. Geert is the CTO of Uwyn, a small custom application development company. He's the founder of RIFE and creator of many RIFE projects: RIFE/Crud, RIFE/Jumpstart, RIFE/Continuations, Bamboo (forum), Bla-bla List (RIA todo list), Drone (Information bot) and Elephant (blog).

What is RIFE? It's a full-stack component framework to quickly and consistently develop and maintain Java web applications.

  • Integrated layers allow you to quickly get results with a minimal amount of code
  • Best practices are enforced in a pleasant way, providing many additional features and a consistent approach throughout all applications
  • Components can easily be resused in many contexts
  • Creating maintainable applications is our first goal
  • A lot of attention goes to code-level developer comfort
  • Frustration reduction by instant changes and reloads
  • Creative solutions for difficult problems
  • Embraces established standards (XHTML, HTTP, SQL, ...)
  • Geared to developing web applications and doesn't abstract away too much
  • Everything besides the web engine is designed to be independently usable
  • Attention to the whole life-cycle of your application

Geer is now talking about all the different pieces of RIFE - how it has a JDBC abstraction like Spring JDBC, web services support (even publishing of RSS Feeds) and a content management framework. Now we're going to look at RIFE/Jumpstart.

What is RIFE/Jumpstart? It's a source archive that you unzip and run. It makes it easy to start with new RIFE applications and contains everything you need (including Jetty). It has immediate support for more common development environments (X-develop, Netbeans, Eclipse, IDEA and Ant). Geert just showed us a video of getting started with Jumpstart and how you can easily use X-develop to build and deploy the app to Jetty. The Jumpstart application currently uses JUnit, but since the RIFE teams is starting to use TestNG more and more, it's likely they'll change in the near future. RIFE Jumpstart looks similar to AppFuse, except they have the save+reload problem solved - using JVM HotSwapping.

Now I've moved to the Introduction to Seam session. Gavin King is the presenter and the room is packed. It's a big room, so that's saying a lot. Gavin is talking about JSF, how backing beans work and what's in the faces-config.xml. How does Seam compare to J2EE? Much simpler code. There's fewer artifacts (no DTOs). Less noise (EJB boilerplate, Struts boilerplate). More transparent (no direct calls to HttpSession or HttpRequest). It's also much more powerful for complex problems.

JSF is amazingly flexible and extensive. EJB interceptors support a kind of "AOP lite" and EJB3 is a powerful ORM engine. Everything (except for the JSP pages) is unit testable can be tested with JUnit or TestNG. For testing the view layer, Gavin recommends using Selenium.

A backing bean is often "pure glue" and is just noise. Furthermore, it accounts for more LOC than any other component. It doesn't really decouple layers, in fact the couple is more coupled than it otherwise would be. Gavin calls this "wedding cake architecture." These applications look good in the window, but don't taste good when you eat them. I get his point, but have to disagree on the taste of wedding cake. It's always been good at the wedding's I've attended. ;-)

By default, web applications in general do not work in a multi-window application. To make it work, it generally requires a major architecture change. A couple of other areas for improvement in traditional web applications: application leaks memory (not cleaning up session objects) and "flow" is weakly defined. Navigation rules are totally ad hoc and difficult to visualize. How can this code be aware of the long-running business process?

JBoss Seam - what does it do? It unifies the EJB3 and JSF component models. It simplifies Java EE 5, filling a gap. In addition, it integrates jBPM and makes it more developer-friendly. Deprecate so-called stateless architecture. Decouple the technology from the execution environment. Run EJB3 apps in Tomcat or in TestNG or use Seam with JavaBeans and Hibernate. Gavin is using Tomcat for the first time and thinks it's hot-deploy architecture is totally broken. Of course, he usually uses JBoss and never has a problem with hot-deploy. It's interesting to hear this from Gavin, especially since I've heard from others that Hibernate breaks the reloading - and it's not the server's fault.

I'm going to head to another session now, but I did look ahead at some of Gavin's slides. Interestingly enough, the jPBM pageflow definition's XML looks quite similar to Spring Web Flow. Speaking of flows, I heard an interesting comments from someone yesterday after they attended Geert's continuations talk. Apparently, after seeing his talk, they think that RIFE's continuations offer a much more elegant solution to pageflow than these "XML programming" mechanisms.

I tried to go to Hani's OSWorkflow talk, but he was doing Q&A when I walked in. Apparently, he finished 25 minutes early. Then I walked into Geir's talk only to find Dan Deiphouse finishing up an XFire talk. Oh well, there's nothing wrong with having a few minutes to mingle between talks.

Posted in Java at Mar 24 2006, 11:56:30 AM MST 7 Comments

Back from Boston, getting ready for Vegas

Gloucester I had a fantastic time in Boston this past weekend. A college buddy of mine lives there with his girlfriend, and another college buddy flew in from NY. Friday night was a ton of fun, and I found it amusing that the bar we were at used the default background from Windows XP as their "mood setting theme" on many of their TVs.

We survived the night quite well thanks to Berocca and enjoyed our Saturday touring my friend's hometown, Gloucester. The flight home on Sunday was nice and it was awesome walking into a house with kids screaming "Daddy!!". I took the day off yesterday to spend some time with the fam. We made the most out of it with a trip to the Natural History Museum, and some sledding in the fresh snow.

Today, I'm back in the office with no motivation to work. I can't believe how many things I have on my plate right now. Unfortunately, the 100+ e-mails I need to answer, the AppFuse bugs I need to fix, and the Spring Live chapters I need to update will all have to wait. My schedule doesn't permit any real work this week. Instead, I have to fly out to Vegas tomorrow for TheServerSide Java Symposium. The schedule looks really good, so I hope to learn a lot at this show. Julie's flying in Friday night, so it should it be another fun week. With March Madness in full force this week, Vegas is sure to be a crazy place.

Posted in General at Mar 21 2006, 09:20:27 AM MST 1 Comment

The Ajax Experience Redux

When I found out about The Ajax Experience, I was a little disappointed.

This is a show I'd love to attend. However, it ends the day before Mother's Day - WTF is up with that?! For those of us who happen to be family men and are planning on attending JavaOne, this sucks. If I want to attend The Ajax Experience, I'd have to fly back on Sunday and then fly back to San Fran on Monday for JavaOne. Booo hisss. Looks like I'll be missing this show.

The Ajax Experience I'll admit, I sounded like a winey little beotch when I wrote this. In reality, the opportunity to go to two shows in the same town in San Francisco is a dream come true. And some how, some way, I've managed to get Julie's blessing to do this. It's her birthday that Saturday, and Mother's Day that Sunday - yet I'm free and clear to goof off in San Francisco with a bunch of geeks. I love this woman. ;-)

Are you going to JavaOne? What about The Ajax Experience? If you're going to be in San Francisco that weekend, let me know - maybe we can grab a brewski at the Thirsty Bear.

Posted in Java at Mar 11 2006, 12:01:48 PM MST 7 Comments

Why I like Tomcat 5.5.12 better than Tomcat 5.5.15

Here's what happens with Tomcat 5.5.15:

alotta:~/dev/appfuse mraible$ export CATALINA_HOME=$TOOLS_HOME/apache-tomcat-5.5.15
alotta:~/dev/appfuse mraible$ ant deploy;tstart
Buildfile: build.xml

...

deploy:
    [unwar] Expanding: /Users/mraible/Work/appfuse/dist/webapps/appfuse.war into
 /opt/dev/tools/apache-tomcat-5.5.15/webapps/appfuse

BUILD SUCCESSFUL
Total time: 3 seconds
Using CATALINA_BASE:   /opt/dev/tools/apache-tomcat-5.5.15
Using CATALINA_HOME:   /opt/dev/tools/apache-tomcat-5.5.15
Using CATALINA_TMPDIR: /opt/dev/tools/apache-tomcat-5.5.15/temp
Using JRE_HOME:       /Library/Java/Home
alotta:~/dev/appfuse mraible$ ant reload
Buildfile: build.xml

reload:
   [reload] FAIL - Encountered exception java.lang.NoClassDefFoundError: 
org/apache/log4j/spi/VectorWriter

BUILD FAILED
/Users/mraible/Work/appfuse/build.xml:1063: FAIL - Encountered exception 
java.lang.NoClassDefFoundError: org/apache/log4j/spi/VectorWriter

Total time: 1 second
alotta:~/dev/appfuse mraible$ 

Here's what happens with Tomcat 5.5.12:

alotta:~/dev/appfuse mraible$ export CATALINA_HOME=$TOOLS_HOME/apache-tomcat-5.5.12
alotta:~/dev/appfuse mraible$ ant deploy;tstart

...

BUILD SUCCESSFUL
Total time: 4 seconds
Using CATALINA_BASE:   /opt/dev/tools/apache-tomcat-5.5.12
Using CATALINA_HOME:   /opt/dev/tools/apache-tomcat-5.5.12
Using CATALINA_TMPDIR: /opt/dev/tools/apache-tomcat-5.5.12/temp
Using JRE_HOME:       /Library/Java/Home
alotta:~/dev/appfuse mraible$ ant reload
Buildfile: build.xml

reload:
   [reload] OK - Reloaded application at context path /appfuse

BUILD SUCCESSFUL
Total time: 3 seconds
alotta:~/dev/appfuse mraible$ 

Looks like I'll be sticking with 5.5.12 for the foreseeable future.

Posted in Java at Mar 01 2006, 12:17:13 PM MST 10 Comments