Skip to main content


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 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 ca

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. iGo

Location Web presentation at Web 2.0

Location Web Location = context Context -> higher relevancy -> user experience Location is a killer mobile app enabler 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 } 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,}   JavaScript API Browser.getGeoLocation() - 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

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: – 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

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

Tagging entrepreneurs at StartupSchool

Tagging entrepreneurs at Startup School Startup 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 [ ] (creator of the Ruby on Rails framework), others may continue to read my boring notes. Suggestions for startups to raise money What to do: Talk only to “good” investors Tell existing st

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? Wekendapps in Santa Clara When? February 22 to February 24, 2007 Day 1 Started 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 2 Spent 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

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 clusters Database replication Federated data layer Non-relational databases Clusters 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-ups Database replication seems so appealing at the beginning… Basically forward all data update/write requests to the master and rea