Aug 31 2010

Wufoo API Contest Entry: Raplet for Rapportive

[GEEK ALERT: I'm hijacking my old personal blog as a place to drop some info about a web coding contest I entered]

I know you hear this kind of phrase a lot, but if you haven’t checked out Rapportive yet, go do it.

The built-in Raplets are pretty impressive, but the fact that you can build your own is really cool, at least for web hackers like me. The documentation is really straightforward and it’s a pretty flexible platform.

So after a bit of tinkering, I’m ready to share my first Raplet with the world. If you collect email addresses through a Wufoo form, check it out. I’m hoping this will especially be useful to small businesses that use Wufoo as a mini-CRM or for basic sign-up forms that collect a bit of meaningful info.

Here’s a basic rundown. The example I’m showing here is from a Wufoo form we used for my 15-year high school reunion this summer.

  1. The first time the Raplet loads, it’ll ask for your Wufoo login info (it only needs your sudomain if you have multiple accounts)
  2. Then you choose one of your forms:


  3. Then select the fields that you want to display and click “Save”


  4. Rapportive makes a call when you hover over an email address. If we can find a match in your Wufoo form entries, the fields you checked will be displayed.


  5. In addition, if there are any comments for that entry, it will display the most recent one.
  6. If no entry is found for that email, you can click the “New Entry” link, which will open up your form in a new window with the Email field pre-filled:


The URL you’ll need to enter on the Rapportive “custom Raplet installation” screen is

One last note about security: all calls are made over a legitimate SSL certificate, and your Wufoo login credentials are never saved on the server.

Enjoy, and please let me know if you encounter any problems. There’s only so much debugging I can do with my own forms and user accounts! :)

Aug 31 2010

Wufoo API Contest Entry: YQL Tables

[GEEK ALERT: I'm hijacking my old personal blog as a place to drop some info about a web coding contest I entered]

This one falls under the category of “wrapper.” I’ll keep it short. If you’re not familiar with YQL, go read all about it. But the Wufoo API is fantastic; RESTful, well-documented, and fairly flexible. So why bother going through YQL? A few reasons, all of which have to do with efficiency:

Speedy Server

If you’re making one single simple call to the Wufoo API, it’s going to be tough to beat just hitting it directly. But if you need to make multiple calls, filter, sort, etc. then you can take advantage of Yahoo!’s server farm. YQL let’s you run server-side Javascript. No strings attached. Heck you don’t even need an account. Chances are the PHP running on your discount shared hosting account won’t quite match what Yahoo! has running on their farm.


YQL implements some decent caching. That means you’ll be less likely to hammer the Wufoo servers for identical calls, and also keep it more likely that you won’t go over your 5000 call limit. That’s good for your users, you, Wufoo, and the internets.

Combine Queries

Whether pulling from two different sources or just running a subselect within the Wufoo API, YQL can do all that combining in the background, and you can just send one single query. For example, in this call we’ll grab the EntryIds of any entries that match “Ryan,” and then use that to fetch the comments.

NOTE: In all of the examples below, click the blue “TEST” button to see them in action in the web console

Wufoo comments based on Entry search

Or maybe you want all the entries and comments for a form. Two separate calls? bleh. Let’s batch that:

Entries and Comments combined

Again, all that parsing and subsequent calling is happening on the YQL servers.

But where it really gets interesting is when we combine totally disparate data sources. Like how about getting the geo coordinates from the IP address of a Wufoo entry? Again, one single call does it all:

Get location based on Wufoo Entry IP address

Yep, true to their word it looks like at least part of the Wufoo team is hanging out down there in sunny Florida.


The Wufoo API already lets you limit entries by searching for specific values, and also by setting the “page size.” What it doesn’t allow is a way to specify which fields get returned. If you’ve got a form with lots of text in the entries, pulling 50 full entries down is a real drag if you don’t need all those fields. This example won’t be too dramatic given the tiny bit of text and only 4 entries, but you’ll get the idea:

Select only First Name and Date Created

List of tables

  • Forms
  • Fields
  • Entries
  • Comments
  • Login

These should be pulled from GitHub into the main set of community tables by the YQL team within a few days. In the meantime, you can either put something like this at the beginning of your query: USE as wufoo.entries or add &env= at the end, depending on your style.

Beyond the contest

YQL also allows you to INSERT, DELETE, and UPDATE. Someday if the Wufoo API gets more of those added, I’ll probably update these tables.

Jul 31 2010

Rules for Political Debate

Editors Note: this post was actually written in Oct. 2009. This week my older brother started a little “political journal” and his first post reminded me a lot of this post. So I’ve added a couple new links and I’m pushing it out there just for fun.

In the last 2 years, I’ve stopped myself many times from posting political rants on this site. Consequently I haven’t posted much at all- apparently I have no other material.

Well I’m giving in just this once. Partly because these rules apply across issues and parties. And partly because I want to look back 5 or 10 years from now and see how my political ideas have changed.

First let me set the context regarding my political leanings. I’m currently non-partisan and mildly progressive.* I’m a strong advocate for Fixing Congress First. I can’t stand cable news pundits on any end of the political spectrum, and will defend NPR to the death as the least-biased source of news.**

And now, here are Jed’s rules for political debate.

1. No “Slippery Slope” Arguments

I’m really tired of this one. Okay, I’m really tired of all these, but this one is frustrating particularly to my progressive self. It’s an attack that’s too easy to make against any change. A small liberal movement swells into a “Tide of Socialism” and a nudge in the conservative direction becomes a catapult that’ll “Return Us to the Nineteenth Century.” Our government is set up such that it’s difficult to make changes quickly,*** and the current party polarization exacerbates this effect. If each side continues to view every proposed change through a telescope that shows only the bottom of the slippery slope, we’ll never make meaningful progress.

2. No Comparisons to Hitler, Nazis, or Commies

It’s been almost 20 years since Godwin’s Law was created as a response to the tendency of internet discussions to go Reductio ad Hitlerum. It’s time for a revival. The last straw on this one was when I tripped across an article a few weeks ago by an otherwise smart and thoughtful author, in which he declared anybody who eats chicken eggs to be just like the Nazis.****

3. No Justifications Based on Similar Actions by the Other Party

Avoiding this one take a lot of restraint. Just tonight I heard an example that I’ve heard several times before: “Republicans are opposed to Obama’s deficit increases, but where have they been for the last 8 years?” Or how about “All these anti-town-hall-protesting Democrats were the same hypocrites that were protesting the Iraq war in much more outspoken ways”. I get it. It’s annoying. It’s frustrating. You want to point it out because of how absurd and obvious it seems. But it’s also completely unproductive. If overspending by the government should be avoided, then let’s push to reduce it rather than justifying it by comparison. If there’s a level of civility required in public debate, let’s uphold that standard everywhere, not just when we want the other side to calm down and listen.

3.b No Justifications Based on Similar Hypothetical Actions by the Other Party

It’s a subtle difference, but one worth noting. “If President Bush would have said something like that…” It’s another easy place for your frustrated mind to wander. But again, it’s totally unproductive. The issue at hand is what it is, and we should address it appropriately, rather than guessing what the “other team” would do if the tables were turned, or projecting something back several years to what a previous President might have done.

4. Give People Room to Change

People grow. Situations change. More information is gathered, or existing information is better understood. When our elected officials seem to flip-flop, I get skeptical; it’s hard to believe somebody who is always changing their mind. A campaign promise that’s blatantly broken within months of election deserves to be called out. However, I don’t agree with reaching back across the decades, digging through obscure interviews to uncover some “gotcha.” I think Ezekial Emanual has some great ideas about healthcare reform.***** I was familiar with his proposed ideas long before Betsy McCaughey began spreading her bizarre interpretations of his previous medical journal publications. Even if they weren’t mis-interpreted or taken out of context (which they were), I care much more about his current suggestions for healthcare reform today. I mean, where were all these people 5 years ago when I pointed out that George W Bush used to be Pro-Choice?******


* By progressive, I mean the generic definition: “…is a political attitude favoring or advocating changes or reform,” not whatever boogyman Glenn Beck concurs in your mind when he yells about Progressivism. (via Wikipedia, which is always right).

** Unfortunately, listening to facts and unbiased reports doesn’t change our minds.

*** Except when all the congresspeople (other than Ron Paul) panic and approve bazillions of dollars in bailouts in a matter of weeks.

**** link intentionally omitted because it’s too easy to get sucked into the meaningless forum discussion…

***** you’ll probably agree with me. Just listen to him

****** I wish I were a good enough writer, and had enough of a loyal readership, that everybody would catch my intentional irony there. But unfortunately neither is the case, so I have to ruin the effect by pointing it out.

Sep 27 2009

Up close with Billy McLaughlin

I’m 32 today. Since turning 30 I’ve regained most of that weight, become a bit more cynical, and I’ve picked up my guitar fewer times than I’ve taken business trips. But Friday night I was part of a really special concert, and today I’m feeling less cynical. Tomorrow I’m going to play my guitar.

I’ve mentioned Billy on this site one other time. I’ve been listening to his music for about 6 years now, and revere him as one of the pioneers of the two-handed tapping style of acoustic guitar.

Before I discovered Billy, he was diagnosed with a neuromuscular disorder that made it impossible for him to play his own songs. He dropped off the scene for several years. But now he’s making an incredible comeback:

What I didn’t realize until last week is that Billy is from Minneapolis. By a stroke of Google-based luck, I happened upon a concert Billy was playing at the tiny 318 Cafe in Excelsior, MN. For some reason it wasn’t listed on his site. Chelsey and I already had a sitter lined up that night so we could go celebrate my birthday.

I had high expectations for the evening, and they were exceeded. The place was almost empty before the show, and Chelsey and I took the little table right up front. Billy was joined by mandolinist/violinist Nathan Wilson. When the show started, there were less than 20 people there. I thought Billy would be discouraged or upset, until I heard how sincerely thankful he was to be playing back in his “favorite favorite favorite place, to such a manageable crowd.” You could tell he was really enjoying it.

When they took a break, Billy pulled a chair up to our table. We chatted about music, his condition, Chicago and Utah, his kids and ours. I tried to explain to him what a somewhat-surreal privilege it was to be there. I can tell you that this guy is the real deal; he loves the music, and he loves the connection it gives him to his fans. Being right there, watching him play those songs, and getting to meet him has really sparked my desire to get back to the guitar.

You can follow the links on Billy’s site to download his music, check tour dates, and learn more about focal dystonia.

Apr 27 2009

Chelsey is over yonder

Given that we’re back in travel mode again, all posts and photos from Chelsey will be via Mexican Radio for the next month or so.