Posts Tagged ‘Apache’

A busy yet unexciting couple of weeks

June 26, 2009

I haven’t posted in a while. It’s not that I haven’t been doing anything, it’s just that what I was doing was the basic stock and trade of any programmer – coding. J2EE with a bit of Google’s Web Toolkit (GWT) thrown in. And none of it pays the bills… just a hint to anyone out there with work that needs doing.

It’s not been a week without discovery though. I’ve been using Apache for quite a few years now and thought I knew it pretty well. Heck, I’ve even written Apache modules! But I’ve always been a bit of a small time user in that I’ve never worked on anything that really pushed it to the limits, except in a test environment. When I started testing my GWT application though, all that changed. Performance was sluggish, taking upwards of 30 seconds to load a page when tested remotely. This is obviously unacceptable, but I’d made no effort on the performance side, so I wasn’t really surprised. I’ve made a living developing and using tools that model the differences between a testing laboratory and the real world. And my real world consisted of multiple tiers that were actually multiple virtual machines running on my development machine and a DSL link (i.e. high speed on the requests, not on the responses) connected through DDNS. Of course it’s slow.

YSlow to the rescue. It’s a great plugin for Firefox from the folks at Yahoo that measures why pages are slow to load and more importantly offers suggestions for improvement. The first thing it suggested was I use mod_deflate to compress my files. I didn’t even know you could do this! Where have I been? What a difference this made! I’m now down to about 3 seconds a page.

Of course, it had other suggestions as well, including cache settings, ETags, and so on. I’m not so worried about them yet, as I’m still in pretty active development, but they’re good to know. Overall, GWT is pretty cache friendly, but there are some files, such as my CSS files, that are still changing pretty quickly. It did surprise me though how limited the configuration options are for Apache when it comes to caching files. I can set options according to a mime type, but not according to a file pattern. This would be useful for caching files such as *.cache.* and *.nocache.*. These are questions that will have to be addressed either by module or by process before deployment, but I’m happily ignoring them for now.

The other tool that’s been really useful is Firebug. This was required for YSlow, but the best use I made of it was in debugging my CSS. It allowed me to look at individual elements and discover what styles were being applied. This is very useful when using GWT as the styles may not always be what you expect. It definitely reduced the amount of cursing I did.

Then again, perhaps the most significant event of the last couple of weeks is that there were no significant events. My life as a programmer has taught me to expect otherwise.

There’s another week or so of heads down development, but then I tackle interesting things again, such as instrumenting Geronimo with ARM. AspectJ, here we come!

ARM4 daemon is now part of Fedora

April 3, 2009

Well, it’s been a long road. I’ve been working on the agent for about 5 years now, and working through the Red Hat approval process for about a year. The code’s in and committed for Fedora 10 and later, so it should start showing up as soon as it gets through the updates process.

More packages should come soon, including Python language bindings and an Apache module.

See http://www.arm4.org for more details.