Drupal Meetup Events Module

I just released version 1.1 of the meetup_events module for Drupal. I started building this about 6 months ago when we started using Meetup for Mid Hudson Astronomical Association to draw in new members.

I hate data entry. I find entering the same data twice into a computer one of the most soul sucking things I could do. So having both events on our website, and on meetup, meant I needed to automate things.

Meetup events was thus born. The model is simple, your Drupal site is considered the authoritative resource. You select which node types (which have date fields) you want to sync to meetup, and whenever you create or update an event of that type a meetup entry is made (or updated) accordingly. The body content that is synced is tokenized (and I added a few tokens for getting nodereference content). Venues are a little hokey right now, but I just provide a selector for a numeric field either on the main type or on a nodereference which maps to it.

meetup_events settings

Once you set up the module, including your API key and group url, you pretty much forget it is there. Then you just edit as per normal. Any time you save a type that you are syncing you'll notice this:

Which includes a link to the meetup event that was just saved.

One of the more recent things I worked on was integration with views so that there is now a Meetup Events: Meetup Link view field for nodes. If you add that to a node listing (and you've registered for an oauth key) you'll get the meetup dynamic RSVP button for your event.

That required a bit of tweaking of the rsvp javascript to make it play nice with Drupal, but given that the meetup team was kind enough to release that code under open source.

There is plenty of work remaining here, ways this could be nicer, but I'm pretty pleased with the results so far. It's made me learn a bunch about Drupal's ctools module, more than I ever wanted to know about the drupal settings system, and how to pull in incompatible versions of jquery in custom tools.

I've also been really happy with my experience with the Meetup team. They've added multiple API calls for me to make my life easier. Thanks guys. If every developer facing team acted like that, the world would be a much better place.

The meetup platform is turning out to be a really great way for our Astronomy club to draw in new people, and I've started using it for MHVLUG now as well. Now that I've got meetup_events, I can do that seamlessly without data duplication, or degrading our native experience. If you are interested in doing the same, check out the module. Bugs and patches welcomed.

How to manufacture facts like a champ

"Boomerang kids: 85% of college grads move home," blared a headline on CNNMoney.com. "85% of college grads return to nest," echoed the New York Post. "Survey: 85% of New College Grads Move Back in with Mom and Dad,"said Time magazine’s website.

Recently, the 85 percent figure emerged in the presidential campaign, in an ad from the Republican group American Crossroads that blames President Barack Obama for the boomerang.

We rated the claim False, but as we dug into the number, we found the media had repeated it with little scrutiny. Journalists were content to copy a number from other news reports without verifying it -- or even asking when the survey was conducted.

If the reporters had looked deeper, they would have found some oddities about the firm that claimed to have conducted the survey, a Philadelphia-area company called Twentysomething. The company's website had an impressive list of staffers, but when we checked on them, we found several who either didn't work for the company or appeared to be fictional.

The whole story is even weirder than you might imagine, and cane be seen over at Politifact. Moral of the story, news without public citations is suspect.

With all the crap wikipedia gets on accuracy, they are quite good about creating a culture of "citation needed". We need more of that.

 

Unity and Pidgin

One of the things that happened once getting to Ubuntu 12.04 was that gnome-do started acting up on me. Given that it's a very minimally maintained project, I decided it was time to move on. Ubuntu's dash provides a lot of the same functionality, so I finally started using it. But, I missed a few things.

Gnome-do isn't just a launcher for programs, it's an actions engine. It has support for Pidgin buddy lists, an I even wrote an NX launcher for it. I didn't really want to give either of those up, so I started trying to figure out how to add those to Unity's launcher itself.

Unity lenses, the plugins that support results, are written in either vala or python. Given that I'm trying to reflex my python muscles now, I decided that was my way in. After a few false starts I found the One Hundred Scopes project, which is an attempt to build a whole set of Unity lenses to add functions and examples for the world.

The wikipedia example is a good starting point. It gives you an idea of how to build a custom search and return results. That enabled me to build a basic launcher that fed up file urls for launching nx sessions, and I created an pushed unity-lens-nx that implements that.

But, pidgin is a little harder. There is no file to open for pidgin, this is about communicating with another program over dbus, and catching the action to do something else with dbus. Fortuntately through the help of David Callé I figured it out. Also, once I had it I found some good tricks (and a couple of undocumented dbus methods) here -  https://github.com/gregorl/Unity-Pidgin-Lens which I used as inspiration.

The net result is unity-lens-pidgin.

2 key MHVLUG people online right now

Super + b and search you buddy list. It only displays currently online buddies, and available buddies are preferred over unavailable ones. You can get it via ppa here.

There is plenty more to do. The search results should be smarter, especially taking into account most recently contacted buddies, which means integrating with zeitgeist or something equivalent. Ideas floating around there. I'd like to do some overlays with status icons, just to give a visual clue on either protocol or current status state.

If anyone else wants to help, or has their own ideas, I'd encourage you to join in on the conversation. The One Hundred Scopes community is pretty cool, and I'm happy to make their vision a little closer to reality.

Ruining the Curve

New research points that the bell curve isn't really a natural distribution, but what happens when you put humans under constraints:

Human performance, by this account, does not often fit the bell curve or what scientists call a normal distribution. Rather, it is more likely to fit what scientists call a power distribution.

...

Aguinis said the bell curve may describe human performance in the presence of some external constraint — such as an assembly line that moved at a certain speed.

"If you had a superstar performer working at your factory, well, that person could not do [a] better job than the assembly line would allow," Aguinis said. "If you unconstrain the situation and allow people to perform as best as they can, you will see the emergence of a small minority of superstars who contribute a disproportionate amount of the output."

As someone that has often "ruined the curve", this doesn't really surprise me. The curve is so easy to ruin, because it was entirely artificial in the first place.

Repair Cafe

This is a great idea:

At Amsterdam’s first Repair Cafe, an event originally held in a theater’s foyer, then in a rented room in a former hotel and now in a community center a couple of times a month, people can bring in whatever they want to have repaired, at no cost, by volunteers who just like to fix things.

Conceived of as a way to help people reduce waste, the Repair Cafe concept has taken off since its debut two and a half years ago. The Repair Cafe Foundation has raised about $525,000 through a grant from the Dutch government, support from foundations and small donations, all of which pay for staffing, marketing and even a Repair Cafe bus.

Thirty groups have started Repair Cafes across the Netherlands, where neighbors pool their skills and labor for a few hours a month to mend holey clothing and revivify old coffee makers, broken lamps, vacuum cleaners and toasters, as well as at least one electric organ, a washing machine and an orange juice press.

Just imagine these cropping up all over the US landscape. What a wonderful way to build both community and sustainability.

Copyright in APIs

The Jury in the Oracle vs. Google case has decided that Google violated Oracle's copyright in implementing the Java APIs. Now, that's actually not too bad of news, because the Judge in the case told the jury to "assume APIs are copyrightable for this decision" but that he would eventually decide that independently. Given that the EU just ruled they are not, I'm hoping the judge in this case comes to the same conclusion.

If APIs are ruled copyrightable, this would break all kinds of interoperability that we take for granted today. As always, groklaw has the best coverage of this legal action.

Rule 1: Fund Joss

Avengers broke all the 3 day openning financial records this weekend, and they don't yet have my money to push them forward (I'll fix that this week). I've been reasonably annoyed that most of the talking heads about this have been talking about Disney and can they repeat with Spider Man.

No.

The Avengers, and the build up to it, was about a different way that Marvel made movies. Just go look at the directors from Iron Man, Thor, and Avengers. These are independent film directors (really high class ones), that focus on story first. Guess what, if you make a compelling story, people like it. I know, amazing principle.

So rule #1 of production houses, fund Joss Whedon. The rest is pretty negligible after that.

Timeline of the far future

This wikipedia page is just great, and includes such hits as:

Five Pointed Star Solid.svg 1 million Highest estimated time until the red supergiant star Betelgeuse explodes in a supernova. The explosion is expected to be easily visible in daylight.[11][12]
Five Pointed Star Solid.svg 1.4 million Gliese 710 passes within 1.1 light years of the Sun, potentially disturbing the Solar System's Oort cloud and increasing the likelihood of a comet impact in the inner Solar System.[13]
Noun project 528.svg 10 million The widening East African Rift valley is flooded by the Red Sea, causing a new ocean basin to divide the continent of Africa.[14]
Noun project 528.svg 11 million The moon Phobos collides with the surface of Mars.[15]

Makes you think in a slightly longer time frame than what's for dinner on Tuesday.

Loving Kickstarter

It took me a little while to warm up to Kickstarter, but I'm totally in love now, and it was this project that turned me:

This is a totally awesome clock made of 180 RGB leds. It's running off an Arduino, and the source code is available for the clock. Beyond being open and programmable, the thing is gorgeous, and now hangs in my office at work.

There is something really rewarding about being involved in a great kickstarter project. There is so much communication between the creators and the backers, and you really do feel like you are co-investing in someone's dreams to make something awesome happen.

Today I just backed my 4th kick starter project, which is a coop Zombie game. They have been blowing through stretch goals, so really can't wait to see all that's provided with the final game.