Intended to go snowshoeing, went hiking instead. Probably should have gone snowshoeing after all. #hiking #snow #mountains #Colorado

Intended to go snowshoeing, went hiking instead. Probably should have gone snowshoeing after all. #hiking #snow #mountains #Colorado

Intended to go snowshoeing, went hiking instead. Probably should have gone snowshoeing after all. #hiking #snow #mountains #Colorado

Posted on Instagram 9:38 pm, March 4, 2018 jQuery(document).ready(function(){ var gmap_m23d496f5373d7f91f093a6103a800ace = { positions : { 611 : new google.maps.LatLng( ‘39.702457’, ‘-105.854212’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m23d496f5373d7f91f093a6103a800ace’ ), { mapTypeId: google.maps.MapTypeId.ROADMAP, center: new google.maps.LatLng( 0, 0 ), zoom: 16 // Seems to be a good zoom for a single point } ), markers : {}, }; // end of gmap // Extend the bounds of interest based on our positions for ( var m in gmap_m23d496f5373d7f91f093a6103a800ace.positions ) { gmap_m23d496f5373d7f91f093a6103a800ace.bounds.extend( gmap_m23d496f5373d7f91f093a6103a800ace.positions[m] ); } // Render markers for ( var m in gmap_m23d496f5373d7f91f093a6103a800ace.positions ) { gmap_m23d496f5373d7f91f093a6103a800ace.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m23d496f5373d7f91f093a6103a800ace.map, position : gmap_m23d496f5373d7f91f093a6103a800ace.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m23d496f5373d7f91f093a6103a800ace.map.setCenter( gmap_m23d496f5373d7f91f093a6103a800ace.positions[611] ); });

YouTube Service for Keyring

In 7072886 I added a first swing at a YouTube Service definition to Keyring. It’s based heavily on the Google Analytics one that was recently submitted via PR. It’s not part of an official release yet. I’m curious about enabling people to import the videos they publish on YouTube into a WordPress install though, as that feels like something that folks who use it heavily would want as part of their web presence.

(more…)

Snowshoeing! Glorious day for it once we were out of the wind.

Snowshoeing! Glorious day for it once we were out of the wind.

Snowshoeing! Glorious day for it once we were out of the wind.

Posted on Instagram 6:48 pm, February 18, 2018 jQuery(document).ready(function(){ var gmap_m0374e97f6e62238853710879d3c06f0f = { positions : { 775 : new google.maps.LatLng( ‘39.9024’, ‘-105.646’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m0374e97f6e62238853710879d3c06f0f’ ), { mapTypeId: google.maps.MapTypeId.ROADMAP, center: new google.maps.LatLng( 0, 0 ), zoom: 16 // Seems to be a good zoom for a single point } ), markers : {}, }; // end of gmap // Extend the bounds of interest based on our positions for ( var m in gmap_m0374e97f6e62238853710879d3c06f0f.positions ) { gmap_m0374e97f6e62238853710879d3c06f0f.bounds.extend( gmap_m0374e97f6e62238853710879d3c06f0f.positions[m] ); } // Render markers for ( var m in gmap_m0374e97f6e62238853710879d3c06f0f.positions ) { gmap_m0374e97f6e62238853710879d3c06f0f.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m0374e97f6e62238853710879d3c06f0f.map, position : gmap_m0374e97f6e62238853710879d3c06f0f.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m0374e97f6e62238853710879d3c06f0f.map.setCenter( gmap_m0374e97f6e62238853710879d3c06f0f.positions[775] ); });

Keyring v1.9

I just released version 1.9 of the Keyring plugin for WordPress.

Keyring v1.9Keyring v1.9

This version includes a few pretty cool updates and additions, as described in the changelog:

  • Added a Google Analytics Service definition.
  • Added a Strava Service definition.
  • Added a “Settings” link to the plugin listing if you’re using the bundled Admin UI.
  • Fitbit tokens now refresh properly.
  • Tumblr now requires HTTPS, so updated all request URLs to use HTTPS.

My favorite part of this release is that I didn’t personally do most of the things in there. Two of my colleagues did some of it (Strava service and Tumblr fixes), while a generous and otherwise unknown contributor on Github added the Google Analytics service.

(more…)

Going to be curious to check this place out once it’s fully renovated/built.

Going to be curious to check this place out once it’s fully renovated/built.

Going to be curious to check this place out once it’s fully renovated/built.

Posted on Instagram 12:50 pm, February 17, 2018 jQuery(document).ready(function(){ var gmap_md93459d5e499db1586b0662cd11216dd = { positions : { 462 : new google.maps.LatLng( ‘39.7714227’, ‘-104.9675534’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_md93459d5e499db1586b0662cd11216dd’ ), { mapTypeId: google.maps.MapTypeId.ROADMAP, center: new google.maps.LatLng( 0, 0 ), zoom: 16 // Seems to be a good zoom for a single point } ), markers : {}, }; // end of gmap // Extend the bounds of interest based on our positions for ( var m in gmap_md93459d5e499db1586b0662cd11216dd.positions ) { gmap_md93459d5e499db1586b0662cd11216dd.bounds.extend( gmap_md93459d5e499db1586b0662cd11216dd.positions[m] ); } // Render markers for ( var m in gmap_md93459d5e499db1586b0662cd11216dd.positions ) { gmap_md93459d5e499db1586b0662cd11216dd.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_md93459d5e499db1586b0662cd11216dd.map, position : gmap_md93459d5e499db1586b0662cd11216dd.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_md93459d5e499db1586b0662cd11216dd.map.setCenter( gmap_md93459d5e499db1586b0662cd11216dd.positions[462] ); });

Good work on the sunset, Denver. #nofilter

Good work on the sunset, Denver. #nofilter

Good work on the sunset, Denver. #nofilter

Posted on Instagram 5:24 pm, January 25, 2018 jQuery(document).ready(function(){ var gmap_mf9d734f768d4d956a489d5c4078f2620 = { positions : { 441 : new google.maps.LatLng( ‘39.7675084’, ‘-104.9740488’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_mf9d734f768d4d956a489d5c4078f2620’ ), { mapTypeId: google.maps.MapTypeId.ROADMAP, center: new google.maps.LatLng( 0, 0 ), zoom: 16 // Seems to be a good zoom for a single point } ), markers : {}, }; // end of gmap // Extend the bounds of interest based on our positions for ( var m in gmap_mf9d734f768d4d956a489d5c4078f2620.positions ) { gmap_mf9d734f768d4d956a489d5c4078f2620.bounds.extend( gmap_mf9d734f768d4d956a489d5c4078f2620.positions[m] ); } // Render markers for ( var m in gmap_mf9d734f768d4d956a489d5c4078f2620.positions ) { gmap_mf9d734f768d4d956a489d5c4078f2620.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_mf9d734f768d4d956a489d5c4078f2620.map, position : gmap_mf9d734f768d4d956a489d5c4078f2620.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_mf9d734f768d4d956a489d5c4078f2620.map.setCenter( gmap_mf9d734f768d4d956a489d5c4078f2620.positions[441] ); });