News:

G+Me Makes Google+ (Almost) Perfect: An Interview with Huy Zing

G+Me is one of our favorite Chrome extensions here at Google+ Insider's Guide. We love it because it's one of the most comprehensive extensions out there. It attempts to address the "noisy streams" issue, with list mode, and collapsible posts and comments. The creator, +Huy Zing, is very responsive to feedback, and he's been quick to address any issues that arise, including privacy concerns. He's even created a G+Me (Paranoid Edition) extension, for the extra careful Google+ user. And if you hate the idea of Google+ games, Goodbye for G+ Games will get rid of the games button for you.

Since I'm such a fan of his work, I decided to ask him a few questions about his thoughts on Google+ and G+Me.

Q: How did you get into Google+?

A: Several ex-employees of mine sent me an invitation. Google+ took off very quickly in the tech community in Vietnam. This probably has to do with Facebook being blocked there, as it is in China, while Google+ isn't (yet).

I've always been interested in Google and their technologies. I was once a high-profile user of Google's first foray into social networks: Orkut. There's actually a bit of social network history there if you google "Huy Zing Orkut". I've been banned twice from the site, through no fault of my own. And to this day I remain inexplicably banned from Orkut, which goes to show that social network policing hasn't improved much since the go-go days of Friendster. Luckily, I get a second chance to join in a Google community with Google's renewed attempt at defeating the social network juggernaut du jour.

Q: What are some of the challenges with creating the G+Me extension? It seems like Google+ is being constantly updated with some new feature or other—does this hinder the development of the extension?

A: That's a very good question. The challenges with writing any browser extension that interacts with web pages are quite numerous.

First, there are multiple browsers to support. Web standards evolve (including HTML5, CSS3, JavaScript) and browsers update quickly, especially at the level of tools and extension APIs. In this instance, I made the simple choice of only supporting Chrome for now, so that I don't have to worry about cross-browser compatibility in the short term.

Secondly, when writing an extension, you don't have access to a well-documented API, which means that you have to reverse-engineer the way a web site works by spending large amounts of time digging through the HTML and CSS, and using the JavaScript debugger to watch what's going on when, for example, a new post comes into Google+. In particular, Google+ is a very Ajax-heavy web site, where multiple parts of the page can update at any time, in many different ways. Exploring and handling all the myriad ways that data changes on the page can be very time consuming, but also very educational.

As you alluded, one of the most frustrating parts of building a piece of software on top of another piece of software without an API is that any update can break your extension without warning. An API is a contract between two sets of developers. In this case, those would have been Google+ engineers and extension developers, but such a contract doesn't exist. I actually think that such an API, at the DOM level, would be a great innovation that Google+ could pioneer. But I understand that Google doesn't have the time, resources, or interest to support such an API, on top of the work that they're already doing with the upcoming Google+ Platform. There are two other reasons why building a Google+ extension can be difficult especially right now: it's still beta software and subject to quick changes and there is heated tit-for-tat competition between Google+ and Facebook, two very fast-moving technological organizations.

There is a final technical complication which has been driving extension developers and their users nuts.  Google+ uses what are called HTML/CSS minification and obfuscation tools which change identifiers on the page called CSS class names. These class names are what extensions rely on to change the way a page looks or behaves, or to insert new extension-specific elements into the page. Google+ changes the web page layout on a daily basis but, every week on average, they re-minify/re-obfuscate the page which changes all the CSS class names. There are workarounds that several extension developers and I have been working on, but no complete solution exists. I myself have been very busy creating a general open-source SDK to help all extensions become robust in the face of such wholesale layout updates. It will probably take another week or more to finish an initial version.

Due to all these changes, it's particularly important for extension developers to respond very quickly to Google+'s layout changes, as users can become frustrated when they lose features that they've come to rely upon. Google+ makes it every easy for users to contact the authors and keep up with updates. So using Google+ as a platform for the software and customer support is very interesting. Google+ staff engages with the community a lot more than Facebook staff ever did. Extension developers do the same.

Q: What features do you think Google+ is missing, that should be implemented?

A: For me the biggest missing piece is the ability to post something related to a particular topic so that you can post to the "Public", but not spam your uninterested followers, friends, and family. Another big complaint from everyone is that the real-time updates are hard to manage: too much data with few effective ways to manage it.

Everyone's got tons of ideas that Google+ could implement. I have some that I'm cooking up right now. But certainly there are features that Google would do best to implement rather than extensions—e.g., the ability to quickly search through posts and comments.  

Q: What are some of the most requested features that you're using G+Me to address?

A: G+me addresses information overload. There are several aspects to this. One is to be able to track what you've already read, as with email. If I read a post in one circle and I switch circles, or if I come back tomorrow, I don't want that same post to grab my attention again. That's why G+me allows you to collapse posts. Google+ itself has a mute feature, but it's too coarse: if you mute a post, then you won't see any follow-up comments. Collapsed posts in G+me tracks and shows whether new comments have come in so that you can re-visit a read post.

Another aspect to the information overload problem is knowing what's worth reading or skipping. That's why G+me offers a second reading mode: "list" mode. In this mode, all posts are by default collapsed and you can see a one or multi-line summary of the post, along with certain interesting hints, such a photo of the original poster (in the case of re-shares), icons for attachment types, and markers for posts that are shared with limited circles.

There are other solutions to the information overload problem, but they're on the TODO list. 

Q: What does G+Me (Paranoid) edition do that the regular G+Me doesn't?

A: The Paranoid edition requires fewer permissions from the user; it does not request what's called the "tabs" permission. This tabs permission is used for one part of the extension to communicate with other parts of the extension that run in Google+ tabs. Unfortunately, this permission also allows an extension to track the user's complete browsing history, which could be abused. Of course G+me doesn't and will never track browsing history, but users are understandably apprehensive. So I created a version of G+me which loses a few convenience features but which users can be sure won't track browsing history, thanks to technological restrictions. I recommend users to install the full-blown version of G+me so that they'll always get the latest features, but I give the Paranoid option for those who may not trust my privacy policy.

Ultimately, this is a problem with the Chrome Web Store and the Chrome browser. They should figure out a way to dissociate the two sets of permissions so that communication won't be impaired while browsing history is safeguarded. It's possible; they just haven't gotten around to it.

Q: What do you use Google+ for? Do you foresee yourself using it to do any other projects?

A: I use Google+ to keep up with news, to learn web technologies, to explore innovations through extension development, to connect with fellow coders, and to engage with the users of my extensions and receive feedback and bug reports. It's a great way to have fun, learn, and work at the same time. And I'm sure that we're all building some long-term relationships through it.

Yes, I'm in the middle of the SDK project that I mentioned above. I have several big ideas for other features or extensions. And I also anxiously await the Google+ Platform for future projects. It would be great if Google+ implemented all the G+me features so that I don't have to support it anymore and I can focus on more innovation.

Photo by rikulu

2 Comments

Wish I could +1 on several paragraphs / statements! Awesome, and thank you +Huy Zing and +Kimberly Lau.

Great article and very impressive talk from +Huy Zing and +Kimberley Lau. Sensational work!

Share Your Thoughts

  • Hot
  • Latest