I met my girlfriend, Paige, a few weeks after her brother, Justin, was shot and killed in Seattle. Justin was married to an ER physician and had...
What do Snapchat, Vine, and foursquare have in common? It’s that damn “Press and Hold” - it’s so hot right...
…in which we finally get to hack on the product we’ve been building for months.
We’ve been working nonstop on...
CollegeHumor Year in Funny [Click to see the best of 2012]

Image via CrunchBase
So I just spent a large chunk of the day trying to port my perl script to PHP. It wasn’t as easy as I had hoped and I learned a lot of stuff I didn’t really want to know or care about.
I got it pretty far - via the web, it was able to take a person’s name, query google for the person’s LI profile page, then log in to LinkedIn as me and look at their LI page, and extract out all the names of our mutual connections. Not bad.
I thought I’d be able to knock out a simple page that just took:
LI username:
LI password:
Meetup URL or Textbox list of people:
Then you click submit and it spools a background process and spits out all the relevant stuff + sends you an email. Yeah, not so simple!
My friend Hoffrocket suggested making it a bookmarklet and utilize the REST APIs for LI and Meetup. That’s not quite as easy for me as a Perl script but it’s a lot more obvious and will be more logical.
More to come on that front.
Meanwhile, I ran my script against this HUGE rooftop event Monday night.
It’d be really neat to automate the logistics of this. So, as I said previously, this event *could* be as efficient/valuable as having the equivalent of 10 coffee meetings. As long as I play my cards right and do the prep work necessary and try to connect before the event.
But I’m thinking it would be neat to have a third party app automagically link up participants into an automated speed-networking event. (And you know how much I love speed networking!) Could be Cnvrge version 2.0, actually… By god I think I’m on to something!
In fact, that could be the way Cnvrge is “prepped”. You OAuth your LinkedIn profile and Meetup and it provides a list of the people you need to meet (complete with 1 click follow and LinkedIn profiles). You’ll be able to tick off anyone you aren’t really interested in.
Then at the event you’ll already have the “right” people loaded into the list. Cnvrge will intelligently match everyone up for speed-networking, and with each round prompt you with specifics about why you are being connected.
Sweet!


Image via CrunchBase
The Problem:
I go to a lot of Meetups and other events (tech, networking, etc) so I always check the RSVP list beforehand to get a sense of who’s going. In fact, I often will decide whether or not to go based on who I know. For example, if I see a few tech folks who I haven’t keep up with or emailed recently, I love using these events as a way to quickly catch up with a group of people.
Regardless, I desperately want to know who I am 2nd degree friends with on LinkedIn so I can shoot an email or tweet and plan on connecting at the event. I consider these kinds of events to be sort of like coffee meetings on steroids - a chance to have meaningful face-to-faces with a bunch of people without all the annoying planning that tends to go along with setting up simple Skype calls or a coffee meeting. The trick is to know who’s going.
Also, events cost money, like this Tech Cocktail Mixer at GA for $15, which does sound awesome but would be more awesome if I had a few connections before showing up.
The Solution:
There are awesome companies trying to solve this and show you who you’re connected to and through which people. My favorite is Sonar.me, and not just because I know Brett, the founder. It’s my go to app when I’m out and about and curious who’s around me. But there are some big limitations:
My Hack:
So I spent yesterday hacking together my most useful script(s) ever. I’ll walk through two situations.
Eventbrite connections:
Start with a normal eventbrite page. It lists a name, company and maybe URL. Great, but mostly worthless since, at the very least, it’s a lot of work to scroll through names and judge if I know anyone. Worse to impossible to look people up in Linkedin and see who they are.
This is exactly what my script does. It runs off of a simple text file (just cut and paste the eventbrite RSVP list, mainly because EB uses javascript that makes it hard to easily “get” the HTML) that looks like this:
Eli Greif, Landmark Ventures
Website: www.landmarkventures.com
Michael Levine, Ad Tech Startup
Website: google.com
Preetham Hegde, City of New York
Website: http://nyc.gov
Simone Grant, Morgan Museum
Website: themorgan.org
It goes through each name + company (and here’s the cool part) exploits Google to figure out the LinkedIn direct URL. It’s a combination of syntax:
“$fname $lname $co $city linkedin”
Bill Johnson Microsoft new york linkedin
This is surprisingly accurate, but sometimes has people who aren’t quite right. So it looks at the LI profile and builds a confidence score based on criteria such as:
+1 if any of the company words are present
+1 if the person’s first name is in the profile/URL
+2 if the person’s last name is in the profile/URL
+5 if the person’s full name/full company name is in the profile
It turns out this isn’t all that necessary, but it’s pretty accurate. (I used this to track down LI urls for the leaked SXSW participant list of 25,000 people that just had names and companies as well.)
Next, it logs into LinkedIn (with my username/password) using Perl’s Mechanize library and looks at the profile page. Now it displays if you are 1st, 2nd or 3rd degree and who you have in common.
2nd degree is the most interesting, and it pulls a list of the people between you and the random person. I won’t publish my list for the Tech Cocktail Mixer, but here are some interesting stats:
The Meetup Hack:
I love meetup. It’s how I got into the NY tech community and how I met most of the techies I know. But the RSVP list could use some improvements. Upon first glance, it’s just a long, long list of names and pictures. That’s cool, but as soon as I want more info I have to start mousing over and clicking on each person - a big pain.
My script takes a meetup event URL, like the one for the upcoming Lean Startup talk (100 ppl going with 100+ on the waiting list!):
It then loops through each person’s name, looks at their profile to see if they have a LI url already entered (most don’t), and if not, uses the Google search algorithm.
These stats are more interesting:
Issues:
Unfortunately, this script is in Perl and requires a username and password for LinkedIn, so it’s not exactly production ready. But I think I could package and export it as an executable that would be run from the command line with arguments like “linked.exe blah@blah.com password meetup.com/url” though I’m not sure that’s a great idea.
I’d love to make this into a regular website that lets you OAuth your LI account and plug in a URL of eventbrite or meetup and it emails you a nice html email with links and lists of connections, etc. Anyone want to help?
I do know this *probably* violates some annoying policies but it’s just for educational purposes. I’m not sure how one would get around the problem of having one IP hit the LI servers 100+ times without getting booted. I’ve factored in a lot of “sleep” commands to slow things down and hope they don’t notice. (It’s exceptionally easy to get noticed by Google when you let requests run in real-time.)
Next steps:
I can immediately think of some awesome next features to add:
“Hi Bill, Looks like you’re going to event XYZ on Tuesday. We have x shared LI connections including Jane, Sally and Bob. Looking forward to connecting”
Thoughts?

I was looking for a way to have Perl automatically tweet stuff out for me (ie, when the VocabBomb word of the day changes or to say who the winner of the day is).
I didn’t have to look very far. Just register an app with Twitter and get the keys and tokens, and then plug and play:
use Net::Twitter; my $nt = Net::Twitter->new( traits => [qw/OAuth API::REST/], consumer_key => $consumer_key, consumer_secret => $consumer_secret, access_token => $token, access_token_secret => $token_secret, ); my $result = $nt->update('Hello, world!');


Image via CrunchBase
This took me some tinkering to find the easiest/best/free apps to do this. If you find something better, let me know.
This is a slightly modified version of Lifehacker’s guide.
