Wednesday, June 30, 2010

We are What We Choose: Jeff Bezos to Princeton Class of 2010

I enjoyed reading Jeff Bezos' (Amazon CEO) remarks delivered to Princeton class 2010.
Some valuable advice and interesting stories.

http://www.princeton.edu/main/news/archive/S27/52/51O99/index.xml

An excerpt from the remarks:
Tomorrow, in a very real sense, your life -- the life you author from scratch on your own -- begins.

How will you use your gifts? What choices will you make?
Will inertia be your guide, or will you follow your passions?
Will you follow dogma, or will you be original?
Will you choose a life of ease, or a life of service and adventure?
Will you wilt under criticism, or will you follow your convictions?
Will you bluff it out when you're wrong, or will you apologize?
Will you guard your heart against rejection, or will you act when you fall in love?
Will you play it safe, or will you be a little bit swashbuckling?
When it's tough, will you give up, or will you be relentless?
Will you be a cynic, or will you be a builder?
Will you be clever at the expense of others, or will you be kind?

Monday, June 28, 2010

How Some Things are Done in Facebook: Operations at Facebook

via slashdot: an amazing talk on several aspects of operations at fb. include infrastructure, configuration management, code deployment, monitoring etc.

A few things I took from the talk:
  • over 300 TB of data live in RAM served out of memcached

  • HipHop for code transformation from PHP to C++
    CFengine for configuration management

  • BitTorrent for code deployment {several 100s megabytes of code deployed to 10s of 1000s of machines to facebook.com }

  • Ganglia for monitoring

  • On-Demand tools: used for things like on-demand fix a mistake that escaped engineers in testing/deployments stages. Facebook used to use DSH but they outgrew it so FB built their own tool. Don't know if they made open source yet, the lecturer said he could not talk too much about it. ????? it allows making changes very quickly.


  • Facebook pushes code at least once a day and weekly pushes out new features not necessarily turning them on.

  • Normal software development structure Software engineers -> QAs -> operations. Facebook gets rid of the middle layer and delegate its tasks to first layer.

  • Facebook is loose on change management but very heavy on logging


  • very interesting talk. link here

    Also notice youtube new feature. still in beta but amazing { transcribe audio and translate sub-titles.}



    very cool.

    Wednesday, June 23, 2010

    Google between Auto-Complete and Searches History

    Ever used google's search textbox found in the bottom of its results page? It's actually a bit different than the upper search textbox. A long time ago google introduced auto-complete first in home page and next in the results page. But lately I noticed that in the results page the upper textbox auto-completes and the bottom one auto-completes from your search history. I think it's very cool; this way you have both options.

    Also the other neat thing is that Google's auto-complete feature is location-aware. So if you type something, Google will auto-complete for you based on top searches and trends originating in your locality first and if there is not it goes globally. also neat.

    Write but Can't Read

    an author of many books (Howard Engel)  found himself one morning unable to read but yet he was/is able to write. Wrote even two more books according to

    http://www.npr.org/templates/story/story.php?storyId=127745750

    Friday, April 30, 2010

    Steve Jobs on Flash and the iX Platform

    http://www.apple.com/hotnews/thoughts-on-flash/

    New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.


    It's very interesting and I don't mind seeing less of Flash and more HTML5.

    Monday, April 12, 2010

    Tableless

    I just wanted to post this html code here for my future reference.  This document was originally auto-generated to show some images. The tool generated table tags and used rowspan and colspan in ways that caused most browsers to show gaps between certain images.

    I converted the code to use ol tag and with some css styling (using float and display properties) the images lined up perfectly on standards compliant browsers (chrome, firefox) .

    For IE7 and below I used conditional commenting to raise up some of the images.

    Note that when using a layout like the one shown below and when the browser's window is resized, the images will move to fit new window's size. To prevent images relocation, I set the display property of the ol tag to table so it will behave like a table. However IE6 and I think IE7 does not respect this property so I added an actual table around the ol tag.


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <style type="text/css">
      body
      {
      margin:0px;
      padding:0px;
      }
      table
      {
      margin:0px;
      padding:0px;
      }
      img
      {
      display:block;
      margin:0px;
      padding:0px;
      background-color:#75b044;
      }
      ol
      {
      list-style-position: outside;
      list-style-type:none;
      margin:0px;
      padding:0px;
      display:table;
      }
      li
      {
      margin:0px;
      padding:0px;
      
      
      }
      .li1
      {
      float:left;
      margin-top:0px;
      }
      .li2
      {
      float:left;
      margin-top:-1px;
      }
      .moveleft
      {
      margin-left:-1px;
      }
    </style>
    </head>
    <body>
      <!--[if lte IE 7]>
          <style>
     .li1
     {
     margin-top:-4px;
     }
     .li2
     {
     margin-top:-20px !important;
     }
     </style>
          <![endif]-->
      
      <table cellpadding="0" cellspacing="0"><tr><td> 
    <!-- added table to prevent images from re-locating-->
    <!-- when window is re-sized in IE6 because it does not -->
    <!-- respect display:table css property -->
     <ol>
       <li>
         <img  id="banner"  alt="" src="" />
         </li>
       <li class="li1">
         <img  id="leftRowSpan1" alt="" src="" />
         </li >
       <li class="li1">
         <img  id="leftRowSpan2" alt="" src="" />
         </li>
       <li class="li1">
         <img id="rightRowSpan1"  alt="" src="" />
         <img id="rightRowSpan2"  alt="" src="" />
         </li>
       <li style="clear:both;"  > </li>
       
       <!-- third row -->
       <li class="li2 ieli2">
         <img id="leftRowSpan3" alt="" src="" />
       </li>
       <li class="li2 ieli2">
         <img id="leftRowSpan4" alt="" src="" />
         </li>
       <!-- third row right images -->
       <li class="li2 ieli2 moveleft">
         <img id="rightRowSpan3" alt="" src="" />
         <img id="rightRowSpan4" alt="" src="" />
       </li>
       <li style="clear:both;"></li>
       <li class="li2 ieli2">
         <img id="leftColSpan1" alt="" src="" />
         </li>
       <li class="li2 moveleft">
         <img id="rightColSpan2" alt="" src="" />
       </li>
       <li style="clear:both;"></li>
       <li class="li2 ieli2">       
         <img alt="" src=""/>
         </li>
       <li class="li2 ieli2 moveleft">
         <img alt="" src="" />        
       </li>
       <li style="clear:both;">
          <img id="footer" alt="" src=""/>        
          </li>
            </ol>
     </td></tr></table>
    </body>
    </html>
    
    
    

    Wednesday, April 7, 2010

    Keyboardless Future

    We will see more and more touch-enabled computing devices. But will touchscreens be the norm and keyboards the exceptions.

    http://www.readwriteweb.com/archives/farewell_keyboard_generation_i_will_grow_up_on_touchscreens.php