The first thing I did was create a "gvoice.py" module with several helpful classes. These allow you to:I am by no means a seasoned Python developer, but what I have created works well for my purposes. I tried to make the classes as loosely coupled with the UI as possible in case I want to put a GUI around it sometime, but for now I am doing everything at the command line (which I often prefer).
- Log in
- Gather all Google Contacts into separate groups
- Selectively narrow down the contacts in a group
- Gather the phone numbers that you have entered
- Send SMS messages
- Place Calls
Each layer offers its services in the form of primitives. Four
classes of primitives are defined as shown in Figure 1. Request is
issued by the layer that wants to get the services or the information
from another layer, and Confirm is the acknowledgment of the request.
Indication is the notification of the information to the layer that
requested the service, and Response is the acknowledgment of the
indication.
------------------------- -----------------------------
Request Response
|| / / ||
Layer N || || || ||
------------||------||--- -------||------||------------
|| || || ||
/ || || /
Layer N-m Confirm Indication
------------------------- -----------------------------
Figure 1: Interaction Model between Layers
The use cases are plentiful for businesses:
* Update Google Sites from 3rd party applications – e.g. your sales
team's Google Sites pages can update automatically when new leads are
added to your CRM system.
* Migrate files and content from workspace applications like
Microsoft SharePoint and Lotus Notes to Google Sites.
* Export Google Sites pages, edit them offline, and re-import the
updated content.
* Export your sites, including every page revision, for backup.
* Easily monitor changes across your important internal and public
sites, all from a single gadget.
* Push new content like changes to employee policies or a new
corporate logo to any site on your domain, even sites created by
individual employees.
via http://wiki.twit.tv/wiki/This_WEEK_in_GOOGLE_5
Personal Hype Quotient for:
Michael Shook On a scale of 0-10, your ranking is
Level 3: Stupidly unaware of my social climbing and hyping possibilities..How we did it:
We took your follower count which is 49,
along with your last 422 tweets:
Where you hyped in 4 of them,
you re-tweeted in 0 of them
and you self-linked in 0 of them.
We munged all these together in our secret algorithm to come up with a level 3 score.
There are actually 3 protocols and 2 APIs that are used in Wave:
- Federation (XMPP)
- The robot protocol (JSONRPC)
- The gadget API (OpenSocial)
- The wave embed API (Javascript)
- The client-server protocol (As defined by GWT)
The last one in that list is really nothing that needs to be, or will probably ever be documented, it is generated by GWT and when you build your own Wave client you will need to define how it talks to your Wave server. The rest of the protocols and APIs are based on existing technologies.
google.visualization.Query.setResponse({
version: '0.6',
status: 'ok',
sig: '202289222',
table: {
cols: [{
id: 'A',
label: 'Name',
type: 'string',
pattern: ''
},
{
id: 'B',
label: 'Value',
type: 'number',
pattern: '#0.###############'
}],
rows: [{
c: [{
v: 'One'
},
{
v: 1.0,
f: '1'
}]
},
{
c: [{
v: 'Ten'
},
{
v: 10.0,
f: '10'
}]
}]
}
});
( pretty printed by http://jsbeautifier.org/ )