Skip to main content

Posts

Showing posts from 2008

Freebase Hack Day

Struggle to be buzzword compliant

I realized that there is a new wave of buzzwords coming on. Here is my very small dictionary:
behavioral targeting – targeting ads based on user's patterns
taking an action on app – interaction but not installing social app, like in new Facebook profile
social advertising - accelerated distribution of news about user actions beyond organic content
soc ads - ads that use social graph
soc ads (alt)- advertising on social media
integrating branding – using brand names/logos to advance applications
social shopping - making buying descriptions based on friends opinions
"buzzword compliance" - using all of the above in speech or writing

Facebook Friends Connect

Is a way to extend external sites to provide:
FB identity
FB friends (relationship)
Feed to FB

Demo app at http://www.somethingtoputhere.com/therunaround
User experience:
login:
js login method requiresession(): detects state
of usr-FB relationship, log-in into FB if needed. If user has not authorised app -
present app auth dialog. If already has session - just go
init JS, require session

access FB data:
- FBML on external site - use JS FBML parser and replace in browser DOM with FB data
- JS based API to get FB data, REST API on the server site. Sessions work accross any API
- only small subset of FBML us supported at the moment

adding social content:
- use access API

Connections:
app developers can suggest connections (using
e-mail hash)
user get connect request on FB
Move content from external sites to FB app can register feed template (3 types of
stories)
call JS "showfeeddialog" to request user to

confirm data sharing on FB.
privacy protection:
app can cache data for 24 hrs (for …

Scalability of Google IO

It was interesting to watch today how Google is solving scalability problems:

Problem 1: Conference registration lines are too long.
Google's solution: Let anyone in. No badges are required before 2 p.m.

Problem 2: Too many people who want to attend the keynote speech by Vic Gundotra
Google's solution: Still let anyone in. People can sit anywhere on the floor

Lesson: relax rules if they stay on the way of scalability

Design & Learning from Viral Applications FB App lifecycle

Step 1 (Initial Growth):
Initial Growth (based on advertising principles) – all about conversion rates (#times people see profiles, canvas page, invites, activity stream, feeds). Goal MAX conversion rates for each channel. Consider long-term user experience. Effective (aggressive) methods at the beginning will not work later in app life cycle
Design/implement based on simple concepts. Viral channels are more important than features!

Step 2 (validation):
Goal: concept validation.
Iterate/execute rapidly. Viral loop. A/B testing. Do not complicate – it will make execution/testing/measuring. Goal: figure out features, do not be emotional, and be guided by data/metrics.
Use web matrix (Google analytics for conversion rates)
[Social Application classes]
Channel (superwall)
Content
Dating
Games (related to dating, affinity groups)
Gifts
Self-Expression

Understand audience, look at market size, potential penetration (set expectation right :). Ning has impressive numbers but segmented. iGoogle (10-15 Mil, …

Location Web presentation at Web 2.0

Location Web
Location = context
Context -> higher relevancy -> user experience
Location is a killer mobile app enabler
Yoursite.com?lat=&lon=
Fire Eagle – location broker (get all inputs, have app (publisher) registered). Dopler as publisher. Fireball get access for the info
DO use FireEagle PHP library! (Update, query, integrate)
Geolocation methods:
Triangulation (WiFi 20[m], GPS 1[m], Cell Tower 2000[m]) {Loki JavaScript API http://loki.com/developers} Garmin device plug-in, get path data GPX
Association (IP Geolocation) {quova, ip2location}
Geo Term Extraction {MetaCarta Query Parser API, Urban Mapping GeoMods}
Geocoding {geonames (started with Tiger geoset in Postgres), Google, Yahoo, Geocoder.us}

JavaScript API
Browser.getGeoLocation() - LocationAvare.org
Mobile location
iPhone (WiFi, cell tower) and other mobile API
Symbian S60
J2ME/JSR-179
WHERE Widgets $3/mth for users, no need to have relationship with phone network provider – where wil do it for you {where.com}
SkyHook (WiFi…

SEO Optimization

Cloaking
(Serve different content, could be in violation of Google policy)
IP delivery is used to get around Google bot (detect if bot is coming from one of Google's computers)
Use English->English translation to detect/display cloaked page
301 redirect
And know when to use 302 instead
Supplemental Index
Supplemental index queries does not work on Google any more. Use method described below:
Site:www.xyz.com –allinurl:www.xyz.com show only main index pages, can be used in calculation in %% of
To take out of sup index – pop-up rank by linking to home page or by any other method
Duplicate content
Dilute page importance – get rid of them when possible
Scan for it!
Block duplicate content for crawlers by rel=nofollow
CSS
Complete control over design/HTML
Menu based on CSS shows SE what is linked (much better than JavaScript)
Can put more emphasis on what is important
Image replacement (careful to not been caught), nice way to get around brand police
Keyword Research
Google Suggest (from toolbar)
Yah…

API Design notes from Web 2.0 Expo

Twitter API Experience
It is ALL around REST these days. Even Google abandoned more complicated API in favor of RESTfull
For Twitter API more that 80% of overall traffic these days
Twitter manages developer community over Google Group
400 applications added by hand to the directory from e-mail, tons more are around and not the catalog
XML, JSON, and many other formats supported
Grow API organically (started with 2 methods and no documentation), from the conversation with developers "I can do X if you do Y"
Documentation is really important – at least reverse engineer. Doc should describe at least: How do I start? Is API crawlable? How to dive into the API?
Support developers 24 hrs is important – be present! If not listening, developers will go forward.
Delegate to other developers who are active within the community. Do not forget to socially reward them.
Scaling from API prospective. XML, JSON are not designed for scale by itself. Do it early is a big win. Dedicate part of server …

Tagging entrepreneurs at StartupSchool

Tagging entrepreneurs at Startup SchoolStartup School this weekend was by far the best entrepreneur event this year. By amount of energy floating around and amount of applause from the audience it may well surpass rock concerts in New York.Interestingly enough it was not as much about mechanics of razing startup money or even building a viable business, but rather about common sense and a choice that entrepreneurs need to make. The choice is between going to venture capital firms in hope of building next great Googles and Facebooks with very little odds and building successful money-making companies with much bigger odds.People interested in later should checkout great speech by David Heinemeier [http://omnisio.com/startupschool08/david-heinemeier-hansson-at-startup-school-08] (creator of the Ruby on Rails framework), others may continue to read my boring notes.Suggestions for startups to raise moneyWhat to do:Talk only to “good” investorsTell existing storyDo deals in parallelThech f…

Chronology of a painter or my weekend with wekendapps

Why?Because programming is fun. Lots of fun. Working as CTO I mostly help organize this fun for others. It’s time to have some fun for myself.Where?Wekendappsin Santa ClaraWhen?February 22 to February 24, 2007
Day 1Started as typical Silicon Valley meet-up, with pizza and bunch of people crowded in small room, event fun was started. Some people came ready and prepared with friends and code snippets. I did not.Anyway crowd (with some help from organizers) gravitated into groups of people with similar skills. Ideas were presented. I liked what David’s idea on searching FB users through their connections and common photo tagging. Started discussing/planning/coding the app.
Day 2Spent morning socializing. Realized that app we thought about on day one is not viral. David shared another idea – ‘painter’ who will draw a classic masterpiece on user’s profile page over time. Sort of growing gifts but more ‘sophisticated’.4 p.m. really started to work on the app – put together “project plan” (l…

Highly scalable web solutions

Amazon Web Services user’s group meeting last night was slightly derailed from the presenter’s topic to the discussion about current approaches to highly scalable web architecture. Question is simple: in the new world of Web/Facebook applications when millions of users could be added virtually overnight, question of scalability should be addressed from the day one of application design. In order to make scalable Web application the most important consideration is the foundation it is build upon – choice of the database architecture. I know have seen four radically different approaches:Database clustersDatabase replicationFederated data layerNon-relational databasesClusters require virtually no code change, scaled up to 32 nodes and in cases of Oracle(do not know anyone else who did it right) are prohibitively expensive for start-upsDatabase replication seems so appealing at the beginning… Basically forward all data update/write requests to the master and read the data from slaves. Not…