Skip to main content
 

Social 2012

Here are my new years thoughts on the social web platforms. I've been pondering what the world can do to get ourselves out of this one man/one graph/one api situation we find ourselves in and what Google can do to help.

Facebook the product and Facebook Connect/APIs have sucked up most of the social web oxygen. Open efforts have largely failed -- the Google-led consortium OpenSocial has been relegated to niche usage like enterprise or contextual gadgets, OpenID use is declining, Webfinger never took off, oEmbed has murky IP, even RSS and Atom are use is declining.

In particular OpenSocial is now paralleling a different OSF -- the _Open Software Foundation_. Remember that? DEC/IBM/etal banded together to fight off a common enemy (Solaris/AT&T or Windows). There was some decent output from it (I loved me some Tru64 OSF/1 Unix) but in the end it was Linux that disrupted and became the server standard while Windows claimed the defacto client standard. Today both OSFs are in decline and don't define the market.
So what to do? Here are a few of my ideas, what about yours?

* Obviously getting market share for Google+ the product and Google+ the platform helps, it provides an alternative. However if we're not careful we end up with a Coke/Pepsi duopoly, since much of our growth will come at the expense of the wider ecosystem before it starts to take from Facebook.

* Try to build on open standards where it sees broad based usage. OAuth 2.0 is something that everyone (including FB) has actually implemented. Activity Streams and schema.org are ascending. Add social to these where it makes sense.

* Try to nurture the next disruptor and be prepared to jump on it when it comes. Any technology that Google promotes as "open" will likely meet the similar fate as OpenSocial. (And I hope schema.org is the exception here...)

* Do something about the Terms of Service encumbered internet that's slowly taking off.

Hopefully sometime in 2012 there can be a way for everyone to work together on social. I hope to live to see the day that Facebook, Google, Twitter, LinkedIn and a hundeds of smaller players can do something that lifts all our boats and benefits users.

 

Hi Remi, I work on site integration for the Google+ team here at Google.

Hi Remi, I work on site integration for the Google+ team here at Google.

If you're interested I have a number of recommendations that will help 8tracks perform better on Google+ and Google social search. Let me know if you're interested -- I can be plus'd here or you can email me at [email protected]

Thanks!

 

Offers

I just filed http://b/issue?id=5777937

Google Offers needs it's own Google+ Page, and we should be promoting it in the daily emails we send. This twitter stuff is so last decade...

 


Once it's prod-ready my chromebook will be one kick-ass oncall device.

https://sites.google.com/a/google.com/spdy-proxy/engineering/sshinatab






 

 

Fun to be oncall for services that page when twitter goes down...

Received response 1:\nHTTP/1.1 504\r\n\r\nDate: Wed, 14 Dec 2011 22:21:02 GMT\r\n\r\n\r\n\n


https://plus.google.com/photos/107786897865850743842/albums/5686115643399028801/5686115649643644258






 

Spotted -- the rarely seen MySpaceID login widget.... Federated login done wrong.

Found on the company that just acquired hi5:

http://www.tagged.com/profile.html?uid=15621504


https://plus.google.com/photos/107786897865850743842/albums/5686097797712211089/5686097876962672130

Beware the ghosts of connect buttons past...






 

A world where anyone can be a major broadcaster with the people that matter. (And face-tracking antlers)

A world where anyone can be a major broadcaster with the people that matter. (And face-tracking antlers)

Originally shared by Vic Gundotra

Google+ Hangouts: Going beyond the status update

One of the most intimate forms of human connection is eye contact. Our digital tools have given us new forms - text messages, email, status updates - but nothing compares to the richness and intensity of looking into someones eyes as they talk.

Our emphasis on face-to-face-face group video communication has lead to some amazing experiences. By giving this away for free, we've enabled people around the world to see into each others eyes and share discussion and laughter in new ways.

Today, we improve the service significantly.

1) We are enabling you to hangout on any post.

2) We've reached an important milestone for "Hangouts on Air". Hundreds of people (who we have whitelisted as part of our trial) can now broadcast their hangouts to the entire world for free completely self-service. Our goal is to enable this for everyone on the planet.

3) We are making it possible for you to start hangouts from messenger on Android or iPhone devices.

4) You can call any phone number in the world and conference in anyone.

5) We threw in a reindeer :-)

http://googleblog.blogspot.com/2011/12/google-hangouts-going-beyond-status.html

 

Orkut contact import for Google+ was soft-launched this week for people in India and Brazil.

We're not promoting this externally, but I feel the need to give big props to Michael Sindelar, Eduardo Thuler , Victor Ribeiro , Paulo Golgher, and Diego Fernandes for making this happen.









 

Do you participate in the mediawiki open source project and want to help authorship at Google? Let me or @102662722116509970382 know, we'd appreciate any assistance.









 

Grab your seatbelts..

I've been lucky enough to live through spikes like this. At Typepad we had cuteoverload, and gofugyourself, at hi5 we had the Romanian DJ phenomenon which resulted in 20% penetration in a months time...

In both cases the small teams had to scramble to deal with the load and focus on features was suspended.

I'm so stoked to see what we can do with the infrastructure of Google behind us.

http://asiajin.com/blog/2011/12/09/google-occupied-by-akb48-within-a-day-in-japan/

 

Bye bye OAuth-Wrap!

The Hotmail account feature in Google+ now uses OAuth 2.0 to fetch your contacts. Looking forward to talking to more OAuth 2.0 enabled endpoints (ToS/BD willing!)

Congrats to Yaniv Shuba and the rest of the team!









 

 

Lost in the noise today --> Import your photos from Orkut. Congrats Orkuteers on the launch!


http://websoothra.blogspot.com/2011/12/import-orkut-photos-to-google.html






 

I just realized how much working on Google+ has exposed me to popular culture.

I just realized how much working on Google+ has exposed me to popular culture. Youtube integration exposed me to todays pop music. Celebrity endorsements exposed me to the whole Kardashian thing (which I was blissfully unaware of!).

And now I get to understand how they do things in Japan.

Originally shared by Bradley Horowitz

Here's the big news... We're delighted to welcome the entirety of AKB48 onto Google+...

If you don't know AKB48, you don't live in Japan (or in fact, many other parts of Asia.) They are phenomenon that might be equivalent to the Beatles + American Idol + the Spice Girls + Justin Timberlake... They are a roster of more than 200 hand-selected performers who are the subject of huge media attention, and support from millions of devoted fans.

One of the philosophies around their stardom was to preserve meaningful interaction with, and access to their fans. They used to do "handshake events." As their stardom grew, this method of interaction wasn't scalable... Google+ is going to allow them to reconnect to their fans in an intimate, authentic way.

They'll be using Hangouts on Air to broadcast their concerts... they'll be regularly scheduling Hangouts to interact with their fans. Each of the stars will have their own profile, and AKB48 themselves will have a +Page...

I actually haven't yet heard them, and I'm apparently the only one presently in Japan now who hasn't. I can't yet say if AKB48 is personally for me... But I am thrilled at their adoption of our service, and they're committed to pushing the envelope of what is possible in terms of artist-fan relationship. And that's a plus.

 

Well played, very well played.

Now please request that they send invites to all their fans _using the product_.

This has the potential to be a major traffic mover.

And Google Korea -- see if SNSD will do the same!


http://www.google.com/intl/ja/+/project48/






 

I only recently found that Google Chat supports /me. If you type:

I only recently found that Google Chat supports /me. If you type:

/me claps

It's rendered as

Paul claps

I wonder if there any other IRC features hidden in there?

 

We recently started importing Orkut friends for new Google+ signups in India and Brazil. Orkut friends show up as Google+ contacts in the circle editor.

We will be offering an upgrade path for existing users soon. However if you'd like this for your own Google+ account you follow these steps:

1) Use a Brazil or India proxy: go/ganon for the firefox or chrome extension.
2) Visit the following URL:

https://plus.google.com/up/?type=st&force=1

Enjoy!









 

Anyone want to help me fill out my DJ circle?

Anyone want to help me fill out my DJ circle? ... especially artists that share Youtube content. Google+ shared videos are a great feature on the new Youtube home page.

Thanks!

 

There's some interesting things going on behind the scenes here. Some of this will find it's way back to shindig.

There's some interesting things going on behind the scenes here. Some of this will find it's way back to shindig.

In any case it's a generalized solution for calling JSON-RPC endpoints with postMessage flow using OAuth2.

Originally shared by Mano Marks

Pretty cool, a new way to access many of Google's APIs, though not Maps at the moment. In particular, Google+, Freebase, Contacts, Latitude, and a host of other APIs. And it'll handle the authentication for you.

 

 

Nice, The Current is on Google+ -- Listening to Radio Free Current right now on the time machine weekend.

Nice, The Current is on Google+ -- Listening to Radio Free Current right now on the time machine weekend. Lucky folks in MN you get it on FM :)

 

 

 

ugh.. protip for protesters @google-- have data to back up your claims.

Right now there's a grim reaper effigy and carpenter union folks handing out flyers. Flyer is hyperbolic to the extreme and doesn't have any real data other than that a specific contractor used by google pays below the prevailing union wage. The only action requested is to email REWS.

So I ask the person there: does this apply to projects at Google or is this just a problem with this contractor in general? How many companies employ this contractor? How many people are being paid below wage? What other actions have you taken, if any?

No effing clue on any of those questions nor any passion.

I never thought I'd say it, but it made me nostalgic for eng-misc.









 

Doubt many people noticed -- but Yahoo Pulse is now Yahoo Profiles... They still have that lamer exclamation point generic profile pic...

Time to update a few igraph rules...


https://plus.google.com/photos/107786897865850743842/albums/5676533779883563105/5676533781096547538






 

 

Unofficial Google phone support today:

* GTV Music app (won't play an album, only plays first song.)
* Picasa Multiple account + dasher fun (uploads going to wrong account, looks broken because both accounts have same name/profile photo) Figured it out by comparing obfuscated gaia IDs..

Lots of "Open Link in Incognito Window" required, sadly :(









 

Want to find some great new music? Load up this URL:

Want to find some great new music? Load up this URL:

https://plus.google.com/s/remix/posts

Then click "Most Recent".

You'll find all sorts of interesting remixes scrolling by. There's enough content that you can't even listen to it all, so you can pick out the most interesting stuff.

(And feel free to substitute some suitable generic term if you're not really into DJs and electronic/pop music.)

 

Welcome to Google+! Lalit Sarna

Welcome to Google+! Lalit Sarna

PhotoBuzz in hangouts :)

 

Welcome to Google+, Ron Gould

Welcome to Google+, Ron Gould

Hope Standsure is doing well. Let me know if you want help setting up a Google+ Page!

 

Just realized that I have 8 invites left for Google Music beta.

Just realized that I have 8 invites left for Google Music beta.. You might want to try it out just to get your hands on a few hundred free songs. (Admit it, you really do like the Bay City Rollers Saturday Night!)

First 8 emails posted below get an invite.

 

Welcome to Google+, Lalit Sarna

Welcome to Google+, Lalit Sarna

 

Hey look, it's the Fedora Project! On Google+

Hey look, it's the Fedora Project! On Google+

Check out Fedora 16 if you're into Linux distros. I just finished upgrading the home server last night and it's running smooth. (even if systemctl reminds me way too much of solaris SMF)

Fun fact: I've been upgrading the same system image since Red Hat 6.0. No reinstalls.. and since I never had a CD/dvd all upgrades were via rpm/yum.

 

How is gmemcached related to the open source version?

latest release looks quite impressive!

Check out the release notes for 1.4.10


http://code.google.com/p/memcached/wiki/ReleaseNotes1410






 

You can stop reading now if you don't care about software that keeps the internet from falling over.

You can stop reading now if you don't care about software that keeps the internet from falling over.

Memcached 1.4.10 is now out and this release looks to be the best yet. Check out the release notes and send some kudos over to http://dormando.me/ (Hey Dormando, get on G+ already!)

To do my part I just built the fedora RPMs for f15/f16/rawhide. Try it out on your favorite high-volume server.

 

 

A Blue Bottle latte and the aroma of roasting coffee beans almost makes up for missing the google shuttle this...

A Blue Bottle latte and the aroma of roasting coffee beans almost makes up for missing the google shuttle this morning....

Always worth a visit if you're near Jack London Square.

 

Hi -- have a few ideas on how 8tracks can work better on Google+

Hi -- have a few ideas on how 8tracks can work better on Google+

Feel free to drop me a line here or email [email protected]

 

This WebRep stuff *must* be stopped!

Terrible, terrible thing...


https://plus.google.com/100623276740673202144/posts/L7gKuoFLAEC






 

If you have time on your hands try this:

1) Find spam comment on G+
2) Real time search for spam comment text
3) press report abuse as the spammer posts 'em.

(and then notify http://goto.google.com/es-escalations)









 

 

4 years ago today OpenSocial launched to the world at the first Google Campfire One event.

4 years ago today OpenSocial launched to the world at the first Google Campfire One event.

You can find me at 4:14 and 4:30 operating the browser next to Akash Garg and Jeremiah Robison. Today Akash is doing infra work at Twitter, Jeremiah is over at Jawbone working with a bunch of the former hi5 crew, and I'm working on making Google+ better with some of the same folks that participated in the original OpenSocial effort you see below.

Also don't miss the Vic Gundotra's intro at

Campfire One: Introducing OpenSocial

and performances by Joe Greenstein, Marc Andreessen, Adam Nash and others.

How time flies!

 

Have a Google vanity domain? This is what you've been waiting for!

Have a Google vanity domain? This is what you've been waiting for!

Originally shared by Ronald Ho

Hi, I'm Ronald Ho. I’m a product manager at Google and for the past months I’ve been working on making Google+ work with Google Apps accounts.

We hoped to have this out to you earlier, but it took more technical work than we’d expected. With that work out of the way, the day is finally here and Google+ is now available with Google Apps.

You can find more details in our blog post including links to resources to help get Google+ enabled for your domain.

Let us know how you plan to use Google+ with your Google Apps account, and give us your feedback on any part of the experience that we can improve. Thanks!

 

Sadly I have to log into an AOL account to test contact importing, which means I get exposed to their peculiar form of "news".

I am happy that no one has +1'd this particular article and confused that this has a facebook like and share button. odd...


https://plus.google.com/photos/107786897865850743842/albums/5667572945699929553/5667572943501636066






 

Very impressed with Google Ears (go/ears). I thought I'd throw it a challenge and it nailed it!

Watch if you dare :)


http://www.youtube.com/watch?v=6zoIzdJ--go






 

Just added soundcloud.com iGraph support -- the first step to using their graph data in intelligent ways. (And to clearly identify Dr. Luke's remixes..)

Let me know if YOU want to support better indexing of your favorite social site!

goto.google.com/lifeofaconnectedsite


http://soundcloud.com/drluke/ke-ha-blow-cirkut-remix






 

Another java project "goes guava"

Another java project "goes guava"

Originally shared by James Snell

More Abdera2 Updates... this is a copy of an email I just sent to the Abdera-dev mailing list...

----------

Ok, for those of you who may not have seen it, I posted another major update to the Abdera2 code yesterday. Where as the first round of updates focused primarily on updating dependencies and the introduction of the Activity Streams capability, this update focused more on API Refactoring and the introduction of two new major dependencies: the Joda-Time Library (http://joda-time.sourceforge.net/) and the Google Guava Libraries (http://code.google.com/p/guava-libraries/).

First up, Joda-Time... for those who aren't familiar with it, joda-time is a comprehensive code library for working with dates, times, durations, intervals, etc. When I wrote the first version of the Abdera Feed Object Model API, there wasn't a good open-source implementation of the ISO8601 DateTime format required by the Atom specification available so I wrote a fairly limited, down and dirty implementation in the form of the AtomDate class. It had decent performance, fairly good coverage and got the job done. Joda-Time, however, has emerged since as a top quality rich implementation of the 8601 standard... so even though it is a breaking change to the existing Feed Object Model API, I have gone through an have replaced Abdera's own implementation with Joda-Time's DateTime class, which, when used in combination with the mechanisms provided by the Google Guava libraries, provides for some very interesting and compelling new capabilities.

Which, of course, brings me to Guava. This library is a collection of extremely useful utility classes from google. This update brings significant deep integration with Guava in a number of ways, the most important of which is the new Selector API that I introduced as part of the first Abdera2 checkin.

Among many other things, Guava defines a number of interfaces and utility classes aimed at making it easier for developers to write quality, functional, readable code that has a more natural flow to it. It is easiest to show by example.

In Abdera 1.x, if I wanted, for instance, to extract a list of entries from an Atom feed that had been edited after a specific date and time, it would look something like this...

AtomDate ad = new AtomDate("2011-09-10T12:12:12Z");

List list = feed.getEntries();

List selected = new ArrayList();

for (Entry entry : list) {

if (entry.getEdited() != null) {

if (entry.getEdited().after(ad.getDate()))

selected.add(entry);

}

}

Note that feed.getEntries() will return every entry from the feed whether we want it or not. We then have to iterate back over that list, check to make sure there's an edited date, compare those and build up a new list. The code is ugly and cumbersome and inefficient. With the code I just checked in, the same process looks like this...

import static org.abdera.abdera2.model.selector.Selectors.*;

import static org.abdera.abdera2.common.date.DateTimes.*;

List list =

feed.getEntries(

edited(after(dt("2011-09-10T12:12:12Z")))

);

The portion, edited(after(dt("..."))) constructs a Selector that filters the list of items returned by getEntries(), keeping us from having to iterate back over the list.

Suppose we wanted to add another condition to the mix.. say some custom selector that checks for the presence of a particular extension... We can implement our CustomSelector by extending the AbstractSelector class, and merely append that in to the code above like so...

import static org.abdera.abdera2.model.selector.Selectors.*;

import static org.abdera.abdera2.common.date.DateTimes.*;

Selector customSel = new AbstractSelector { ... }

List list =

feed.getEntries(

edited(after(dt("2011-09-10T12:12:12Z")))

.and(customSel)

);

Underlying the Selector API a large chunk of the Guava API... specifically the Predicate, Function, and Constraint interfaces. The Selector interface actually extends from Predicate and Constraint and provides a mechanism for being cast as a Function.

A broad range of utility methods have been provided that create constructors for many of the most common cases, in particular DateTime related operations. Look at the following classes for those utility methods...

org.apache.abdera2.common.date.DateTimes

org.apache.abdera2.common.selector.Selector.Utils

org.apache.abdera2.model.selector.Selectors (for Atom specific utilities)

org.apache.abdera2.activities.extra.Extra (for Activity Streams specific utilities)

The Selector mechanism has been baked into both the Atom and Activity Streams APIs now. For instance, suppose we have an Activity stream but we only want a max of 10 activities for which a given user is the intended target (using the Activity Streams Audience Targeting Extension.. which I can explain later .. lol).. We could get that list of entries using...

PersonObject person = new PersonObject();

person.setId("acct:[email protected]");

Iterable list = stream.getItems(isTo(person).limit(10));

Additional changes in this update include....

1. Refactoring classes into immutable thread-safe objects. This will be an ongoing change. As much as possible, a Factory/Builder model for most basic object types will be used as opposed to the more traditional getter/setter model. The motivation behind this change is simple in that it helps make more a much more scalable architecture and significantly more readable code.

For instance, if you wish to construct a Cache-Control header, you can use a simple fluent builder api...

CacheControl cc =

CacheControl

.make()

.isPublic(true)

.noTransform(true)

.maxAge(1000)

.get();

Likewise if you wish to construct a new WebLink HTTP Header,

WebLink link =

WebLink

.make()

.iri("http://example.org")

.rel("alternate")

.title("Home")

.get();

The pattern is simple and consistent throughout.

2. Added support for Guava objects in the URI Template implementation... specifically, a URI Template Context can now include the Guava Multimap, Supplier and Optional values. In addition, support for java.util.concurrent.Future, java.lang.ref.Reference and java.util.concurrent.Callable were also added. The one caveat when using Future, however, is that the context will not wait for a value to become available. The Context calls Future.get() and takes whatever it gets back as the value so before you use a Future in a URI Template, make sure it's been completed.

3. org.apache.abdera2.common.text.CharUtils has been refactored. This class was always a bit of a hacky mess. It's been cleaned up significantly around a new CodepointMatcher that is modeled after Guava's CharMatcher interface. Codepoint matcher, however, is designed to work specifically with Unicode Codepoints rather than Java Chars. For the most part, CharUtils and CodepointMatcher are internal classes that the majority of users won't ever have to mess with.

4. Filter/FilterChain has been refactored. This is the part of the Server framework that allows you to plug in a chain of filters before invoking a Publishing Protocol Provider. Previously, the Filter and FilterChain interfaces were very specific to the Server API.. they have been refactored into generic Chain and Task interfaces and moved to org.apache.abdera2.common.misc.*. This allows the use of Chain anywhere you may need a simple interceptor framework...

A trivial example,

Task lower =

new Task() {

public Void apply(

String input,

Chain flow) {

if (input == null) return null;

return flow.next(input.toLowerCase());

}

};

Function print =

new Function() {

public Void apply(String input) {

System.out.println(input);

return null;

}

};

Function chain = new Chain(print,lower);

chain.apply("HELLO!");

The Google Guava api does provide the means of composing multiple Function objects together such that the output of one flows into the input of another, but it only works in one direction.. the Chain here allows you to intercept inputs and outputs.

There are a number of other additions here and there throughout the code, and there will be more to come. One MAJOR change that I'm currently exploring is the use of Guice as a complete replacement for the Classpath-based configuration model we currently have. Let's face it, the current stuff provides a significant amount of flexibility and power, but initialization is slow. Guice is significantly faster and much more powerful than what we currently have.

Anyway, that's it for now.------

 

 

Couldn't agree more...

Couldn't agree more...

Originally shared by Brad Templeton

When I saw the news about Steve Jobs it was a shock. But the news that Dennis Ritchie has died was much more like a blow. I didn't know him super well, we attended Usenix together for many years, but he was mostly a quiet man, not the sort to seek the limelight.

Dennis was instrumental in two things -- the C language and Unix -- which are the foundation of almost all the computing in the world today. Certainly much of C came from its predecessors like B and BCPL, and many things in Unix from its predecessors like Multics, but these two focal points were where all of 60s and early 70s computer science came together, and spread out. Of course Linux and MacOS and Android are very direct descendants of Unix, but even Windows is filled with ideas from Unix.

Far more than Steve Jobs, pretty much all your computing is based on Dennis' work. Last week Google noted Jobs at the bottom of the home page, a very rare honour. But Dennis Ritchie would be even more deserving of it.