Test-driven development meets design-by-contract
Jim Weirich, Compuware
Slides: http://www.onestepback.org/articles/TddMeetsDbc

I enjoyed this session partly because I’m not a big fan of Ruby’s Unit Testing and liked the idea of a contract testing method.  The session discussed a separate testing packed called rSpec (http://rspec.rubyforge.org/).  I’ve included a link to the presentation which includes sample code on how one would go about doing this type of testing method.

Google AJAX API Search
Mark Lucovsky, Google
Slides: Unsure — but will post if I can find them

This was a fun session.  I love that Google is making these APIs available and am looking forward to getting home and playing with this in some of my toys.  I don’t like the license (i.e., you are not allow to co-mingle search results) — but maybe that will change in the future.  Here are the notes from the slides.

  • Easy way to add Google search to your page
  • Parallel search over web, local, listings, google video, and blogs
  • supports clipping of search results
  • Buzzword compliant
  • Ajax
  • json
  • html microformats
  • free and open
  • http://code.google.com/apis/ajaxsearch/
  • API Overview – Search Control
    • GsearchControl – UI layer to expose multiple search results
    • Common APIs
    • .addSearcher() – add a searcher instance to the search control
    • .draw() – bind a search control to your page
    • .execute() – execute a parallel search across all searchers
    • .setOnKeepCallback – handler for receiving copies of search results
    • .clearAllResults() – reset the search control
    • .setLinkTarget() – control the link following behavior
  • Expected sequence:
    sc = new GsearchControl();
  • UI-less object that executes type specific searches
    • GwebSearch() – search the web
    • GlocalSearch() – local search results and geo-coding
    • GblogSearch() – search blogs
    • GvideoSearch() – search google video
    • Common APIS
    • .execute() – execute a search
    • .setSearchCompleteCallback() – handler for search completion event
    • .setResultSetSize – select number of results
    • .setLinkTarget() – Control the link following behavior
  • Search class specific API
    • .setSiteRestriction() – site restricted blog, web search
    • .setCenterPoint() – local search scope control

    What is a search result:

    • Javascript Object
    • Uniform Properties (common across all searchers)
    • .GsearchResultClass() – indicates type of the search result
    • .html – HTML node containing microformat based result data
  • Domain specific properties
    • .title – the results title
    • .titleNoFormating – the title without any HTML markup
    • .url – the associated URL
    • .visibleURL – url fragment for suitable display
    • .content – snippet of information summarizing the result
    • .lat, lng – the latitude and longitude

    Closer look at local search results

    • .url – Google maps detail page for search results
    • .lat, .lng – latitute and long
    • .streetAddress, .city, …
    • Easy way to add Google search to your page
    • Parallel search over web, local, listings, google video, and blogs
    • supports clipping of search results

    The Atom Publishing Protocol as Universal Web Glue
    Tim Bray
    Slides: Post them when I find them

    I’ll be honest, I attended this session partly because I wanted to get a chance to hear Tim Bray speak — but the topic was interesting as well.  The AAP protocol is nearly completed and Tim discussed where they are and some of the reasons why it was needed.

    Ruby and .NET
    John Lam
    Slides: When I can find them

    This was cool.  I love writing in C#.  Its one of the reasons that I participate with the MONO Project testing code — I like the .NET framework and find it very comfortable.  I also am getting to like Ruby and wanted to know what the possiblity was of using the two together.  Well, it turns out, you can.  Lam has created a crl for Ruby that allows ruby to utilize the .NET platform.  Pretty cool stuff.

    I attended two other sessions, one on PHP 6 and unicode, the other on AJAX — both I’d heard in parts before.


    2 thoughts on “OSCON: Day 1 sessions