<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1351507253711522493</id><updated>2012-01-19T01:56:44.015-08:00</updated><category term='Rx'/><category term='f8'/><category term='Analytics'/><category term='OAuth'/><category term='cloud computing'/><category term='Gold'/><category term='#sgs2010'/><category term='Google IO'/><category term='OpenSocial'/><category term='game developer&apos;s conference'/><category term='WEB2EXPOSF'/><category term='gaming'/><category term='Google Conference'/><category term='Economy'/><category term='GraphAPI'/><category term='freebase'/><category term='web link'/><category term='trusted opinion'/><category term='#f8'/><category term='weekendapps'/><category term='Ning'/><category term='IO2009'/><category term='work'/><category term='Facebook'/><category term='Social Games'/><category term='startups'/><title type='text'>Web 2.1</title><subtitle type='html'>Software Architecture and other forces behind social web applications</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-190865069180838282</id><published>2011-09-15T20:25:00.000-07:00</published><updated>2011-09-15T21:31:35.739-07:00</updated><title type='text'>Vampire post-mortum on how to create  TV-scale applications</title><content type='html'>Had fine time yesterday watching MTV's Deadliest Warrior on big TV screen and Loyalize's servers on my laptop screen crunching numbers from users' vote during the show. Personally, I have more passion for software then for  Zombies or Vampires, so I found it to be much more fun watching my laptop screen then TV. What struck me is that just a few years back, numbers that I saw on my laptop will be if not impossible but extremely difficult to achieve. So,  I am glad to report, that common (open source) technology is finally is at the level that it allows a relatively small team of good engineers to write an application that works for TV-audience scale.&lt;br /&gt;&lt;br /&gt;What worked for us is the combination of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nginx.net/"&gt;Nginx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tornadoweb.org/"&gt;Tornado Server&lt;/a&gt; with &lt;a href="http://en.wikipedia.org/wiki/Epoll"&gt;epoll&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://redis.io/"&gt;Redis&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://aws.amazon.com/ec2/"&gt;EC2&lt;/a&gt; and &lt;a href="http://aws.amazon.com/cloudfront/"&gt;CloundFront&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Of cause, it's a lot of work to make them work together in scalable and reliable fashion but, at least, finally, we do not need to mix sand and clay to make bricks first if we want to build a house - all bricks are are readily available for download.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-190865069180838282?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/190865069180838282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=190865069180838282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/190865069180838282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/190865069180838282'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2011/09/vampire-post-mortum-on-how-to-create-tv.html' title='Vampire post-mortum on how to create  TV-scale applications'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-4598539187958383140</id><published>2011-01-25T19:58:00.000-08:00</published><updated>2011-01-25T20:28:50.485-08:00</updated><title type='text'>Amazon Simple Email Service (Amazon SES) and PHP</title><content type='html'>This morning Amazon announced availability of a bulk email delivery service called "&lt;a href="http://aws.amazon.com/ses/"&gt;Simple Email Service&lt;/a&gt;".  Anyone who knows how much pain is it to set-up scalable email solution (and it is not just &lt;a href="http://en.wikipedia.org/wiki/List_of_spammers"&gt;spammers&lt;/a&gt; who need it!) should celebrate the occasion. I know of a company that spent several years cleaning ip addresses it sends email and found itself locked into the contract with internet provider since it would take forever to reach required level of email deliver ability anywhere else.&lt;br /&gt;&lt;br /&gt;Anyway, this evening I decided to check the Amazon claim that the service is "simple". Found out that it is indeed simple!&lt;br /&gt;Since there is not much in terms of the documentation yet, here is my code where I  used &lt;a href="http://aws.amazon.com/php/"&gt;AWS PHP library&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;php&gt;&lt;/php&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// Enable full-blown error reporting. http://twitter.com/rasmus/status/7448448829&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;error_reporting&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// Set plain text headers&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"Content-type: text/plain; charset=utf-8"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;// Include the SDK&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;require_once &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'../sdk.class.php'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;&lt;br /&gt;// Instantiate the Amazon class&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ses &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= new &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;AmazonSES&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;//what's our quota?&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$rQuota &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ses&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;get_send_quota&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;();&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$quota24 &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= (int) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$rQuota&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;body&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;GetSendQuotaResult&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;Max24HourSend&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$sentCnt &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= (int) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$rQuota&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;body&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;GetSendQuotaResult&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;SentLast24Hours&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;echo(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"we can send max of  $quota24 per 24 hrs and we sent $sentCnt so far\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 128, 0);"&gt;//verify sender email (do it once per sender!)&lt;br /&gt;//$ses-&gt;verify_email_address('dispose@gmail.com');&lt;br /&gt;//print_r($ses-&gt;list_verified_email_addresses());&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   //send email&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$source &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'dispose@gmail.com'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$destination &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;CFComplexType&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;::&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;map&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(array(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'ToAddresses'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;=&gt;&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'x@gmail.com'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'CcAddresses'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;=&gt;&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'x@hotmail.com'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;));&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$message &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;CFComplexType&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;::&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;map&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(array(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'Subject.Data'&lt;/span&gt;-&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'test email'&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'Body.Text.Data'&lt;/span&gt;-&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;'test message ' &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;. &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;rand&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;100&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;1000&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;)));&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$rSendEmail &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$ses&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;send_email&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$source&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$destination&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$message&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;&lt;br /&gt;if (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$rSendEmail&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;status&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;==&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;200&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;) {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$emailId &lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;= &lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$rSendEmail&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;body&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;SendEmailResult&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;-&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;MessageId&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;;&lt;br /&gt;        echo(&lt;/span&gt;&lt;span style="color: rgb(221, 0, 0);"&gt;"sent test email with id: $emailId\n"&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;   print_r&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 187);"&gt;$rSendEmail&lt;/span&gt;&lt;span style="color: rgb(0, 119, 0);"&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-4598539187958383140?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/4598539187958383140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=4598539187958383140' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/4598539187958383140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/4598539187958383140'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2011/01/amazon-simple-email-service-amazon-ses.html' title='Amazon Simple Email Service (Amazon SES) and PHP'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-5572257670970866661</id><published>2010-05-06T16:12:00.000-07:00</published><updated>2010-05-06T16:30:51.650-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Analytics'/><category scheme='http://www.blogger.com/atom/ns#' term='#sgs2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Social Games'/><title type='text'>Lessons from Social Gaming Summit</title><content type='html'>Many good presentations here. Two that are stand out of the crowd are from &lt;a href="http://www.myyearbook.com/"&gt;MyYearBook&lt;/a&gt; and &lt;a href="http://www.kontagent.com/"&gt;Kontagent&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;MyYearBook Ideas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Games Should Advance What Site is About&lt;/li&gt;&lt;li&gt;Play games within streamOpening doors for 3-rd party developers&lt;/li&gt;&lt;li&gt;Anyway games are popular for 6-8 mth except “platform” games&lt;/li&gt;&lt;li&gt;Game promotionViral channels “promotions”, a way to present apps:&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Bulletin board&lt;/li&gt;&lt;li&gt;In-stream games&lt;/li&gt;&lt;li&gt;Action Items (below user profile picture)&lt;/li&gt;&lt;li&gt;Notifications&lt;/li&gt;&lt;li&gt;Profile Box (badges, etc)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Metrics for Social Games (presentation from Kontagent)&lt;/span&gt;&lt;br /&gt;Trend Observation: From Viral Analytics early on to User Lifetime Value vs External User acquisition so Retaining engagement is important!&lt;br /&gt;&lt;br /&gt;Key matrix to use these days for social apps:&lt;br /&gt;1. Entry event distribution (why and how users get back to the system). More ways to incentivize entries&lt;br /&gt;2. # Outbound messages/Users&lt;br /&gt;3. Viral messages/Conversion (clicks per post)&lt;br /&gt;4. Virality (K-factor) on FB it’s max at ~.5 these days&lt;br /&gt;5. Engagement (time on site, #times user play, #user actions)&lt;br /&gt;6. Exit event distribution (mindset of user when they leave app, indicate potential problems)&lt;br /&gt;7. Retention (revisit rate), measure of engagement. %% users come back in week-by-week bases 8. Lifetime network value revenue_per_user/(1-K)&lt;br /&gt;9. Conversion to Paying Users&lt;br /&gt;10. Avg revenue per Paying User&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/aHAIXAYfc84&amp;amp;border=1&amp;amp;color1=0x6699&amp;amp;color2=0x54abd6&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/aHAIXAYfc84&amp;border=1&amp;color1=0x6699&amp;color2=0x54abd6&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;My Side Note: Advertising should be used for acceleration of successes and should feed from analytics. If detected that app is doing particalually well in some age/gender/area/channel – ads should be (auto) targeted to this area.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-5572257670970866661?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/5572257670970866661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=5572257670970866661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5572257670970866661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5572257670970866661'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2010/05/lessons-from-social-gaming-summit.html' title='Lessons from Social Gaming Summit'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-6575973921943333369</id><published>2010-04-23T11:55:00.000-07:00</published><updated>2010-05-19T15:21:40.584-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OAuth'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='GraphAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='f8'/><title type='text'>Posting to FaceBook feed using Graph API</title><content type='html'>&lt;span class="Apple-style-span" style="white-space: pre;font-family:'MS Shell Dlg';" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Graph API was announced at F8 with a promise to dramatically simplify the FB API. &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;font-family:'MS Shell Dlg';" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;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. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;font-family:'MS Shell Dlg',serif;" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;When I tried &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:Tahoma,serif;"&gt;&lt;a href="https://graph.facebook.com/facebook"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;https://graph.facebook.com/facebook&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;, JSON-formatted info about the FaceBook page was returned (as expected).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Tahoma,serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Tahoma,serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Then I tried OAuth 2.0 way of accessing the API to post a message to the feed. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Tahoma,serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;And to my even bigger surprise it worked too! &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Tahoma,serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Tahoma,serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Here is what you need to do to access Graph API over OAuth: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:monospace,serif;" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;1. Create a FB app, store app properties to a file:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:monospace,serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-size:large;" &gt;&lt;span class="Apple-style-span" style="white-space: normal; color: rgb(0, 0, 102);font-family:monospace,Helvetica,sans-serif;font-size:10px;"  &gt;&lt;ol&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$appkey&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;'7925873fbfb5347e571744515a9d2804'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$appsecret&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;'THE SECRET'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$canvas&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;'http://apps.facebook.com/graphapi/'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;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)&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 102);font-family:monospace,Helvetica,sans-serif;font-size:10px;"  &gt;&lt;ol&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;b&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  &lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;//http://apps.facebook.com/graphapi/&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt;  &lt;span style="color: rgb(177, 177, 0);"&gt;require&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;'settings.php'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt; &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 96, 96);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt;  &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"https://graph.facebook.com/oauth/authorize?"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;.=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"client_id=&lt;span style="color: rgb(0, 102, 153); font-weight: bold;"&gt;$appid&lt;/span&gt;&amp;amp;"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;.=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"redirect_uri=&lt;span style="color: rgb(0, 102, 153); font-weight: bold;"&gt;$canvas&lt;/span&gt;/callback.php&amp;amp;"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;.=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"scope=publish_stream,offline_access"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;.=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"&amp;amp;type=user_agent&amp;amp;display=popup"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 96, 96);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt; &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;b&gt;  &lt;span style="color: rgb(177, 177, 0);"&gt;echo&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;"&lt;a href="http://www.blogger.com/%27%3Ca" style="color: rgb(0, 102, 153); font-weight: bold;"&gt;$url&lt;/a&gt;&lt;/span&gt;"&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;3.  Create a page to handle OAuth call-back with token and do the feed post:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;font-family:monospace,serif;" &gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 102);font-family:monospace,Helvetica,sans-serif;font-size:10px;"  &gt;&lt;ol&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  &lt;span style="color: rgb(177, 177, 0);"&gt;require&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;'settings.php'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;function &lt;/span&gt;&lt;/div&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt; callFb&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$params&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 96, 96);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(0, 0, 136);"&gt; $ch&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/curl_init" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;curl_init&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;    &lt;a href="http://www.php.net/curl_setopt_array" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;curl_setopt_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;a href="http://www.php.net/array" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;      CURLOPT_URL            &lt;span style="color: rgb(51, 153, 51);"&gt;=&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;      CURLOPT_POSTFIELDS     &lt;span style="color: rgb(51, 153, 51);"&gt;=&gt;&lt;/span&gt; &lt;a href="http://www.php.net/http_build_query" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;http_build_query&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$params&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;      CURLOPT_RETURNTRANSFER &lt;span style="color: rgb(51, 153, 51);"&gt;=&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;true&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 96, 96);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;      CURLOPT_VERBOSE &lt;span style="color: rgb(51, 153, 51);"&gt;=&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;true&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(0, 0, 136);"&gt; $result&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 153, 51);"&gt; = &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.php.net/curl_exec" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;curl_exec&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(153, 0, 0);"&gt; &lt;a href="http://www.php.net/curl_close" style="color: rgb(0, 0, 96);"&gt;curl_close&lt;/a&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;    &lt;span style="color: rgb(177, 177, 0);"&gt; return&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 96, 96);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$token&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$_REQUEST&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'access_token'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt; &lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$hello&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"Hello from Graph API"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 96, 96);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$params&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt;&lt;a href="http://www.php.net/array" style="color: rgb(0, 0, 96);"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'access_token'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;=&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$token&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;'message'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;=&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$hello&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  &lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;"https://graph.facebook.com/me/feed"&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="vertical-align: top; font: 130% 'Courier New',Courier,monospace; color: rgb(0, 48, 48);"&gt;&lt;div style="font: 1em/1.2em monospace; margin: 0px; padding: 0px; background-image: none; vertical-align: top; color: rgb(0, 0, 32);"&gt;  callFb&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$url&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$params&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;P.S.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Important!&lt;/span&gt; Do not forget to select "new SDK" on the application  settings page (I think that Facebook documentation fails to mention that)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mAuyo4Ty9Uk/S_Rjme9BU5I/AAAAAAAAA4Y/Nz6vxJzZjb0/s1600/graph+api+settings.PNG"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 158px;" src="http://1.bp.blogspot.com/_mAuyo4Ty9Uk/S_Rjme9BU5I/AAAAAAAAA4Y/Nz6vxJzZjb0/s320/graph+api+settings.PNG" alt="" id="BLOGGER_PHOTO_ID_5473108959957177234" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-6575973921943333369?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/6575973921943333369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=6575973921943333369' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6575973921943333369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6575973921943333369'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2010/04/posting-to-facebook-feed-using-graph.html' title='Posting to FaceBook feed using Graph API'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mAuyo4Ty9Uk/S_Rjme9BU5I/AAAAAAAAA4Y/Nz6vxJzZjb0/s72-c/graph+api+settings.PNG' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-6250087874403799385</id><published>2010-04-21T10:48:00.000-07:00</published><updated>2010-04-23T11:55:12.527-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='f8'/><category scheme='http://www.blogger.com/atom/ns#' term='#f8'/><title type='text'>“Default is social”, notes from the f8, FaceBook conference</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Policy changes:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Single permissions dialog&lt;/li&gt;&lt;li&gt;Data retention policy changes&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Platform changes:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;1. Social Plug-ins (&lt;i&gt;tested on this blog&lt;/i&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; a &lt;/span&gt;way to provide personalized experience with “Like” button in the core, work on any site&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; works &lt;/span&gt;via iframe, single line of HTML code&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;activity stream plug-in (newsfeed filtered for events only related to the site)&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;recommendations plug-in, personalized recommendation experience for users about any product or service&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;log-in plug-in that shows friends who are already there&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;FB chat plug-in&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;“Like” button in the center with hope to serve 1 Billion “likes” within 24 hrs after roll-out&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;2. Open Graph protocol&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Semantic markers &lt;i&gt;(my understanding is that is another name for microformats)&lt;/i&gt;&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Design to represent any object on the web – books, celebrates, movies, etc&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Objects has the same properties as FB pages&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;3. Graph API&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Complete re-architecture of current platform/API/SDK&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;No need for SDK code&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Graph.facebook.com/ID/connection_name – is a universal way to access/search for objects, people, or connections&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;RealTime callbacks   (&lt;i&gt;WOW! Finally! App will be notified what users do/change/ when they do that&lt;/i&gt;)&lt;br /&gt;o&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;OAUTH  (2.0) &lt;i&gt;(like it!)&lt;/i&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-6250087874403799385?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/6250087874403799385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=6250087874403799385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6250087874403799385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6250087874403799385'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2010/04/default-is-social-notes-from-f8.html' title='“Default is social”, notes from the f8, FaceBook conference'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-1999812970965313739</id><published>2010-03-07T18:56:00.000-08:00</published><updated>2010-03-07T22:06:24.481-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rx'/><category scheme='http://www.blogger.com/atom/ns#' term='Economy'/><category scheme='http://www.blogger.com/atom/ns#' term='Gold'/><title type='text'>What is more expensive than Gold?</title><content type='html'>After a trip to a local pharmacy, and a sticker shock from one of the prescribed medications (one that treats pimples), I decided to cool myself with bit with arithmetic.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Retail price for the medication (30x 115mg tablets of Solodyn) is $700.99&lt;/li&gt;&lt;li&gt;Current price of gold is $1134 per ounce&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;b&gt;Question&lt;/b&gt;: What is more expensive, Gold, or medication for treating pimples?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Solution&lt;/b&gt;:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;$1134 x 1 ounce/31.10 grams = &lt;b&gt;$36.46&lt;/b&gt; is the price per gram of Gold&lt;/li&gt;&lt;li&gt;$700.99/(30*.115)&lt;b&gt;=$203.18 &lt;/b&gt;is the price per gram of Solodyn&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Conclusion&lt;/b&gt;: Solodin is more than  5 times more expensive!&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;Observation: &lt;/b&gt;No point of Gold prospecting  these days. Just find a deposit of Solodyn!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-1999812970965313739?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/1999812970965313739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=1999812970965313739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/1999812970965313739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/1999812970965313739'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2010/03/what-is-more-expensive-than-gold.html' title='What is more expensive than Gold?'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-1176477918212550622</id><published>2010-03-06T06:38:00.000-08:00</published><updated>2010-03-06T07:26:09.839-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trusted opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='startups'/><title type='text'>"Giving a newborn baby a firehose to drink from"</title><content type='html'>After a complete system rearchitecture, full code rewrite, and database migration, &lt;a href="http://www.trustedopinion.com/"&gt;Trusted Opinion Site&lt;/a&gt; was re-born.&lt;div&gt;&lt;br /&gt;&lt;div&gt;Birth was painful  (as it should be) with sleepless nights and emotions were running high. But that's pretty much what was expected. What was not expected is the huge amount of crawling traffic the site got from the second it was up (hundreds of thousand hits per hr). It looked (and still feels) like we are under DOS attack. But we are not! That's the new reality - computers are much better at networking than humans are, and by the virtue of the Internet, they use their potential to the full extend.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I like the quote from our COO &lt;a href="http://www.trustedopinion.com/about/whoweare"&gt;Todd Greene&lt;/a&gt;: Launching the site these days is like giving a newborn baby a firehose to drink from"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A few lessons from the launch:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;What looks impossible and feels impossible, &lt;b&gt;is&lt;/b&gt; possible as long as everyone ignores that it is impossible&lt;/li&gt;&lt;li&gt;Food is important! After 30 hours of work it becomes even more important than internet connectivity&lt;/li&gt;&lt;li&gt;People mood is more important that server health  (and harder to fix)&lt;/li&gt;&lt;li&gt;Shortcuts always bite. Taking shortcuts in data migration bite really hard. Even in order to save a few hours of downtime, even if you really-really want it, &lt;i&gt;&lt;b&gt;do not&lt;/b&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt; take shortcuts&lt;/i&gt;&lt;/b&gt;!&lt;/li&gt;&lt;li&gt;And, the most important, do not forget celebration when the job is accomplished! Even thou I put it into the migration project plan, we managed to ignore the task.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-1176477918212550622?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/1176477918212550622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=1176477918212550622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/1176477918212550622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/1176477918212550622'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2010/03/giving-newborn-baby-firehose-to-drink.html' title='&quot;Giving a newborn baby a firehose to drink from&quot;'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-6135015158279002768</id><published>2009-12-07T12:26:00.000-08:00</published><updated>2009-12-07T12:26:25.169-08:00</updated><title type='text'>From "Personalized Search for everyone" to "Personalized recommendations" to "User behavior control"</title><content type='html'>Google took a big step from generic search to customized and personalized one with the announcement of &lt;a href="http://googleblog.blogspot.com/2009/12/personalized-search-for-everyone.html"&gt;Official Google Blog: Personalized Search for everyone&lt;/a&gt;. 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.&lt;br /&gt;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 (&lt;a href="http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html"&gt;http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html&lt;/a&gt;). 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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-6135015158279002768?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://googleblog.blogspot.com/2009/12/personalized-search-for-everyone.html' title='From &quot;Personalized Search for everyone&quot; to &quot;Personalized recommendations&quot; to &quot;User behavior control&quot;'/><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/6135015158279002768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=6135015158279002768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6135015158279002768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6135015158279002768'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2009/12/from-personalized-search-for-everyone.html' title='From &quot;Personalized Search for everyone&quot; to &quot;Personalized recommendations&quot; to &quot;User behavior control&quot;'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-3462126211733082443</id><published>2009-07-01T10:58:00.000-07:00</published><updated>2009-07-01T11:02:12.610-07:00</updated><title type='text'>The best job post I have seen in a long while</title><content type='html'>Even in this job market companies should be creative to attract star programmers:&lt;br /&gt;&lt;a href="http://sfbay.craigslist.org/sfc/eng/1246353621.html"&gt;http://sfbay.craigslist.org/sfc/eng/1246353621.html&lt;/a&gt;&lt;br /&gt;Great job hunting for great talent!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-3462126211733082443?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/3462126211733082443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=3462126211733082443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/3462126211733082443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/3462126211733082443'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2009/07/best-job-post-i-have-seen-in-long-while.html' title='The best job post I have seen in a long while'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-8882483772425900738</id><published>2009-05-28T10:53:00.000-07:00</published><updated>2009-05-28T11:53:08.562-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IO2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Google IO'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Conference'/><title type='text'>Why Google should give Google Phones to unemployed</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_mAuyo4Ty9Uk/Sh7TSDyxDpI/AAAAAAAAAxU/nmUQQv8h8vg/s1600-h/4272_104232823581_574038581_2679314_2179351_n.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5340938515317329554" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 240px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://2.bp.blogspot.com/_mAuyo4Ty9Uk/Sh7TSDyxDpI/AAAAAAAAAxU/nmUQQv8h8vg/s320/4272_104232823581_574038581_2679314_2179351_n.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;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:&lt;br /&gt;1. Does gPhone lost so much ground to iPhone (in terms of applications) that desperate and costly measures are required?&lt;br /&gt;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&lt;br /&gt;3. If (2) is true, open source approach once again has to yield to commercial interests&lt;br /&gt;&lt;br /&gt;Regardless of the Google motivating factors, the decision to give gPhones to Google conference attendees is flawed for a bunch reasons:&lt;br /&gt;- Google IO attendees are Google fans already, they know about gPhone platform&lt;br /&gt;- Conference attendees either write gPhone apps already or do not have interest in them – phone will not convert them&lt;br /&gt;- Companies who pay conference registration fee, hotel and airfare can afford an unlock phone for developers&lt;br /&gt;&lt;br /&gt;What they should do: &lt;strong&gt;Give it to unemployed!&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;How:&lt;br /&gt;Engage government and EDD to reach unemployed software developers and give them the gPhone!&lt;br /&gt;&lt;br /&gt;Why:&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Why 2:&lt;br /&gt;Why did’t Google ask me? Hope they will do next time&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;And here are my (unedited and unorganized) notes from the conference sessions&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Open Social Containers from Google: &lt;/strong&gt;&lt;br /&gt;- iGoogle (in home view, w. sandbox for developers)&lt;br /&gt;- Gmail (nav view, provided as Lab feature at the moment)&lt;br /&gt;- Calendars (in preview mode, nav+canvas view+ custom APi ext like google.calendar.showEvents)&lt;br /&gt;- Wave (check it out!)&lt;br /&gt;&lt;br /&gt;Sample: Quatermile gadget -&gt; think about calories/food watchers&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What makes gadget social:&lt;br /&gt;&lt;/strong&gt;· Leveraging social graph osaoi.people.get()&lt;br /&gt;· Quick data entry using AJAX/Server communication with osapi.http.post[Google Visualization API + GWT]&lt;br /&gt;· Dashboard View&lt;br /&gt;· Container-specific extensions (opt)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to grow/advertise social gadget:&lt;br /&gt;&lt;/strong&gt;· Container directory (iGoogle)&lt;br /&gt;· Organic (share app/join team/use updates)&lt;br /&gt;· Cross promote&lt;br /&gt;· Adverte in other apps, etc&lt;br /&gt;· Take to all Open Social Sites&lt;br /&gt;· Create Mobile App that use the same data&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Google App Engine (+ Java now!)&lt;br /&gt;&lt;/strong&gt;Container platform as services&lt;br /&gt;HW/SW update&lt;br /&gt;Scalable services via familiar/portable API&lt;br /&gt;Get charge for what used – no dedicated hardware&lt;br /&gt;Buildt-in App console&lt;br /&gt;HTTP request limited to 30 sec, no server push&lt;br /&gt;Request are run in sandbox environment&lt;br /&gt;Jetty and Jasper(adapter to serv 2.5 API) on top of Google stack&lt;br /&gt;Web.XML + Additional conf file&lt;br /&gt;Optional SSL and Sessions&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Google Services available for Google Web engine apps :&lt;br /&gt;&lt;/strong&gt;· Authentication-&gt; Google Accts&lt;br /&gt;· Data-&gt;Bigtable&lt;br /&gt;· Caching-&gt;memcacheg&lt;br /&gt;· Email-&gt;Gmail gateway&lt;br /&gt;· Com.google.appengine.api&lt;br /&gt;Demo:&lt;br /&gt;http://java-demo.appspot.com/&lt;br /&gt;Coming:&lt;br /&gt;· Task queues&lt;br /&gt;· Text search&lt;br /&gt;· Incoming emails&lt;br /&gt;· XMPP&lt;br /&gt;· Large files&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;gMap Optimizations&lt;/strong&gt;&lt;br /&gt;Maps 3.0 – redesign with perf in mind&lt;br /&gt;Use overlays instead of markers to show &gt; 1000 markers (subclass GOverlay() class and draw inside it, use single CSS sprites!:)&lt;br /&gt;Alt. solution – flash&lt;br /&gt;Alt solution (&gt;1000 overlays) clustering (to show size/loc of clusters). Use MarketClaster do clustering in JavaScript&lt;br /&gt;&lt;a href="http://code.google.com/qualify/"&gt;http://code.google.com/qualify/&lt;/a&gt; - take the test&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEO&lt;br /&gt;&lt;/strong&gt;- Use geo-targeting (note that .fr will not work for us users)&lt;br /&gt;- Web server (IP) in location where it will serve users&lt;br /&gt;- Shared hosting is OK&lt;br /&gt;- Godaddy automatically link to web master tools (from API)&lt;br /&gt;- New: crawler data will be available via API&lt;br /&gt;- Content – good quality for users&lt;br /&gt;- Navigation – search box, logical category navigation, how to get to home page, show what already visited or&lt;br /&gt;- Shareable urls&lt;br /&gt;- Describable file names&lt;br /&gt;- Low-case urls&lt;br /&gt;- Robots are case-sensitive&lt;br /&gt;- Separate adult site content&lt;br /&gt;- Important pages should be linked from home page&lt;br /&gt;- Sitemaps&lt;br /&gt;- Disallow login page/shopping cards, test from webamaster’s tools&lt;br /&gt;- Create easily understood dynamically link structure (*ex: category=mobile, id=…) Google find ways to index only most relevant&lt;br /&gt;- No session ID in the middle of the path! (it’s infinite for Google)&lt;br /&gt;- No marks for what is expended on the page in URL!&lt;br /&gt;- Descriptive name for links&lt;br /&gt;- Do ajax, javascript on TOP of HTML&lt;br /&gt;- Google will process OnClick content from now-on (but only if JavaScript is on the same page – not in the linked file!)&lt;br /&gt;- If AJAX is used - create static link in addition!&lt;br /&gt;- Text in Flash is visible and searchable but flash should be embedded in standard ways&lt;br /&gt;- FRAMES and IFRAMES are interpreting within parent page (IFRAMES are treated as separate URLs thou)&lt;br /&gt;- should include title, “descriptive” metadescription&lt;br /&gt;- Title contains keyword&lt;br /&gt;- No title duplication&lt;br /&gt;- Keywords are important, adopt language of users&lt;br /&gt;- 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&lt;br /&gt;- Video – static html, titles, popularity, comments, related, create video that is compelling to users. Uptime for site is important for video&lt;br /&gt;- HTTP Response codes (404 when 404, 301 is OK too and keeps popularity). When site is down – use 503&lt;br /&gt;- Webmaster tools, crawl errors&lt;br /&gt;- Use custom 404 with link to search, home page, suggested pages&lt;br /&gt;- Tweets – no ping service – should be linked to (unlike blogs) from other sites&lt;br /&gt;- Reviews/comments – keep reviews on the same page as product&lt;br /&gt;- Rich snippets marked in RDF – as microformat – to mark reviews &lt;a href="http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html"&gt;http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html&lt;/a&gt;, &lt;a href="http://www.google.com/support/webmasters/bin/answer.py?answer=146645"&gt;http://www.google.com/support/webmasters/bin/answer.py?answer=146645&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Google Waves &lt;/strong&gt;(http://wave.google.com/)&lt;br /&gt;Look at twave J&lt;br /&gt;What is available?&lt;br /&gt;- Protocol (described in white papers)&lt;br /&gt;- API (code.google.com/apis/wave)&lt;br /&gt;- Open Source/ref implementation that could be placed on top of DB&lt;br /&gt;- Demo&lt;br /&gt;- Platform (waveprotoclol.org)&lt;br /&gt;Sounds like open-source SharePoint competitor… Especially when it will be possible to effectively integrate into company workflow&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-8882483772425900738?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/8882483772425900738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=8882483772425900738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/8882483772425900738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/8882483772425900738'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2009/05/why-google-should-give-google-phones-to.html' title='Why Google should give Google Phones to unemployed'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_mAuyo4Ty9Uk/Sh7TSDyxDpI/AAAAAAAAAxU/nmUQQv8h8vg/s72-c/4272_104232823581_574038581_2679314_2179351_n.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-5433459915374358752</id><published>2009-03-24T23:29:00.000-07:00</published><updated>2009-03-26T12:00:17.091-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game developer&apos;s conference'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><title type='text'>OnLive - Gaming in the cloud</title><content type='html'>Thanks to the right star alignment and generous invitation from my co-worker I was lucky to be in the audience of the &lt;a href="http://www.onlive.com/"&gt;OnLive&lt;/a&gt; service announcement.&lt;span style=""&gt;   &lt;/span&gt;After 7 years&lt;span style=""&gt;  &lt;/span&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;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.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;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.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a style="font-weight: bold;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mAuyo4Ty9Uk/ScnSfV1P5PI/AAAAAAAAAug/5PnMSwrBGcM/s1600-h/Feb24,09+054.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_mAuyo4Ty9Uk/ScnSfV1P5PI/AAAAAAAAAug/5PnMSwrBGcM/s320/Feb24,09+054.jpg" alt="" id="BLOGGER_PHOTO_ID_5317012270965843186" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Why &lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;OnLive&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; is great?&lt;/span&gt; (at least on the demo, need to test myself at home):&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;unprecedented performance approaching realism&lt;/li&gt;&lt;br /&gt;&lt;li&gt;access to high-end games + games developed specifically for online experience&lt;/li&gt;&lt;br /&gt;&lt;li&gt;User hardware does not get obsolete&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Extremely high-performance shared serves with 1-2 GPUs&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Special card for HW video compression&lt;/li&gt;&lt;li&gt;1 [ms] latency (can you believe that?)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;         &lt;p class="MsoNormal"&gt;Minimum requirements for the end-user hardware:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;bandwidth 1.5 Mbps for regular video resolution&lt;/li&gt;&lt;li&gt;HDTV experience 5 Mbps downstream (very light for upstream, great for DSL)&lt;/li&gt;&lt;/ul&gt;      &lt;p class="MsoListParagraphCxSpLast"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Typical Social features (something that is really expected these days:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;Arena&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Brag clips&lt;/li&gt;&lt;li&gt;Spectating roles&lt;/li&gt;&lt;/ul&gt;      &lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Plenty of Games already available on OnLive:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Family games (LegoBatman is there)&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Did not see any cooperative games but who cares – killing is more fun&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;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? &lt;span style=""&gt; &lt;/span&gt;Technologically it is possible these days&lt;/li&gt;&lt;/ul&gt;        &lt;p class="MsoNormal"&gt;&lt;u&gt;&lt;o:p&gt;&lt;span style="text-decoration: none;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u style="font-weight: bold;"&gt;Gamers &lt;/u&gt;will love:&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;Simplicity&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Gaming (and good gaming, finally!) on MAC&lt;/li&gt;&lt;li&gt;For Multi-player games – fast connection between game servers (LAN party environment)&lt;/li&gt;&lt;li&gt;OnLive makes easier to watch the game, why bother clicking and tapping when you can see masters at play.&lt;/li&gt;&lt;/ul&gt;      &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/u&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;u style="font-weight: bold;"&gt;Game Publishers&lt;/u&gt; will love it: rental model + exposure to bigger market. No surprise that big names are already there:&lt;/p&gt;  &lt;p style="font-style: italic;" class="MsoNormal"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;•    Electronic Arts&lt;br /&gt;•    Ubisoft&lt;br /&gt;•    WB&lt;br /&gt;•    Take two&lt;br /&gt;•    THQ&lt;br /&gt;•    Epic Games&lt;br /&gt;•    Eidos&lt;br /&gt;•    Atari&lt;br /&gt;•    2D Boy&lt;br /&gt;•    CodeMasters&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Game developers&lt;/span&gt; will like it:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;    Single code – 3 devices&lt;/li&gt;&lt;li&gt;Social features integrated&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Hardware Companies&lt;/span&gt; will hate it:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;No need to buy and upgrade expensive game PC&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Why I am still skeptical?&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Networks are optimized for bandwidth – not latency, will that ruin the experience? &lt;/p&gt;  &lt;p class="MsoNormal"&gt;I am waiting (patiently) for the winter ’09&lt;span style=""&gt;  &lt;/span&gt;general service launch…&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-5433459915374358752?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/5433459915374358752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=5433459915374358752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5433459915374358752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5433459915374358752'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2009/03/onlive-gaming-in-cloud.html' title='OnLive - Gaming in the cloud'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_mAuyo4Ty9Uk/ScnSfV1P5PI/AAAAAAAAAug/5PnMSwrBGcM/s72-c/Feb24,09+054.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-5439954226556212924</id><published>2008-10-27T08:30:00.001-07:00</published><updated>2008-10-27T08:31:24.565-07:00</updated><title type='text'>Freebase Hack Day</title><content type='html'>&lt;a href="http://tinyurl.com/freebasehackday"&gt;&lt;img src="http://www.freebase.com/api/trans/raw//guid/9202a8c04000641f8000000009497050" style="border: none" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-5439954226556212924?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/5439954226556212924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=5439954226556212924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5439954226556212924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5439954226556212924'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/10/blog-post.html' title='Freebase Hack Day'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-6171104591205374822</id><published>2008-08-19T08:15:00.001-07:00</published><updated>2008-08-19T08:15:09.525-07:00</updated><title type='text'>Struggle to be buzzword compliant</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;I realized that there is a new wave of buzzwords coming on. Here is my very small dictionary:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;behavioral targeting&lt;/strong&gt; – targeting ads based on user's patterns&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;taking an action on app&lt;/strong&gt; – interaction but not installing social app, like in new Facebook profile&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;social advertising&lt;/strong&gt; - accelerated distribution of news about user actions beyond organic content &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;soc ads&lt;/strong&gt; - ads that use social graph&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;soc ads&lt;/strong&gt; (alt)- advertising on social media  &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;integrating branding&lt;/strong&gt; – using brand names/logos to advance applications&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;social shopping&lt;/strong&gt; - making buying descriptions based on friends opinions&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;"buzzword compliance"&lt;/strong&gt;  - using all of the above in speech or writing&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-6171104591205374822?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/6171104591205374822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=6171104591205374822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6171104591205374822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6171104591205374822'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/08/struggle-to-be-buzzword-compliant.html' title='Struggle to be buzzword compliant'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-2293368928075295227</id><published>2008-07-23T17:28:00.001-07:00</published><updated>2008-07-23T17:28:31.734-07:00</updated><title type='text'>Facebook Friends Connect</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Is a way to extend external sites to provide: &lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;FB identity&lt;br /&gt;&lt;/li&gt;&lt;li&gt;FB friends (relationship)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Feed to FB&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;Demo app at &lt;a title='http://www.somethingtoputhere.com/therunaround' href='http://www.somethingtoputhere.com/therunaround'&gt;http://www.somethingtoputhere.com/therunaround&lt;/a&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p&gt;User experience:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;login:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; js login method requiresession(): detects state &lt;br /&gt;of usr-FB relationship, log-in into FB if  needed. If user has not authorised app - &lt;br /&gt;present app auth dialog. If already has session - just go&lt;br /&gt;&lt;/p&gt;&lt;p&gt;init JS, require session&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;access FB data:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; - FBML on external site - use JS FBML parser and replace in browser DOM with FB data&lt;br /&gt;&lt;/p&gt;&lt;p&gt; - JS based API to get FB data, REST API on the server site. Sessions work accross any API&lt;br /&gt;&lt;/p&gt;&lt;p&gt; - only small subset of FBML us supported at the moment&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;adding social content:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;  - use access API&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Connections:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;app developers can suggest connections (using &lt;br /&gt;e-mail hash)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;user get connect request on FB &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Move content from external sites to FB app can register feed template (3 types of &lt;br /&gt;stories)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;call JS "showfeeddialog" to request user to &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;confirm data sharing on FB. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;privacy protection:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; app can cache data for 24 hrs (for performance reasons). Terms are the same as for FB platform&lt;br /&gt;&lt;/p&gt;&lt;p&gt; app can integrate data any way they like - &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;enable info sharing&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;SANDBOX is open, TFL - end of summer&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;More info: &lt;/strong&gt;http://wiki.developers.facebook.com/index.php/Facebook_Connect&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-2293368928075295227?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/2293368928075295227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=2293368928075295227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2293368928075295227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2293368928075295227'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/07/facebook-friends-connect.html' title='Facebook Friends Connect'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-1761594280572018628</id><published>2008-05-28T11:48:00.000-07:00</published><updated>2008-05-28T12:01:42.369-07:00</updated><title type='text'>Scalability of Google IO</title><content type='html'>It was interesting to watch today how Google is solving scalability problems:&lt;br /&gt;&lt;br /&gt;Problem 1: Conference registration lines are too long.&lt;br /&gt;Google's solution: Let anyone in. No badges are required before 2 p.m.&lt;br /&gt;&lt;br /&gt;Problem 2: Too many people who want to attend the keynote speech by Vic Gundotra&lt;br /&gt;Google's solution: Still let anyone in. People can sit anywhere on the floor&lt;br /&gt;&lt;br /&gt;Lesson: relax rules if they stay on the way of scalability&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-1761594280572018628?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/1761594280572018628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=1761594280572018628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/1761594280572018628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/1761594280572018628'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/05/scalability-of-google-io.html' title='Scalability of Google IO'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-7192879931140148300</id><published>2008-04-24T10:19:00.001-07:00</published><updated>2008-04-24T13:55:27.115-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB2EXPOSF'/><title type='text'>Design &amp; Learning from Viral Applications FB App lifecycle</title><content type='html'>&lt;span xmlns=""&gt;&lt;h2&gt;Step&lt;span style="font-size:15;"&gt; 1&lt;/span&gt;&lt;/h2&gt; (Initial Growth):&lt;br /&gt;&lt;p&gt;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&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Design/implement based on simple concepts. &lt;span style="text-decoration: underline;"&gt;Viral channels are more important than features!&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Step&lt;span style="font-size:15;"&gt; 2&lt;/span&gt;&lt;/h2&gt; (validation):&lt;br /&gt;&lt;p&gt;Goal: concept validation.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;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.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use web matrix (Google analytics for conversion rates)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;[Social Application classes]&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Channel (superwall)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Content&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Dating&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Games (related to dating, affinity groups)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Gifts&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Self-Expression&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Understand audience, look at market size, potential penetration (set expectation right :). Ning has impressive numbers but segmented. iGoogle (10-15 Mil, virality is not clear yet, how to build initial friend list?)&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Understand activity stream.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Focus on simple&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Focus on activity stream that all users can engage into&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Typical 30 releases/day during the post-launch phase.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Take extra care of 1-st impression (app about page is important!)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Step&lt;span style="font-size:15;"&gt; 3&lt;/span&gt;&lt;/h2&gt; (grows, tuning along the way)&lt;br /&gt;&lt;p&gt;Start with the call to action&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Figure out conversion rate (make sure x*y&amp;gt;1)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Preview Page messages turning&lt;br /&gt;&lt;/p&gt;&lt;p&gt;App turning&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Step&lt;span style="font-size:15;"&gt; 4&lt;/span&gt;&lt;/h2&gt; (Promote!)&lt;br /&gt;&lt;p&gt;Buy additional throughput, engage ad network&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Make sure that viral loop works – otherwise money will go into drain.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Use different add network.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cross-promote apps!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Step&lt;span style="font-size:15;"&gt; 5&lt;/span&gt;&lt;/h2&gt; (Engagement)&lt;br /&gt;&lt;p&gt;Congratulations!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;How to make users to come back? How to make users to come back?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Saturated social circles. Critical mass.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Good functionality bring users back – tune for user experience! 1-to-1 becomes more important than invites. Use e-mails and messaging. Do not spam – interact by telling only when something &lt;span style="text-decoration: underline;"&gt;happened&lt;/span&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;&lt;span xmlns=""&gt;&lt;h2&gt;Step 6&lt;br /&gt;&lt;/h2&gt;&lt;/span&gt; (disengagement)&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Understand that every channel will degrade over time. Set your expectations right!&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-7192879931140148300?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/7192879931140148300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=7192879931140148300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7192879931140148300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7192879931140148300'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/04/design-learning-from-viral-applications.html' title='Design &amp;amp; Learning from Viral Applications FB App lifecycle'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-448810505736128448</id><published>2008-04-24T10:08:00.003-07:00</published><updated>2008-04-24T13:55:27.116-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB2EXPOSF'/><title type='text'>Location Web  presentation at  Web 2.0</title><content type='html'>&lt;span xmlns=''&gt;&lt;h1&gt;Location Web&lt;br /&gt;&lt;/h1&gt;&lt;p&gt;Location = context &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Context -&amp;gt; higher relevancy -&amp;gt; user experience&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Location is a killer mobile app enabler&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Yoursite.com?lat=&amp;amp;lon=&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Fire Eagle – location broker (get all inputs, have app (publisher) registered). Dopler as publisher. Fireball get access for the info &lt;br /&gt;&lt;/p&gt;&lt;p&gt;DO use FireEagle PHP library! (Update, query, integrate)&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Geolocation methods:&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Triangulation (WiFi 20[m], GPS 1[m], Cell Tower 2000[m])   {Loki JavaScript API  &lt;a href='http://loki.com/developers'&gt;http://loki.com/developers&lt;/a&gt;}  Garmin device plug-in, get path data GPX&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Association (IP Geolocation) {quova, ip2location}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Geo Term Extraction {MetaCarta Query Parser API, Urban Mapping GeoMods}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Geocoding {geonames (started with Tiger geoset in Postgres), Google, Yahoo, Geocoder.us}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;h2&gt;JavaScript API&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Browser.getGeoLocation()  - LocationAvare.org &lt;br /&gt;&lt;/p&gt;&lt;h1&gt;Mobile location&lt;br /&gt;&lt;/h1&gt;&lt;p&gt;&lt;strong&gt;iPhone&lt;/strong&gt; (WiFi, cell tower) and other mobile API&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Symbian S60&lt;br /&gt;&lt;/p&gt;&lt;p&gt;J2ME/JSR-179&lt;br /&gt;&lt;/p&gt;&lt;p&gt;WHERE Widgets $3/mth for users, no need to have relationship with phone network provider – where wil do it for you {where.com}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;SkyHook (WiFi only)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;h2&gt;Cell Tower info sources&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;ZoneTag (yahoo)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;OpenCellID&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CellDB&lt;br /&gt;&lt;/p&gt;&lt;p&gt;WhereCamp unconference May 17-th, May 18-th. Mt. View&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Important: only integrated (combined) location methods can provide reliavle location info&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;h2&gt;Geocoding Links:&lt;br /&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;geoNames web services: geonames.org/export&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Google Geocoder class: code.google.com/apis/maps/documentation/services.html#geocoding&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Yahoo geocoding API&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Geocoders.us&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-448810505736128448?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/448810505736128448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=448810505736128448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/448810505736128448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/448810505736128448'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/04/location-web-presentation-at-web-20.html' title='Location Web  presentation at  Web 2.0'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-2041481301369195716</id><published>2008-04-24T10:08:00.001-07:00</published><updated>2008-04-24T13:55:27.117-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB2EXPOSF'/><title type='text'>SEO Optimization</title><content type='html'>&lt;span xmlns=''&gt;&lt;h2&gt;Cloaking&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;(Serve different content, could be in violation of Google policy)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;IP delivery is used to get around Google bot (detect if bot is coming from one of Google's computers) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Use English-&amp;gt;English translation to detect/display cloaked page&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;301 redirect&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;And know when to use 302 instead&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Supplemental Index&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Supplemental index queries does not work on Google any more. Use method described below:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Site:www.xyz.com –allinurl:www.xyz.com   show only main index pages, can be used in calculation in %% of&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To take out of sup index – pop-up rank by linking to home page or by any other method&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Duplicate content&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Dilute page importance – get rid of them when possible&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Scan for it!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Block duplicate content for crawlers by rel=nofollow&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;CSS&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Complete control over design/HTML&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Menu based on CSS shows SE what is linked (much better than JavaScript)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Can put more emphasis on what is important&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Image replacement (careful to not been caught), nice way to get around brand police&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Keyword Research&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Google Suggest (from toolbar)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Yahoo.com (from yahoo.com)&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Keyword Density&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Ranks.nl&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Density is not as important as location of these words&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;"Thin Slicing"&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Title text is the most important on the page. Have list of all URL, and list of titles. Make sure singular vst to plural, common misspellings&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Reverse Engineering of competitors&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Siteexplore.yahoo.com (with Y! account)  Look into internal pages -&amp;gt; export into single .tsv file as the result of all search. &lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Generate "smart" inbound links&lt;br /&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Write an article on W3C and link back to your site. They publish in press articles.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Become contributor, etc for non-profits&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Buy existing site for SEO purpose (slowly change content: weeks, month)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Code.google.com passing page rank&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Donate to site thanking to in-kind donors that put your link on the page&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Put comments on blogrolls&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wikipedia (do not edit from your Co address). Wikipedia is no-follow but journalists and bloggers go-to the link&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Digg. It is as much about submitter as about content. Know community to target, do a lot of altruistic stuff (like with Wikipedia) or go to top 100 digger list and ask Digg pro&lt;br /&gt;&lt;/li&gt;&lt;li&gt;YouTube, Flicker are not generating pagerank but bloggers and journalist will find you and link from there articles. Titling is very important. Build a micro-site, have co name as log-in on YouTube.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;SEO Tools&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;SEO for Firefox extensions&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Tools.seobooks.com&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Blogs&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Seomoz.org&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;References&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Netconcepts.com&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-2041481301369195716?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/2041481301369195716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=2041481301369195716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2041481301369195716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2041481301369195716'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/04/seo-optimization.html' title='SEO Optimization'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-2722550899960044802</id><published>2008-04-24T10:07:00.001-07:00</published><updated>2008-04-24T13:55:27.117-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WEB2EXPOSF'/><title type='text'>API Design notes from Web 2.0 Expo</title><content type='html'>&lt;span xmlns=''&gt;&lt;h2&gt;Twitter API Experience&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;It is ALL around REST these days. Even Google abandoned more complicated API in favor of RESTfull&lt;br /&gt;&lt;/p&gt;&lt;p&gt;For Twitter API more that 80% of overall traffic these days&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Twitter manages developer community over Google Group&lt;br /&gt;&lt;/p&gt;&lt;p&gt;400 applications added by hand to the directory from e-mail, tons more are around and not the catalog&lt;br /&gt;&lt;/p&gt;&lt;p&gt;XML, JSON, and many other formats supported&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Grow API organically (started with 2 methods and no documentation), from the conversation with developers "I can do X if you do Y" &lt;br /&gt;&lt;/p&gt;&lt;p&gt;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? &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Support developers 24 hrs is important – be present! If not listening, developers will go forward.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Delegate to other developers who are active within the community. Do not forget to socially reward them.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Scaling from API prospective. XML, JSON are not designed for scale by itself. Do it early is a big win. Dedicate part of server farm for API – do not mix destination and API on the same servers&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Security issues. API is where bad-behaving users will go first. Audit. Monitor. Expect what can be leaked.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;What twitter did wrong?&lt;br /&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Did not start with api.twitter.com &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Did not version the API&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Did not make life easy (or easier) for Flash developers&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Did not automate (statistics, admin use, app galleries) &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Many more&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;New in twitter API&lt;br /&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Rudimentary geolocation support&lt;br /&gt;&lt;/li&gt;&lt;li&gt;More consistency between methods&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Parity between user-side and API side&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Misc Observations&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;It is unclear how to make API into business. It is a trade-off between value from dev community and users. Mashery pretends to monetize on API. QOS is an option.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;OAuth [http://oauth.net/] is absolutely where authorization goes on API. More complex on production and consumer site. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;Jabber/XMPP – most clients pull constantly. A lot of overhead can be saved this way. But overhead and lack of libraries slow down the effort.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Web-&amp;gt;API-&amp;gt;SOA Model provides: separation of concerns, direction to move towards&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Faces of APIs: XML, spreadsheets, static virtual maps, &lt;span style='text-decoration:underline'&gt;static&lt;/span&gt; URLs, SOAP, JSON, serialized PHP, JavaScript callbacks, etc&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The only way to transfer date/time data – UNIX timestamp&lt;br /&gt;&lt;/p&gt;&lt;p&gt;New API directions:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Amazon S3/(with billing associated with it and authentication)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OAuth – emerging standard for 3-d party in client-server relationship. Create a situation to provision on behalf of other users. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-2722550899960044802?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/2722550899960044802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=2722550899960044802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2722550899960044802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2722550899960044802'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/04/api-design-notes-from-web-20-expo.html' title='API Design notes from Web 2.0 Expo'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-909804810802281971</id><published>2008-04-21T12:01:00.000-07:00</published><updated>2008-04-21T12:35:19.686-07:00</updated><title type='text'>Tagging entrepreneurs at StartupSchool</title><content type='html'>&lt;h1&gt;Tagging entrepreneurs at Startup School&lt;/h1&gt;  &lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_mAuyo4Ty9Uk/SAzmXvcZ4UI/AAAAAAAAAfM/SnnobFdUtkE/s1600-h/David+Heinemeier.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_mAuyo4Ty9Uk/SAzmXvcZ4UI/AAAAAAAAAfM/SnnobFdUtkE/s320/David+Heinemeier.jpg" alt="" id="BLOGGER_PHOTO_ID_5191777765998321986" border="0" /&gt;&lt;/a&gt;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.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;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.&lt;span style=""&gt;   &lt;/span&gt;People interested in later should checkout &lt;span style=""&gt; &lt;/span&gt;great speech by David Heinemeier &lt;span style=""&gt; &lt;/span&gt;[&lt;a href="http://omnisio.com/startupschool08/david-heinemeier-hansson-at-startup-school-08"&gt;http://omnisio.com/startupschool08/david-heinemeier-hansson-at-startup-school-08&lt;/a&gt;] (creator of the Ruby on Rails framework), others may continue to read my boring notes.&lt;/p&gt;  &lt;h1&gt;Suggestions for startups to raise money&lt;/h1&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;What to do:&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;Talk only to &lt;u&gt;“good”&lt;/u&gt; investors&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Tell &lt;u&gt;existing&lt;/u&gt; story&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Do deals in &lt;u&gt;parallel&lt;/u&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;Thech founders&lt;/u&gt; are the key in SV&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Create San Hill &lt;u&gt;Buzz&lt;/u&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;u&gt;Do not be distracted&lt;/u&gt; by fundraising process (no more than ½ person assigned to the process)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;What all investors look for:&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;Market (big &amp;amp; growing fast). Startup cannot create markets. &lt;span style=""&gt; &lt;/span&gt;Customers with “hair on fire”. &lt;span style=""&gt; &lt;/span&gt;Unfair advantage.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Great Team &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Great Product&lt;/p&gt;  &lt;h2&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/h2&gt;  &lt;h2&gt;Story that all investors want to hear:&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;Exploding market. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt; &lt;/span&gt;Best solution. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Best team.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;Suggestions and observations&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;Get twice $$ what you think is needed &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Avoid “super pro rata” in terms – makes&lt;span style=""&gt;  &lt;/span&gt;hard to get second round&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Deal making is about alternatives – more the better&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Talk to CEOs of potential investors&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Evl0-ery company has a rocky beginning&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;37 Signals&lt;/h2&gt;  &lt;p class="MsoNormal"&gt;Tagging developers from Fortune 500 to fortune 5M. Different rules in that world – NO VC. No sales cycles – just solving one problem may be at little better than someone else&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h1&gt;FriendFeed&lt;/h1&gt;  &lt;p class="MsoNormal"&gt;-“listen to your users” &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;h2&gt;Amazon, Cloud computing&lt;/h2&gt;  &lt;p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;AWS bandwidth passed Amazon retail bandwidth worldwide&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;S3&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;EC2&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;SimpleDB&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;SimpleQuue&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Flexible payment service&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Mechanical Turk&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;BlueOrigin [&lt;a href="http://public.blueorigin.com/index.html"&gt;http://&lt;/a&gt;&lt;span class="a"&gt;&lt;a href="http://public.blueorigin.com/index.html"&gt;public.&lt;b&gt;blueorigin&lt;/b&gt;.com/index.html&lt;/a&gt;]&lt;/span&gt; (Vertical takeoff and landing vehicle company funded by Jeff Bezos) &lt;span style=""&gt; &lt;/span&gt;as user for EC2 for computation&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Google app engine. Will it be real competitor to EC2? Time will show.&lt;/p&gt;  &lt;h2&gt;“Customer focus is more important than competitive focus” – thank you, Jeff Bezos for setting right priorities for Amazon&lt;/h2&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-909804810802281971?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/909804810802281971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=909804810802281971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/909804810802281971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/909804810802281971'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/04/tagging-entrepreneurs-at-startupschool.html' title='Tagging entrepreneurs at StartupSchool'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_mAuyo4Ty9Uk/SAzmXvcZ4UI/AAAAAAAAAfM/SnnobFdUtkE/s72-c/David+Heinemeier.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-4948753382411057335</id><published>2008-02-25T22:13:00.000-08:00</published><updated>2008-03-07T10:49:14.666-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='weekendapps'/><title type='text'>Chronology of a painter or my weekend with wekendapps</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://apps.facebook.com/sendartist"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_mAuyo4Ty9Uk/R9GNubr-xXI/AAAAAAAAAbs/490PsWfCQQo/s320/thumbnail.jpg" alt="" id="BLOGGER_PHOTO_ID_5175073275671135602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Why?&lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;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.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Where?&lt;/span&gt; &lt;a href="http://blog.weekendapps.com/"&gt;Wekendapps&lt;/a&gt; &lt;span style=""&gt; &lt;/span&gt;in Santa Clara&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;When?&lt;/span&gt; &lt;span style=""&gt; &lt;/span&gt;February 22 to February 24, 2007&lt;/p&gt;  &lt;p style="font-weight: bold;" class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;" class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Day &lt;/span&gt;&lt;span style="font-size:130%;"&gt; &lt;/span&gt;&lt;span style="font-size:130%;"&gt;1&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;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.&lt;span style=""&gt;  &lt;/span&gt;Anyway crowd (with some help from organizers) gravitated into groups of people with similar skills. Ideas were presented. I liked what &lt;a href="http://www.facebook.com/profile.php?id=1207872"&gt;David&lt;/a&gt;’s  idea on searching FB users through their connections and common photo tagging. Started discussing/planning/coding the app. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold;" class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Day 2&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Spent morning socializing. Realized that app we thought about on day one is not viral. David shared another idea – ‘painter’ &lt;span style=""&gt; &lt;/span&gt;who will draw a classic masterpiece on user’s profile page over time. Sort of growing gifts but more ‘sophisticated’.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;4 p.m. really &lt;span style=""&gt; &lt;/span&gt;started to work on the app – put together “project plan” (list of to-do items) and assigned tasks. Plan is to finish the app early Sunday. For the rest of the day (till 2 a.m.) we dug dip into PHP/SQL/CSS/FBML.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;12:30 a.m. conversation in the room became more philosophical. Main topic discussed – why do people laugh? &lt;span style=""&gt; &lt;/span&gt;Is it because people lose control of themselves?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;1:30 a.m. it took me a while to figure out why &lt; href="”link”"&gt; does not work - sleep time.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;BIG respect to people who did not leave and stayed for the overnight coding session.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="font-weight: bold;" class="MsoNormal"&gt;&lt;span style="font-size:130%;"&gt;Day 3&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;9 a.m. we are back. Bagel and coffee &lt;span style=""&gt; &lt;/span&gt;are timely. Thank you, organizers.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;10 a.m Set up a target to finish coding by 2 p.m. Plenty of time to finish the up (or what we thought)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;12 noon realized that we cannot finish by 2 even if we skip the lunch. Skipped the lunch.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;2 p.m. uncovering one limitation after another realized that we cannot finish even by &lt;span style=""&gt; &lt;/span&gt;4 p.m. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;4 p.m. David added the code to post the painter to user’s profile page. Only dots and occasional lines are visible – no painter, no picture… Started panicking and think about radical change to the design – instead of posting BFML with css – post static images. Thanks to &lt;a href="http://www.facebook.com/profile.php?id=24401338"&gt;Elsie&lt;/a&gt;  who saved us from taking that route – it would take forever and ever to finish the app. &lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;5 p.m. &lt;span style=""&gt; &lt;/span&gt;Crowd of investors arrived. Asking questions like “do you use PHP libraries?”. All deadlines are passed and we are not finished. Moved to more quit conference room.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;6 p.m. Feature complete. Started end-to end testing. Realized that critical functionality (acceptance of the painting after application is installed) does not work. With the tribal knowledge of surrounding &lt;span style=""&gt; &lt;/span&gt;people, David figured out what could be done to fix the flaw. Changed DB schema and countless places in the code. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;7 p.m. other teams &lt;span style=""&gt; &lt;/span&gt;are presenting ... We still working on the code. &lt;span style=""&gt; &lt;/span&gt;Promise to organizers that we are close and soon will be ready to present. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;7:15 p.m. development server is down… Most of the code is there…&lt;/p&gt;  &lt;p class="MsoNormal"&gt;7:25 p.m. server is back&lt;/p&gt;  &lt;p class="MsoNormal"&gt;7:30 p.m. moving to “production” – creating production keys and set of files. Integration end-to-testing. Promised that we really-really ready and will come to the main conference room in a minute. &lt;a href="http://www.facebook.com/apps/application.php?id=10716900495"&gt;App is fully functional&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;7:45 p.m. testing end-to-end functionality. I want to remove app from my account so that I can test invite-install path. Instead of removing the app from my profile, deleted application all together from the developers environment. &lt;span style=""&gt; &lt;/span&gt;Ooops. Should have camera with me to take picture of David.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;7:55 app restored&lt;/p&gt;  &lt;p class="MsoNormal"&gt;8:05 discussing ‘code freeze’. David still changing message text.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;8:15 presentation&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;P.S.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Side-effect of all of the fun, painter app, http://apps.facebook.com/sendartist/  is up and running.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Enjoy!&lt;br /&gt;&lt;/p&gt;  &lt;a href="http://www.blogger.com/%E2%80%9Dlink%E2%80%9D/"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-4948753382411057335?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/4948753382411057335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=4948753382411057335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/4948753382411057335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/4948753382411057335'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/02/chronology-of-painter-or-my-weekend.html' title='Chronology of a painter or my weekend with wekendapps'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_mAuyo4Ty9Uk/R9GNubr-xXI/AAAAAAAAAbs/490PsWfCQQo/s72-c/thumbnail.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-2184216283372041303</id><published>2008-02-12T14:49:00.000-08:00</published><updated>2008-02-12T14:54:54.043-08:00</updated><title type='text'>Highly scalable web solutions</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://web.meetup.com/66/calendar/7126318/"&gt;Amazon Web Services user’s group&lt;/a&gt;&lt;/span&gt; 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. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;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:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Database clusters&lt;span style=""&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Database replication&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Federated data layer&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Non-relational databases&lt;/li&gt;&lt;/ul&gt;        &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Clusters&lt;/span&gt; require virtually no code change, scaled up to 32 nodes and in cases of &lt;a href="http://www.oracle.com"&gt;Oracle&lt;/a&gt; &lt;span style=""&gt; &lt;/span&gt;(do not know anyone else who did it right) are prohibitively expensive for start-ups&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Database replication&lt;/span&gt; seems so appealing at the beginning… Basically forward all data update/write requests to the master and read the data from slaves. Not much of a code change, cheap/free databases could be used (think MySQL), any slave could become the master when needed… Unfortunately like with the cluster you can go only so far with that – performance will start&lt;span style=""&gt;  &lt;/span&gt;degrading to the level of inusability after 10-15 slave nodes.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Federated data layer&lt;/span&gt; is what Hi5 and many other smart companies are using today. Basic idea – split data horizontally by assigning range of item ids to separate db instances and have “smart” data layer figure out where to go for data request/updates. Major problems: hard to implement “right”, aggregated queries (like selects/count across large data sets, &lt;span style=""&gt; &lt;/span&gt;etc) should be executed against many data sources and then aggregated before returning data to the app. Rather challenging to implement and labor intensive any non-trivial scenarios.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Non-relational&lt;/span&gt; approach. Sort of new kid on the block (or may be old fellow we used to call object db?). Anyway, with introduction of &lt;span style=""&gt; &lt;/span&gt;&lt;a href="http://www.amazon.com/gp/browse.html?node=342335011"&gt;SimpleDb&lt;/a&gt; by Amazon, people start taking it more serious. Basic promise – you trade database features for scalability. Perfect if data is used just to store and retrieve objects and their properties. But what to do about data set aggregation? Navigate through the whole set of objects? I guess, we have to wait for the answer for a while…&lt;/p&gt;  &lt;span style="font-size: 11pt; line-height: 115%; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;As usual – no silver bullets, no magic wands. Well, at least software architects have job security&lt;/span&gt;&lt;span style="font-size: 11pt; line-height: 115%; font-family: Wingdings;"&gt;&lt;span style=""&gt;...&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-2184216283372041303?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/2184216283372041303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=2184216283372041303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2184216283372041303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2184216283372041303'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2008/02/highly-scalable-web-solutions.html' title='Highly scalable web solutions'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-6210765287259228653</id><published>2007-12-16T22:24:00.000-08:00</published><updated>2008-01-03T22:22:38.586-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ning'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSocial'/><title type='text'>OpenSocial and Ning</title><content type='html'>Ever since &lt;a href="http://code.google.com/apis/opensocial/"&gt;OpenSocial platform&lt;/a&gt; was announced by Google I wondered who will benefit the most from cross-social-network applications?&lt;br /&gt;Probably not Google - it was forced late into the game by Facebook and realized that market  will not  accept another closed platform for the social apps.&lt;br /&gt;Could it be MySpace? Surely it will be a nice addition to the kaleidoscope of  widgets crowded on user's pages.&lt;br /&gt;And only today I realized the major benefactor - &lt;a href="http://www.ning.com"&gt;Ning.com&lt;/a&gt; with its own ecosystem of small social networks. One-time effort of creating a hosting container for the OpenSocial by Ning will be realized by all of the hosted networks.&lt;br /&gt;Simply brilliant combination of open standard and Ning's business model!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-6210765287259228653?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/6210765287259228653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=6210765287259228653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6210765287259228653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6210765287259228653'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/12/opensocial-and-ming.html' title='OpenSocial and Ning'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-2326840418617570967</id><published>2007-12-14T09:49:00.000-08:00</published><updated>2007-12-14T09:52:49.447-08:00</updated><title type='text'>Lessons learned from CS377W (Stanford facebook class)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_mAuyo4Ty9Uk/R2LChwaV-XI/AAAAAAAAAWk/k83g29MTJfI/s1600-h/classlogo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_mAuyo4Ty9Uk/R2LChwaV-XI/AAAAAAAAAWk/k83g29MTJfI/s320/classlogo.png" alt="" id="BLOGGER_PHOTO_ID_5143887609597393266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Stanford&lt;/span&gt; successfully created a unique mix of:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;Open social network platform (thanks to Facebook)&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;Exceptionally talented students &lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Focus on success (as defined in social network world by number of app users, stickiness, time per visit)&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;Ways to measure success (thanks to Google analytics)&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;Sponsors with their push for app monetization (Social Media)&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;Technical leadership&lt;span style=""&gt;  &lt;/span&gt;(thanks to Dr. BJ Fogg, and Dave McClure)&lt;/li&gt;&lt;/ul&gt;            &lt;p class="MsoNormal"&gt;From this mix number of Facebook applications emerged. No all of them were equally successful but each one teaching their own lesson on success in a new world of social media. Common theme that I managed to pick up:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-weight: bold;"&gt;Survival of the dumbest&lt;/span&gt;. Successful applications do not expect anything from the user a beyond couple (or even better - one) click. What application do should be obvious within 3 seconds. This seems to be the attention span for an average&lt;span style=""&gt;  &lt;/span&gt;FB app user (my dear readers – you are not typical &lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;J&lt;/span&gt;&lt;/span&gt; )&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-weight: bold;"&gt;Focus on invitations.&lt;/span&gt; With the number of viral growth channels available for FB applications, invitations that is the part of application work flow remains the most important factor for the application user base growth&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="font-weight: bold;"&gt;Math is important.&lt;/span&gt; Teams that figured out correct set of measurements, instrumented FB applications to provide these measurements, and acted on the feedback happened to be the most successful applications&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Application name is important&lt;/li&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;Good graphics helps&lt;/li&gt;&lt;/ol&gt;          &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;6.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Know where FB deficiencies could be turned into application advantages (successful applications are&lt;span style=""&gt;  &lt;/span&gt;hard to uninstall and there is a reason for it)&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;7.&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Programming language/platform matters. PHP seems to be the winner&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;If you are still with me, below are my unedited notes on&lt;span style="font-weight: bold;"&gt; individual applications&lt;/span&gt;:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Pictures with collaborative filtering (http://apps.facebook.com/funnyimages/)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Pick me up (http://apps.facebook.com/pickups/) experimented with whether or not to enforce rules on number of friends to be invited to use the application. Lesson: tell the rules but do not enforce them&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Funny images (http://apps.facebook.com/funnyimages/) – rate images – send pictures to friends, verticals helped– cars, architecture – force to invite 10 friends to unlock application (!) exp growth for architecture app 40% day-by-day&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Good eats (http://apps.facebook.com/good_eats/) – social restaurant recommendation – find places to eat – high user engagement 6 pages/10 min avg. friends who are using the application. Activities, search, updating recent recommendations. 1-clik recommendations -. Virtual points- goes to ranking (medieval system) – leader board on the dashboard&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Lovechild (http://apps.facebook.com/luvchild) – collaborative digital parenting. Multiple parents, number of actions. Compete to rise the best lovechild. Branded digital goods – branded outfits and apparel . Great imaging&lt;span style=""&gt;  &lt;/span&gt;by Sylvia Yun! You are the best!&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Share the Love( http://apps.facebook.com/sharethelove/) – card game – fail because users invite only friends, no feeds [critical for installations]. Change to “Share the Love”&lt;/p&gt;    &lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;-&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Do not give users too much to do – single action! – encourage communication&lt;br /&gt;Exp growth /1/2 mil installs&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Bless me (http://stanford.facebook.com/apps/application.php?id=13773470170) &lt;span style=""&gt; &lt;/span&gt;– single action 5 weeks – 300K users.&lt;span style=""&gt;  &lt;/span&gt;Religious users. User retention. Marketing – iteration. Simple – attractive – not destructive&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Matchmaker(http://apps.facebook.com/hookster/) – Initially did not work. Main action should be invitation!!! Hug me -&gt; squeezeMe. User receive and reply on the same day. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Dodgeball (http://apps.facebook.com/dodge_ball/). Nobody reads rules. 2 step process for throwing balls 2% grows rate. Dimmer application – single – “hit 10 friends” and “open new level” 18%. Cleaner interface 1-step process!&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Wall of Shame (http://apps.facebook.com/shamewall/) –later transformed to &lt;span style=""&gt; &lt;/span&gt;Yo Momma. Bulletin board of what people hate. Leverage invite. Distribute jokes.&lt;span style=""&gt;  &lt;/span&gt;Sending insults using invitation mechanism. Simplicity- invite – know the demographic (cynical may not be the best)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Polls (http://apps.facebook.com/pollposition) – People a lazy^3 Took off when created pre-define questions&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Compliment box (http://apps.facebook.com/compliment-box/) – good first page with images of friends. Benefit? Social Value? Guide the user – remove functionality.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Super Status (http://apps.facebook.com/suprstatus/) – lightweight communication – microblogging space. Attention span \&lt;span style=""&gt;   &lt;/span&gt;Go away from Facebook’s ‘is’ style to do reach content. Commenting on statuses.&lt;span style=""&gt;  &lt;/span&gt;Tags.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Scribbled Photos (http://apps.facebook.com/photo_graph/). Mash-up on top of photos. Creativity. Random selection of first photo. Colors/undo. Instantaneous gratification. Pre-fill all possible slots. Future: stamps – pre-drown content. &lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt; &lt;/span&gt;College: the numbers – engaged Kaplan for the distribution – name recognition. See where the score are in relation with other applying to the college.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Social Buzz (http://apps.facebook.com/socialbuzz/). My experts. My credibility. Micro connections between friends. Propagate content between friends. Optimize first user experience.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Commonalities(http://apps.facebook.com/in_common/). Look into profiles. To come up with common elements.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Social Buzz. (http://apps.facebook.com/socialbuzz/) Kiva, microfinance. Distributing money from sponsor shown in the application. 40 loans. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;OneVoice. Started as Radio/TV for FB. Users rate [U-tube] playlists and DJs. Use emotions for ratings.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt; &lt;/span&gt;Save the Rainforest – vocab game. Started with the idea of creating socially meaningful&lt;span style=""&gt;  &lt;/span&gt;application.&lt;span style=""&gt;  &lt;/span&gt;Vocab game. Monetization from ads to benefit the cause.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Guess Who? (http://apps.facebook.com/guess-who/) Board made out of mutual friends create shared intimacy ! act fast on surprising data. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Car overload. Engage advertisers by segmenting the market and providing relevant to app advertising.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Fun, Inc.&lt;span style=""&gt;  &lt;/span&gt;Split app. 1 button and text box. Acton –and- reaction. Force to invite friends. Had to abandon .NET for PHP. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Tournaments (http://apps.facebook.com/mytournaments/). Create/share tournaments. &lt;span style=""&gt; &lt;/span&gt;1 click creation tournament + &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Send Hotness (http://apps.facebook.com/sendhotness/) – 5 Mil&lt;span style=""&gt;  &lt;/span&gt;users(send hotness to friend). Viral factor = conv ration * invitation ratio * engagement rate&lt;span style=""&gt;  &lt;/span&gt;&gt; 1. Required to add users. 10 – req – 20 Max limit of FB. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;KissMe (http://apps.facebook.com/kiss_me/) 1-st to reach Mil in class. Full moon on the quad. Appealing action. Provocative. Hard to reject a kiss. First gain users – next create deeper experience. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Perfect match (http://apps.facebook.com/perfect_match/). “Stable marriage problem” math problem. Announce result first – than collect preferences and improve result. 3.5 Mil users. User mini-feed.&lt;span style=""&gt;  &lt;/span&gt;Catchy message. Invitations. Next – live/love chat.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Hugs (http://apps.facebook.com/hugpeople) 2 Mil users, 15 Mil hugs&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Summary:&lt;/span&gt; best practice – go viral first – then deep; instrumentation/analytics; session time, K-factor; iteration dev process. Viral factors-&gt; message -&gt; measure. Extremely short dev time/cicle &lt;span style=""&gt; &lt;/span&gt;hrs-days. &lt;span style=""&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-2326840418617570967?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/2326840418617570967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=2326840418617570967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2326840418617570967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2326840418617570967'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/12/lessons-learned-from-cs377w-stanford.html' title='Lessons learned from CS377W (Stanford facebook class)'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_mAuyo4Ty9Uk/R2LChwaV-XI/AAAAAAAAAWk/k83g29MTJfI/s72-c/classlogo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-5389474067427367530</id><published>2007-12-03T11:54:00.000-08:00</published><updated>2007-12-03T12:01:55.559-08:00</updated><title type='text'>leading social networks</title><content type='html'>Here is the dynamics of the socical network use based on the Alexa's data:&lt;a href="http://www.alexa.com/data/details/traffic_details/bestbuy.com?site0=myspace.com&amp;amp;site1=orkut.com&amp;amp;site2=facebook.com&amp;amp;site3=hi5.com&amp;amp;site4=tagged.com&amp;amp;y=r&amp;amp;z=3&amp;amp;h=300&amp;amp;w=610&amp;amp;range=3m&amp;amp;size=Medium"&gt;http://www.alexa.com/data/details/traffic_details/bestbuy.com?site0=myspace.com&amp;amp;site1=orkut.com&amp;amp;site2=facebook.com&amp;amp;site3=hi5.com&amp;amp;site4=tagged.com&amp;amp;y=r&amp;amp;z=3&amp;amp;h=300&amp;amp;w=610&amp;amp;range=3m&amp;amp;size=Medium&lt;/a&gt;&lt;br /&gt;Is there a dip in Facebook use? And OpenSocial is not on the Myspace or Hi5 yet. What would be really interesting is to see how this dynamic will change when social apps based on OpenSocial platform will be rolled out.&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;&lt;a href="http://lsvp.wordpress.com/2007/07/23/top-social-networks-for-engagement-some-suprises/"&gt;http://lsvp.wordpress.com/2007/07/23/top-social-networks-for-engagement-some-suprises/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-5389474067427367530?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/5389474067427367530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=5389474067427367530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5389474067427367530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5389474067427367530'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/12/leading-social-networks.html' title='leading social networks'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-7393265471017665728</id><published>2007-11-01T12:53:00.000-07:00</published><updated>2007-11-01T12:55:32.609-07:00</updated><title type='text'>MySpace will join OpenSocial</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_mAuyo4Ty9Uk/RyovBXXF-II/AAAAAAAAAV4/VQ7yro4peiQ/s1600-h/googleopensocial.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_mAuyo4Ty9Uk/RyovBXXF-II/AAAAAAAAAV4/VQ7yro4peiQ/s320/googleopensocial.jpg" alt="" id="BLOGGER_PHOTO_ID_5127962826211981442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MySpace will join the list of social networks participating in OpenSocial initiative. Other members include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Orkut&lt;/li&gt;&lt;li&gt; Salesforce&lt;/li&gt;&lt;li&gt; LinkedIn&lt;/li&gt;&lt;li&gt; Ning&lt;/li&gt;&lt;li&gt; Hi5&lt;/li&gt;&lt;li&gt; Plaxo&lt;/li&gt;&lt;li&gt; Friendster&lt;/li&gt;&lt;li&gt; Viadeo&lt;/li&gt;&lt;li&gt; Oracle&lt;/li&gt;&lt;li&gt; SixApart&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Looking forward for the announcement tonight at Google&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-7393265471017665728?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/7393265471017665728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=7393265471017665728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7393265471017665728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7393265471017665728'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/11/myspace-will-join-opensocial.html' title='MySpace will join OpenSocial'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_mAuyo4Ty9Uk/RyovBXXF-II/AAAAAAAAAV4/VQ7yro4peiQ/s72-c/googleopensocial.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-5366443647667001627</id><published>2007-10-17T10:52:00.000-07:00</published><updated>2007-10-17T10:59:02.329-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebase'/><category scheme='http://www.blogger.com/atom/ns#' term='web link'/><title type='text'>FreeBase.com</title><content type='html'>WOW!&lt;br /&gt;Finally there &lt;strong&gt;is&lt;/strong&gt; a way to bring some order to the data on the Web: &lt;a href="http://www.freebase.com/"&gt;http://www.freebase.com/&lt;/a&gt;&lt;br /&gt;I am very excited about the project and the very elegant way of linking structural data, unstructured data, images, people, time, and place in a form that is both accessible by humans and computers.&lt;br /&gt;&lt;br /&gt;- Gene (&lt;a href="http://www.freebase.com/view/guid/9202a8c04000641f8000000005f1f68a"&gt;http://www.freebase.com/view/guid/9202a8c04000641f8000000005f1f68a&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-5366443647667001627?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/5366443647667001627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=5366443647667001627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5366443647667001627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5366443647667001627'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/10/freebasecom.html' title='FreeBase.com'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-7946138277219509139</id><published>2007-10-10T09:13:00.000-07:00</published><updated>2007-10-10T09:45:19.927-07:00</updated><title type='text'>Why Facebook will eclipse Google</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img.timeinc.net/time/daily/2007/0707/zuckerberg_0716.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px;" src="http://img.timeinc.net/time/daily/2007/0707/zuckerberg_0716.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Today, when Google stock reached a new high  of &lt;a href="http://finance.google.com/finance?client=ob&amp;amp;q=GOOG"&gt;623.22&lt;/a&gt; and company seems  like a dominant player of the Internet game, I take liberty to declare that within 5 years Facebook will eclipse Google.&lt;br /&gt;&lt;br /&gt;Why:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Social media potentially more profitable than search. Search is either "find-and-leave" pattern or "search-clickonthead-leave" (and only on this exit money are made by the search company) . Social media is where people come to communicate, express them self, play, hang around, date, and (one day) shop together. Longer people stay - more money could be made.&lt;/li&gt;&lt;li&gt;Facebook already gained and most likely will retain leading role controlling big slice of the social graph. They are brilliant in terms of design, user focus, and execution.&lt;/li&gt;&lt;li&gt;Facebook engaged developer community in the level I have not seen since Java days.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Facebook is heading toward the application infrastructure and development platform that will rule the market similar to how Microsoft used to rule for many years with  Windows&lt;/li&gt;&lt;li&gt;My blog that I started as software architecture becomes more-and-more Facebook application development blog :)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-7946138277219509139?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/7946138277219509139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=7946138277219509139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7946138277219509139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7946138277219509139'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/10/why-facebook-will-eclipse-google.html' title='Why Facebook will eclipse Google'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-7543767317658029780</id><published>2007-10-09T07:24:00.000-07:00</published><updated>2007-10-09T07:28:10.721-07:00</updated><title type='text'>Graphing Social Patterns: The Business &amp; Technology of Facebook</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_mAuyo4Ty9Uk/RwuPbyPrLwI/AAAAAAAAAUU/s5mzv4yaupE/s1600-h/black_with_date.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_mAuyo4Ty9Uk/RwuPbyPrLwI/AAAAAAAAAUU/s5mzv4yaupE/s320/black_with_date.jpg" alt="" id="BLOGGER_PHOTO_ID_5119343108943458050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.facebook.com/event.php?eid=6024102215"&gt;http://www.facebook.com/event.php?eid=6024102215&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-7543767317658029780?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/7543767317658029780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=7543767317658029780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7543767317658029780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7543767317658029780'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/10/graphing-social-patterns-business.html' title='Graphing Social Patterns: The Business &amp; Technology of Facebook'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_mAuyo4Ty9Uk/RwuPbyPrLwI/AAAAAAAAAUU/s5mzv4yaupE/s72-c/black_with_date.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-5401577700166543801</id><published>2007-10-03T15:25:00.000-07:00</published><updated>2007-10-03T15:28:57.916-07:00</updated><title type='text'>Road for developer success on Facebook</title><content type='html'>Two must-read links for FB app developers dreaming about crowds of users:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.insidefacebook.com/2007/06/07/10-tips-for-releasing-your-facebook-application-and-maximizing-growth/"&gt;http://www.insidefacebook.com/2007/06/07/10-tips-for-releasing-your-facebook-application-and-maximizing-growth/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.techcrunch.com/2007/10/03/seven-steps-to-graphing-your-facebook-strategy/"&gt;http://www.techcrunch.com/2007/10/03/seven-steps-to-graphing-your-facebook-strategy/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-5401577700166543801?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/5401577700166543801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=5401577700166543801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5401577700166543801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/5401577700166543801'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/10/road-for-developer-success-on-facebook.html' title='Road for developer success on Facebook'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-871411882011662185</id><published>2007-10-01T20:29:00.000-07:00</published><updated>2007-10-01T20:45:21.944-07:00</updated><title type='text'>Inside Facebook</title><content type='html'>Read a nice book-blog recollection of an early days of Facebook. Stories are very much similar to early days of other companies, successful, or not. So what make it a fun reading is to decipher what really made this company a success story unheard since stratospheric flight of Google. Book is short. I read it in classic "paper" format but it is also available as pdf from writer's site: &lt;a href="http://www.fbbook.com/"&gt;http://www.fbbook.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/product/1425113001?ie=UTF8&amp;tag=vmstore-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1425113001"&gt;Inside Facebook: Life, Work and Visions of Greatness&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=vmstore-20&amp;l=as2&amp;o=1&amp;a=1425113001" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-871411882011662185?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/871411882011662185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=871411882011662185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/871411882011662185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/871411882011662185'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/10/inside-facebook.html' title='Inside Facebook'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-7615756014882313092</id><published>2007-09-20T16:06:00.000-07:00</published><updated>2007-09-20T16:17:09.790-07:00</updated><title type='text'>JavaScript in Facebook applications</title><content type='html'>Facebook (finally) allowed Java Script in FB applications outside of IFRAME&lt;br /&gt;&lt;a href="http://wiki.developers.facebook.com/index.php/FBJS"&gt;http://wiki.developers.facebook.com/index.php/FBJS&lt;/a&gt;&lt;br /&gt;Among other things, I liked how elegantly they are creating namespaces separating different applications on the same page. Seems that it cold be a security hole here - it is possible to enumerate java functions on the page and "impersonate" user actions with another apps installed on the same page. Other than that - it's great that we can use JavaScript outside of the IFRAME sandbox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-7615756014882313092?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/7615756014882313092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=7615756014882313092' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7615756014882313092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7615756014882313092'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/09/javascript-in-facebook-applications.html' title='JavaScript in Facebook applications'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-8694386505568207403</id><published>2007-09-06T09:58:00.000-07:00</published><updated>2007-09-06T17:43:07.409-07:00</updated><title type='text'>SF New Tech September Meetup</title><content type='html'>&lt;div style="text-align: center; width: 214px; font-family: tahoma, verdana, sans serif; font-size: 12px;"&gt;&lt;embed  src="http://www.meetup.com/swf/membership_badge.swf?chapterid=228852" width="214" height="142" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt;&lt;/embed&gt;&lt;br /&gt;&lt;a href="http://newtech.meetup.com/15/?track=i3/mu_j1p9fwashu"&gt;Click here to check out&lt;br/&gt;The SF New Tech Meetup!&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Visisted &lt;a href="http://septsfnewtech.eventbrite.com/"&gt;SF New Tech September Meetup&lt;/a&gt; last night. &lt;br /&gt;&lt;br /&gt;Very exciting! People in the audience simply rock. Formal presentations, on the other hand, are behind the curve. Meaning that smart people are not presenting or presenting in other venues? Or rather "work" than "talk"? :)&lt;br /&gt;&lt;br /&gt;http://www.conduit.com presented upgrade to their browser plug-in. Good implementation but I do not personally see much of the future in the environment of customizable dashboards, gadgets and widgets with much richer experience&lt;br /&gt;&lt;br /&gt;http://www.sezwho.com also a couple years behind the curve&lt;br /&gt;&lt;br /&gt;http://www.us4real.com - good use of GMap mash-up with RSS feeds. Generated active discussion and bunch of suggestions that were "pushed aside" by the presenter as difficult or computationally intensive to implement. Do we create start-ups to solve exactly these kind of problems? Hire a part-time architect to sort-it-out.&lt;br /&gt;&lt;br /&gt;http://www.globalmotion.com - showed a Web site that is, basically, MediaWiki + custom plug-in. Impressed by accurate implementation, good job. Nothing revolutionary, but, really, is it really needed?&lt;br /&gt;&lt;br /&gt;http://www.crazymenu.com - I understand obsession with scheduling lunch outings. A lot of work needed (especially integrating with chat software).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The 60-Second Soapbox is were most of the fun were. Apparently there are companies that specialize in placing people to work with "stock options" only compensation, people that want to grab the microphone just to show off there theatrical skill, I should admit, very impressive. &lt;br /&gt;&lt;br /&gt;Summarizing the above was fun and I am looking forward for the next event.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-8694386505568207403?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/8694386505568207403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=8694386505568207403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/8694386505568207403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/8694386505568207403'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/09/sf-new-tech-september-meetup.html' title='SF New Tech September Meetup'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-2362450370810017233</id><published>2007-08-22T17:11:00.000-07:00</published><updated>2007-08-23T11:22:53.820-07:00</updated><title type='text'>Facebook Developer Garage - Palo Alto</title><content type='html'>&lt;a href="http://profile.ak.facebook.com/object2/2003/0/s4184233826_2824.jpg"&gt;&lt;img src="http://profile.ak.facebook.com/object2/2003/0/s4184233826_2824.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;A must-attend for Facebook fans:&lt;br /&gt;  http://www.facebook.com/event.php?eid=4184233826&lt;br /&gt;&lt;br /&gt;Ping me here so that we can shake hands there&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-2362450370810017233?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/2362450370810017233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=2362450370810017233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2362450370810017233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/2362450370810017233'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/08/facebook-developer-garage-palo-alto.html' title='Facebook Developer Garage - Palo Alto'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-9047152588360744405</id><published>2007-08-22T16:58:00.000-07:00</published><updated>2007-08-22T17:09:41.199-07:00</updated><title type='text'>Minimo released by Mozilla</title><content type='html'>At some point (last year) I was discussion with Mozilla regarding location-aware application development for the upcoming phone-based web browser. Too bad that did not materialized into the code... Still browser is good and hopefully will capture well deserved attenshion and appreciation of the users. In my opinion it is superior to the much-hyped iPhone browser.&lt;br /&gt;Here is the link for the app:&lt;br /&gt;&lt;a href="http://www.download.com/Minimo/3000-2163_4-10724808.html?tag=nl.e415"&gt;Minimo 0.2&lt;/a&gt;&lt;br /&gt;Win Mobile is the only platform at the moment. I am sure other builds will be available soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-9047152588360744405?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/9047152588360744405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=9047152588360744405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/9047152588360744405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/9047152588360744405'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/08/minimo-released-by-mozilla.html' title='Minimo released by Mozilla'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-226642222092266688</id><published>2007-08-21T16:46:00.000-07:00</published><updated>2007-08-21T16:52:45.001-07:00</updated><title type='text'>Google Calendar Gadget</title><content type='html'>Goggle just release Calendar Gadget spec:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/apis/calendar/calendar_gadgets.html#UsingiCal"&gt;http://code.google.com/apis/calendar/calendar_gadgets.html#UsingiCal&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I like it. Especially the elegance of incorporating metadata into the iCal format.&lt;br /&gt;&lt;br /&gt;Will try to create calendar gadget myself by extending one that I created for connect12 a short while ago: &lt;br /&gt;&lt;a href="http://www.google.com/ig/directory?root=%2Fig&amp;dpos=top&amp;num=24&amp;url=http://www.connect12.com/gg.xml"&gt;connect12.com conference Google gadget&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-226642222092266688?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/226642222092266688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=226642222092266688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/226642222092266688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/226642222092266688'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/08/google-calendar-gadget.html' title='Google Calendar Gadget'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-3192609340539104626</id><published>2007-08-09T16:34:00.000-07:00</published><updated>2007-08-09T16:51:19.253-07:00</updated><title type='text'>Market maps</title><content type='html'>Found nice (and free) market maps:&lt;br /&gt;http://www.firstpartner.net/map/download.html&lt;br /&gt;My favorite is "The Gadget &amp; Widget Universe"&lt;br /&gt;Others include:&lt;br /&gt;- The Skype Ecosystem &lt;br /&gt;- A Guide to VoIP&lt;br /&gt;- A Guide to Web 2.0 Communities&lt;br /&gt;&lt;br /&gt;Great for your desktop or the wall (if you still have some space left)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-3192609340539104626?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/3192609340539104626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=3192609340539104626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/3192609340539104626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/3192609340539104626'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/08/market-maps.html' title='Market maps'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-6021518900495130646</id><published>2007-08-08T18:47:00.000-07:00</published><updated>2007-08-08T18:50:32.504-07:00</updated><title type='text'>Procrastination</title><content type='html'>&lt;strong&gt;What &lt;b&gt;not&lt;/b&gt; to do when you have a problem:&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Encapsulate it into a bigger problem&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ignore&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Delay&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Hide, disconnect, or use any other method to burry the head into the sand&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Give up&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Write to the blog about it instead of solving it&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-6021518900495130646?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/6021518900495130646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=6021518900495130646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6021518900495130646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6021518900495130646'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/08/procrastination.html' title='Procrastination'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-7643748577441434984</id><published>2007-07-27T11:04:00.000-07:00</published><updated>2007-07-27T11:30:05.531-07:00</updated><title type='text'>Mapping Platform Selection</title><content type='html'>&lt;table border="1" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;      &lt;td width="80%" colspan="4"&gt;&lt;br /&gt;        &lt;p align="center"&gt;Platform&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;&amp;nbsp;&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;deCarta&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;ESRI&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;GoogleMap&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;MapQuest&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Scalability&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;+&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;+&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;+&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;+&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Internet/Internal&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Internet (hosted)&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Internal and Hosted&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Internet (hosted)&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Internal and Hosted&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;SDK, Ease of development&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Navigation SDK, rapid deployment for hosted solutions, no&lt;br /&gt;        code needed for simple apps (using Wizards)&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;ArcGIS for desktop, client and web dev.&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;KML, javascript SDK&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;SDK&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Support&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;+&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;+&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;good public forums&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;+&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Development Languages&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;JavaScript API, WS&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Java, JavaScript, C++ for WinCE, Win XP, JSP, ASP, ASP.NET,&lt;br /&gt;        ColdFusion, ArcXML, WS, Eclipse dev environment&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;JSP, ASP, ASP.NET, PHP, JavaScript lib&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;JSP, ASP, ASP.NET, PHP, XML, WS&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Major Markets&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Telecom, Wireless&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Goverment, Public works&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;mostly Consumer, Google MapEnterprise for &amp;gt;500K hits a&lt;br /&gt;        day or when ads are undesired&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;commercial, asset management, logistics&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;    &lt;tr&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Other pluses&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Free access to TeleAtlas data&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;Exact boundary data&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;integration with search platform, Maplets, add links to&lt;br /&gt;        maps, iPhone integration&lt;/td&gt;&lt;br /&gt;      &lt;td width="20%"&gt;(relatively) long history, MapInfo consulting, Points of&lt;br /&gt;        interest SDK&lt;/td&gt;&lt;br /&gt;    &lt;/tr&gt;&lt;br /&gt;&lt;br /&gt;  &lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-7643748577441434984?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/7643748577441434984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=7643748577441434984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7643748577441434984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/7643748577441434984'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/07/mapping-platform-selection.html' title='Mapping Platform Selection'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1351507253711522493.post-6451061170942668382</id><published>2007-07-26T13:50:00.000-07:00</published><updated>2007-07-26T13:54:57.005-07:00</updated><title type='text'>Facebook integration</title><content type='html'>Here is the best intro into the Facebook architecture description:&lt;br /&gt;&lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.slideshare.net/davidzhuang/facebook-platform-tech/" target="_blank"&gt;http://www.slideshare.net/davidzhuang/facebook-platform-tech/&lt;/a&gt;&lt;br /&gt;and API link:&lt;br /&gt;&lt;a href="http://20bits.com/2007/06/04/an-introduction-to-fbml/"&gt;http://20bits.com/2007/06/04/an-introduction-to-fbml/&lt;/a&gt;&lt;br /&gt;and a sample (better than official one)&lt;br /&gt;&lt;a href="http://gallery.menalto.com/node/65135"&gt;http://gallery.menalto.com/node/65135&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1351507253711522493-6451061170942668382?l=leybzon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leybzon.blogspot.com/feeds/6451061170942668382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1351507253711522493&amp;postID=6451061170942668382' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6451061170942668382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1351507253711522493/posts/default/6451061170942668382'/><link rel='alternate' type='text/html' href='http://leybzon.blogspot.com/2007/07/facebook-integration.html' title='Facebook integration'/><author><name>Gene Leybzon</name><uri>http://www.blogger.com/profile/05573641266330277850</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.freebase.com/api/trans/image_thumb//guid/9202a8c04000641f8000000005f1f71e?maxwidth=75&amp;maxheight=75'/></author><thr:total>2</thr:total></entry></feed>
