Reading List (2009) – April

Title, (Author Last Name, Date of Publication) – Date Completed

  1. Lexus and the Olive Tree (Friedman 2000) – 4/6
  2. The God of Small Things (Roy 1997) – 4/12
  3. Development as Fredom (Sen 1999) – 4/30

Page count for March: 1,095 (36.50/day)

The list of books read in 2008 struggled its way to 66, I’m aiming for 100 in 2009.

2009 totals: 21 books, 6,254 pages, 52.12/day, on pace for 63 books, behind 12 books–OUCH.

The Amartya Sen book killed me, it started to take away my will to read anything…. Oh and baseball season started.

Reading List (2009) – March

From the list below I would highly recommend: Pollan’s In Defense of Food and Friedman’s The Moral Consequences of Economic Growth.

Title, (Author Last Name, Date of Publication) – Date Completed

  1. Beyond Bullshit: Straight-Talk at Work (Culbert 2008) – 3/2
  2. The Age of Heretics (Kleiner 2008) – 3/9
  3. The Moral Consequences of Economic Growth (Friedman 2005) – 3/19
  4. Planet India (Kamdar 2007) – 3/25
  5. The 21st Century Economy (Epping 2009) – 3/25
  6. In Defense of Food (Pollan 2008) – 3/27
  7. The Cost of Living (Roy 1999) – 3/31

Page count for March: 1,545 (49.84/day)

The list of books read in 2008 struggled its way to 66, I’m aiming for 100 in 2009.

2009 totals: 19 books, 5,159 pages, 57.32/day, on pace for 76 books, behind 6 books.

Verifying search bots with forward and reverse DNS in PHP

The following function returns true if the current user is one of the bots we consider “good.” (Not that they are better than other legit bots, but ones that we provide a special service to)

This code can be used to allow search engines to index content that is normally behind a registration form. For a good user experience though, it should be used in conjunction with a “first click free” type implementation (which I’m still working on).

In a WordPress local install you can put this in your blogs functions.php page and then call it in the loop as part of the decision to output the_excerpt() or the_content().


# is the remote client (current web browser requesting page that calls
# this function) one of the 
# search bots that we would like to serve alternate content to? (e.g.
# should they get full text version
# of content pages, or should we show them the preview + registration
# form?)
function is_good_bot()
{
    
    # to avoid unecessary lookup, only check if the UA matches one of
    # the bots we like
    $ua = $_SERVER['HTTP_USER_AGENT'];
    if(
        preg_match("/Yahoo! Slurp/i", $ua) ||
        preg_match("/googlebot/i", $ua) ||
        # for testing purposes, put something from your current user
        # agent string in below
        # preg_match("/2009042315/", $ua) ||
        preg_match("/msnbot/i", $ua)
        )
    {
    
        # user agent contains one of the magic phrases, now do a
        # forward and reverse DNS check
        # each of the search providers that we use asserts that their
        # bot domains will always 
        # end in the strings in the below preg_match(es)
        # check forward/reverse to make IP address / hostname spoofing
        # very hard.
        $ip=$_SERVER['REMOTE_ADDR'];
        $hostname=gethostbyaddr($ip);    
        $ip_by_hostname=gethostbyname($hostname);                
        if ($ip_by_hostname == $ip) {
            if(
                preg_match("/\.googlebot\.com$/", $hostname) ||
                preg_match("/search\.msn\.com$/", $hostname) ||
                # testing: enter your hostname here
                # preg_match("/example.com$/", $hostname) ||
                preg_match("/crawl\.yahoo\.net$/", $hostname)         
       
                )
            {
                # good bot. 
                return true;
            } else {
                # bad bot, and possible bad person all around.
                return false;
            }
        } else {
            # bad bot, and possible bad person all around.
            return false;
        }

    } else {
        # If the UA of a prefered bot isn't present, just skip the 2x
        # DNS checks
        return false;
    }     
}

Business Insight article downloads from MIT Sloan Management Review

MIT Sloan Management Review (where I work) jointly produces a special report in the Wall Street Journal called “Business Insight”. It’s published in print and on WSJ.com & MIT SMR’s site.

For further reading on topics raised in Business Insight articles we include links to work SMR has published in the past. As part of the partnership, we “unlock” these articles and make them freely available PDF downloads (for a period of time).

Below is a list of the 17 articles from the archives that are currently available as free downloads.

Many thanks to this edition’s sponsor, MIT Sloan Executive Education, the authors and WSJ.com.

MIT Sustainability Summit

Taking a break from the usual today and attending the MIT Sustainability Summit

The MIT Sustainability Summit, Discovering New Dimensions for Growth, brings together students, engineers, business leaders, academics, environmental activists, and public servants to discuss how we can most effectively support each other as we face the opportunities and challenges of transitioning to a sustainable world.

Will update with more photos from the day …

Raw audio from Panel 1, MIT Sustainability Summit (27mb)