Skip to content

My Firefox plugins

I recently moved to a new computer, and have been rebuilding my desktop environment.  I just wanted to list my Firefox plugins for future reference.

  • The Web Developer Toolbar lets you view css, disable javascript, resize your browser precisely, outline block elements and so much more.
  • Colorzilla is invaluable for a developer like me to copy a color palate correctly.
  • S3Fox lets you manage Amazon S3 buckets and their content.
  • Firebug lets you examine web pages in detail, including network operations/
  • YSlow is an add on for Firebug that evaluates site performance based on a variety of metrics
  • Some kind of whois tool–sometimes you need to know who registered that domain name

These are my drop dead extensions for typical web development work.  What am I missing?  Do you have any to recommend?

Upgrading WordPress is shockingly easy

I was all set to write a post about my experience with the most recent BDNT, when I got distracted by an excellent post from Josh Fraser about never using captchas–excellent post well worth the read. After reading through the comments, mollom seemed like a great way to avoid captcha and comment moderation, and I decided to give it a try. However, mollom didn’t work on my ancient version of wordpress (2.0). This being a weekend I’m heading out of town, it seemed like the perfect time to upgrade my wordpress site (the backend–I hope you’ll notice that the soothing front end look and feel hasn’t changed).

I browsed through the releases list to find the oldest one with automatic upgrade functionality, and then followed the quite painless upgrade guide. From there, it was a pretty simple matter to automagically upgrade to 3.0. Shockingly easy.

Overall, it looks like there are a few snafus–the home page didn’t have a sidebar because of post content for a bit, my tagging plugin doesn’t appear to be compatible with this version of wordpress–but it looks like all the content is there. If you see any content that looks broken, and you feel charitable, please post a comment on this entry.

Piwik now has goals

About a year ago, I wrote about piwik, a replacement for javascript based analytics tools like Google Analytics.  I installed it on a couple of my sites, and have been watching it progress with regular updates.  As of the latest version (0.6.3), they now have goals!  To me, that is one of the key features of any analytics tool.  Now you can have the analysis and not have to share it with anyone else (though you do have to update and maintain the software yourself, unless you use a site like My Free Web Stats).

After enabling the goal plugin, I set up a quick goal to track commenting on my blog (or at least if someone clicks the submit button on the comment form).  The basic documentation on goal tracking doesn’t discuss how to do this, though it does cover url based tracking pretty well.  A quick search turned up this page, which explains how to write the javascript to track a goal manually (which I then placed in an onclick handler).  This bug post on goal tracking via links may be useful too.

I’m happy to see a well done open source alternative to analytics tools that lets you control your data.  Piwik probably won’t be of interest to many people (most will just drop in Google Analytics and call it good), but for a few may be indispensible.  And support for goals is a key part of the maturation of this project.

[tags]piwik,goals,opensource,analytics[/tags]

Malware Removal Guide

I had an issue last week with my Windows PC, which is currently running Windows XPSP3.  Mac users, you can stop reading right now.

Midafternoon one day, I started receiving errors when I would try to open certain executables by clicking on their icons (on the desktop, the start menu, in explorer).  The error message was “The specified path does not exist” followed by the pathname of the executable.  When I opened the file manager and browsed to that path, sure enough, the file was there.  In addition, when I shut my computer down, I was seeing the 0xc000012 error message.
There were some really weird things about this behavior.  First of all, it affected some executables (like notepad and all my browsers) but not others (like yahoo messenger).  Second, starting up the executables from the command line worked, as did starting them up by another program (as in, one of the programs which started up fine had a ‘check for updates’ option, which started FireFox just fine).  Also, I could start any program by right clicking on it and ‘running as’ a different user.  Finally, in safe mode, everything worked fine, which indicated, thankfully, that I didn’t have a hardware problem, and also gave me a chance to do a backup of everything, Just In Case.
I won’t walk you through all the links I found via google, or explain my frustration, or talk about the tools I used to try to fix the issue.  I’m just going to tell you what worked for me.  I finally stumbled on this fantastic malware and spyware removal guide from Geeks To Go.  I printed it out, downloaded all the tools, and followed the directions faithfully.  And now I’m up and running.

This was my first spyware infection in the 7 years I’ve been running Windows XP.  I hope to go another 7 years, but if I don’t, I now know where to turn to first.

[tags]malware removal,spyware removal[/tags]

BrowserMob: Load test your applications using the cloud

Via this tweet from Matt Raible, I learned of BrowserMob.  This service allows you to easily load test your web application.

I set it up in about 2 minutes to do a simple load test of a client’s site (though 5 pages).  They make it free to ‘test drive’ their service (though the free not enough to actually stress your site).  It is extremely easy to test a path through a publicly facing system.

The report was good enough; you get screen captures of pages that have failures, and they do a good job of making some of the performance data pretty and intelligible.  Again, I didn’t really load test anything, so I didn’t examine the report as closely as I would have in a real world scenario.  The service is built using Selenium, and I believe they allow you to upload full featured selenium tests (if you have already invested in this technology, but don’t want to build out a cloud network).

This service is of particular interest to me because last year I was part of a project that built a selenium grid on Amazon EC2, using these instructions.

If we’d known about BrowserMob, I’m not sure we would have used them, as I don’t know what our budget was, but it would have been nice to have that in the evaluation mix.

[tags]browsermob, cloud services,load testing[/tags]

Online Tools for Enriching an Offline Community, CSA edition

I had a meeting yesterday with a Anne Cure, a farmer, and her web specialist.  She grows food that I buy via my CSA (community supported agriculture) share–I have a list of Colorado CSAs if you’re looking.  Anne, and the rest of the farmers she works with, has created a great offline community as part of the CSA.  There are multiple events at the farm, including an end-of-year pig roast.  As a CSA member, you get great veggies, you are part of a community and you support a local farm.  It’s win-win-win.

I asked Anne to meet with me because I felt that, while there was some member to member interaction, it wasn’t as prevalent as it could be.  Often, at CSA pickup, I wouldn’t talk to anyone except for Anne, or one of the other farm workers.  And I rarely observed any of the other members having any interactions either.

Being a web guy, I thought that bringing the community online might help.  Of course, there are always challenges around that–it takes work to maintain an online community too!

Here’s a list of all the ideas I thought of to leverage the offline community Cure Organic Farm has built, as well as some we discussed during the meeting.

Some of these ideas take little effort, some take a lot.  Some bring in revenue, some don’t.  Some put all the effort onto existing staff, others leverage excited community members.  Some had been done already, some they had never heard of.

Hopefully anyone else who has created an offline community can pick and choose useful tools and ideas, from below, to enhance that community online.  If you have additional suggestions, please feel free post them in the comments.

  • Use posterous to create a dead simple blog.  Leverage its auto posting capabilities to push content into other social networks (twitter, Facebook, etc, etc).  Use twitter/FB to drive traffic to their farmstand.  Cure Organic Farm does already have a Facebook page.
  • Use email list management software, like MailChimp, and look at the reports to see if email is a useful (aka ‘read’) means of communication.
  • Promote carpooling to pick up CSAs–save gas and promote interaction between members.  Consider using a tool like Divide the Ride.
  • Add a page of ‘Cookbooks Anne Uses’ (they already have a links page of various recipe sites).  Have that link to Amazon and you could possibly make latte money from it.
  • Cure Organic Farm puts out a great weekly newsletter during the CSA season, full of quotes and recipes.  However, searching it is an issue (I suggested Google Custom Search).
  • Also, making those recipes available in some kind of ingredient specific manner would be useful.  Even if the recipes aren’t broken out, just knowing that I can find a recipe for garlic scape pesto in newsletter #5 from 2008 is useful.  This could be done with a simple database or even plain HTML.
  • Forums, of course, are great community building tools.  They also are great for spam.  I imagined forums being used for sharing food knowledge (recipes, ‘how do I use 3 lbs of beets?’), though you could also share community events and even barter goods.  The issue with forums, as ever, is moderation–how to make sure that people are not abusing the forum (or each other).  This qualifies as a high input/high possible return tool.
  • An online calendar.  Both for specific events, such as the aforementioned pig roast, and informal knowledge, like when tomatoes are expected to be ripe, would be great to have on a calendar.
  • Online registration for CSA membership and other event payment.  They do online registration already (if the shares haven’t already sold out).  They currently use paypal, and the fees can really eat into the farm’s profits, so they don’t see a bigger effort into this area being useful.
  • Classifieds.  Kinda like the forums but for money or free.  Same model as craigslist, but aimed at a self selected group of people.  Again, moderation and ensuring appropriate use are challenges.
  • Using a ready-setup community building site like ning could help accelerate online community building.  I also pointed them to the great Transition Colorado Ning site, so they could see what a related organization was doing.
  • Use wufoo (or email) to let users submit newsletter content.  Just sharing what other businesses and professions other CSA members are in can help knit the community tighter.
  • Advertising on the site.  They weren’t too keen on this, but I think that the correct type of advertising would be useful.  Again, possibly too high effort to be possible.
  • List of links to local resources.  They are already doing this, but should make it easier for people to request addition.
  • Write a blog.  This is a higher input version of the posterous suggestion, but I think it would be fascinating.

Cure Organic Farm is a niche producer of vegetables, with a fiercely loyal CSA membership (shares almost always sell out within days of being open to the public) and proximity to Boulder, so their toolset will necessarily differ from another organization (imagine a farm just starting off, further out, with less reputation).  Hopefully some of these ideas and tools will be helpful to others thinking about strengthening offline community using online resources.

[tags]community supported agriculture, online tools, offline community, pig roast[/tags]

What to do when you get 504 and 500 errors from your Google Mini

I have a client who uses a Google Mini (a search appliance created by Google) as a key part of their business.  The appliance worked fine, gave great search results, and was happily humming along until very recently.  At some point over the last couple of months, the number of 504 errors visible to the users using the mini increased drastically.

At one point, no matter what term you searched on, you would see this error message:

Error: Unknown XML result type.

View page source to see the offending XML.

504

When I took a look at this to try to troubleshoot, the results were very arbitrary--some search terms would show this message, some would not.  However, when a search term did show the error message, it would do so consistently, at least for 5-10 minutes.  Perhaps that had to do with caching?

The benefit of the mini is that you get great google like search results.  The detriment is that it is a black box--you don't even get a login to the box, etc.  And when your support contract runs out, you're left with very few options.

So, we troubleshot with one hand tied behind our back.  We:

  • tried rebooting the box a couple of times (via the web interface)
  • considered rolling back the index, but we only had about 36 hours of index history
  • generated and analyzed the search logs
  • searched the Google Groups for mini support.  All that turned up was this post which was not exactly helpful, since we no longer had support

Finally, the client suggested resetting the index, as it was conceivable that the mini index had been somehow corrupted.  This was an option for the client because their documents are re-crawled every day.  If that wasn't the case, it would have been a harder decision.

Resetting the index solved the problem.  Some numbers:

  • a few months ago, 0.5% of search requests were returning either 500 or 504 errors.
  • just before the index was reset, 40.2% of the requests were either 500 or 504 errors.
  • now, 0% of requests are either 500 or 504 errors.

FYI, this post is applicable to the Google Mini version 4.6.4--I'm not sure how more current versions of software work/break.

[tags]google mini,black box troubleshooting,504 error[/tags]

In source your EC2 instances

If you have built a killer application on Amazon Web Services, you may reach a point where you don’t want to continue to use them.  I can think of any number of reasons you may want to migrate your servers.

It may be because you’ve reached the 20 server instance, or because you want more control, or because you want to buy your own machines and spend money on a system administrator instead of paying Amazon, or because there’s something that you need customized that’s ‘behind the curtain’ of AWS.

For whatever reason, if you decide to move off Amazon’s elastic compute cloud,  you probably should take a look at Eucalyptus (thanks to George Fairbanks for pointing this out to me!).  From the overview, this is a AWS compatible environment, so you can continue to use the same tools (capistrano!) to manage your instances.  You also gain the same abilities to spin up or spin down servers easily.

What you don’t get is AMI compatibility.  That is, you can’t transfer your AMI to a eucalyptus server farm and expect it to run.  They have a FAQ about AMIs (for 1.5, which is an older version of the software) that points to some forum posts about turning an AMI into an EMI (Eucalyptus Machine Image), but it doesn’t look like a trivial or easy operation.  It does seem possible, though.
However, it’s good to know that it is possible, and that a company can have a migration path off AWS if need be.
[tags]eucalyptus, open source, freedom in the cloud[/tags]

Hadoop logging case study

Here’s a fascinating case study of the evolution of a (large!) log analysis toolset. It follows Rackspace as they strive to allow searching logfiles from an ever growing number of servers, starting from manual ssh/grep, through various incarnations of a MySQL database, and ending up using Hadoop/Lucene/Solr.  There’s (some) more info on the rackspace blog.  Cool stuff.

Via George Fairbanks.

[tags]lucene, solr,case study,hadoop[/tags]