Hacking in progress.

Hacking in progress.

Posted on Instagram 2:39 pm, September 28, 2013 jQuery(document).ready(function(){ var gmap_m1b3fdfa8be68f5b6b8f141579e0f0659 = { positions : { 838 : new google.maps.LatLng( ‘37.784147778’, ‘-122.397345208’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m1b3fdfa8be68f5b6b8f141579e0f0659’ ), { 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_m1b3fdfa8be68f5b6b8f141579e0f0659.positions ) { gmap_m1b3fdfa8be68f5b6b8f141579e0f0659.bounds.extend( gmap_m1b3fdfa8be68f5b6b8f141579e0f0659.positions[m] ); } // Render markers for ( var m in gmap_m1b3fdfa8be68f5b6b8f141579e0f0659.positions ) { gmap_m1b3fdfa8be68f5b6b8f141579e0f0659.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m1b3fdfa8be68f5b6b8f141579e0f0659.map, position : gmap_m1b3fdfa8be68f5b6b8f141579e0f0659.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m1b3fdfa8be68f5b6b8f141579e0f0659.map.setCenter( gmap_m1b3fdfa8be68f5b6b8f141579e0f0659.positions[838] ); });

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

My 2 mentees, Jeff and Chase.

Posted on Flickr 10:08 am, September 27, 2013 jQuery(document).ready(function(){ var gmap_m70e4fb6e37a64443876678c05b8bb848 = { positions : { 636 : new google.maps.LatLng( ‘37.784333’, ‘-122.397501’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m70e4fb6e37a64443876678c05b8bb848’ ), { 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_m70e4fb6e37a64443876678c05b8bb848.positions ) { gmap_m70e4fb6e37a64443876678c05b8bb848.bounds.extend( gmap_m70e4fb6e37a64443876678c05b8bb848.positions[m] ); } // Render markers for ( var m in gmap_m70e4fb6e37a64443876678c05b8bb848.positions ) { gmap_m70e4fb6e37a64443876678c05b8bb848.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m70e4fb6e37a64443876678c05b8bb848.map, position : gmap_m70e4fb6e37a64443876678c05b8bb848.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m70e4fb6e37a64443876678c05b8bb848.map.setCenter( gmap_m70e4fb6e37a64443876678c05b8bb848.positions[636] ); });

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Automattic’s annual full-company, week-long hackapalooza.

Posted on Flickr 5:01 am, September 27, 2013 jQuery(document).ready(function(){ var gmap_m94a56ac98282d51e2951f9ac3564a837 = { positions : { 7 : new google.maps.LatLng( ‘37.784333’, ‘-122.397501’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m94a56ac98282d51e2951f9ac3564a837’ ), { 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_m94a56ac98282d51e2951f9ac3564a837.positions ) { gmap_m94a56ac98282d51e2951f9ac3564a837.bounds.extend( gmap_m94a56ac98282d51e2951f9ac3564a837.positions[m] ); } // Render markers for ( var m in gmap_m94a56ac98282d51e2951f9ac3564a837.positions ) { gmap_m94a56ac98282d51e2951f9ac3564a837.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m94a56ac98282d51e2951f9ac3564a837.map, position : gmap_m94a56ac98282d51e2951f9ac3564a837.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m94a56ac98282d51e2951f9ac3564a837.map.setCenter( gmap_m94a56ac98282d51e2951f9ac3564a837.positions[7] ); });

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Automattic’s annual full-company, week-long hackapalooza.

Posted on Flickr 4:13 pm, September 26, 2013 jQuery(document).ready(function(){ var gmap_ma9c0c6d59cc26ca3754e683dc38c469a = { positions : { 88 : new google.maps.LatLng( ‘37.784333’, ‘-122.397334’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_ma9c0c6d59cc26ca3754e683dc38c469a’ ), { 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_ma9c0c6d59cc26ca3754e683dc38c469a.positions ) { gmap_ma9c0c6d59cc26ca3754e683dc38c469a.bounds.extend( gmap_ma9c0c6d59cc26ca3754e683dc38c469a.positions[m] ); } // Render markers for ( var m in gmap_ma9c0c6d59cc26ca3754e683dc38c469a.positions ) { gmap_ma9c0c6d59cc26ca3754e683dc38c469a.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_ma9c0c6d59cc26ca3754e683dc38c469a.map, position : gmap_ma9c0c6d59cc26ca3754e683dc38c469a.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_ma9c0c6d59cc26ca3754e683dc38c469a.map.setCenter( gmap_ma9c0c6d59cc26ca3754e683dc38c469a.positions[88] ); });

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Automattic’s annual full-company, week-long hackapalooza.

Posted on Flickr 8:32 am, September 26, 2013 jQuery(document).ready(function(){ var gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5 = { positions : { 548 : new google.maps.LatLng( ‘37.784’, ‘-122.397334’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5’ ), { 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_mae2d6cdad08c2f138ccb4d4cd97ddbd5.positions ) { gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5.bounds.extend( gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5.positions[m] ); } // Render markers for ( var m in gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5.positions ) { gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5.map, position : gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5.map.setCenter( gmap_mae2d6cdad08c2f138ccb4d4cd97ddbd5.positions[548] ); });

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Automattic’s annual full-company, week-long hackapalooza.

Posted on Flickr 4:13 pm, September 25, 2013 jQuery(document).ready(function(){ var gmap_m5a50922a6b1a83477d3d740b9eeaf08d = { positions : { 820 : new google.maps.LatLng( ‘38.062166’, ‘-122.531667’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m5a50922a6b1a83477d3d740b9eeaf08d’ ), { 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_m5a50922a6b1a83477d3d740b9eeaf08d.positions ) { gmap_m5a50922a6b1a83477d3d740b9eeaf08d.bounds.extend( gmap_m5a50922a6b1a83477d3d740b9eeaf08d.positions[m] ); } // Render markers for ( var m in gmap_m5a50922a6b1a83477d3d740b9eeaf08d.positions ) { gmap_m5a50922a6b1a83477d3d740b9eeaf08d.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m5a50922a6b1a83477d3d740b9eeaf08d.map, position : gmap_m5a50922a6b1a83477d3d740b9eeaf08d.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m5a50922a6b1a83477d3d740b9eeaf08d.map.setCenter( gmap_m5a50922a6b1a83477d3d740b9eeaf08d.positions[820] ); });

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Automattic’s annual full-company, week-long hackapalooza.

Posted on Flickr 3:30 pm, September 25, 2013 jQuery(document).ready(function(){ var gmap_m7482175feb13d034d71640087c32f7bd = { positions : { 951 : new google.maps.LatLng( ‘38.062166’, ‘-122.5315’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m7482175feb13d034d71640087c32f7bd’ ), { 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_m7482175feb13d034d71640087c32f7bd.positions ) { gmap_m7482175feb13d034d71640087c32f7bd.bounds.extend( gmap_m7482175feb13d034d71640087c32f7bd.positions[m] ); } // Render markers for ( var m in gmap_m7482175feb13d034d71640087c32f7bd.positions ) { gmap_m7482175feb13d034d71640087c32f7bd.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m7482175feb13d034d71640087c32f7bd.map, position : gmap_m7482175feb13d034d71640087c32f7bd.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m7482175feb13d034d71640087c32f7bd.map.setCenter( gmap_m7482175feb13d034d71640087c32f7bd.positions[951] ); });

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Automattic’s annual full-company, week-long hackapalooza.

Posted on Flickr 9:54 am, September 25, 2013 jQuery(document).ready(function(){ var gmap_m9a2770ba684abb04845c3301d34519bc = { positions : { 141 : new google.maps.LatLng( ‘38.154833’, ‘-122.452334’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m9a2770ba684abb04845c3301d34519bc’ ), { 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_m9a2770ba684abb04845c3301d34519bc.positions ) { gmap_m9a2770ba684abb04845c3301d34519bc.bounds.extend( gmap_m9a2770ba684abb04845c3301d34519bc.positions[m] ); } // Render markers for ( var m in gmap_m9a2770ba684abb04845c3301d34519bc.positions ) { gmap_m9a2770ba684abb04845c3301d34519bc.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m9a2770ba684abb04845c3301d34519bc.map, position : gmap_m9a2770ba684abb04845c3301d34519bc.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m9a2770ba684abb04845c3301d34519bc.map.setCenter( gmap_m9a2770ba684abb04845c3301d34519bc.positions[141] ); });

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Grand Meetup 2013

Automattic’s annual full-company, week-long hackapalooza.

Posted on Flickr 8:54 am, September 25, 2013 jQuery(document).ready(function(){ var gmap_m60deb05d3f05cf0edbbe8024b83ef955 = { positions : { 832 : new google.maps.LatLng( ‘38.154833’, ‘-122.452334’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m60deb05d3f05cf0edbbe8024b83ef955’ ), { 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_m60deb05d3f05cf0edbbe8024b83ef955.positions ) { gmap_m60deb05d3f05cf0edbbe8024b83ef955.bounds.extend( gmap_m60deb05d3f05cf0edbbe8024b83ef955.positions[m] ); } // Render markers for ( var m in gmap_m60deb05d3f05cf0edbbe8024b83ef955.positions ) { gmap_m60deb05d3f05cf0edbbe8024b83ef955.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m60deb05d3f05cf0edbbe8024b83ef955.map, position : gmap_m60deb05d3f05cf0edbbe8024b83ef955.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m60deb05d3f05cf0edbbe8024b83ef955.map.setCenter( gmap_m60deb05d3f05cf0edbbe8024b83ef955.positions[832] ); });

The Year Without Pants

The Year Without Pants

Today is kind of exciting, although it’s been a long time coming so it’s not much of a surprise for me :) Today Scott Berkun, the author of books such as The Myths of Innovation, and Confessions of a Public Speaker, releases his latest book, The Year Without Pants: WordPress.com and the Future of Work.

The book gives an inside look at what it’s like to work at Automattic, and to work on something like WordPress.com. Scott was my direct team lead (of the team that I now lead) while he was at Automattic, so the book contains a lot of personal interaction with yours truly. It also happens to be a fun read with a bunch of interesting insights into distributed teams, management, and the open-source-based culture we have at Automattic, and which may well be the future of many more companies.

(more…)

A Whole New Dented Reality

Back in April, this blog celebrated 10 years of existence, and it’s been almost five years since the theme on this site changed. Yesterday I decided to just go ahead and flip the switch on something I’ve been working on here and there since late last year. It’s a complete new, very experimental theme that I call “Homeroom“.

There are some specific things driving what I was aiming for with Homeroom:

(more…)

Keyring v1.5 & Social Importers v1.4

Yesterday, I released version 1.5 of Keyring, and version 1.4 of the Keyring Social Importers bundle for WordPress. This update moves the Social Importers away from using a postmeta value (keyring_service) and introduces a new taxonomy that keeps track of where posts were imported from. It’s optimized towards management within wp-admin, but you can also use it for front-end queries of your posts. The update for Keyring introduces a new service file for Moves, and fixes a bug in the OAuth2 base service.

(more…)
Designated Play Area

Designated Play Area

Designated Play Area

Designated Play Area

Posted on Flickr 9:04 am, September 1, 2013 jQuery(document).ready(function(){ var gmap_m7143e85c87e20e27703c003de85347a1 = { positions : { 92 : new google.maps.LatLng( ‘41.193166’, ‘-74.1825’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_m7143e85c87e20e27703c003de85347a1’ ), { 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_m7143e85c87e20e27703c003de85347a1.positions ) { gmap_m7143e85c87e20e27703c003de85347a1.bounds.extend( gmap_m7143e85c87e20e27703c003de85347a1.positions[m] ); } // Render markers for ( var m in gmap_m7143e85c87e20e27703c003de85347a1.positions ) { gmap_m7143e85c87e20e27703c003de85347a1.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_m7143e85c87e20e27703c003de85347a1.map, position : gmap_m7143e85c87e20e27703c003de85347a1.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_m7143e85c87e20e27703c003de85347a1.map.setCenter( gmap_m7143e85c87e20e27703c003de85347a1.positions[92] ); });

Harriman State Park

Harriman State Park

Harriman State Park

Harriman State Park

Posted on Flickr 7:59 am, September 1, 2013 jQuery(document).ready(function(){ var gmap_md76b4ea0b2268c95c74ea447926503c0 = { positions : { 354 : new google.maps.LatLng( ‘41.207666’, ‘-74.171’ ) }, bounds : new google.maps.LatLngBounds(), // empty for now, we’ll dynamically extend it later map : new google.maps.Map( document.getElementById( ‘gmap_md76b4ea0b2268c95c74ea447926503c0’ ), { 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_md76b4ea0b2268c95c74ea447926503c0.positions ) { gmap_md76b4ea0b2268c95c74ea447926503c0.bounds.extend( gmap_md76b4ea0b2268c95c74ea447926503c0.positions[m] ); } // Render markers for ( var m in gmap_md76b4ea0b2268c95c74ea447926503c0.positions ) { gmap_md76b4ea0b2268c95c74ea447926503c0.markers[m] = new google.maps.Marker( { clickable: true, map : gmap_md76b4ea0b2268c95c74ea447926503c0.map, position : gmap_md76b4ea0b2268c95c74ea447926503c0.positions[m] } ); } // Redraw map to fit our new marker-based bounds gmap_md76b4ea0b2268c95c74ea447926503c0.map.setCenter( gmap_md76b4ea0b2268c95c74ea447926503c0.positions[354] ); });