Skip to main content
 

Circles Circles Circles

So I thought I'd write an apps-script macro to help find Twitter profiles of my G+ circled people. [I'm assuming these contacts will go away on April 2nd, right Greg Wolfe ?]

Code works, but App Script barfs on the Twitter javascript used to render the follow buttons. So I just grabbed the html output and stuck it on a server and clicked the follow bu
tton...

If someone wants to poke at it and/or publish it (I have no time for either) have at it...

You can access it here:

https://script.google.com/macros/s/AKfycbz8RJl6qIS6x1PTQss_O1Xz69l1_bp1QcyJPoxnW9qITvFYTEI/exec

And the xss-riddled code looks like this:

function doGet() {
var html = '<!DOCTYPE html>';

do {
var pageToken;

var connections = People.People.Connections.list('people/me', {
pageSize: 100,
personFields: 'names,urls',
pageToken: pageToken
});

connections.connections.forEach(function(person) {
// Skip people without URLs in their profile.
if (!person.urls) {
return;
}
person.urls.forEach(function(url) {
if (url.value && url.value.match(/twitter.com/)) {
var name = url.value;
if (person.names && person.names.length > 0) {
name = person.names[0].displayName;
}
html += '\n<br><a class="twitter-follow-button" href="' + url.value + '">';
html += 'Follow ' + name + '</a>\n';
}
});
});
pageToken = connections.nextPageToken;
} while (pageToken);

html += '\n<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>'
var output = HtmlService.createHtmlOutput(html);
output.setTitle('Google+ Follower Finder');
return output;
}

 

Oz Monolith

*An Update on the Oz Monolith*

So it's a little over been two weeks since we turned down most of Oz for frontends. Project Death Star removed most Google+ traffic. Purple Hummus removed contacts.google.com. Project Falcon got iOS G+ on FEDS. And the OneGoogle Notifications Widget is now exiting too.

There's still much more to do, Apiary APIs, widgets and more need to go. And lots of code to delete as you can see in the Rise and Fall of Oz by # of files below.

Thanks to everyone that removed services/code, and let me know if you're missing a killoz teams badge.

 

Come Home Paul! Come Home!

- First time I've seen Recruiters targeting expat folks. What next, will they contact my family to put pressure on me to move back?
- Including a Youtube video in your emails is a good way to get your message visibility in Inbox. Even if it's this dorky thing.
- It also appears that Target makes it's recruiters use their DJ name. In da house with *DJ Luke Doubler* and his sidekick *Talent Scout*.

http://rumandmonkey.com/widgets/toys/namegen/3675

---
Paul,

My name is Luke Doubler and I’m a talent scout for Target Corporation.

I’m reaching out to you because I see that you went to the U of M and I’d like to see if you’d consider coming back.

I found your name on your GitHub profile (http://github.com/lindner) and see you are a full stack developer with contributions in JavaScript, full stack products, Apache, Amazon Dynamo and others. I also see via your LinkedIn profile you are with Google. I’d like to see if you’d consider a leadership role with Target.

Our corporate office located downtown Minneapolis has an engineer leadership position open in a very agile/scrum development team building products that will propel Target.com as the premier online retailer.

Would you be open to connecting Paul via phone? Your full stack development experiences appears to be exactly what we’re seeking. I can make myself available based on your schedule.

I look forward to connecting.

https://www.youtube.com/watch?v=QopMlVsPH3Y

 

Tree rings on the web

In the future web-archeologists will analyze html to identify the age of a page by the widgets they include.

Here you have a web site built circa 2012 with the very rare plusone button with a G+ on a grey background.

https://plus.google.com/photos/107786897865850743842/albums/6187004181065470801/6187004179257230690?...

 

Heads up webmasters -- please consider updating your javascript snippets.

Heads up webmasters -- please consider updating your javascript snippets.

Originally shared by Ilya Grigorik

All Google+ widgets have been updated to use the script[async + defer] pattern! E.g. +1 button docs: http://bit.ly/YHoj96

What's the benefit? Loading widgets via script[async+defer] does not block the document parser (see [1]), and allows the preload scanner to discover the script resource and initiate an earlier fetch (see [2]). Net outcome, both your page and the widget load faster! Have a G+ widget on your page? Check out the docs for guidance on how to update your snippets.

Kudos to the G+ team for taking the lead on this! Hope to see more widget providers adopt the same pattern.

[1] https://developers.google.com/web/fundamentals/performance/critical-rendering-path/adding-interactiv...

[2] https://www.igvita.com/2014/05/20/script-injected-async-scripts-considered-harmful/

 

John Hjelmstad / Jonathan Beri - same deal as sign in button...  let's incorporate it...

John Hjelmstad / Jonathan Beri - same deal as sign in button...  let's incorporate it...

Originally shared by Gerwin Sturm

As you might have noticed I invested quite some time in Polymer recently. What I like about web components is that they make a lot of things a lot easier, except...

Normally adding a +1 button (or any other Google+ plugin) to a website is just about the easiest thing you can do.

1. Take the code snippet from the docs, e.g. https://developers.google.com/+/web/+1button/

2. Paste it in your code at the appropriate place.

3. Done.

Unfortunately the gapi JS library doesn't like to work with the Shadow DOM. Even if you pass in a direct reference to an element inside of your element it won't work.

The (https://github.com/GoogleWebComponents/google-hangout-button/) works around this issue by adding an element to the light DOM, telling gapi to render the button there, then snatching the element and sending it to the shadow realm dom.

Since there are a lot more widgets to choose from, I took this idea and started by creating a generic element that takes `type` and `data` as attributes to render the appropriate plugin, using the same idea as the hangout-button.

So for the default +1 button you could just use

Or for a profile badge you would use

<google-plugin type='person' data='{"href": "https://plus.google.com/+GerwinSturm"}'>

From there I started to create specific elements, that have the relevant attributes for each plugin.

For now there are only two but others are easy to add:

(the profile attribute will be used to build the href attribute needed by the profile widget)

The plugins still aren't really happy inside of the shadow dom, displaying some errors in the console, and not all interaction seems to be working correctly.

I have some other ideas I will test to improve this, but maybe the gapi team will eventually support Shadow DOM properly ;)

For now these elements work better than not working at all :)

Source code: https://github.com/Scarygami/google-plugins

Docs: http://scarygami.github.io/google-plugins/components/google-plugins/

Demo: http://scarygami.github.io/google-plugins/components/google-plugins/demo.html

 

Hi widget lovers.

Hi widget lovers.  You may have noticed a new look for the +1 and +Share buttons that are consistent with the Follow and Badge widgets.  We hope you like them.

You'll also notice that they scale up beautifully.  All of our buttons are now using SVG to render the iconography, and the Roboto font for text. There's even some SMIL animations hiding in there too.  All of this is perfect for your new high dpi laptop, tablet or phone. ‡

Please let us know if they're working for you and if you have any suggestions. Thanks for using Google+ widgets!

‡ results may vary on IE8 and Gingerbread browsers.

 

Would people be interested in a periodic hangout where me and my weekly Google guest makeover your web site with...

Would people be interested in a periodic hangout where me and my weekly Google guest makeover your web site with Googley features? We'd have a special guest each time and go over things like authorship markup, security, performance, APIs, widgets etc?

+1 this post if you're interested. Feel free to nominate your favorite site you'd like me to put under the microscope in the comments...

[nifty CC BY-NC-SA 2.0 photo from flickr user spike55151]