Never Ending Fog

Updated on Sunday, December 2, 2018

NatureBox

Updated on Thursday, November 12, 2015

NatureBox Healthy Snacks

You know what's healthy? Leaving your house to get a snack.

Brexit Prize

Updated on Thursday, November 12, 2015

Flag of the USA after the UK becomes a state

The Institute of Economic Affairs has announced the 'Brexit Prize', a competition for the best blueprint for a UK exit from the European Union. First prize is 100,000 Euros, so it's worth a shot.

My plan: Beat Puerto Rico to becoming the 51st state.

I was just about to send this in when I read the instructions:

"At both stages, potential entrants should ask Amelia Abplanalp on [email protected] – for an entry number, preferably at least seven days before the closing date. Entrants should create two pdfs. One of those documents should only have the entry number as an identifier. The other document should have the entry number, name and contact details of the entrant on the cover page..."

It goes on like this and sounds like some EU directive relating to banana curvature. And don't you contact someone at an email address rather than on one? Must be an early April Fools' joke...

The Economics of Digital Rights Management

Updated on Thursday, November 12, 2015

Cory Doctorow wrote an article criticizing SiDiM in Publishers Weekly last week:

"But the fact that the basis behind this security measure was countered 25 years ago by employing a simple tool that’s getting into its 40s is not the silliest part of this supposed new DRM breakthrough."

This misses the point about how DRM really works.

Most people are fundamentally honest but reading a book or watching a TV show or installing one more copy of a software program doesn't feel like you're doing anything wrong. If you throw up a small roadblock then this is generally enough to gently remind people that they need to cough up.

If I can install another copy of Photoshop from the shared drive to get my job done then I will. If it asks for a license I'm going to ask my boss for one rather than hunting down a cracked copy. DRM works even if it doesn't do very much.

In fact it works best when it doesn't do much. A more sophisticated DRM is more likely to go wrong and is harder to operate. Highly effective DRM starts to hurt you with support and maintenance costs. When it fails to work or to be fair it can backfire spectacularly and cause a consumer backlash.

I spent a lot of time earlier in my career developing and selling DRM and copy protection. Deals were won on security but successful relationships were built from helping publishers balance the technical possibilities with ensuring that legitimate customers had a good experience.

"The idea that copyright owners might convince a judge, or, worse, a jury that because they found a copy of an e-book on the Pirate Bay originally sold to me they can then hold me responsible or civilly liable is almost certainly wrong, as a matter of law."

This doesn't sound right either. We've had enough experience of the record labels and movie studios suing individual copyright infringers, most of whom can't afford to risk a court case even if they have a plausible 'left my laptop unlocked' defense. This wasn't a smart move before, but it doesn't mean that book publishers can't deploy the same flawed strategy.

Chart plotting DRM effectiveness against revenue

BBC Slams BA

Updated on Thursday, November 12, 2015

Book reviews for June 2013

Updated on Friday, February 24, 2017
Letters by Kurt Vonnegut

Letters by Kurt Vonnegut

4/5

Engrossing collection of letters, helpfully sprinkled with context.

 

How to get SEO credit for Facebook Comments (the missing manual)

Updated on Sunday, September 30, 2018

How to get SEO credit for Facebook Comments (the missing manual)

I've been using the Facebook Comments Box on this blog since I parted ways with Disqus. One issue with the Facebook system is that you won't get SEO credit for comments displayed in an iframe. They have an API to retrieve comments but the documentation is pretty light and so here are three critical tips to get it working.

The first thing to know is that comments can be nested. Once you've got a list of comments to enumerate through you need to check each comment to see if it has it's own list of comments and so on. This is pretty easy to handle.

The second thing is that the first page of JSON returned from the API is totally different from the other pages. This is crazy and can bite you if you don't test it thoroughly. For https://developers.facebook.com/docs/reference/plugins/comments/ the first page is https://graph.facebook.com/comments/?ids=https://developers.facebook.com/docs/reference/plugins/comments/. The second page is embedded at the bottom of the first page and is currently https://graph.facebook.com/10150360250580608/comments?limit=25&offset=25&__after_id=10150360250580608_28167854 (if that link is broken check the first page for a new one). The path to the comment list is "https://developers.facebook.com/docs/reference/plugins/comments/" -> "comments" -> "data" on the first page and just "data" on the second. So you need to handle both formats as well as the URL being included as the root object on the first page. Don't know why this would be the case, just need to handle it.

Last but not least you want to include the comments in a way that can be indexed by search engines but not visible to regular site visitors. I've found that including the SEO list in the tag does the trick, i.e.

I've included the source code for an ASP.NET user control below - this is the code I'm using on the blog. You can see an example of the output on any page with Facebook comments. The code uses Json.net.

FacebookComments.ascx:

FacebookComments.ascx.cs

Skype for Android 4 - Better but Useless

Updated on Friday, May 22, 2020

Skype just released a completely rewritten version of their Android client.

It's a nice streamlined UI and for the first time on Android it actually loads the 15,422 chats I'm required to participate in work and is usable and responsive. I've used it for a few days and really want to like it.

But.

Even though it's faster and prettier it still destroys battery life. Imo.im ad Plus.im manage to handle multiple networks all day without putting a noticeable dent int the battery. With Skype up and running my phone is dead by the early evening. It's useless.

They also haven't fixed syncing the read state of messages which is the worst deficiency of Skype on both mobile and the desktop. Imo.im did this wonderfully until Skype cut them off at the kneecaps.

Back to Plus.im for now...

Leafhopper Nymph

Updated on Wednesday, February 22, 2017

Leafhopper Nymph

I spotted this odd looking bug in my porch a few weeks ago. It looks like a wingless fly with a hairy tail that wouldn't look out of place on a fly sized horse.

My Google-fu failed me so I turned to Pearl.com. Random insect identification isn't your typical veterinary question but Rebeccavet came through for me via a taxonomist in Kenya and told me it's a Leafhopper (Cicadellidae) nymph. Given this information Google Images confirmed that this seems like the most likely possibility.

(Full disclosure - I work at Pearl.com.)

Catfood Earth for Android 1.20

Updated on Thursday, November 12, 2015

Catfood Earth for Android 1.20

I recently upgraded to the HTC One which has a transparent notification bar. This makes it hard to see notification icons when using Catfood Earth as your wallpaper, at least in the summer when it's always light at high latitudes and your white icons are displayed on top of polar ice and clouds.

Catfood Earth for Android 1.20 fixes this with an option to paint black under the notification bar. That's the only update other than the latest Xamarin runtime.