« July 2006 | Main | September 2006 »

August 30, 2006

Tools We Use at FeedBurner

I recently wrote that we had recently started getting more rigorous with proactive performance testing at FeedBurner, so I thought I'd share some of the tools that we're using to get the job done. If you have any suggestions for other tools that you think would be useful, please let me know!

For load generation, we're using JMeter. Yes, it's clunky, awkward, and ugly, but once you've twisted your brain around the underlying model, it's actually usable. We also considered using The Grinder, but it just didn't look compelling enough to switch to.

jmeter-sample.png

For pre-production use case evaluation, as well as ongoing monitoring of our production systems, we use Cacti to monitor the app servers, the db servers, and the switches. Joe even wired up the memcached servers, so we get ongoing cache performance monitoring as well. I don't know what we'd do without Cacti.

sample-cacti.png

For profiling, we use JProfiler. Yes, believe it or not we'll occasionally pay for software. We hook into the Tomcat servers on our pre-production boxes and do remote profiling. Sure, I've been tempted to try out the free tools available with Eclipse TPTP, but JProfiler just does a great job so it's not worth the hassle.

jprofiler-sampler.png

Those are the three tools that have made a big difference for us. If you have some favorite tools for this kind of an app, please let me know!

August 29, 2006

Pro Java EE 5 Performance Management and Optimization

I'd like to tell you about another Java book that I've found useful. Today, we have Pro Java EE5 Performance Management and Optimization by Steven Haines. It's about ... yes, Java performance: what is it, how do you measure it, how do you improve it, and how do you dig out when it shits on your head. There are a ton of resources on the web and elsewhere on this subject, but what I like about this book is that it brings some formality to the table. "Performance" is such an amorphous term, yet eminently measurable. This book helps you get your arms around the subject and suggests a very specific way to start thinking about managing performance on an ongoing basis.

At FeedBurner, the scalability and efficiency of our core app is obviously very important and has a direct bearing on our equipment purchasing plans. But, to be honest, we haven't been terribly formal about things. Sure, we run our code through a profiler on occasion, and we'll tweak our jvm settings here and there, but for better or for worse, most of our performance tuning has been reactive, usually driven by frequent db query measurement and analysis.

We've started to become a bit more rigorous, though, so the timing of this book is very fortuitous. This book covers the spectrum, from "process" all the way down to suggested JVM garbage collection settings. Chapter 10 ("Java EE Performance Assessment") is especially valuable -- it's a great overview of everything that you should be paying attention to if you have a system that needs to perform.

The writing is fairly good, although there's quite a bit of repetition, and the beginning of each chapter is a little bit Celestine Prophecy, but the author can be forgiven for trying to make things interesting. Also, Mr. Haines works at Quest Software, which produces diagnostic tools like JProbe, but his advice is almost completely tool-agnostic, which I appreciate.

So, a good book to have on hand -- you should really consider getting it if you're responsible for a web-based Java application!

You can read an excerpt here: Solving common Java EE performance problems

August 25, 2006

FairUse4WM Works

I can confirm that FairUse4WM works in stripping the license from a DRM'd music file. I just tried it with a Yahoo! Music Unlimited file and it took it from this:

drm.gif

to this:

undrm.gif

Now, I have no intention of stopping my subscription to Yahoo! Music Unlimited (for which I have professed my love on every possible occasion), and my portable music player and my networked music player both support PlaysForSure subscription content. So why would I even bother with this program? Because more than half the time it's a complete nightmare getting my Roku Soundbridge to play subscription content. PlaysForSure my ass. I'm pretty sure it's the fault of the Yahoo! Music Jukebox, but it's so hit-and-miss getting a song to play on the Roku that I'm tempted to use this program to un-DRM songs that I know I'm going to want to play. It's really frustrating to hear from Jessica (who's turning four next week) "Daddy, let's hear the Yeah Yeah Yeah song!", followed by me trying to play it on the Roku, having it not finding the song, rebooting the Roku, restarting Yahoo! Music Jukebox, trying again, only seeing half the songs, rebooting the Roku again, finally finding the song, only to have it timeout trying to acquire the license.

I just want to be able to do what I'm supposed to do, and if FairUse4WM will let me do that for personal use, then I have no qualms about using it. Thank you, FairUse4WM people!

August 14, 2006

Spec Revision for RSS 2.0

The RSS Advisory Board approved a specification revision ... ahhh! What does it mean? How do I stay up-to-date??? Here you go, this is all you have to do. If you have a <docs> element at the channel level, just change it from this:

<docs>http://blogs.law.harvard.edu/tech/rss</docs>

to this:

<docs>http://www.rssboard.org/rss-specification</docs>

All set! As you can see, it's not a big deal.

August 04, 2006

Responding to Tom's RFP

Tom Carroll has a great list of things he's looking for in a feed management service. Let's see how FeedBurner stacks up!

"The migration to the service must be seamless for my current subscribers"
Answer: Yes ... see "Can I keep my original feed URL but still use FeedBurner?" and "Pointing an existing feed URL at your new FeedBurner URL".

"The service should provide a suite of metrics that allow me better understand who, how often, when, how long, how many times (You know what I mean, the numbers)."
Answer: That's the foundation of FeedBurner. I think you'll be pleased with the stats available to you.

"In the case that I choose to leave your service, I must be able to migrate my feeds transparently and also be able to migrate my usage data."
Answer: To leave, see "Ciao, FeedBurner". To export your usage data, see "Awareness API and Subscriber Numbers".

"I would like support for one click subscription to the various news readers."
Answer: See our Browser Friendly service. To see it in action, click on my feed in a browser.

"The service must have tight wordpress integration."
Answer: Please see Steve Smith's excellent WordPress FeedBurner Plugin.

"Integration with analytical packages say like Google analytics"
Answer: We don't have an integration with Google analytics, but how about Mint? And wait until you see what we have cooked up after we ingest Blogbeat!

"feeds must be human readable"
Answer: Again, see our Browser Friendly service.

"I would like it to support leave comment from the feed."
Answer: Use our "Add a comment" FeedFlare ... it's somewhere on this list of "101 FeedFlares for a Better Tomorrow".

"Configurable support for social network services like Digg or del.icio.us (Sometimes I want it on, sometimes off)"
Answer: FeedFlare to the rescue. You choose which services you'd like to add to your items in your feed.

"Support for the widest set of RSS extensions"
Answer: Yep. We support them. And all feed formats.

"A strong record of availability, reliability and scalability"
Answer: This is the most important quality of whatever you choose for feed management, and it's our number one priority. I think our availability track record shows that. We also have a number of contingency plans in place that we hope we never have to enact, like our "Feed Insurance" capability that all of our publishers get for free.

"Should support multiple feeds per site, no limit."
Answer: We support multiple feeds per site, no limit.

"Integration to see where my feed is bookmarked and subscribed"
Answer: Part of of our stats package includes the ability to see where the items in your feed have been read and possibly resyndicated. See "And There Was Much Rejoicing: New FeedBurner Statistics" for more info.

"Advertising, I prefer none."
Answer: No advertising, unless you want it and have a certain threshold of subscribers. See "Does FeedBurner put ads in my feed without my consent?"

I hope that gives you enough confidence to give FeedBurner a try, Tom!