Skip to content

Archive for


LinkedIn’s new Endorsement system is Viral SPAM. And that’s why it works.

Late last month, in an effort to increase user-engagement, LinkedIn launched a new feature which lets you ‘endorse’ your connections with one click.

This is intended to be a short-hand way of recommending people, designed to get the lazy among us to attest to the skills of their former coworkers. It might get clicks, but they’re meaningless noise.

It starts

The process starts when one of your colleges ‘endorses’ you using the new system.
This sends an email to your inbox, which looks vaguely interesting.


You click to investigate, and you’re presented with a list of your friends, asking if they have certain skills.

The UI makes it easy to mass-endorse your friends without even reading the dialogs, or to endorse each person with a single click.

After endorsing a skill, the dialog replaces them with with another skill for another one of your connections.

Endorsing them, however, just perpetuates the cycle. They will then receive the same email you did.
They’ll click and log in, thinking that someone might have had something meaningful to say about them, but be presented with the annoying Viral mechanism that caught you earlier.

Nowhere to run

While I appreciate that LinkedIn is trying to drive people to the site, encouraging contact-spamming seems one of the cheesiest ways to do so.
There is currently no way to disable endorsements entirely, and Unendorsing is a tedious process, requiring you to go to each profile manually.

I understand that LinkedIn is trying to ensure that LinkedIn is a tool people use every day, but this makes me more likely to simply killfile them in the future.


Pulling the Mixergy archive locally

MixergyLink is a great resource for interviews with various entrepreneurs, both famous and up-and-coming.

I generally enjoy listening to the interviews, but I recently I’ve begun trying to exercise more, and I’ve been enjoying listening to his podcast while I walk the trails.

Unfortunately, the podcasts are only available for a limited period of time, before they become premium only.

I don’t mind paying in order to download the back archives, but it’s not a straight fee-for-product transaction. At least when I last looked at it, you could only download individual interview files if you found them, one page at a time.

That’s great if you’re trying to download a single interview and listen to it, but if you want them all on your iPod to choose while walking or driving, it’s less than ideal.

Being an command line guy, I realized this should be a simple problem to solve using some bash scripting. I’m sure I could have done it in Python just as easily, but since I’m in the terminal anyway, Bash is a great Go-To solution to problems 😉

Logging in

Mixergy uses cookies for authentication, storing a login token, and then checking for it when you try to download a file.

This makes a lot of sense, and is straightforward to work with.

I logged in using Firefox, and exported out my cookies for, then saved them out to a file using a Firefox plugin.
I could then use this for the next set of requests.

Acquire List of Interviews

Since I couldn’t find a list of all the interviews on one page, I had to crawl backward on the news blog, harvesting each link.

I noticed that Mixergy always linked each interview in it’s own page, with “Read More” as the anchor text.

I tested pulling these links in, and it seemed to work reliably.

# Generate list of interviews

curl -L –cookies cookies | grep “Read more” | awk -F\” {‘print $4’}

This seemed to give me the list of interview-specific pages pretty well, so I iterated this out to the rest of the pages in the archive, moving through each page of the search results.

I added a sleep in between requests to avoid hammering the server.

# Pull ALL the Interview URLS.

for i in `seq 1 62`; do curl -L –cookies cookies$i/ | grep “Read more” | awk -F\” {‘print $4’} >> interviewpages; sleep 1; done

I then used very similiar logic to extract out the specific pages for the classes.

#Do the same for the classes.

for i in `seq 1 6`; do curl -L –cookies cookies$i/ | grep “<h2><span>”| awk -F”a href=” {‘print $2’} | awk -F\” {‘print $2’} >> classes; sleep 1; done

Looking through these, I now had a list of URLs, each of which contained the text of the interview, and a link to the MP3 version.

Acquire Each Audio File

At this point, I just had to extract the links to the mp3s.
I tested with a single page-

#Generate list of MP3s

curl -L –cookies cookies | grep mp3 | awk -F “a href” {‘print $2’} | awk -F\” {‘print $2’}

This seemed to work – It gave me a URL to a single MP3.

I then rolled this through each of the single-interview pages I had downloaded before, to find the URLs of all MP3s.

#Get the MP3 list

for i in `cat interviewpages`; do sleep 1; curl -L –cookie cookies $i | grep mp3 | awk -F “a href” {‘print $2’} | awk -F\” {‘print $2’} >> interviewmp3 ;done

This gave me a list “interviewmp3” which contained a direct link to each file.
From here, it was a simple matter to loop through and download each one.

# Retrieve all MP3s.
for i in `cat interviewmp3`; do sleep 1; wget $i; done

And Success! I downloaded hundreds of startup interviews, and can load them to whatever devices I choose, and listen to them whenever I want.



PSA: Avoid information leakage via iTunes sharing of voice memos

While waiting for my flight home from SFO, I tooling around in iTunes to pass the time.
As I my flight became increasingly delayed, I started exploring the libraries of some of the other passengers, as they passed in and out of the airport.

One thing that I noticed on quite a few laptops as they passed by, is that people are sharing Voice Memos in iTunes — And I doubt that they intend to me.


I’m not the sort to listen through people’s personal voice memos, but further testing with some of my machines show that iTunes does generally attempt to block these files from streaming, even though it does display them.

I can see how this might cause problems if the file were named something like “Shocking Confession of infidelity”, but should otherwise be fairly benign.

We can take advantage of this, in order to remove them from the Shared list-
iTunes is able to detect these files, and by default will set the “Media Type” field to be “Voice Memos”, rather than “Music”.


What I’ve done to be avoid any potential issue, however, is to uncheck “Share Entire Library”, and only allow iTunes to explicitly share “Music”.



PSA: It’s often worth investigating business pricing, even for home use

Over the last few years, a lot of consumer facing services have become increasingly hostile.
ISPs have instituted data caps, and companies have complexified what ought to be very simple, in an attempt to make it easier for people who don’t understand the terminology.

For example, when setting up your home internet, the ISP may ask you run an App that goes through a step-by-step “Wizard”.. This is almost certainly easier for many, but becomes obstructionist if you’re trying to do things off of the beaten path. (Ex: If you don’t have a Windows/Mac machine, but want to activate your connection)

This is also reflected when you are first looking at services, and trying to understand their pricing.
For example, with Verizon Cellphones –
Before the site will tell you what the service even costs, it wants you to choose a model and quantity of phones, and enter your address/zip.

I can understand their reasoning, and I’m sure this fits a number of user stories internally.. But it also makes it very frustrating when you’re trying to compare multiple options.
If my needs are fluid (such as being interested in one or more lines, depending on price, or being agnostic on phones), then this does not work well :/

Verizon Consumer
Even after making best-guess answers, I’m given yet another wizard which tries to walk me through options :/
Verizon’s business offerings, on the other hand, are straight-forward, and easy to understand.
It’s a chart, and not a very big one 😉
Screen Shot 2012 09 13 at 11 49 52 AM

Screen Shot 2012 09 13 at 11 50 00 AM

The chart gives me all of the available options, very quickly and easily.
I can choose a number of lines, dataplans, and features. The pricing is straightforward and easy to follow.

This is sadly common

Unfortunately, this is see rather often.
Comcast obscures their pricing information behind time-limited deals, making it maddening to know what your actual pricing might be.
Screen Shot 2012 09 07 at 10 00 04 PM

The real pricing isn’t anywhere in the chart – There’s no asterisk to click on, no view at the bottom. You need to go to another section of the site entirely, and cross-reference by the plan name.
Contrast that with Comcast’s business page –
Screen Shot 2012 09 07 at 9 42 48 PM
They lay out the price, the size of the pipe, and the addons. Quick. Simple. Easy.

It’s straight-forward, no bullshit pricing – Fee for Service.

It’s kinda nuts that so many companies assume their corporate customers are the only ones without a head full of potatoes. :/