Skip to main content

Why Google should give Google Phones to unemployed

As an act of unprecedented generosity (or desperation) Google decided to give gPhone to every attendee of Google IO conference. While I can certainly applaud Google for the move (as a direct benefactors, of casue) a few red lights start to flash on my technology-navigation dashboard:
1. Does gPhone lost so much ground to iPhone (in terms of applications) that desperate and costly measures are required?
2. If (1) is true, users will flock to iPhone and whatever Google trying to do to mitigate the situation will fail – iPhone will remain dominate cell phone technology(like Windows in consumer OS market) for a long while
3. If (2) is true, open source approach once again has to yield to commercial interests

Regardless of the Google motivating factors, the decision to give gPhones to Google conference attendees is flawed for a bunch reasons:
- Google IO attendees are Google fans already, they know about gPhone platform
- Conference attendees either write gPhone apps already or do not have interest in them – phone will not convert them
- Companies who pay conference registration fee, hotel and airfare can afford an unlock phone for developers

What they should do: Give it to unemployed!

Engage government and EDD to reach unemployed software developers and give them the gPhone!

It will create a nice media complain and developers (with time on hands and a gPhone) will develop a number of applications to populate app directory. That, in turn, will translate to phone end-users experience and (with a short) time lag will be translating to new users on the platform.

Why 2:
Why did’t Google ask me? Hope they will do next time

And here are my (unedited and unorganized) notes from the conference sessions

Open Social Containers from Google:
- iGoogle (in home view, w. sandbox for developers)
- Gmail (nav view, provided as Lab feature at the moment)
- Calendars (in preview mode, nav+canvas view+ custom APi ext like google.calendar.showEvents)
- Wave (check it out!)

Sample: Quatermile gadget -> think about calories/food watchers

What makes gadget social:
· Leveraging social graph osaoi.people.get()
· Quick data entry using AJAX/Server communication with[Google Visualization API + GWT]
· Dashboard View
· Container-specific extensions (opt)

How to grow/advertise social gadget:
· Container directory (iGoogle)
· Organic (share app/join team/use updates)
· Cross promote
· Adverte in other apps, etc
· Take to all Open Social Sites
· Create Mobile App that use the same data

Google App Engine (+ Java now!)
Container platform as services
HW/SW update
Scalable services via familiar/portable API
Get charge for what used – no dedicated hardware
Buildt-in App console
HTTP request limited to 30 sec, no server push
Request are run in sandbox environment
Jetty and Jasper(adapter to serv 2.5 API) on top of Google stack
Web.XML + Additional conf file
Optional SSL and Sessions

Google Services available for Google Web engine apps :
· Authentication-> Google Accts
· Data->Bigtable
· Caching->memcacheg
· Email->Gmail gateway
· Task queues
· Text search
· Incoming emails
· Large files

gMap Optimizations
Maps 3.0 – redesign with perf in mind
Use overlays instead of markers to show > 1000 markers (subclass GOverlay() class and draw inside it, use single CSS sprites!:)
Alt. solution – flash
Alt solution (>1000 overlays) clustering (to show size/loc of clusters). Use MarketClaster do clustering in JavaScript - take the test

- Use geo-targeting (note that .fr will not work for us users)
- Web server (IP) in location where it will serve users
- Shared hosting is OK
- Godaddy automatically link to web master tools (from API)
- New: crawler data will be available via API
- Content – good quality for users
- Navigation – search box, logical category navigation, how to get to home page, show what already visited or
- Shareable urls
- Describable file names
- Low-case urls
- Robots are case-sensitive
- Separate adult site content
- Important pages should be linked from home page
- Sitemaps
- Disallow login page/shopping cards, test from webamaster’s tools
- Create easily understood dynamically link structure (*ex: category=mobile, id=…) Google find ways to index only most relevant
- No session ID in the middle of the path! (it’s infinite for Google)
- No marks for what is expended on the page in URL!
- Descriptive name for links
- Do ajax, javascript on TOP of HTML
- Google will process OnClick content from now-on (but only if JavaScript is on the same page – not in the linked file!)
- If AJAX is used - create static link in addition!
- Text in Flash is visible and searchable but flash should be embedded in standard ways
- FRAMES and IFRAMES are interpreting within parent page (IFRAMES are treated as separate URLs thou)
- should include title, “descriptive” metadescription
- Title contains keyword
- No title duplication
- Keywords are important, adopt language of users
- For image search – text surrounding image, quality of images is important, ALT is very important as well as file names hyphen-separated, underscores will not be seen as word separated
- Video – static html, titles, popularity, comments, related, create video that is compelling to users. Uptime for site is important for video
- HTTP Response codes (404 when 404, 301 is OK too and keeps popularity). When site is down – use 503
- Webmaster tools, crawl errors
- Use custom 404 with link to search, home page, suggested pages
- Tweets – no ping service – should be linked to (unlike blogs) from other sites
- Reviews/comments – keep reviews on the same page as product
- Rich snippets marked in RDF – as microformat – to mark reviews,

Google Waves (
Look at twave J
What is available?
- Protocol (described in white papers)
- API (
- Open Source/ref implementation that could be placed on top of DB
- Demo
- Platform (
Sounds like open-source SharePoint competitor… Especially when it will be possible to effectively integrate into company workflow


Popular posts from this blog

Posting to FaceBook feed using Graph API

Graph API was announced at F8 with a promise to dramatically simplify the FB API. I checked the read access over the new interface during the presentations and to my big surprise it worked flawlessly and from the first time. When I tried, JSON-formatted info about the FaceBook page was returned (as expected).
Then I tried OAuth 2.0 way of accessing the API to post a message to the feed. And to my even bigger surprise it worked too!
Here is what you need to do to access Graph API over OAuth: 1. Create a FB app, store app properties to a file:
$appkey='7925873fbfb5347e571744515a9d2804'; $appsecret='THE SECRET'; $canvas=''; 2. Create a page that will prompt user the access permission (I am prompting for the publish_stream and offline_access permissions at the same time)
// require'settings.php';
$url=""; $url.=…

Respect Coin

Respect I think it's time to talk about currency. Let's create a Respect Coin.
Step 1. Install OpenZeppelin library npm install zeppelin-solidity
When it comes to coins, I like to use some functions that smart people already implemented and other smart people verified. I think that Zeppelin is a nice collection of Solidity contracts that can be trusted. Let's use the StandardToken contract and use it as a parent class for our own RespectCoin contract.
Step 2. Create RespectCoin contract and store it in "contracts/RespectCoin.sol" file pragma solidity ^0.4.4; import "../node_modules/zeppelin-solidity/contracts/token/StandardToken.sol"; /** * @title RespectCoin * @dev ERC20 Token example, where all tokens are pre-assigned to th e creator. * Note they can later distribute these tokens as they wish using `transfer` and other * `StandardToken` functions. */ contract RespectCoin is StandardToken { string public constant name = "RespectCoin&quo…

"Hello World" from Solidity

How to say "Hello World" in the era of blockchain? Reflections Once upon a time, I worked in CTO role of a great startup, and in order to find talented code developers, we ran a competition for the most creative "Hello World" application. It was a lot of fun! I was not able to participate in the competition back then, but here is my delayed entry.

Step 1. Environment Configuration# Installing Truffle framework ( $ sudo npm install -g truffle# Creating project $ mkdir solidity-experiments $ cd solidity-experiments/ $ truffle init# Installing and starting Etherium local test network $ sudo npm install -g ethereumjs-testrpc $ testrpc &
Step 2. Point truffle framework to the test network Update truffle.js file created by the init to point to your test network. File content should look like this:
module.exports = { networks: { development: { host: "localhost", port: 8545, network_id: "*" // Match any netwo…