Posts tagged as:

Walter Roth

Building Google Chrome Extensions 101

What is a browser extension?

Ways to add niche functionality to a browser that people want.

What do you build extensions with?

HTL, CSS and JavaScript

Lots of things you’ll get for free in extensions …

  • Local storage (key value pairs)
  • Storing preferences and settings
  • Geolocation api (lets browser tell you where the device is running)
  • WebGL (standard for doing 3D in the browser)
  • Audio and video without plug-ins (natively for a couple of codecs)
  • Notifications (e.g., desktop notifications coming out of the toolbar)
  • Web Sockets (creates a persistent long live connection where the browser can keep connected to a server, to get IM, mail, etc quickly to the browser)
  • Discover extensions here: chrome.google.com/extensions; extensions can be hosted there unless you code uses restricted api’s, in those cases, you need to sign something that indemnifies google, etc.
  • Can also use flash, and run native code (from the old netscape days)
  • NativeClient is another project, runs native code in the context of a sandbox, its coming soon
  • Easy to install, click and installs immediately without restarting the browser
  • Easy to update, every couple of hours, browsers go and check url, if updates exists, will get it and will update on the fly … all users would update within a day or so, no review process

How do I write an extension?

  • Use technology you already know … just like writing a website
  • Just focusing on chrome itself (not cross browser)
  • Simple API’s: eg, bookmarks, history i18n, processes, tabs / windows, etc.
  • Start with manifestation with a.json file
  • Develop right in Google Chrome text editor
  • chrome://extensions/ (from tools menu on mac)
  • Not wild about toolbars in Chrome (design philosophy)
  • Instead of toolbars, for extensions, we added “Browser Action” …
  • Browser Action icon in upper right (a few things you can do with it)
  • Its dynamic, can use JavaScript with it on the fly
  • Can change it to another image within extension folder
  • Or, in html, using the canvas element … demo of using canvas to spin the icon
  • Can display new mail count, for example, like 4 characters worth
  • Things you can do to get users attention and give them info to follow up on
  • Page Actions – instead of being in the URL box, its next to it
  • Browser actions are for any page … but Page Actions is for something contextual to the page in question … might only show up if it detects there is some flash on page (if the extension does things for flash)
  • Pop up from URL box
  • 3 main views: browser, page and pop ups
  • One more view … is the webpage itself
  • Grease Monkey built in … we call it “Content Script”
  • A javaScript that gets injected and changes the html that you are viewing
  • Lessons learned by Aaron when he did GreaseMonkey (now works for google)
  • Isolated words … didn’t want your content script to be compromised by a bad website …. so the idea behind Isolated words … its JavaScript … can’t see global variables or functions within the page … it turns out that you can do a lot by just havig access to the DOM … you don’t have to interact with the script of the page … there is workarounds … something about working within the context of the page’s script ….. (Security feature)
  • Limited access to chrome.*API
  • Can talk to other extensions, to act on your behave …
  • Introducing the background page …
  • Runs behind the browser, doesn’t show, has a dom and a content script, etc.
  • A place to run persistent script … this is the place you’d do the xhr’s to pull new mail, registering new listener programs, etc…
  • API’s for content scripts to communicate with your background scripts …
  • The brains of your extensions
  • The popup is a page as well. It and the script talks t the background page … the logic lives in the background page
  • Background and popups is your code and you have full access to it
  • The content script has limited access to chrome api’s
  • Message passing
  • code.google.com/chrome/extensions/ for documentation on this stuff …

A simple twitter trend fetcher

  • Changes page, adds a div, inserts trends on twitter
  • Adds blue div on top of page, showing twitter trending topics, added by extensions
  • Need to choose url’s that it will be inserted into

….

  • Uses HTML5 for things…
  • Option pages
  • Override pages … can over ride tabs, or book marker functionality, or, etc. You can override those things ….
  • Themes …
  • Can manipulate windows api … (create them, move them around, close them, etc…)
  • Asynchronous … don’t want to lock up the whole browser …
  • Bookmarks sampe code … tree like api … takes bookmarks and puts into a page
  • Take screenshots api … takes one and displays it in the page ….
  • A few more experimental ones … use custom codes .. processes, infobar, cookies, context menus, clipboard … looking for feedback … TRY OUT THESE THINSS and give feedback

Q: How use GeoLocation?

A: Right now you have to specify them in in your geo array.

Q: From the snapshot api, can you create a thumbnail?

A: You get a URL with the image, and then you can load it into canvas to do what you need to create it as a thumbnail.

{ 0 comments }

Google I/O Bootcamp NotesWill-Norris

#iobootcamp on twitter

05/18/10

Introduction to Google Buzz
Speaker: Will Norris
Google Buzz allows users to share updates, photos, videos and more from right inside of Gmail or
using the new developer APIs. This session will provide a high-level view of the APIs available for
interacting with Buzz, and the open protocols they are built on.

Social 101: Buzz

The Conversational Web

  • Previously there was more consumers of content than creators
  • We believe you should have interactions across the web regardless of where its posted or where you’ve entered the web

Google Buzz

  • Baked into gmail, where you are spending a lot of time already
  • Keep track of whats going on and not losing it all
  • Post to Buzz widget, can put on your own site
  • Buzz andorid app, and html5 app

Relevant Technologies

  • Enough to get a frame of reference for later in the sessions
  • Atom (and friends) … xml format for syndicating web content … great for blogs … doesn’t go much further for that … so extensions were added
  • Like an image inclosure …
  • Atom + MediaRSS … eg adding height and width of image to be displayed correctly
  • Atom + GeoRSS … Location is becoming more important, most devices have data … to add geolocation data to Atom is GeoRSS … point and feature name …
  • Atom + GeoRSS + Portable Contacts … common format for importing address book … uses “poco”
  • Atom + Threading … To create real conversations about this, not just posts … this specifies this is a reply to this post … Here is the post and point to comments … OR …. I am a comment in reply to something else … it can be a video in reply to another video (e.g., youtube, etc).

Activity Streams

  • What are the right things to add to Atom to capture whats going on in applications today (streams)
  • Its not so much about the content, its the actions on the content that is important
  • What do these feeds have in common? (showed actoin lists, like uploaded videos, updates, uploads by a person, favorites of video’s uploaded by person, etc)
  • Not many things in common
  • The conversational web is not just about the content, its sharing the video … its not just sharing but also letting people know that you “favorited” the content, etc… doesn’t really fit well in the Atom model
  • The examples are two same action on two different sites, the other two are two different actions on the same site
  • How do we get away from these dumb feeds, add some more meta data, to do interesting things
  • Actor + Verb + Object (start simple)
  • Ted committed revision 42
  • Cami favorites a video
  • Ted friended Cami
  • Atom + Activity streams (showing how to do this)
  • What does adding this additional meta data buy us?
  • We are still early in it, havn’t seen a lot of applicatoins doing interesting things on this
  • But you can image, like an app that wants to Pivot on these things (e.g., one object tyep is “reviews”)
  • Show me all of my “Reviews” regardless of where I created the reviews.
  • Or show me all my “Favorites” regardless of where I favored them.

Salmon

  • I have my blog with comments and Likes
  • I want my blog to get as big an audience as I want, so I syndicate to Buzz, FriendFeed, etc.
  • Each of them have their own comments and likes
  • We are fracturing things
  • You want to engage people where they are and comment there, but it would be nice to have that content to come back to your initial place of post
  • Salmon does that, allows comments and likes to swim upstream
  • When someone leaves a comment, it will notify my initial site
  • It can go for any object that is taken on any object
  • This works cross sites, like mentioning an individual with an @ sign, (he mentioned clickset users, status.net and they use salmon and have cross mentioning) … Buzz will be supporting this hopefully in the not so distant future
  • Check out Bridging the Islands 3-4pm room 9 hosted by creator of Salmon (TASK)

PubSubHubbub

  • You’ll hear a lot about this this week
  • It hits the core of a lot of what Google is doing, beyound google
  • Its part of making the web faster
  • Its enabling the realtime updates of things like appfeeds
  • Your rss reader keeps checking with your blog for updates, it keeps checking (e.g., once an hour maybe)
  • As a site owner, I’d love for them to stop hammering me … one or two users is not a big deal … but many “the thundering heard” will tumble your site on godaddy …
  • The idea solution is a different model
  • Replaces your blog with a HUB
  • Your blog posts to the Hub
  • The Hub pushes it out to the subscribers
  • Ream app Wed 4:15 pm -5:15pm same room as SALMON

Oauth

  • Password anti-pattern (e.g., entering in your twitter u and p, or email u and p to set up an account and import your contacts) … gives away the keys to your kingdom …..
  • Your valet key for the web
  • Valet Key (limits speed to 20 mph, limit total distance to 20 miles, reistrict access to the trunk and glove box)
  • Oauth Token (limited to particular app, what data applicatoin can access, how long the data can be accessed, revokable)
  • “Find your friends the right way…”
  • From twitter takes you to Google, it tells you what the app wants and will do with it
  • e.g., asking for one time access
  • Then goes to flickr and they match your contacts with people on flickr

Big buzz announcements tomorrow you may want to go to that session …

On Thurs there is a building on buzz session ….

Q: why not use (couldn’t hear, xmtp)

A: We don’t believe in having data in silos. We wanted to use existing standards. There was a project called Diso that was all about distributed social network of sorts. The most distributed is everyone is their own node. The other extreme is having one huge network. We were building a lot on wordpress. With that in mind specifically, we choose (couldn’t hear) instead of (couldn’t hear xtmp). Another issues is OneSocialWeb. XMTP is what they are building on. Similar to what DISO is trying to do.

Q: Who are the early adopters?

A: ActivityStreams (Myspace and facebook have done some work with it; Microsoft life is using ActivityStreams) … they are not all 100% compatible with each other. Slight different implementations. 6Apart CEO is the primary editor of the spec. Facebook is involved. MSFT is as well. Lots of collaboration there.

Q: Can PubSubHubbub support authenticated feeds?

A: Not yet, its at the top of our TODO list. Oauth will be a prime way to deal with authenticated feeds. It will probably be address with PubSubHubbub. Today there is no good example of what that will look like. If you have a good idea, please join the community and add your thoughts on how that should work. (Said the issues is something about being able to trust the source or something …).

{ 0 comments }

marc-benioff-and-paul-maritz-salesforce-and-vmware-2010-04-27-at-113527-am1

SweatInvestor Walter Roth blogged about Salesforce.com’s and VMware’s joint announcment: VMforce from his personal blog.  Below are a few highlights.

Notes: Salesforce and VMware announcement; VMforce

You can also watch the recording of this event at: http://www.vmforce.com

MC gets up to set the stage and to introduce the CEOs …

Just focus on your expertise. Someone who does Risk Analysis, should be able to plug in a Text Editor object. We’ve made great progress towards an “Object Store”, with things like AppExchange.

Paul Maritz, CEO & President of VMware ….
  • IT is drowning in complexity
  • We need to get people outside of the plumbing
  • Answered how to write applications in a fundamental new ways, more efficient, open so its open to the future, etc.
  • More than 2M developers are working with the SpringFramework
  • Can we integrate that with the worlds of increasingly SaaS applications …
  • To create a new trusted public cloud for these applications to run
  • 91% of fortunate 500 run VMware …
  • The SpringFramework app development …
  • Salesforce built the leading SaaS network …
  • They built it to be extensible ….

screen-shot-2010-04-27-at-113720-am1

Marc Benioff (10:45 am ish)
  • We think we are all about to embark on this new exciting category
  • You don’t have to look any farther than Social Networking
  • In 2009 Social Networking surpassed Email
  • Cloud2: new types of data and interactions; Social
  • Facebook, feeds, push, profile, touching not clicking, smart phones and tablets and mobile, location being known or aware, next generation of user interfaces with Coco and HTML5 …
  • Built on our application development platform Appexchange, and with our Chatter social application platform (Same functionality of Facebook, but built with enterprise integration, security, etc…)
  • These features are now expected by every users (you can’t build an app without the ability to provide feeds that touch every mobile device, etc)
  • Question: how can today’s java developers builds the next application in the cloud?
  • Over 6M developers, #1 language, but Java developers don’t have a clear path to the cloud …We believe this gap must be filled
  • No other companies can deliver this better than Salesforce.com and VMware
  • The two together give a punch that will change the industry
  • The trusted Cloud for Enterprise Java Developers
  • VMforce: The Enterprise Java Cloud
  • Developers will love it because they will be able to use Java for the first time with Force.com
  • Java Developers will love VMforce because they’ll be able to write Enterprise class applications in the cloud 5 Times Faster at half the cost
Parker Harris and Rod Johnson (SFDC / VMware)
  • We are now going to show you what Mark just showed you
  • Provides abstractions, simplifies code and decouples it from its environment
  • Which means we can abstract away that we are deploying off an ugly old enterprise java server … to deploying in the cloud
  • Our data (e.g., billions of contacts) is now available in Spring
  • Java persistence object … (standard api)
  • Creating a query for data in force.com …
  • Any developer from Spring could query data in Force.com without knowing anything about Force.com
  • SpringTravel (sample app we ship with Spring)
  • Demo’ing the interface, search locations, find hotels, potentially make bookings, etc.
  • The data is now persistent in Force.com
  • Great example of how spring enables Java developers to take advantage of capabilities in Force.com …

screen-shot-2010-04-27-at-111258-amscreen-shot-2010-04-27-at-112042-am

  • Time: 20 minutes in …
  • Spring goes and finds the Chatter service…
  • Looks similar, but up in the top right is a new link called “analytics:”screen-shot-2010-04-27-at-112243-am
  • Force.com has prebuilt in analytics as part of the platform
  • Java developers can all get this without code …
  • That’s a big deal … most developers will store data in a relational db and they have to build it themselves …
  • Also adds profiles and feeds …

screen-shot-2010-04-27-at-112339-am_

screen-shot-2010-04-27-at-112437-am1

  • screen-shot-2010-04-27-at-112707-am1The data is also talking, you can see my bookings …
  • Now, this whole application is available on the iPad (every mobile device)
  • From iPad user posts an answer to where he should stay on his trip
  • screen-shot-2010-04-27-at-112729-am1Now its available to all these Java developers …

11:28 am (Back to the CEO’s)

  • Will translate into great customer value
  • A great CIO in our industry…
  • Dave Smoley, CIO of Flextronics
  • We’ve had tremendous success with VMware and Salesforce
  • We gained tremendous speed, dependability, agility and cost benefits …
  • We’ve made big investments in SaaS, and when I look how quickly we are able to react to customer demands in a low cost manner, its very compelling
  • What’s the next step Dave?
  • As a CIO, cloud is over used and hyped these days … but what I like is that you guys are really delivering …
  • I want to see you guys continue to drive the openness, to continue to make it easy …. we have line monitoring tool …. one thing important to us is how effective and efficient is our equipment (millions of dollars per machine) … we have a java app deployed across our sites … today we need to install servers at each location … with this, we can put it in the cloud … thats how we’ll use tools like this …
  • The easier it is to move things into Force and out of it … thats a great thing
  • Wrapping up around 11:34 am

screen-shot-2010-04-27-at-113504-am1

My Initial Thoughts

  • I continue to be amazed at how fast “Feeds” will become a competitive advantage for apps and then anscreen-shot-2010-04-27-at-115214-am1assumed requirement going forward
  • I liked Salesforce’s commitment to embrace social technology, they had a twitter, Facebook, Aim, MySpace feed to the right of their online streaming of the event allowing it to be open and alive  despite some of the risks  (mixture of insightful comments, negative comments, clearly employee comments, etc)
  • I wonder if there is opportunity to enable this type of functionality but allowing it to run behind the firewall completely or at least within the public cloud at providers like Rackspace or Amazon
  • One tweet pointed out the interesting fact that Pricing was not mentioned, I did notice that the example application they showed (the travel booking one) had the use case of adding Chatter feed functionality internally … but didn’t open it up externally (if it were an external app, I wonder wscreen-shot-2010-04-27-at-113834-am1hat the pricing would be to make it cost effective and if it would interfere with the internal pricing)

The full version is available at www.WalterRoth.com

Also covered by:

{ 0 comments }

Initial Thoughts on GoogleApps Marketplace

by walter.roth on March 13, 2010

Jenn Kho shared her front row access to the Google CampfireOne event last week allowing SweatInvestor to be one of the first sites to report live on Google’s announcement of the GoogleApp Marketplace.  She also wrote an article for AOL’s Dailyfinance entitled: Google Opens Market for Enterprise Apps.

In 2010 SweatInvestor plans to slowly build its presence at such events and to establish a few formats for SweatInvestors to have lively and informed dialog as it relates to their SweatInvestor expertise, credibility and network.

The current thinking is to make these types of posts sort of like merging the Huffington Post with the Techcrunch format/focus for SweatInvestors to join in on the conversation.  We might even throw in a little Edge.org and Charlie Rose formats/styles while we are at it. There will probably be a few micro formats as well as longer formats that might include video, podcasts, etc. Yup, its still early. Lots of ideas being considered and mashed up.

For me, one of my SweatInvestor expertise is in setting up Inside Sales organizations for startups.  This includes formulating how a startup can create successful cold calling campaigns and cultures. As I watched the live stream from Hawaii, I concluded that the GoogleApp Marketplace is definitely worth exploring for startups, especially given GoogleApps Reseller program.

From a sales perspective, leveraging Google’s core offerings, brand name and market momentum while extending it with your startup’s secret sauce via the new API’s, is potentially the perfect inside sales platform for Customer Development. I plan to elaborate on this as I dig into the details for my own startup currently in incubation stages, called AppFeeds. In the meantime, please use the comment box below to ask any questions you might want covered or if you wish to give your take on the announcement,  inside sales for Startups or potential formats for the SweatInvestor blog reporting from innovative and/or exclusive live events.

{ 0 comments }

Google Search Event (Note: SweatInvestors are welcomed to make posts from interesting events, especially if the events are “invite only”. Both to share their access as well as to share their unique perspective on the event.)

Live Notes

I’m sitting at a Google launch event with no idea of what will be launched…(for full live blogging notes, go to my personal blog at www.WalterRoth.com.)

A Few High Lights

10:13: Marissa Mayer jumps onto the stage… She outlined 4 major focuses of Google…

10:18: Vic Gundotra, VP of Engineering appears on stage… Trends:

  1. Computing: Moore’s Law
  2. Connectivity: More connections from More Devices
  3. The cloud: access to huge resources
  4. Mobile devices: video, speakers, gps, camera, etc.

By themselves, these sensors on this android phone are not so special. But within context to the cloud, its much more. They becomes eyes and ears.

Location…wants to make an integral part of all products. In Japan, everyone always hangs on to their mobile devices, always within 1 meter. Same here.

Making “Location” a first class object. (I’ve worked at a Location based company before, I’ve seen this coming, and its huge.  Looking forward to seeing how this rolls out and how it relates to all the GIS/LOCATION/ETC companies that are starting to be introduced to the market. Its just the beginning.)

GoogleGoggles - lets you use a picture as the query. Gives eyes to the internet…

Why is this product in GoogleLabs?  Because we are just in the beginning. Still lots of room to improve…. We are at the beginning of the beginning… 10:43

Amit Gundotra arrives on screen to make the big announcement in search, but first, a little history… The history of information flow:

  • Kids asking grandpa, “Should I eat those beans?” “no, they are poisonous”…
  • Then the printing press…knowledge spread around the world a lot quicker…
  • Servers: billions of documents available to users via search engines…(crawled the info every months, indexed it and then published monthly…then faster, now crawls every few minutes…in today’s world, that is not fast enough…the world updates info every second, twitter, blogs, etc. Info is being created at a pace that we’ve never seen before. Seconds matter).

Announcement: Google Real Time Search Google relevance technology meets the real-time web. Relevance, Relevance, Relevance.

11:03 - Talks about the huge amount of work that goes into making this Google InnovationsHad to develop dozens of real time technologies to make search real time…

Query hotness, probability of relevance, author quality, tweet quality, language model, topicality, Query volume fluctuation, etc…

We at Google will not be satisfied when the speed of light is the only barrier between you and your information.

11:07 - Back to Marissa…. Facebook will be providing a live feed from public pages, and will be included in real time search. Same for MySpace.  Twitter is already in there.

Marissa Concludes: last year we laid out our vision of search (the 4 modes). Now we talk about adding eyes and ears in real time. We did a lot in just one short year.

Q: Can you disclose the financial details of these partnershps? Or at least if there are details?

A: we can’t disclose the financial details. MySpace Chief Product Officer Jason Hirschhorn

Funny back and forth, as expected, no comment. Interesting implications either way, great question…after the event as the guy from Myspace, picture right, was leaving, as if rock star, people paused asking Marissa questions on the side of the stage, and everyone, including Marissa, directed their attention and questions to him:  can YOU comment on any financial components to the google/myspace deal?  No comment, of course. But could have been straight from a movie screen play.

Marissa Google Questions My Wrap-Up Comments

Today was a great glimpse of what its like to Live Blog with the fishes (i.e., big media).  We’ll see where 2010 will take me and how many “back stage” access events I will find my way into. I look forward to any pointers from readers who are knowledgeable of the press circuit. Google no doubt is an amazing company with a lot of smart folks.  Their focus on search is incredibly smart, especially because it clearly has become the most important component to any application.  Or rather, in my opinion, is 80% or more of an application if done right. Answering the question of whats important to a user right now, right where they are (i.e., here), continues to become more more valuable as the number of object types, contributing devices and real time updates grows and is indexed by Google…done right, navigation controls are less important, and the user is simply provided with a search results page (maybe with special presentation or refinement controls).

On a personal note… One of my goals for 2010 is to set the foundation of getting press passes to unique events to meet and interview innovative people.  So, I’m giving Live Blogging its first go. I’m wiredless up and ready to update live. If there is anyone out there that is knowledgeable about obtaining press passes, or has advice on how to make live blogging, please comment below.

{ 1 comment }