Archives for September 2007
pMetrics is like crack
but not in the prostitutes selling their bodies for a fix, possessing more than five grams gets you ten years in the pokey sort of way. It is though highly addictive and sensory overload.
pMetrics has all of the normal stuff that Google Analytics gives up plus a no nonsense developer API with data access in XML, JSON, and PHP, RSS feeds, the ability to track actions, downloads, and outbound links.* There is even a live feed of what actions are taking place on your website. It almost goes without saying that knowing what individual users are reading and how long they are staying there can greatly help you tune your site.
When you sign up, you are given a ’Pro’ account with all the bells and whistles to try out for 21 days. After the trial ends, you revert to a free account which can only support sites with an average of less than 1,000 daily page views and limited access to the API. You will still be able to run all API calls but the date range is limited to the current day and the day before and the result set is capped at 100 if it doesn’t return a basic numeric value(mostly for retrieving action-lists or visitor-info). For a small site, that might not be too bad. With proper caching, you could have historic data.
On Sunday, I demoed a pMetrics widget for my Groovy/SwingX talk at BarCampOrlando[and at Tampa JUG on Tuesday] that was quickly done mostly the night before (BarCamp). As with all my demos, the source is forthcoming, it just needs a little work to handle non-Pro account issues gracefully and to handle caching historical data.
Sign up for a trial account here:

Here are some obligatory screen shots:


*not an all-inclusive list
Tampa JUG wrapup
My Groovy/SwingXBuilder preso, though not devoid of technical difficulties, did go better the second time around. I found yet another projector that didn’t like my Ubuntu setup. Luckily, I made sure to have everything on both partitions so I had to settle with using Windows. Elliott Murphy, whom I met at BarCamp Orlando and works for Canonical, assured me that Gutsy has much better support for projectors. It’s less than a month away.
Not constrained as much by the time and speaking to a Java audience, I was able to delve more into details than I could on Sunday. There were about 20 people in attendance and they had lots of good questions. Here are the answers to the questions I said I needed to check on:
Q: Can you put more than one component on a line in a builder?
I was correct in saying that you could but you would need semicolons. In doing so, you reduce the readability of the construct and why would you want to do that anyway?
Q: How do you construct a MultiSplitPane that divides vertically instead of horizontally?
I advised that if there wasn’t an example on the Codehaus website, I would put one up shortly. There was already an example on the Groovy website showing how to do this.[Here] As the writer of that content, I am slightly embarrassed that I didn’t remember it was there.
Demos:
There was a PMetrics demo using SwingXBuilder, JFreeChart, and SwingX-WS for web services that I demoed at the JUG meeting and showed screenshots at BarCamp. I will discuss in it in a forthcoming entry. The Painter Demo and Calendar Demo are available in webstart format elsewhere on this blog and the source is in the swingxbuilder module at The Codehaus.
A Tale of Two BarCamps
I just arrived back from BarCamp Orlando and for the most part, it was really good. Here’s how it stacked up to BarCamp Chicago
which I attended exactly 3 months ago today:
Venue: Taste was a bit small and signing up for a presentation meant hovering over the speaker in the big room. The walkway between the two rooms was about 3 feet wide not counting the dozen or so people lining the wall. And once you found a seat, once the desired presentation was over, you would wonder if you should sit through or give up the seat knowing it might be hard to find another.
+1 for Chicago
Food: I blogged previously about the abundance of potato pizza in Chicago. The food in Orlando was a bit more palatable. The dinner, although nice, was salad, some sort of crustini[fancy word for sliced French bread], pasta, and more pasta. You can’t really complain about a free dinner but a protein would have been nice.
+1 for Orlando
The Alcohol/snack situation: Being a restaurant, outside food was not encouraged... nor outside drink. Soft drinks were free. Free alcohol as in Chicago would have been nice. Or even just random cookies and chips.
+1 for Chicago
Diversity of the crowd: Orlando was a more diverse crowd than Chicago. I was not the "one" black guy. Not that I obsess about that or anything. There were at least a dozen or two women as well, up from the 3-4 in Chicago.
+1 for Orlando
Cool things: The live flickr feed of BarCamp photos playing on a flat screen TV in the main room. It’s standard for a BarCamp to settle on a tag for photos but I haven’t heard of any others presenting the photos in that manner. It felt like serious photojournalism. It was genius.
+1 for Orlando
Final tally: Orlando 3, Chicago 2.
Seriously, Orlando was a good start. I think it would be more fun next time in a bigger venture with a bit more time per presentation. Twenty minutes felt a little rushed for some presentations...especially those with some extreme technical difficulties, myself included. It was a good test run for my talk on Groovy and Swing coming up on Tuesday at the Tampa JUG.
Upcoming Presentations
If you're going to be in the central Florida area, come and check out my presentation on Groovy and SwingXBuilder:
9/23 BarCampOrlando
9/25 Tampa Java Users Group
Sometimes Test-Driven Development Doesn't Work, and seven other revelations I had during the Summer of Code
After having taken a brief sabbatical from most things SwingX and the last code of the GSoC checked in, I thought it a good time to reflect on some things:
1. Sometimes Test-Driven Development Doesn’t Work.
During the sabbatical, I decided to revist the pdf builder I started to look at when I was just starting the Summer of Code. It was viable idea and deserved to be finished, I thought. As one of those developers that tries to be above board and code using standards and best practices, I realize that sometimes one must be courageous enough to say, this can’t really be unit tested and there is nothing I can do about it. The PDFBuilder is one of those cases. iText doesn’t seem to have been written with unit testing in mind and that’s fine. Testing could be strapped on by it would be flaky and feeble and not really worth the trouble. Luckily, there is a cookbook of sorts that I’ve been using to make sure my builder generates the correct output.
2. The SoC is really long...
I’ve worked on other projects for longer than the SoC period but it different when it’s your concept that is out there for public consumption. And long as hell. Starting a little early made it so I could peak earlier and IMHO higher but it affected recovery as well. And there’s always the worry to do a good job so people don’t look at the code and say WTF?
3. Il m’énerve* to hear people say “codes” or “the codes” to refer to computer code.
This often happened when trying to explain to non-geeks what I was doing.
4. If Google sends you a check via Western Union, you should get and cash it immediately.
I always did so but there were many tales of woe from fellow SoCers who waited until day 30 after payment to pick up payments. [Western union payments expire after 30 days.] This goes for any deadline from Google, it’s better to do it now than wait.
5. Though it’s Google and you think it’s awesome, most people don’t care and just shrug.
Some people will look at you like you smoke crack when you try to explain the concept of open source to them.
6. Murphy’s Law extends to BarCamp presentations.
Nuff said.
7. We may never know what the special message was that Karl Fogel put in one of the copies of “Producing Open Source Software.”
Google sent all participants signed print copies of the book. There is supposedly a special message in one of the copies.
8. Saying it would be “groovy” to do whatever action in Groovy is NOT groovy.
“Il m’énerve” translates to “It irritates me” or “It gets on my nerves”
groovy-pdf is hosted at Google Code. It is in extreme alpha right now.