OpenID service advisory: MyOpenID is effectively defunct

November 7th, 2010

I've been experimenting with OpenID for a couple of years now. My first OpenID was with JanRain's "MyOpenID" service as a delegate for my homepage. At the time, the service was amazing. They supported client certs, multiple profiles... the works.

Now it saddens me to report that JanRain's MyOpenID is effectively dead, as far as anyone can tell. For over a year, there has been a serious malfunction with the client certificate feature, and no indication from JanRain that they are even aware of the problem. I have tried to contact them via multiple email addresses (all of which bounced my message) and via their contact forms. On both their official UserVoice thread and a GetSatisfaction thread, many users report the same issue, but no JanRain representatives weigh in.

For a replacement service, I recommend switching to Clavid. And remember, delegation is your friend.

Starlings in the basement!

October 28th, 2010

I'm currently living in a 2-unit apartment near Boston, MA. Over the last 2 weeks, there have been three incidents of a starling getting into the basement:

  1. Bird hanging out in basement, seemed pretty tame (only maintained 4' distance.) Shooed out the basement door.
  2. Found a dead starling. We left a dish of water out after this, as well as a tray with some stale bread. (Didn't know if it had died of thirst or exhaustion.) Heard something fluttering in the heating duct, so I left the basement light on, too.
  3. Found a live starling hanging out near water dish, similar to first. I managed to walk up to it (after a very brief chase) and catch it with my hands. When my girlfriend opened the basement door, it managed to free itself and fly out.

Based on the third incident, it seems the "tameness" stems from exhaustion. Our best guess is that the gas-powered water and heating exhaust into an otherwise disused chimney with an improperly screened cap. (I haven't confirmed the existence of a chimney, but the exhaust ducts do lead into a brick column in the basement.)

Now I just have to figure out 1) how to aid any further birds that get in, and 2) how to screen the (assumed) chimney without trapping anything else inside. Any thoughts?


Update 2011-02-09: Discovered a starling in the dining room. There was birdshit everywhere. This was apparently due in part to it having eaten a good deal of my aloe plant, which is a laxative. *No idea* how it got into living space -- all the doors were closed.

Force SSL for Wikipedia (for advanced users)

May 22nd, 2010

I like using HTTPS whenever possible. Usually this is as simple as adding a single letter to a URL, but some sites have separate domains for SSL. The Wikimedia sites are a great example of this; they share the domain secure.wikimedia.org and use the first elements of the path to specify the site.

(Edit 2016-11-25: Nowadays, you can just use the HTTPS Everywhere browser extension for Firefox, Opera, or Chrome! And you don't need to use a separate domains anymore.)

Now, I could have set up a Greasemonkey script to redirect me once I hit an unsecure Wikipedia page, but then it's too late. (I'm usually going directly to the article via web search results.) I could also use Greasemonkey to rewrite URLs in web pages, but that's a mess. Instead, I wanted to intercept any requests to unsecure Wikipedia and redirect them on the fly, before they even left my machine. Here's how I set up my browser to always use SSL for Wikimedia sites:

  1. Have Apache with virtual hosts and Mozilla Firefox with FoxyProxy
  2. In my default virtual host:
    <Directory /var/www/>
    	RewriteEngine On
    	RewriteBase /
    	RewriteCond ${HTTP_HOST} !.*mycomputername.*
    	RewriteRule . rewriter.php [L]
    </Directory>
  3. And this file at /var/www/rewriter.php:
    <?php
    
    $host = $_SERVER['HTTP_HOST'];
    $path = $_SERVER['REQUEST_URI'];
    
    // ensure path is not of form http://...
    if(strpos($path, '/') !== 0) {
    	$start = "http://$host/";
    	if(strpos($path, $start) === 0) {
    		$path = substr($path, strlen($start) - 1); // include slash
    	} else {
    		die();
    	}
    }
    
    if(preg_match('/([a-z0-9]+)\.wikipedia\.org/', $host, $m_domain)) {
    	header("Location: https://secure.wikimedia.org/wikipedia/{$m_domain[1]}{$path}");
    	die();
    }
    
    ?>
  4. Then set up a proxy in FoxyProxy, early in the chain, called "rewriter". Set it to a SOCKS 5 proxy at localhost:80, using the whitelist regex http://[a-z]+\.wikipedia\.org/.*

Obviously, the setup as written here only gets Wikipedia, but it could easily be expanded to Wiktionary, Wikibooks, Wikimedia Commons, and other sister sites.

I'll delete any tech-support questions in the comments area, so don't ask them. This guide is for advanced users only. Discussions of potential improvements are welcome.

Bahamas trip: Day 11

July 1st, 2009

It is my last day in the Bahamas, for now. After breakfast I have just enough time to walk out to the North Point, where I hear tell there might be some San Salvador rock iguanas, a critically endangered subspecies. It seems that some of them may have swum across the harbor from the cay where the main local population lives. (I express an interest in taking closeup photos, and am warned that they may attempt to eat my camera...)

Read full entry »

Bahamas trip: Day 10

June 30th, 2009

In the morning, my dad picks up Mr. Forbes from his house and drives him back to GRC. Just as they arrive, the power cuts out, so Mr. Forbes can't sharpen his machete. Too bad, 'cause we're gonna be in the bush again today.

Read full entry »