Did you know that you can change Tomcat's timezone? I didn't, but I learned how to today from Dave. Just create an environment variable, CATALINA_OPTS and add a value similar to the following:
BTW, the values in CATALINA_OPTS should be separated by spaces. Here is a list of possible timezones.
I spent most of the day today in the library, pounding away on my keyboard trying to get a good start on my first chapter, Security in Web Applications. I put together suggested outlines for my two chapters over the weekend, and I'm posting them here for your review. I tried to convert them to PDF, but then decided to leave them as Word documents so you can 1) see the outline view, and 2) comment in-line if you'd like. I'll also post the PDF version (thanks to FastPDF).
It was difficult getting started today, but once I got moving, I found that the words just kinda flowed out and it was rather enjoyable. The bad news is that I have until Friday to complete some 40-odd pages and I'm going skiing tomorrow with Julie's uncle, Chris Voda. Actually, the skiing is the good part, it'll clear my head and get me ready to write like a coder in the zone.
Brett hooked me up with this:
Make Phoenix Even Faster.
Gleemed from the Phoenix forum again, comes this tip from mfk: Adding
the line: user_pref("nglayout.initialpaint.delay", 0); to your user.js
file makes Phoenix render pages very fast. Try it out. It's kinda eerie
seeing Mozilla go this fast. laszlo provides the explanation of why in
this post: Gecko normally delays the... [Blogzilla - a blog about Mozilla]
On my system, it's named
prefs.js and it's located in
Now Phoenix is faster to open than IE on my XP box!
Erik Hatcher has released his "much hyped and long awaited sample application" demonstrating how to generate some Struts goodness with XDoclet. You'll be happy to know that I've been swapping e-mails with Erik a lot in the past couple weeks - so my struts-xdoclet app is very similar. Here are the details:
It is a trimmed down version of the application Steve and I developed
for our Java Development with Ant book.
Relevant to Struts folks are these tidbits:
- XDoclet is generating struts-config.xml, validation.xml, web.xml,
- LabelTag (currently mysteriously busted for required tagging) is
included. This tag styles field labels differently if its in error, and
(when its not busted, it works on my production app actually) it shows
an asterisk by required fields.
- strutsgen: a one-off starter generation for JSP's and
ApplicationResources.properties snippets for cutting and pasting into
the main application. It uses XDoclet to process a specified form bean
and uses the fields it finds for generation.
- Use of StrutsTestCase for Cactus testing.
- Maybe some other Struts goodies lurking there that I've forgotten to
The application itself is a document search engine, based on Lucene, and
should run out of the box in Tomcat or JBoss. It even has the ability
to (at build time) toggle between whether to use a session bean or not
(functionality is the same either way). By default, you can simply
deploy the WAR that you've built and it will work without EJB, but if
you are interested in exploring the session bean piece it can be turned on.
I am in the process of creating much more detailed documentation, but I
wanted to get this out sooner rather than later. If you find any
problems or have any questions, please do not hesitate to let me know so
I can refine it and post updates.
The one documentation I need to provide now is to note that you'll need
j2ee.jar to build. I include all other API's. To build, unzip the file
(link below) and it will expand into JavaDevWithAnt directory. In that
directory, run Ant. If you have J2EE_HOME set you shouldn't need to do
anything... just "ant". You'll also need to build a site index, so run
"ant build-site-index". This is intentionally two separate steps. If
you don't have J2EE_HOME set, then you need to provide j2ee.jar to the
build. Do it this way:
Where "/path/to/my/j2ee.jar" is the actual path to your j2ee.jar
Post any questions/problems to me directly. E-mail me at
You will need JUnit 3.8(.1) as I take advantage of the new lack of
required String-arg constructors. junit.jar should live in
ANT_HOME/lib. Ant 1.5(.1) is required also.
There will be updates in the next week or so as I polish the
documentation and address any issues that turn up.