Follow leybzon on Twitter

Monday, December 7, 2009

From "Personalized Search for everyone" to "Personalized recommendations" to "User behavior control"

Google took a big step from generic search to customized and personalized one with the announcement of Official Google Blog: Personalized Search for everyone. Do we like personal attention? Sure! What's the price? Privacy. Since technology is relying on tracking user behavior from cookies embedded by Google. Privacy advocates, I am sure, will be furious over the "big brother" watching every step and move. As for me, I think, privacy battle is lost for general Internet user. Those who care should be using anonymizer software and other tricks and tools.
So what's next? I think - personalized recommendations. Google is sitting on the top of goldmine of ratings and reviews crawled from the Web, extracted and normalized from RDF and microformats ( And that will be a huge step for the giant - whoever can tinker with recommendations can control user buying behavior. And as you can guess, how much money is behind that... Advertising market will be a part of a bigger "user behavior control" market not too far in the future.

Wednesday, July 1, 2009

The best job post I have seen in a long while

Even in this job market companies should be creative to attract star programmers:
Great job hunting for great talent!

Thursday, May 28, 2009

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

Tuesday, March 24, 2009

OnLive - Gaming in the cloud

Thanks to the right star alignment and generous invitation from my co-worker I was lucky to be in the audience of the OnLive service announcement. After 7 years of secretly developing (can not imagine how anything related to game development could be hidden from public eyes and ears for so long), absolutely mind-blowing OnLive gaming service was finally announced today to the crowd of game developers.

It is hard to believe that high-end gaming experience will be available soon for most of the mortals who have simple PC, MAC, or TV with a small adapter.

Technology is, basically, high end game servers hosted in the data centers with low-latency compression boards and light-weight clients. Client could be either small (1Mb) browser plug-In on PC/MAC or game adapter for TV that connects to home-grade DSL/fiber/cable modem.

Why OnLive is great? (at least on the demo, need to test myself at home):

  • unprecedented performance approaching realism

  • access to high-end games + games developed specifically for online experience

  • User hardware does not get obsolete

  • Extremely high-performance shared serves with 1-2 GPUs

  • Special card for HW video compression
  • 1 [ms] latency (can you believe that?)

Minimum requirements for the end-user hardware:

  • bandwidth 1.5 Mbps for regular video resolution
  • HDTV experience 5 Mbps downstream (very light for upstream, great for DSL)

Typical Social features (something that is really expected these days:

  • Arena
  • Brag clips
  • Spectating roles

Plenty of Games already available on OnLive:

  • Family games (LegoBatman is there)
  • Did not see any cooperative games but who cares – killing is more fun
  • Sport -spectator games are there. Are they more fun than “real” sport? Claim is that it will be possible to have 1 Mil people watching games. Hard to believe but - why not? Technologically it is possible these days

Gamers will love:

  • Simplicity
  • Gaming (and good gaming, finally!) on MAC
  • For Multi-player games – fast connection between game servers (LAN party environment)
  • OnLive makes easier to watch the game, why bother clicking and tapping when you can see masters at play.

Game Publishers will love it: rental model + exposure to bigger market. No surprise that big names are already there:

• Electronic Arts
• Ubisoft
• WB
• Take two
• Epic Games
• Eidos
• Atari
• 2D Boy
• CodeMasters

Game developers will like it:

  • Single code – 3 devices
  • Social features integrated

Hardware Companies will hate it:

  • No need to buy and upgrade expensive game PC

Why I am still skeptical?

Networks are optimized for bandwidth – not latency, will that ruin the experience?

I am waiting (patiently) for the winter ’09 general service launch…